// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.26.0
// 	protoc        v3.9.1
// source: mixwallet.proto

package types

import (
	context "context"
	reflect "reflect"
	sync "sync"

	types "github.com/33cn/chain33/types"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type NoteStatus int32

const (
	NoteStatus_UNDEF    NoteStatus = 0
	NoteStatus_VALID    NoteStatus = 1 //已授权可使用 相对消费者
	NoteStatus_USED     NoteStatus = 2 //已使用
	NoteStatus_FROZEN   NoteStatus = 3 //未授权
	NoteStatus_UNFROZEN NoteStatus = 4 //已授权 相对授权者
)

// Enum value maps for NoteStatus.
var (
	NoteStatus_name = map[int32]string{
		0: "UNDEF",
		1: "VALID",
		2: "USED",
		3: "FROZEN",
		4: "UNFROZEN",
	}
	NoteStatus_value = map[string]int32{
		"UNDEF":    0,
		"VALID":    1,
		"USED":     2,
		"FROZEN":   3,
		"UNFROZEN": 4,
	}
)

func (x NoteStatus) Enum() *NoteStatus {
	p := new(NoteStatus)
	*p = x
	return p
}

func (x NoteStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (NoteStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_mixwallet_proto_enumTypes[0].Descriptor()
}

func (NoteStatus) Type() protoreflect.EnumType {
	return &file_mixwallet_proto_enumTypes[0]
}

func (x NoteStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use NoteStatus.Descriptor instead.
func (NoteStatus) EnumDescriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{0}
}

type MixWalletRescanStatus int32

const (
	MixWalletRescanStatus_IDLE     MixWalletRescanStatus = 0
	MixWalletRescanStatus_SCANNING MixWalletRescanStatus = 1
	MixWalletRescanStatus_FINISHED MixWalletRescanStatus = 2
)

// Enum value maps for MixWalletRescanStatus.
var (
	MixWalletRescanStatus_name = map[int32]string{
		0: "IDLE",
		1: "SCANNING",
		2: "FINISHED",
	}
	MixWalletRescanStatus_value = map[string]int32{
		"IDLE":     0,
		"SCANNING": 1,
		"FINISHED": 2,
	}
)

func (x MixWalletRescanStatus) Enum() *MixWalletRescanStatus {
	p := new(MixWalletRescanStatus)
	*p = x
	return p
}

func (x MixWalletRescanStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (MixWalletRescanStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_mixwallet_proto_enumTypes[1].Descriptor()
}

func (MixWalletRescanStatus) Type() protoreflect.EnumType {
	return &file_mixwallet_proto_enumTypes[1]
}

func (x MixWalletRescanStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use MixWalletRescanStatus.Descriptor instead.
func (MixWalletRescanStatus) EnumDescriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{1}
}

//支持同时存入多个地址，多个地址具有相同的returnAddr和AuthorizeAddr,如果不同，则单个来存
type DepositInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ReceiverAddrs string `protobuf:"bytes,1,opt,name=receiverAddrs,proto3" json:"receiverAddrs,omitempty"`
	ReturnAddr    string `protobuf:"bytes,2,opt,name=returnAddr,proto3" json:"returnAddr,omitempty"`
	AuthorizeAddr string `protobuf:"bytes,3,opt,name=authorizeAddr,proto3" json:"authorizeAddr,omitempty"`
	Amounts       string `protobuf:"bytes,4,opt,name=amounts,proto3" json:"amounts,omitempty"`
}

func (x *DepositInfo) Reset() {
	*x = DepositInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DepositInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DepositInfo) ProtoMessage() {}

func (x *DepositInfo) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DepositInfo.ProtoReflect.Descriptor instead.
func (*DepositInfo) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{0}
}

func (x *DepositInfo) GetReceiverAddrs() string {
	if x != nil {
		return x.ReceiverAddrs
	}
	return ""
}

func (x *DepositInfo) GetReturnAddr() string {
	if x != nil {
		return x.ReturnAddr
	}
	return ""
}

func (x *DepositInfo) GetAuthorizeAddr() string {
	if x != nil {
		return x.AuthorizeAddr
	}
	return ""
}

func (x *DepositInfo) GetAmounts() string {
	if x != nil {
		return x.Amounts
	}
	return ""
}

//钱包生成deposit tx
type DepositTxReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Deposit *DepositInfo `protobuf:"bytes,1,opt,name=deposit,proto3" json:"deposit,omitempty"`
	ZkPath  string       `protobuf:"bytes,2,opt,name=zkPath,proto3" json:"zkPath,omitempty"`
}

func (x *DepositTxReq) Reset() {
	*x = DepositTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DepositTxReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DepositTxReq) ProtoMessage() {}

func (x *DepositTxReq) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DepositTxReq.ProtoReflect.Descriptor instead.
func (*DepositTxReq) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{1}
}

func (x *DepositTxReq) GetDeposit() *DepositInfo {
	if x != nil {
		return x.Deposit
	}
	return nil
}

func (x *DepositTxReq) GetZkPath() string {
	if x != nil {
		return x.ZkPath
	}
	return ""
}

type DepositProofResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NoteHash string         `protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	Proof    *SecretData    `protobuf:"bytes,2,opt,name=proof,proto3" json:"proof,omitempty"`
	Secrets  *DHSecretGroup `protobuf:"bytes,3,opt,name=secrets,proto3" json:"secrets,omitempty"`
}

func (x *DepositProofResp) Reset() {
	*x = DepositProofResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DepositProofResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DepositProofResp) ProtoMessage() {}

func (x *DepositProofResp) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DepositProofResp.ProtoReflect.Descriptor instead.
func (*DepositProofResp) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{2}
}

func (x *DepositProofResp) GetNoteHash() string {
	if x != nil {
		return x.NoteHash
	}
	return ""
}

func (x *DepositProofResp) GetProof() *SecretData {
	if x != nil {
		return x.Proof
	}
	return nil
}

func (x *DepositProofResp) GetSecrets() *DHSecretGroup {
	if x != nil {
		return x.Secrets
	}
	return nil
}

//可withdraw 多个note
type WithdrawTxReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TotalAmount uint64 `protobuf:"varint,1,opt,name=totalAmount,proto3" json:"totalAmount,omitempty"`
	NoteHashs   string `protobuf:"bytes,2,opt,name=noteHashs,proto3" json:"noteHashs,omitempty"` // seperate by ","
	ZkPath      string `protobuf:"bytes,3,opt,name=zkPath,proto3" json:"zkPath,omitempty"`
}

func (x *WithdrawTxReq) Reset() {
	*x = WithdrawTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WithdrawTxReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WithdrawTxReq) ProtoMessage() {}

func (x *WithdrawTxReq) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WithdrawTxReq.ProtoReflect.Descriptor instead.
func (*WithdrawTxReq) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{3}
}

func (x *WithdrawTxReq) GetTotalAmount() uint64 {
	if x != nil {
		return x.TotalAmount
	}
	return 0
}

func (x *WithdrawTxReq) GetNoteHashs() string {
	if x != nil {
		return x.NoteHashs
	}
	return ""
}

func (x *WithdrawTxReq) GetZkPath() string {
	if x != nil {
		return x.ZkPath
	}
	return ""
}

//只授权一个note，超过一个，toAddr不好设置
type AuthTxReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NoteHash        string `protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	AuthorizeToAddr string `protobuf:"bytes,2,opt,name=authorizeToAddr,proto3" json:"authorizeToAddr,omitempty"`
	ZkPath          string `protobuf:"bytes,3,opt,name=zkPath,proto3" json:"zkPath,omitempty"`
}

func (x *AuthTxReq) Reset() {
	*x = AuthTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AuthTxReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AuthTxReq) ProtoMessage() {}

func (x *AuthTxReq) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AuthTxReq.ProtoReflect.Descriptor instead.
func (*AuthTxReq) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{4}
}

func (x *AuthTxReq) GetNoteHash() string {
	if x != nil {
		return x.NoteHash
	}
	return ""
}

func (x *AuthTxReq) GetAuthorizeToAddr() string {
	if x != nil {
		return x.AuthorizeToAddr
	}
	return ""
}

func (x *AuthTxReq) GetZkPath() string {
	if x != nil {
		return x.ZkPath
	}
	return ""
}

type TransferInputTxReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NoteHashs string `protobuf:"bytes,1,opt,name=noteHashs,proto3" json:"noteHashs,omitempty"`
}

func (x *TransferInputTxReq) Reset() {
	*x = TransferInputTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TransferInputTxReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TransferInputTxReq) ProtoMessage() {}

func (x *TransferInputTxReq) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TransferInputTxReq.ProtoReflect.Descriptor instead.
func (*TransferInputTxReq) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{5}
}

func (x *TransferInputTxReq) GetNoteHashs() string {
	if x != nil {
		return x.NoteHashs
	}
	return ""
}

type TransferOutputTxReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Deposit *DepositInfo `protobuf:"bytes,1,opt,name=deposit,proto3" json:"deposit,omitempty"`
}

func (x *TransferOutputTxReq) Reset() {
	*x = TransferOutputTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TransferOutputTxReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TransferOutputTxReq) ProtoMessage() {}

func (x *TransferOutputTxReq) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TransferOutputTxReq.ProtoReflect.Descriptor instead.
func (*TransferOutputTxReq) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{6}
}

func (x *TransferOutputTxReq) GetDeposit() *DepositInfo {
	if x != nil {
		return x.Deposit
	}
	return nil
}

type TransferTxReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Input  *TransferInputTxReq  `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"`
	Output *TransferOutputTxReq `protobuf:"bytes,2,opt,name=output,proto3" json:"output,omitempty"`
	ZkPath string               `protobuf:"bytes,3,opt,name=zkPath,proto3" json:"zkPath,omitempty"`
}

func (x *TransferTxReq) Reset() {
	*x = TransferTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TransferTxReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TransferTxReq) ProtoMessage() {}

func (x *TransferTxReq) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TransferTxReq.ProtoReflect.Descriptor instead.
func (*TransferTxReq) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{7}
}

func (x *TransferTxReq) GetInput() *TransferInputTxReq {
	if x != nil {
		return x.Input
	}
	return nil
}

func (x *TransferTxReq) GetOutput() *TransferOutputTxReq {
	if x != nil {
		return x.Output
	}
	return nil
}

func (x *TransferTxReq) GetZkPath() string {
	if x != nil {
		return x.ZkPath
	}
	return ""
}

type CreateZkKeyFileReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ty       int32  `protobuf:"varint,1,opt,name=ty,proto3" json:"ty,omitempty"`
	SavePath string `protobuf:"bytes,2,opt,name=savePath,proto3" json:"savePath,omitempty"`
}

func (x *CreateZkKeyFileReq) Reset() {
	*x = CreateZkKeyFileReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateZkKeyFileReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateZkKeyFileReq) ProtoMessage() {}

func (x *CreateZkKeyFileReq) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateZkKeyFileReq.ProtoReflect.Descriptor instead.
func (*CreateZkKeyFileReq) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{8}
}

func (x *CreateZkKeyFileReq) GetTy() int32 {
	if x != nil {
		return x.Ty
	}
	return 0
}

func (x *CreateZkKeyFileReq) GetSavePath() string {
	if x != nil {
		return x.SavePath
	}
	return ""
}

//加密了的input/output amount
type ShieldAmount struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	X string `protobuf:"bytes,1,opt,name=X,proto3" json:"X,omitempty"`
	Y string `protobuf:"bytes,2,opt,name=Y,proto3" json:"Y,omitempty"`
}

func (x *ShieldAmount) Reset() {
	*x = ShieldAmount{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ShieldAmount) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ShieldAmount) ProtoMessage() {}

func (x *ShieldAmount) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ShieldAmount.ProtoReflect.Descriptor instead.
func (*ShieldAmount) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{9}
}

func (x *ShieldAmount) GetX() string {
	if x != nil {
		return x.X
	}
	return ""
}

func (x *ShieldAmount) GetY() string {
	if x != nil {
		return x.Y
	}
	return ""
}

type ShieldAmountRst struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InputRandoms []string        `protobuf:"bytes,1,rep,name=inputRandoms,proto3" json:"inputRandoms,omitempty"`
	OutputRandom string          `protobuf:"bytes,2,opt,name=outputRandom,proto3" json:"outputRandom,omitempty"`
	ChangeRandom string          `protobuf:"bytes,3,opt,name=changeRandom,proto3" json:"changeRandom,omitempty"`
	Inputs       []*ShieldAmount `protobuf:"bytes,4,rep,name=inputs,proto3" json:"inputs,omitempty"`
	Output       *ShieldAmount   `protobuf:"bytes,5,opt,name=output,proto3" json:"output,omitempty"`
	Change       *ShieldAmount   `protobuf:"bytes,6,opt,name=change,proto3" json:"change,omitempty"`
}

func (x *ShieldAmountRst) Reset() {
	*x = ShieldAmountRst{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ShieldAmountRst) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ShieldAmountRst) ProtoMessage() {}

func (x *ShieldAmountRst) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ShieldAmountRst.ProtoReflect.Descriptor instead.
func (*ShieldAmountRst) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{10}
}

func (x *ShieldAmountRst) GetInputRandoms() []string {
	if x != nil {
		return x.InputRandoms
	}
	return nil
}

func (x *ShieldAmountRst) GetOutputRandom() string {
	if x != nil {
		return x.OutputRandom
	}
	return ""
}

func (x *ShieldAmountRst) GetChangeRandom() string {
	if x != nil {
		return x.ChangeRandom
	}
	return ""
}

func (x *ShieldAmountRst) GetInputs() []*ShieldAmount {
	if x != nil {
		return x.Inputs
	}
	return nil
}

func (x *ShieldAmountRst) GetOutput() *ShieldAmount {
	if x != nil {
		return x.Output
	}
	return nil
}

func (x *ShieldAmountRst) GetChange() *ShieldAmount {
	if x != nil {
		return x.Change
	}
	return nil
}

type CreateRawTxReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ActionTy      int32  `protobuf:"varint,1,opt,name=actionTy,proto3" json:"actionTy,omitempty"`
	Data          []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
	AssetExec     string `protobuf:"bytes,2,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	AssetSymbol   string `protobuf:"bytes,3,opt,name=assetSymbol,proto3" json:"assetSymbol,omitempty"`
	Title         string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"`                  //平行链名字
	VerifyOnChain bool   `protobuf:"varint,7,opt,name=verifyOnChain,proto3" json:"verifyOnChain,omitempty"` //true:链上验证,false:本地验证
}

func (x *CreateRawTxReq) Reset() {
	*x = CreateRawTxReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateRawTxReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateRawTxReq) ProtoMessage() {}

func (x *CreateRawTxReq) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateRawTxReq.ProtoReflect.Descriptor instead.
func (*CreateRawTxReq) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{11}
}

func (x *CreateRawTxReq) GetActionTy() int32 {
	if x != nil {
		return x.ActionTy
	}
	return 0
}

func (x *CreateRawTxReq) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *CreateRawTxReq) GetAssetExec() string {
	if x != nil {
		return x.AssetExec
	}
	return ""
}

func (x *CreateRawTxReq) GetAssetSymbol() string {
	if x != nil {
		return x.AssetSymbol
	}
	return ""
}

func (x *CreateRawTxReq) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *CreateRawTxReq) GetVerifyOnChain() bool {
	if x != nil {
		return x.VerifyOnChain
	}
	return false
}

type PaymentKeysReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PrivKey string `protobuf:"bytes,1,opt,name=privKey,proto3" json:"privKey,omitempty"` //user wallet priv key
	Addr    string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`       //user addr
	Detail  bool   `protobuf:"varint,3,opt,name=detail,proto3" json:"detail,omitempty"`  //获取私钥信息
}

func (x *PaymentKeysReq) Reset() {
	*x = PaymentKeysReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PaymentKeysReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PaymentKeysReq) ProtoMessage() {}

func (x *PaymentKeysReq) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PaymentKeysReq.ProtoReflect.Descriptor instead.
func (*PaymentKeysReq) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{12}
}

func (x *PaymentKeysReq) GetPrivKey() string {
	if x != nil {
		return x.PrivKey
	}
	return ""
}

func (x *PaymentKeysReq) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *PaymentKeysReq) GetDetail() bool {
	if x != nil {
		return x.Detail
	}
	return false
}

type WalletNoteInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NoteHash           string      `protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	Nullifier          string      `protobuf:"bytes,2,opt,name=nullifier,proto3" json:"nullifier,omitempty"`
	AuthorizeSpendHash string      `protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
	AuthorizeHash      string      `protobuf:"bytes,4,opt,name=authorizeHash,proto3" json:"authorizeHash,omitempty"`
	Account            string      `protobuf:"bytes,5,opt,name=account,proto3" json:"account,omitempty"` //账户地址
	Status             NoteStatus  `protobuf:"varint,6,opt,name=status,proto3,enum=types.NoteStatus" json:"status,omitempty"`
	Secret             *SecretData `protobuf:"bytes,7,opt,name=secret,proto3" json:"secret,omitempty"`
}

func (x *WalletNoteInfo) Reset() {
	*x = WalletNoteInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WalletNoteInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WalletNoteInfo) ProtoMessage() {}

func (x *WalletNoteInfo) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WalletNoteInfo.ProtoReflect.Descriptor instead.
func (*WalletNoteInfo) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{13}
}

func (x *WalletNoteInfo) GetNoteHash() string {
	if x != nil {
		return x.NoteHash
	}
	return ""
}

func (x *WalletNoteInfo) GetNullifier() string {
	if x != nil {
		return x.Nullifier
	}
	return ""
}

func (x *WalletNoteInfo) GetAuthorizeSpendHash() string {
	if x != nil {
		return x.AuthorizeSpendHash
	}
	return ""
}

func (x *WalletNoteInfo) GetAuthorizeHash() string {
	if x != nil {
		return x.AuthorizeHash
	}
	return ""
}

func (x *WalletNoteInfo) GetAccount() string {
	if x != nil {
		return x.Account
	}
	return ""
}

func (x *WalletNoteInfo) GetStatus() NoteStatus {
	if x != nil {
		return x.Status
	}
	return NoteStatus_UNDEF
}

func (x *WalletNoteInfo) GetSecret() *SecretData {
	if x != nil {
		return x.Secret
	}
	return nil
}

type WalletDbMixInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Info    *WalletNoteInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
	TxIndex string          `protobuf:"bytes,2,opt,name=txIndex,proto3" json:"txIndex,omitempty"`
}

func (x *WalletDbMixInfo) Reset() {
	*x = WalletDbMixInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WalletDbMixInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WalletDbMixInfo) ProtoMessage() {}

func (x *WalletDbMixInfo) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WalletDbMixInfo.ProtoReflect.Descriptor instead.
func (*WalletDbMixInfo) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{14}
}

func (x *WalletDbMixInfo) GetInfo() *WalletNoteInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

func (x *WalletDbMixInfo) GetTxIndex() string {
	if x != nil {
		return x.TxIndex
	}
	return ""
}

type WalletMixIndexReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NoteHash           string `protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	Nullifier          string `protobuf:"bytes,2,opt,name=nullifier,proto3" json:"nullifier,omitempty"`
	AuthorizeSpendHash string `protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
	AuthorizeHash      string `protobuf:"bytes,4,opt,name=authorizeHash,proto3" json:"authorizeHash,omitempty"`
	Account            string `protobuf:"bytes,5,opt,name=account,proto3" json:"account,omitempty"`
	Status             int32  `protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"`
	Count              int32  `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"`
	Direction          int32  `protobuf:"varint,8,opt,name=direction,proto3" json:"direction,omitempty"`
}

func (x *WalletMixIndexReq) Reset() {
	*x = WalletMixIndexReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WalletMixIndexReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WalletMixIndexReq) ProtoMessage() {}

func (x *WalletMixIndexReq) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WalletMixIndexReq.ProtoReflect.Descriptor instead.
func (*WalletMixIndexReq) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{15}
}

func (x *WalletMixIndexReq) GetNoteHash() string {
	if x != nil {
		return x.NoteHash
	}
	return ""
}

func (x *WalletMixIndexReq) GetNullifier() string {
	if x != nil {
		return x.Nullifier
	}
	return ""
}

func (x *WalletMixIndexReq) GetAuthorizeSpendHash() string {
	if x != nil {
		return x.AuthorizeSpendHash
	}
	return ""
}

func (x *WalletMixIndexReq) GetAuthorizeHash() string {
	if x != nil {
		return x.AuthorizeHash
	}
	return ""
}

func (x *WalletMixIndexReq) GetAccount() string {
	if x != nil {
		return x.Account
	}
	return ""
}

func (x *WalletMixIndexReq) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *WalletMixIndexReq) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *WalletMixIndexReq) GetDirection() int32 {
	if x != nil {
		return x.Direction
	}
	return 0
}

type WalletNoteResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Notes []*WalletNoteInfo `protobuf:"bytes,1,rep,name=notes,proto3" json:"notes,omitempty"`
}

func (x *WalletNoteResp) Reset() {
	*x = WalletNoteResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WalletNoteResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WalletNoteResp) ProtoMessage() {}

func (x *WalletNoteResp) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WalletNoteResp.ProtoReflect.Descriptor instead.
func (*WalletNoteResp) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{16}
}

func (x *WalletNoteResp) GetNotes() []*WalletNoteInfo {
	if x != nil {
		return x.Notes
	}
	return nil
}

type WalletEnablePrivacyRst struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
	IsOK bool   `protobuf:"varint,2,opt,name=isOK,proto3" json:"isOK,omitempty"`
	Msg  string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"`
}

func (x *WalletEnablePrivacyRst) Reset() {
	*x = WalletEnablePrivacyRst{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WalletEnablePrivacyRst) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WalletEnablePrivacyRst) ProtoMessage() {}

func (x *WalletEnablePrivacyRst) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WalletEnablePrivacyRst.ProtoReflect.Descriptor instead.
func (*WalletEnablePrivacyRst) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{17}
}

func (x *WalletEnablePrivacyRst) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *WalletEnablePrivacyRst) GetIsOK() bool {
	if x != nil {
		return x.IsOK
	}
	return false
}

func (x *WalletEnablePrivacyRst) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type WalletEnablePrivacyResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Resps []*WalletEnablePrivacyRst `protobuf:"bytes,1,rep,name=resps,proto3" json:"resps,omitempty"`
}

func (x *WalletEnablePrivacyResp) Reset() {
	*x = WalletEnablePrivacyResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WalletEnablePrivacyResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WalletEnablePrivacyResp) ProtoMessage() {}

func (x *WalletEnablePrivacyResp) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WalletEnablePrivacyResp.ProtoReflect.Descriptor instead.
func (*WalletEnablePrivacyResp) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{18}
}

func (x *WalletEnablePrivacyResp) GetResps() []*WalletEnablePrivacyRst {
	if x != nil {
		return x.Resps
	}
	return nil
}

type PrivacyAddrResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
	IsOK bool   `protobuf:"varint,2,opt,name=isOK,proto3" json:"isOK,omitempty"`
	Msg  string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"`
}

func (x *PrivacyAddrResult) Reset() {
	*x = PrivacyAddrResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PrivacyAddrResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PrivacyAddrResult) ProtoMessage() {}

func (x *PrivacyAddrResult) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PrivacyAddrResult.ProtoReflect.Descriptor instead.
func (*PrivacyAddrResult) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{19}
}

func (x *PrivacyAddrResult) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *PrivacyAddrResult) GetIsOK() bool {
	if x != nil {
		return x.IsOK
	}
	return false
}

func (x *PrivacyAddrResult) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

type ReqEnablePrivacyRst struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Results []*PrivacyAddrResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
}

func (x *ReqEnablePrivacyRst) Reset() {
	*x = ReqEnablePrivacyRst{}
	if protoimpl.UnsafeEnabled {
		mi := &file_mixwallet_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReqEnablePrivacyRst) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReqEnablePrivacyRst) ProtoMessage() {}

func (x *ReqEnablePrivacyRst) ProtoReflect() protoreflect.Message {
	mi := &file_mixwallet_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReqEnablePrivacyRst.ProtoReflect.Descriptor instead.
func (*ReqEnablePrivacyRst) Descriptor() ([]byte, []int) {
	return file_mixwallet_proto_rawDescGZIP(), []int{20}
}

func (x *ReqEnablePrivacyRst) GetResults() []*PrivacyAddrResult {
	if x != nil {
		return x.Results
	}
	return nil
}

var File_mixwallet_proto protoreflect.FileDescriptor

var file_mixwallet_proto_rawDesc = []byte{
	0x0a, 0x0f, 0x6d, 0x69, 0x78, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x12, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x63, 0x72, 0x79, 0x70, 0x74,
	0x6f, 0x6b, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x01, 0x0a, 0x0b, 0x44,
	0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65,
	0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x73,
	0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x64, 0x64, 0x72,
	0x12, 0x24, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x41, 0x64, 0x64,
	0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
	0x7a, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
	0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73,
	0x22, 0x54, 0x0a, 0x0c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71,
	0x12, 0x2c, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x16,
	0x0a, 0x06, 0x7a, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x7a, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x22, 0x87, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x6e,
	0x6f, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e,
	0x6f, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x27, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53,
	0x65, 0x63, 0x72, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66,
	0x12, 0x2e, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x48, 0x53, 0x65, 0x63, 0x72,
	0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73,
	0x22, 0x67, 0x0a, 0x0d, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x54, 0x78, 0x52, 0x65,
	0x71, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f,
	0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x73,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68,
	0x73, 0x12, 0x16, 0x0a, 0x06, 0x7a, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x7a, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x22, 0x69, 0x0a, 0x09, 0x41, 0x75, 0x74,
	0x68, 0x54, 0x78, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x74, 0x65, 0x48, 0x61,
	0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x74, 0x65, 0x48, 0x61,
	0x73, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x54,
	0x6f, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x75, 0x74,
	0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x12, 0x16, 0x0a, 0x06,
	0x7a, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x7a, 0x6b,
	0x50, 0x61, 0x74, 0x68, 0x22, 0x32, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
	0x49, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f,
	0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e,
	0x6f, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x73, 0x22, 0x43, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e,
	0x73, 0x66, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x12,
	0x2c, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x22, 0x8c, 0x01,
	0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x52, 0x65, 0x71, 0x12,
	0x2f, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x49,
	0x6e, 0x70, 0x75, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74,
	0x12, 0x32, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65,
	0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x52, 0x06, 0x6f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x7a, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x7a, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x22, 0x40, 0x0a, 0x12,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5a, 0x6b, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52,
	0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02,
	0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x61, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x61, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x2a,
	0x0a, 0x0c, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0c,
	0x0a, 0x01, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x58, 0x12, 0x0c, 0x0a, 0x01,
	0x59, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x59, 0x22, 0x84, 0x02, 0x0a, 0x0f, 0x53,
	0x68, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x73, 0x74, 0x12, 0x22,
	0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f,
	0x6d, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x61, 0x6e, 0x64,
	0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x2b, 0x0a, 0x06, 0x69, 0x6e,
	0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52,
	0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75,
	0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x6f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x68, 0x69,
	0x65, 0x6c, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x61, 0x77, 0x54,
	0x78, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79,
	0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04,
	0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x45, 0x78, 0x65,
	0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x45, 0x78,
	0x65, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x53, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x53, 0x79,
	0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x65,
	0x72, 0x69, 0x66, 0x79, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e,
	0x22, 0x56, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x52,
	0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04,
	0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72,
	0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x90, 0x02, 0x0a, 0x0e, 0x57, 0x61, 0x6c,
	0x6c, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x6e,
	0x6f, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e,
	0x6f, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69,
	0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c,
	0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
	0x7a, 0x65, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x53, 0x70, 0x65, 0x6e,
	0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
	0x7a, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x75,
	0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x61,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x6f,
	0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x29, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x44,
	0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x56, 0x0a, 0x0f, 0x57,
	0x61, 0x6c, 0x6c, 0x65, 0x74, 0x44, 0x62, 0x4d, 0x69, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29,
	0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x49,
	0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x78, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x78, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x22, 0x89, 0x02, 0x0a, 0x11, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x69,
	0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x74,
	0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x74,
	0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69,
	0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66,
	0x69, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65,
	0x53, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x48,
	0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65,
	0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x68,
	0x6f, 0x72, 0x69, 0x7a, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22,
	0x3d, 0x0a, 0x0e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x12, 0x2b, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4e,
	0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x52,
	0x0a, 0x16, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72,
	0x69, 0x76, 0x61, 0x63, 0x79, 0x52, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04,
	0x69, 0x73, 0x4f, 0x4b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x4b,
	0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d,
	0x73, 0x67, 0x22, 0x4e, 0x0a, 0x17, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a,
	0x05, 0x72, 0x65, 0x73, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x52, 0x73, 0x74, 0x52, 0x05, 0x72, 0x65, 0x73,
	0x70, 0x73, 0x22, 0x4d, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x41, 0x64, 0x64,
	0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x69,
	0x73, 0x4f, 0x4b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x4b, 0x12,
	0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73,
	0x67, 0x22, 0x49, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72,
	0x69, 0x76, 0x61, 0x63, 0x79, 0x52, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2a, 0x46, 0x0a, 0x0a,
	0x4e, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e,
	0x44, 0x45, 0x46, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x01,
	0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x52,
	0x4f, 0x5a, 0x45, 0x4e, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x4e, 0x46, 0x52, 0x4f, 0x5a,
	0x45, 0x4e, 0x10, 0x04, 0x2a, 0x3d, 0x0a, 0x15, 0x4d, 0x69, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x65,
	0x74, 0x52, 0x65, 0x73, 0x63, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, 0x0a,
	0x04, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x43, 0x41, 0x4e, 0x4e,
	0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45,
	0x44, 0x10, 0x02, 0x32, 0xb4, 0x01, 0x0a, 0x0a, 0x6d, 0x69, 0x78, 0x50, 0x72, 0x69, 0x76, 0x61,
	0x63, 0x79, 0x12, 0x34, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x63, 0x61, 0x6e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65,
	0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71,
	0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x63,
	0x61, 0x6e, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x52, 0x65, 0x71, 0x4e, 0x69, 0x6c, 0x1a, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52,
	0x65, 0x71, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0d, 0x45, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x12, 0x0f, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x41, 0x64, 0x64, 0x72, 0x73, 0x1a, 0x1a, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72,
	0x69, 0x76, 0x61, 0x63, 0x79, 0x52, 0x73, 0x74, 0x22, 0x00, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e,
	0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_mixwallet_proto_rawDescOnce sync.Once
	file_mixwallet_proto_rawDescData = file_mixwallet_proto_rawDesc
)

func file_mixwallet_proto_rawDescGZIP() []byte {
	file_mixwallet_proto_rawDescOnce.Do(func() {
		file_mixwallet_proto_rawDescData = protoimpl.X.CompressGZIP(file_mixwallet_proto_rawDescData)
	})
	return file_mixwallet_proto_rawDescData
}

var file_mixwallet_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_mixwallet_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
var file_mixwallet_proto_goTypes = []interface{}{
	(NoteStatus)(0),                 // 0: types.NoteStatus
	(MixWalletRescanStatus)(0),      // 1: types.MixWalletRescanStatus
	(*DepositInfo)(nil),             // 2: types.DepositInfo
	(*DepositTxReq)(nil),            // 3: types.DepositTxReq
	(*DepositProofResp)(nil),        // 4: types.DepositProofResp
	(*WithdrawTxReq)(nil),           // 5: types.WithdrawTxReq
	(*AuthTxReq)(nil),               // 6: types.AuthTxReq
	(*TransferInputTxReq)(nil),      // 7: types.TransferInputTxReq
	(*TransferOutputTxReq)(nil),     // 8: types.TransferOutputTxReq
	(*TransferTxReq)(nil),           // 9: types.TransferTxReq
	(*CreateZkKeyFileReq)(nil),      // 10: types.CreateZkKeyFileReq
	(*ShieldAmount)(nil),            // 11: types.ShieldAmount
	(*ShieldAmountRst)(nil),         // 12: types.ShieldAmountRst
	(*CreateRawTxReq)(nil),          // 13: types.CreateRawTxReq
	(*PaymentKeysReq)(nil),          // 14: types.PaymentKeysReq
	(*WalletNoteInfo)(nil),          // 15: types.WalletNoteInfo
	(*WalletDbMixInfo)(nil),         // 16: types.WalletDbMixInfo
	(*WalletMixIndexReq)(nil),       // 17: types.WalletMixIndexReq
	(*WalletNoteResp)(nil),          // 18: types.WalletNoteResp
	(*WalletEnablePrivacyRst)(nil),  // 19: types.WalletEnablePrivacyRst
	(*WalletEnablePrivacyResp)(nil), // 20: types.WalletEnablePrivacyResp
	(*PrivacyAddrResult)(nil),       // 21: types.PrivacyAddrResult
	(*ReqEnablePrivacyRst)(nil),     // 22: types.ReqEnablePrivacyRst
	(*SecretData)(nil),              // 23: types.SecretData
	(*DHSecretGroup)(nil),           // 24: types.DHSecretGroup
	(*types.ReqNil)(nil),            // 25: types.ReqNil
	(*types.ReqAddrs)(nil),          // 26: types.ReqAddrs
	(*types.ReqString)(nil),         // 27: types.ReqString
}
var file_mixwallet_proto_depIdxs = []int32{
	2,  // 0: types.DepositTxReq.deposit:type_name -> types.DepositInfo
	23, // 1: types.DepositProofResp.proof:type_name -> types.SecretData
	24, // 2: types.DepositProofResp.secrets:type_name -> types.DHSecretGroup
	2,  // 3: types.TransferOutputTxReq.deposit:type_name -> types.DepositInfo
	7,  // 4: types.TransferTxReq.input:type_name -> types.TransferInputTxReq
	8,  // 5: types.TransferTxReq.output:type_name -> types.TransferOutputTxReq
	11, // 6: types.ShieldAmountRst.inputs:type_name -> types.ShieldAmount
	11, // 7: types.ShieldAmountRst.output:type_name -> types.ShieldAmount
	11, // 8: types.ShieldAmountRst.change:type_name -> types.ShieldAmount
	0,  // 9: types.WalletNoteInfo.status:type_name -> types.NoteStatus
	23, // 10: types.WalletNoteInfo.secret:type_name -> types.SecretData
	15, // 11: types.WalletDbMixInfo.info:type_name -> types.WalletNoteInfo
	15, // 12: types.WalletNoteResp.notes:type_name -> types.WalletNoteInfo
	19, // 13: types.WalletEnablePrivacyResp.resps:type_name -> types.WalletEnablePrivacyRst
	21, // 14: types.ReqEnablePrivacyRst.results:type_name -> types.PrivacyAddrResult
	25, // 15: types.mixPrivacy.GetRescanStatus:input_type -> types.ReqNil
	25, // 16: types.mixPrivacy.RescanNotes:input_type -> types.ReqNil
	26, // 17: types.mixPrivacy.EnablePrivacy:input_type -> types.ReqAddrs
	27, // 18: types.mixPrivacy.GetRescanStatus:output_type -> types.ReqString
	27, // 19: types.mixPrivacy.RescanNotes:output_type -> types.ReqString
	22, // 20: types.mixPrivacy.EnablePrivacy:output_type -> types.ReqEnablePrivacyRst
	18, // [18:21] is the sub-list for method output_type
	15, // [15:18] is the sub-list for method input_type
	15, // [15:15] is the sub-list for extension type_name
	15, // [15:15] is the sub-list for extension extendee
	0,  // [0:15] is the sub-list for field type_name
}

func init() { file_mixwallet_proto_init() }
func file_mixwallet_proto_init() {
	if File_mixwallet_proto != nil {
		return
	}
	file_cryptokey_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_mixwallet_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DepositInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DepositTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DepositProofResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WithdrawTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AuthTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TransferInputTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TransferOutputTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TransferTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateZkKeyFileReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ShieldAmount); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ShieldAmountRst); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateRawTxReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PaymentKeysReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WalletNoteInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WalletDbMixInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WalletMixIndexReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WalletNoteResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WalletEnablePrivacyRst); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WalletEnablePrivacyResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PrivacyAddrResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mixwallet_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqEnablePrivacyRst); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_mixwallet_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   21,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_mixwallet_proto_goTypes,
		DependencyIndexes: file_mixwallet_proto_depIdxs,
		EnumInfos:         file_mixwallet_proto_enumTypes,
		MessageInfos:      file_mixwallet_proto_msgTypes,
	}.Build()
	File_mixwallet_proto = out.File
	file_mixwallet_proto_rawDesc = nil
	file_mixwallet_proto_goTypes = nil
	file_mixwallet_proto_depIdxs = nil
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// MixPrivacyClient is the client API for MixPrivacy service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type MixPrivacyClient interface {
	// 扫描UTXO以及获取扫描UTXO后的状态
	GetRescanStatus(ctx context.Context, in *types.ReqNil, opts ...grpc.CallOption) (*types.ReqString, error)
	// 使能隐私账户
	RescanNotes(ctx context.Context, in *types.ReqNil, opts ...grpc.CallOption) (*types.ReqString, error)
	// 创建隐私交易
	EnablePrivacy(ctx context.Context, in *types.ReqAddrs, opts ...grpc.CallOption) (*ReqEnablePrivacyRst, error)
}

type mixPrivacyClient struct {
	cc grpc.ClientConnInterface
}

func NewMixPrivacyClient(cc grpc.ClientConnInterface) MixPrivacyClient {
	return &mixPrivacyClient{cc}
}

func (c *mixPrivacyClient) GetRescanStatus(ctx context.Context, in *types.ReqNil, opts ...grpc.CallOption) (*types.ReqString, error) {
	out := new(types.ReqString)
	err := c.cc.Invoke(ctx, "/types.mixPrivacy/GetRescanStatus", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mixPrivacyClient) RescanNotes(ctx context.Context, in *types.ReqNil, opts ...grpc.CallOption) (*types.ReqString, error) {
	out := new(types.ReqString)
	err := c.cc.Invoke(ctx, "/types.mixPrivacy/RescanNotes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *mixPrivacyClient) EnablePrivacy(ctx context.Context, in *types.ReqAddrs, opts ...grpc.CallOption) (*ReqEnablePrivacyRst, error) {
	out := new(ReqEnablePrivacyRst)
	err := c.cc.Invoke(ctx, "/types.mixPrivacy/EnablePrivacy", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// MixPrivacyServer is the server API for MixPrivacy service.
type MixPrivacyServer interface {
	// 扫描UTXO以及获取扫描UTXO后的状态
	GetRescanStatus(context.Context, *types.ReqNil) (*types.ReqString, error)
	// 使能隐私账户
	RescanNotes(context.Context, *types.ReqNil) (*types.ReqString, error)
	// 创建隐私交易
	EnablePrivacy(context.Context, *types.ReqAddrs) (*ReqEnablePrivacyRst, error)
}

// UnimplementedMixPrivacyServer can be embedded to have forward compatible implementations.
type UnimplementedMixPrivacyServer struct {
}

func (*UnimplementedMixPrivacyServer) GetRescanStatus(context.Context, *types.ReqNil) (*types.ReqString, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRescanStatus not implemented")
}
func (*UnimplementedMixPrivacyServer) RescanNotes(context.Context, *types.ReqNil) (*types.ReqString, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RescanNotes not implemented")
}
func (*UnimplementedMixPrivacyServer) EnablePrivacy(context.Context, *types.ReqAddrs) (*ReqEnablePrivacyRst, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EnablePrivacy not implemented")
}

func RegisterMixPrivacyServer(s *grpc.Server, srv MixPrivacyServer) {
	s.RegisterService(&_MixPrivacy_serviceDesc, srv)
}

func _MixPrivacy_GetRescanStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(types.ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MixPrivacyServer).GetRescanStatus(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.mixPrivacy/GetRescanStatus",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MixPrivacyServer).GetRescanStatus(ctx, req.(*types.ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _MixPrivacy_RescanNotes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(types.ReqNil)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MixPrivacyServer).RescanNotes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.mixPrivacy/RescanNotes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MixPrivacyServer).RescanNotes(ctx, req.(*types.ReqNil))
	}
	return interceptor(ctx, in, info, handler)
}

func _MixPrivacy_EnablePrivacy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(types.ReqAddrs)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MixPrivacyServer).EnablePrivacy(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.mixPrivacy/EnablePrivacy",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MixPrivacyServer).EnablePrivacy(ctx, req.(*types.ReqAddrs))
	}
	return interceptor(ctx, in, info, handler)
}

var _MixPrivacy_serviceDesc = grpc.ServiceDesc{
	ServiceName: "types.mixPrivacy",
	HandlerType: (*MixPrivacyServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetRescanStatus",
			Handler:    _MixPrivacy_GetRescanStatus_Handler,
		},
		{
			MethodName: "RescanNotes",
			Handler:    _MixPrivacy_RescanNotes_Handler,
		},
		{
			MethodName: "EnablePrivacy",
			Handler:    _MixPrivacy_EnablePrivacy_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "mixwallet.proto",
}
