// Code generated by protoc-gen-go. DO NOT EDIT.
// source: mix.proto

package types

import (
	context "context"
	fmt "fmt"
	math "math"

	types "github.com/33cn/chain33/types"
	proto "github.com/golang/protobuf/proto"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

//区分不同的验证电路
type VerifyType int32

const (
	VerifyType_DEPOSIT        VerifyType = 0
	VerifyType_WITHDRAW       VerifyType = 1
	VerifyType_TRANSFERINPUT  VerifyType = 2
	VerifyType_TRANSFEROUTPUT VerifyType = 3
	VerifyType_AUTHORIZE      VerifyType = 4
)

var VerifyType_name = map[int32]string{
	0: "DEPOSIT",
	1: "WITHDRAW",
	2: "TRANSFERINPUT",
	3: "TRANSFEROUTPUT",
	4: "AUTHORIZE",
}

var VerifyType_value = map[string]int32{
	"DEPOSIT":        0,
	"WITHDRAW":       1,
	"TRANSFERINPUT":  2,
	"TRANSFEROUTPUT": 3,
	"AUTHORIZE":      4,
}

func (x VerifyType) String() string {
	return proto.EnumName(VerifyType_name, int32(x))
}

func (VerifyType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{0}
}

type MixConfigType int32

const (
	MixConfigType_VerifyKey MixConfigType = 0
	//register unify authorize pubkey
	MixConfigType_AuthPubKey MixConfigType = 1
	//for spender's pay pubkey register,DH secret
	//spender注册自己的payment公钥, 用来生成DiffHellman秘钥
	MixConfigType_PaymentPubKey MixConfigType = 2
)

var MixConfigType_name = map[int32]string{
	0: "VerifyKey",
	1: "AuthPubKey",
	2: "PaymentPubKey",
}

var MixConfigType_value = map[string]int32{
	"VerifyKey":     0,
	"AuthPubKey":    1,
	"PaymentPubKey": 2,
}

func (x MixConfigType) String() string {
	return proto.EnumName(MixConfigType_name, int32(x))
}

func (MixConfigType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{1}
}

type MixConfigAct int32

const (
	MixConfigAct_Add    MixConfigAct = 0
	MixConfigAct_Delete MixConfigAct = 1
)

var MixConfigAct_name = map[int32]string{
	0: "Add",
	1: "Delete",
}

var MixConfigAct_value = map[string]int32{
	"Add":    0,
	"Delete": 1,
}

func (x MixConfigAct) String() string {
	return proto.EnumName(MixConfigAct_name, int32(x))
}

func (MixConfigAct) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{2}
}

type NoteStatus int32

const (
	NoteStatus_UNDEF  NoteStatus = 0
	NoteStatus_VALID  NoteStatus = 1
	NoteStatus_FROZEN NoteStatus = 2
	NoteStatus_USED   NoteStatus = 3
)

var NoteStatus_name = map[int32]string{
	0: "UNDEF",
	1: "VALID",
	2: "FROZEN",
	3: "USED",
}

var NoteStatus_value = map[string]int32{
	"UNDEF":  0,
	"VALID":  1,
	"FROZEN": 2,
	"USED":   3,
}

func (x NoteStatus) String() string {
	return proto.EnumName(NoteStatus_name, int32(x))
}

func (NoteStatus) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{3}
}

type MixWalletRescanStatus int32

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

var MixWalletRescanStatus_name = map[int32]string{
	0: "IDLE",
	1: "SCANNING",
	2: "FINISHED",
}

var MixWalletRescanStatus_value = map[string]int32{
	"IDLE":     0,
	"SCANNING": 1,
	"FINISHED": 2,
}

func (x MixWalletRescanStatus) String() string {
	return proto.EnumName(MixWalletRescanStatus_name, int32(x))
}

func (MixWalletRescanStatus) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{4}
}

type ZkVerifyKey struct {
	Type                 VerifyType `protobuf:"varint,1,opt,name=type,proto3,enum=types.VerifyType" json:"type,omitempty"`
	Value                string     `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *ZkVerifyKey) Reset()         { *m = ZkVerifyKey{} }
func (m *ZkVerifyKey) String() string { return proto.CompactTextString(m) }
func (*ZkVerifyKey) ProtoMessage()    {}
func (*ZkVerifyKey) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{0}
}

func (m *ZkVerifyKey) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ZkVerifyKey.Unmarshal(m, b)
}
func (m *ZkVerifyKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ZkVerifyKey.Marshal(b, m, deterministic)
}
func (m *ZkVerifyKey) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ZkVerifyKey.Merge(m, src)
}
func (m *ZkVerifyKey) XXX_Size() int {
	return xxx_messageInfo_ZkVerifyKey.Size(m)
}
func (m *ZkVerifyKey) XXX_DiscardUnknown() {
	xxx_messageInfo_ZkVerifyKey.DiscardUnknown(m)
}

var xxx_messageInfo_ZkVerifyKey proto.InternalMessageInfo

func (m *ZkVerifyKey) GetType() VerifyType {
	if m != nil {
		return m.Type
	}
	return VerifyType_DEPOSIT
}

func (m *ZkVerifyKey) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

type ZkVerifyKeys struct {
	Data                 []*ZkVerifyKey `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *ZkVerifyKeys) Reset()         { *m = ZkVerifyKeys{} }
func (m *ZkVerifyKeys) String() string { return proto.CompactTextString(m) }
func (*ZkVerifyKeys) ProtoMessage()    {}
func (*ZkVerifyKeys) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{1}
}

func (m *ZkVerifyKeys) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ZkVerifyKeys.Unmarshal(m, b)
}
func (m *ZkVerifyKeys) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ZkVerifyKeys.Marshal(b, m, deterministic)
}
func (m *ZkVerifyKeys) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ZkVerifyKeys.Merge(m, src)
}
func (m *ZkVerifyKeys) XXX_Size() int {
	return xxx_messageInfo_ZkVerifyKeys.Size(m)
}
func (m *ZkVerifyKeys) XXX_DiscardUnknown() {
	xxx_messageInfo_ZkVerifyKeys.DiscardUnknown(m)
}

var xxx_messageInfo_ZkVerifyKeys proto.InternalMessageInfo

func (m *ZkVerifyKeys) GetData() []*ZkVerifyKey {
	if m != nil {
		return m.Data
	}
	return nil
}

type AuthPubKeys struct {
	Data                 []string `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AuthPubKeys) Reset()         { *m = AuthPubKeys{} }
func (m *AuthPubKeys) String() string { return proto.CompactTextString(m) }
func (*AuthPubKeys) ProtoMessage()    {}
func (*AuthPubKeys) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{2}
}

func (m *AuthPubKeys) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AuthPubKeys.Unmarshal(m, b)
}
func (m *AuthPubKeys) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AuthPubKeys.Marshal(b, m, deterministic)
}
func (m *AuthPubKeys) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AuthPubKeys.Merge(m, src)
}
func (m *AuthPubKeys) XXX_Size() int {
	return xxx_messageInfo_AuthPubKeys.Size(m)
}
func (m *AuthPubKeys) XXX_DiscardUnknown() {
	xxx_messageInfo_AuthPubKeys.DiscardUnknown(m)
}

var xxx_messageInfo_AuthPubKeys proto.InternalMessageInfo

func (m *AuthPubKeys) GetData() []string {
	if m != nil {
		return m.Data
	}
	return nil
}

type PaymentKey struct {
	Addr                 string   `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
	ReceiverKey          string   `protobuf:"bytes,2,opt,name=receiverKey,proto3" json:"receiverKey,omitempty"`
	SecretKey            *PubKey  `protobuf:"bytes,3,opt,name=secretKey,proto3" json:"secretKey,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PaymentKey) Reset()         { *m = PaymentKey{} }
func (m *PaymentKey) String() string { return proto.CompactTextString(m) }
func (*PaymentKey) ProtoMessage()    {}
func (*PaymentKey) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{3}
}

func (m *PaymentKey) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PaymentKey.Unmarshal(m, b)
}
func (m *PaymentKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PaymentKey.Marshal(b, m, deterministic)
}
func (m *PaymentKey) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PaymentKey.Merge(m, src)
}
func (m *PaymentKey) XXX_Size() int {
	return xxx_messageInfo_PaymentKey.Size(m)
}
func (m *PaymentKey) XXX_DiscardUnknown() {
	xxx_messageInfo_PaymentKey.DiscardUnknown(m)
}

var xxx_messageInfo_PaymentKey proto.InternalMessageInfo

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

func (m *PaymentKey) GetReceiverKey() string {
	if m != nil {
		return m.ReceiverKey
	}
	return ""
}

func (m *PaymentKey) GetSecretKey() *PubKey {
	if m != nil {
		return m.SecretKey
	}
	return nil
}

//config verify parameter for proof
//当前authPk=mimc_hash(prikey),没有X,Y值
type MixConfigAction struct {
	Ty     MixConfigType `protobuf:"varint,1,opt,name=Ty,proto3,enum=types.MixConfigType" json:"Ty,omitempty"`
	Action MixConfigAct  `protobuf:"varint,2,opt,name=Action,proto3,enum=types.MixConfigAct" json:"Action,omitempty"`
	// Types that are valid to be assigned to Value:
	//	*MixConfigAction_VerifyKey
	//	*MixConfigAction_AuthPk
	//	*MixConfigAction_PaymentKey
	Value                isMixConfigAction_Value `protobuf_oneof:"value"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *MixConfigAction) Reset()         { *m = MixConfigAction{} }
func (m *MixConfigAction) String() string { return proto.CompactTextString(m) }
func (*MixConfigAction) ProtoMessage()    {}
func (*MixConfigAction) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{4}
}

func (m *MixConfigAction) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MixConfigAction.Unmarshal(m, b)
}
func (m *MixConfigAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MixConfigAction.Marshal(b, m, deterministic)
}
func (m *MixConfigAction) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MixConfigAction.Merge(m, src)
}
func (m *MixConfigAction) XXX_Size() int {
	return xxx_messageInfo_MixConfigAction.Size(m)
}
func (m *MixConfigAction) XXX_DiscardUnknown() {
	xxx_messageInfo_MixConfigAction.DiscardUnknown(m)
}

var xxx_messageInfo_MixConfigAction proto.InternalMessageInfo

func (m *MixConfigAction) GetTy() MixConfigType {
	if m != nil {
		return m.Ty
	}
	return MixConfigType_VerifyKey
}

func (m *MixConfigAction) GetAction() MixConfigAct {
	if m != nil {
		return m.Action
	}
	return MixConfigAct_Add
}

type isMixConfigAction_Value interface {
	isMixConfigAction_Value()
}

type MixConfigAction_VerifyKey struct {
	VerifyKey *ZkVerifyKey `protobuf:"bytes,3,opt,name=verifyKey,proto3,oneof"`
}

type MixConfigAction_AuthPk struct {
	AuthPk string `protobuf:"bytes,4,opt,name=authPk,proto3,oneof"`
}

type MixConfigAction_PaymentKey struct {
	PaymentKey *PaymentKey `protobuf:"bytes,5,opt,name=paymentKey,proto3,oneof"`
}

func (*MixConfigAction_VerifyKey) isMixConfigAction_Value() {}

func (*MixConfigAction_AuthPk) isMixConfigAction_Value() {}

func (*MixConfigAction_PaymentKey) isMixConfigAction_Value() {}

func (m *MixConfigAction) GetValue() isMixConfigAction_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (m *MixConfigAction) GetVerifyKey() *ZkVerifyKey {
	if x, ok := m.GetValue().(*MixConfigAction_VerifyKey); ok {
		return x.VerifyKey
	}
	return nil
}

func (m *MixConfigAction) GetAuthPk() string {
	if x, ok := m.GetValue().(*MixConfigAction_AuthPk); ok {
		return x.AuthPk
	}
	return ""
}

func (m *MixConfigAction) GetPaymentKey() *PaymentKey {
	if x, ok := m.GetValue().(*MixConfigAction_PaymentKey); ok {
		return x.PaymentKey
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*MixConfigAction) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*MixConfigAction_VerifyKey)(nil),
		(*MixConfigAction_AuthPk)(nil),
		(*MixConfigAction_PaymentKey)(nil),
	}
}

//DH one time pubkey with secret
type DHSecret struct {
	Epk                  *PubKey  `protobuf:"bytes,1,opt,name=epk,proto3" json:"epk,omitempty"`
	Secret               string   `protobuf:"bytes,3,opt,name=secret,proto3" json:"secret,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DHSecret) Reset()         { *m = DHSecret{} }
func (m *DHSecret) String() string { return proto.CompactTextString(m) }
func (*DHSecret) ProtoMessage()    {}
func (*DHSecret) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{5}
}

func (m *DHSecret) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DHSecret.Unmarshal(m, b)
}
func (m *DHSecret) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DHSecret.Marshal(b, m, deterministic)
}
func (m *DHSecret) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DHSecret.Merge(m, src)
}
func (m *DHSecret) XXX_Size() int {
	return xxx_messageInfo_DHSecret.Size(m)
}
func (m *DHSecret) XXX_DiscardUnknown() {
	xxx_messageInfo_DHSecret.DiscardUnknown(m)
}

var xxx_messageInfo_DHSecret proto.InternalMessageInfo

func (m *DHSecret) GetEpk() *PubKey {
	if m != nil {
		return m.Epk
	}
	return nil
}

func (m *DHSecret) GetSecret() string {
	if m != nil {
		return m.Secret
	}
	return ""
}

//Diff-Helman 加密group, for spender, returner, authorizer to decrypt
type DHSecretGroup struct {
	Receiver             string   `protobuf:"bytes,1,opt,name=receiver,proto3" json:"receiver,omitempty"`
	Returner             string   `protobuf:"bytes,2,opt,name=returner,proto3" json:"returner,omitempty"`
	Authorize            string   `protobuf:"bytes,3,opt,name=authorize,proto3" json:"authorize,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DHSecretGroup) Reset()         { *m = DHSecretGroup{} }
func (m *DHSecretGroup) String() string { return proto.CompactTextString(m) }
func (*DHSecretGroup) ProtoMessage()    {}
func (*DHSecretGroup) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{6}
}

func (m *DHSecretGroup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DHSecretGroup.Unmarshal(m, b)
}
func (m *DHSecretGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DHSecretGroup.Marshal(b, m, deterministic)
}
func (m *DHSecretGroup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DHSecretGroup.Merge(m, src)
}
func (m *DHSecretGroup) XXX_Size() int {
	return xxx_messageInfo_DHSecretGroup.Size(m)
}
func (m *DHSecretGroup) XXX_DiscardUnknown() {
	xxx_messageInfo_DHSecretGroup.DiscardUnknown(m)
}

var xxx_messageInfo_DHSecretGroup proto.InternalMessageInfo

func (m *DHSecretGroup) GetReceiver() string {
	if m != nil {
		return m.Receiver
	}
	return ""
}

func (m *DHSecretGroup) GetReturner() string {
	if m != nil {
		return m.Returner
	}
	return ""
}

func (m *DHSecretGroup) GetAuthorize() string {
	if m != nil {
		return m.Authorize
	}
	return ""
}

type ZkProofInfo struct {
	Proof                string         `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"`
	PublicInput          string         `protobuf:"bytes,2,opt,name=publicInput,proto3" json:"publicInput,omitempty"`
	Secrets              *DHSecretGroup `protobuf:"bytes,3,opt,name=secrets,proto3" json:"secrets,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *ZkProofInfo) Reset()         { *m = ZkProofInfo{} }
func (m *ZkProofInfo) String() string { return proto.CompactTextString(m) }
func (*ZkProofInfo) ProtoMessage()    {}
func (*ZkProofInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{7}
}

func (m *ZkProofInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ZkProofInfo.Unmarshal(m, b)
}
func (m *ZkProofInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ZkProofInfo.Marshal(b, m, deterministic)
}
func (m *ZkProofInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ZkProofInfo.Merge(m, src)
}
func (m *ZkProofInfo) XXX_Size() int {
	return xxx_messageInfo_ZkProofInfo.Size(m)
}
func (m *ZkProofInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_ZkProofInfo.DiscardUnknown(m)
}

var xxx_messageInfo_ZkProofInfo proto.InternalMessageInfo

func (m *ZkProofInfo) GetProof() string {
	if m != nil {
		return m.Proof
	}
	return ""
}

func (m *ZkProofInfo) GetPublicInput() string {
	if m != nil {
		return m.PublicInput
	}
	return ""
}

func (m *ZkProofInfo) GetSecrets() *DHSecretGroup {
	if m != nil {
		return m.Secrets
	}
	return nil
}

type MixDepositAction struct {
	Amount               uint64       `protobuf:"varint,1,opt,name=amount,proto3" json:"amount,omitempty"`
	Proof                *ZkProofInfo `protobuf:"bytes,2,opt,name=proof,proto3" json:"proof,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *MixDepositAction) Reset()         { *m = MixDepositAction{} }
func (m *MixDepositAction) String() string { return proto.CompactTextString(m) }
func (*MixDepositAction) ProtoMessage()    {}
func (*MixDepositAction) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{8}
}

func (m *MixDepositAction) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MixDepositAction.Unmarshal(m, b)
}
func (m *MixDepositAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MixDepositAction.Marshal(b, m, deterministic)
}
func (m *MixDepositAction) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MixDepositAction.Merge(m, src)
}
func (m *MixDepositAction) XXX_Size() int {
	return xxx_messageInfo_MixDepositAction.Size(m)
}
func (m *MixDepositAction) XXX_DiscardUnknown() {
	xxx_messageInfo_MixDepositAction.DiscardUnknown(m)
}

var xxx_messageInfo_MixDepositAction proto.InternalMessageInfo

func (m *MixDepositAction) GetAmount() uint64 {
	if m != nil {
		return m.Amount
	}
	return 0
}

func (m *MixDepositAction) GetProof() *ZkProofInfo {
	if m != nil {
		return m.Proof
	}
	return nil
}

type MixTransferAction struct {
	Input                *ZkProofInfo `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"`
	Output               *ZkProofInfo `protobuf:"bytes,2,opt,name=output,proto3" json:"output,omitempty"`
	Change               *ZkProofInfo `protobuf:"bytes,3,opt,name=change,proto3" json:"change,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *MixTransferAction) Reset()         { *m = MixTransferAction{} }
func (m *MixTransferAction) String() string { return proto.CompactTextString(m) }
func (*MixTransferAction) ProtoMessage()    {}
func (*MixTransferAction) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{9}
}

func (m *MixTransferAction) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MixTransferAction.Unmarshal(m, b)
}
func (m *MixTransferAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MixTransferAction.Marshal(b, m, deterministic)
}
func (m *MixTransferAction) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MixTransferAction.Merge(m, src)
}
func (m *MixTransferAction) XXX_Size() int {
	return xxx_messageInfo_MixTransferAction.Size(m)
}
func (m *MixTransferAction) XXX_DiscardUnknown() {
	xxx_messageInfo_MixTransferAction.DiscardUnknown(m)
}

var xxx_messageInfo_MixTransferAction proto.InternalMessageInfo

func (m *MixTransferAction) GetInput() *ZkProofInfo {
	if m != nil {
		return m.Input
	}
	return nil
}

func (m *MixTransferAction) GetOutput() *ZkProofInfo {
	if m != nil {
		return m.Output
	}
	return nil
}

func (m *MixTransferAction) GetChange() *ZkProofInfo {
	if m != nil {
		return m.Change
	}
	return nil
}

type MixWithdrawAction struct {
	Amount               uint64         `protobuf:"varint,1,opt,name=amount,proto3" json:"amount,omitempty"`
	SpendCommits         []*ZkProofInfo `protobuf:"bytes,2,rep,name=spendCommits,proto3" json:"spendCommits,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *MixWithdrawAction) Reset()         { *m = MixWithdrawAction{} }
func (m *MixWithdrawAction) String() string { return proto.CompactTextString(m) }
func (*MixWithdrawAction) ProtoMessage()    {}
func (*MixWithdrawAction) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{10}
}

func (m *MixWithdrawAction) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MixWithdrawAction.Unmarshal(m, b)
}
func (m *MixWithdrawAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MixWithdrawAction.Marshal(b, m, deterministic)
}
func (m *MixWithdrawAction) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MixWithdrawAction.Merge(m, src)
}
func (m *MixWithdrawAction) XXX_Size() int {
	return xxx_messageInfo_MixWithdrawAction.Size(m)
}
func (m *MixWithdrawAction) XXX_DiscardUnknown() {
	xxx_messageInfo_MixWithdrawAction.DiscardUnknown(m)
}

var xxx_messageInfo_MixWithdrawAction proto.InternalMessageInfo

func (m *MixWithdrawAction) GetAmount() uint64 {
	if m != nil {
		return m.Amount
	}
	return 0
}

func (m *MixWithdrawAction) GetSpendCommits() []*ZkProofInfo {
	if m != nil {
		return m.SpendCommits
	}
	return nil
}

type MixAuthorizeAction struct {
	AuthCommits          []*ZkProofInfo `protobuf:"bytes,1,rep,name=authCommits,proto3" json:"authCommits,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *MixAuthorizeAction) Reset()         { *m = MixAuthorizeAction{} }
func (m *MixAuthorizeAction) String() string { return proto.CompactTextString(m) }
func (*MixAuthorizeAction) ProtoMessage()    {}
func (*MixAuthorizeAction) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{11}
}

func (m *MixAuthorizeAction) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MixAuthorizeAction.Unmarshal(m, b)
}
func (m *MixAuthorizeAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MixAuthorizeAction.Marshal(b, m, deterministic)
}
func (m *MixAuthorizeAction) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MixAuthorizeAction.Merge(m, src)
}
func (m *MixAuthorizeAction) XXX_Size() int {
	return xxx_messageInfo_MixAuthorizeAction.Size(m)
}
func (m *MixAuthorizeAction) XXX_DiscardUnknown() {
	xxx_messageInfo_MixAuthorizeAction.DiscardUnknown(m)
}

var xxx_messageInfo_MixAuthorizeAction proto.InternalMessageInfo

func (m *MixAuthorizeAction) GetAuthCommits() []*ZkProofInfo {
	if m != nil {
		return m.AuthCommits
	}
	return nil
}

type MixAction struct {
	Ty int32 `protobuf:"varint,1,opt,name=ty,proto3" json:"ty,omitempty"`
	// Types that are valid to be assigned to Value:
	//	*MixAction_Config
	//	*MixAction_Deposit
	//	*MixAction_Withdraw
	//	*MixAction_Transfer
	//	*MixAction_Authorize
	Value                isMixAction_Value `protobuf_oneof:"value"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *MixAction) Reset()         { *m = MixAction{} }
func (m *MixAction) String() string { return proto.CompactTextString(m) }
func (*MixAction) ProtoMessage()    {}
func (*MixAction) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{12}
}

func (m *MixAction) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MixAction.Unmarshal(m, b)
}
func (m *MixAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MixAction.Marshal(b, m, deterministic)
}
func (m *MixAction) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MixAction.Merge(m, src)
}
func (m *MixAction) XXX_Size() int {
	return xxx_messageInfo_MixAction.Size(m)
}
func (m *MixAction) XXX_DiscardUnknown() {
	xxx_messageInfo_MixAction.DiscardUnknown(m)
}

var xxx_messageInfo_MixAction proto.InternalMessageInfo

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

type isMixAction_Value interface {
	isMixAction_Value()
}

type MixAction_Config struct {
	Config *MixConfigAction `protobuf:"bytes,2,opt,name=config,proto3,oneof"`
}

type MixAction_Deposit struct {
	Deposit *MixDepositAction `protobuf:"bytes,3,opt,name=deposit,proto3,oneof"`
}

type MixAction_Withdraw struct {
	Withdraw *MixWithdrawAction `protobuf:"bytes,4,opt,name=withdraw,proto3,oneof"`
}

type MixAction_Transfer struct {
	Transfer *MixTransferAction `protobuf:"bytes,5,opt,name=transfer,proto3,oneof"`
}

type MixAction_Authorize struct {
	Authorize *MixAuthorizeAction `protobuf:"bytes,6,opt,name=authorize,proto3,oneof"`
}

func (*MixAction_Config) isMixAction_Value() {}

func (*MixAction_Deposit) isMixAction_Value() {}

func (*MixAction_Withdraw) isMixAction_Value() {}

func (*MixAction_Transfer) isMixAction_Value() {}

func (*MixAction_Authorize) isMixAction_Value() {}

func (m *MixAction) GetValue() isMixAction_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (m *MixAction) GetConfig() *MixConfigAction {
	if x, ok := m.GetValue().(*MixAction_Config); ok {
		return x.Config
	}
	return nil
}

func (m *MixAction) GetDeposit() *MixDepositAction {
	if x, ok := m.GetValue().(*MixAction_Deposit); ok {
		return x.Deposit
	}
	return nil
}

func (m *MixAction) GetWithdraw() *MixWithdrawAction {
	if x, ok := m.GetValue().(*MixAction_Withdraw); ok {
		return x.Withdraw
	}
	return nil
}

func (m *MixAction) GetTransfer() *MixTransferAction {
	if x, ok := m.GetValue().(*MixAction_Transfer); ok {
		return x.Transfer
	}
	return nil
}

func (m *MixAction) GetAuthorize() *MixAuthorizeAction {
	if x, ok := m.GetValue().(*MixAction_Authorize); ok {
		return x.Authorize
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*MixAction) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*MixAction_Config)(nil),
		(*MixAction_Deposit)(nil),
		(*MixAction_Withdraw)(nil),
		(*MixAction_Transfer)(nil),
		(*MixAction_Authorize)(nil),
	}
}

type DepositPublicInput struct {
	NoteHash             string   `protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	Amount               string   `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DepositPublicInput) Reset()         { *m = DepositPublicInput{} }
func (m *DepositPublicInput) String() string { return proto.CompactTextString(m) }
func (*DepositPublicInput) ProtoMessage()    {}
func (*DepositPublicInput) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{13}
}

func (m *DepositPublicInput) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DepositPublicInput.Unmarshal(m, b)
}
func (m *DepositPublicInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DepositPublicInput.Marshal(b, m, deterministic)
}
func (m *DepositPublicInput) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DepositPublicInput.Merge(m, src)
}
func (m *DepositPublicInput) XXX_Size() int {
	return xxx_messageInfo_DepositPublicInput.Size(m)
}
func (m *DepositPublicInput) XXX_DiscardUnknown() {
	xxx_messageInfo_DepositPublicInput.DiscardUnknown(m)
}

var xxx_messageInfo_DepositPublicInput proto.InternalMessageInfo

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

func (m *DepositPublicInput) GetAmount() string {
	if m != nil {
		return m.Amount
	}
	return ""
}

type WithdrawPublicInput struct {
	TreeRootHash         string   `protobuf:"bytes,1,opt,name=treeRootHash,proto3" json:"treeRootHash,omitempty"`
	NullifierHash        string   `protobuf:"bytes,2,opt,name=nullifierHash,proto3" json:"nullifierHash,omitempty"`
	AuthorizeSpendHash   string   `protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
	Amount               string   `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *WithdrawPublicInput) Reset()         { *m = WithdrawPublicInput{} }
func (m *WithdrawPublicInput) String() string { return proto.CompactTextString(m) }
func (*WithdrawPublicInput) ProtoMessage()    {}
func (*WithdrawPublicInput) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{14}
}

func (m *WithdrawPublicInput) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_WithdrawPublicInput.Unmarshal(m, b)
}
func (m *WithdrawPublicInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_WithdrawPublicInput.Marshal(b, m, deterministic)
}
func (m *WithdrawPublicInput) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WithdrawPublicInput.Merge(m, src)
}
func (m *WithdrawPublicInput) XXX_Size() int {
	return xxx_messageInfo_WithdrawPublicInput.Size(m)
}
func (m *WithdrawPublicInput) XXX_DiscardUnknown() {
	xxx_messageInfo_WithdrawPublicInput.DiscardUnknown(m)
}

var xxx_messageInfo_WithdrawPublicInput proto.InternalMessageInfo

func (m *WithdrawPublicInput) GetTreeRootHash() string {
	if m != nil {
		return m.TreeRootHash
	}
	return ""
}

func (m *WithdrawPublicInput) GetNullifierHash() string {
	if m != nil {
		return m.NullifierHash
	}
	return ""
}

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

func (m *WithdrawPublicInput) GetAmount() string {
	if m != nil {
		return m.Amount
	}
	return ""
}

type TransferInputPublicInput struct {
	TreeRootHash         string   `protobuf:"bytes,1,opt,name=treeRootHash,proto3" json:"treeRootHash,omitempty"`
	ShieldAmountX        string   `protobuf:"bytes,2,opt,name=shieldAmountX,proto3" json:"shieldAmountX,omitempty"`
	ShieldAmountY        string   `protobuf:"bytes,3,opt,name=shieldAmountY,proto3" json:"shieldAmountY,omitempty"`
	AuthorizeSpendHash   string   `protobuf:"bytes,4,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
	NullifierHash        string   `protobuf:"bytes,5,opt,name=nullifierHash,proto3" json:"nullifierHash,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TransferInputPublicInput) Reset()         { *m = TransferInputPublicInput{} }
func (m *TransferInputPublicInput) String() string { return proto.CompactTextString(m) }
func (*TransferInputPublicInput) ProtoMessage()    {}
func (*TransferInputPublicInput) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{15}
}

func (m *TransferInputPublicInput) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TransferInputPublicInput.Unmarshal(m, b)
}
func (m *TransferInputPublicInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TransferInputPublicInput.Marshal(b, m, deterministic)
}
func (m *TransferInputPublicInput) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TransferInputPublicInput.Merge(m, src)
}
func (m *TransferInputPublicInput) XXX_Size() int {
	return xxx_messageInfo_TransferInputPublicInput.Size(m)
}
func (m *TransferInputPublicInput) XXX_DiscardUnknown() {
	xxx_messageInfo_TransferInputPublicInput.DiscardUnknown(m)
}

var xxx_messageInfo_TransferInputPublicInput proto.InternalMessageInfo

func (m *TransferInputPublicInput) GetTreeRootHash() string {
	if m != nil {
		return m.TreeRootHash
	}
	return ""
}

func (m *TransferInputPublicInput) GetShieldAmountX() string {
	if m != nil {
		return m.ShieldAmountX
	}
	return ""
}

func (m *TransferInputPublicInput) GetShieldAmountY() string {
	if m != nil {
		return m.ShieldAmountY
	}
	return ""
}

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

func (m *TransferInputPublicInput) GetNullifierHash() string {
	if m != nil {
		return m.NullifierHash
	}
	return ""
}

type TransferOutputPublicInput struct {
	NoteHash             string         `protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	ShieldAmountX        string         `protobuf:"bytes,2,opt,name=shieldAmountX,proto3" json:"shieldAmountX,omitempty"`
	ShieldAmountY        string         `protobuf:"bytes,3,opt,name=shieldAmountY,proto3" json:"shieldAmountY,omitempty"`
	DhSecrets            *DHSecretGroup `protobuf:"bytes,4,opt,name=dhSecrets,proto3" json:"dhSecrets,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *TransferOutputPublicInput) Reset()         { *m = TransferOutputPublicInput{} }
func (m *TransferOutputPublicInput) String() string { return proto.CompactTextString(m) }
func (*TransferOutputPublicInput) ProtoMessage()    {}
func (*TransferOutputPublicInput) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{16}
}

func (m *TransferOutputPublicInput) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TransferOutputPublicInput.Unmarshal(m, b)
}
func (m *TransferOutputPublicInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TransferOutputPublicInput.Marshal(b, m, deterministic)
}
func (m *TransferOutputPublicInput) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TransferOutputPublicInput.Merge(m, src)
}
func (m *TransferOutputPublicInput) XXX_Size() int {
	return xxx_messageInfo_TransferOutputPublicInput.Size(m)
}
func (m *TransferOutputPublicInput) XXX_DiscardUnknown() {
	xxx_messageInfo_TransferOutputPublicInput.DiscardUnknown(m)
}

var xxx_messageInfo_TransferOutputPublicInput proto.InternalMessageInfo

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

func (m *TransferOutputPublicInput) GetShieldAmountX() string {
	if m != nil {
		return m.ShieldAmountX
	}
	return ""
}

func (m *TransferOutputPublicInput) GetShieldAmountY() string {
	if m != nil {
		return m.ShieldAmountY
	}
	return ""
}

func (m *TransferOutputPublicInput) GetDhSecrets() *DHSecretGroup {
	if m != nil {
		return m.DhSecrets
	}
	return nil
}

type AuthorizePublicInput struct {
	TreeRootHash         string   `protobuf:"bytes,1,opt,name=treeRootHash,proto3" json:"treeRootHash,omitempty"`
	AuthorizePubKey      string   `protobuf:"bytes,2,opt,name=authorizePubKey,proto3" json:"authorizePubKey,omitempty"`
	AuthorizeHash        string   `protobuf:"bytes,3,opt,name=authorizeHash,proto3" json:"authorizeHash,omitempty"`
	AuthorizeSpendHash   string   `protobuf:"bytes,4,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AuthorizePublicInput) Reset()         { *m = AuthorizePublicInput{} }
func (m *AuthorizePublicInput) String() string { return proto.CompactTextString(m) }
func (*AuthorizePublicInput) ProtoMessage()    {}
func (*AuthorizePublicInput) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{17}
}

func (m *AuthorizePublicInput) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AuthorizePublicInput.Unmarshal(m, b)
}
func (m *AuthorizePublicInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AuthorizePublicInput.Marshal(b, m, deterministic)
}
func (m *AuthorizePublicInput) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AuthorizePublicInput.Merge(m, src)
}
func (m *AuthorizePublicInput) XXX_Size() int {
	return xxx_messageInfo_AuthorizePublicInput.Size(m)
}
func (m *AuthorizePublicInput) XXX_DiscardUnknown() {
	xxx_messageInfo_AuthorizePublicInput.DiscardUnknown(m)
}

var xxx_messageInfo_AuthorizePublicInput proto.InternalMessageInfo

func (m *AuthorizePublicInput) GetTreeRootHash() string {
	if m != nil {
		return m.TreeRootHash
	}
	return ""
}

func (m *AuthorizePublicInput) GetAuthorizePubKey() string {
	if m != nil {
		return m.AuthorizePubKey
	}
	return ""
}

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

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

//nullifer 存在value
type ExistValue struct {
	Data                 bool     `protobuf:"varint,1,opt,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ExistValue) Reset()         { *m = ExistValue{} }
func (m *ExistValue) String() string { return proto.CompactTextString(m) }
func (*ExistValue) ProtoMessage()    {}
func (*ExistValue) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{18}
}

func (m *ExistValue) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ExistValue.Unmarshal(m, b)
}
func (m *ExistValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ExistValue.Marshal(b, m, deterministic)
}
func (m *ExistValue) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ExistValue.Merge(m, src)
}
func (m *ExistValue) XXX_Size() int {
	return xxx_messageInfo_ExistValue.Size(m)
}
func (m *ExistValue) XXX_DiscardUnknown() {
	xxx_messageInfo_ExistValue.DiscardUnknown(m)
}

var xxx_messageInfo_ExistValue proto.InternalMessageInfo

func (m *ExistValue) GetData() bool {
	if m != nil {
		return m.Data
	}
	return false
}

type CommitTreeLeaves struct {
	Data                 [][]byte `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CommitTreeLeaves) Reset()         { *m = CommitTreeLeaves{} }
func (m *CommitTreeLeaves) String() string { return proto.CompactTextString(m) }
func (*CommitTreeLeaves) ProtoMessage()    {}
func (*CommitTreeLeaves) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{19}
}

func (m *CommitTreeLeaves) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CommitTreeLeaves.Unmarshal(m, b)
}
func (m *CommitTreeLeaves) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CommitTreeLeaves.Marshal(b, m, deterministic)
}
func (m *CommitTreeLeaves) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CommitTreeLeaves.Merge(m, src)
}
func (m *CommitTreeLeaves) XXX_Size() int {
	return xxx_messageInfo_CommitTreeLeaves.Size(m)
}
func (m *CommitTreeLeaves) XXX_DiscardUnknown() {
	xxx_messageInfo_CommitTreeLeaves.DiscardUnknown(m)
}

var xxx_messageInfo_CommitTreeLeaves proto.InternalMessageInfo

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

type CommitTreeRoots struct {
	Data                 [][]byte `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CommitTreeRoots) Reset()         { *m = CommitTreeRoots{} }
func (m *CommitTreeRoots) String() string { return proto.CompactTextString(m) }
func (*CommitTreeRoots) ProtoMessage()    {}
func (*CommitTreeRoots) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{20}
}

func (m *CommitTreeRoots) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CommitTreeRoots.Unmarshal(m, b)
}
func (m *CommitTreeRoots) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CommitTreeRoots.Marshal(b, m, deterministic)
}
func (m *CommitTreeRoots) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CommitTreeRoots.Merge(m, src)
}
func (m *CommitTreeRoots) XXX_Size() int {
	return xxx_messageInfo_CommitTreeRoots.Size(m)
}
func (m *CommitTreeRoots) XXX_DiscardUnknown() {
	xxx_messageInfo_CommitTreeRoots.DiscardUnknown(m)
}

var xxx_messageInfo_CommitTreeRoots proto.InternalMessageInfo

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

type CommitTreeProve struct {
	RootHash             string   `protobuf:"bytes,1,opt,name=rootHash,proto3" json:"rootHash,omitempty"`
	ProofSet             []string `protobuf:"bytes,2,rep,name=proofSet,proto3" json:"proofSet,omitempty"`
	ProofIndex           uint32   `protobuf:"varint,3,opt,name=proofIndex,proto3" json:"proofIndex,omitempty"`
	NumLeaves            uint32   `protobuf:"varint,4,opt,name=numLeaves,proto3" json:"numLeaves,omitempty"`
	Helpers              []uint32 `protobuf:"varint,5,rep,packed,name=helpers,proto3" json:"helpers,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CommitTreeProve) Reset()         { *m = CommitTreeProve{} }
func (m *CommitTreeProve) String() string { return proto.CompactTextString(m) }
func (*CommitTreeProve) ProtoMessage()    {}
func (*CommitTreeProve) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{21}
}

func (m *CommitTreeProve) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CommitTreeProve.Unmarshal(m, b)
}
func (m *CommitTreeProve) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CommitTreeProve.Marshal(b, m, deterministic)
}
func (m *CommitTreeProve) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CommitTreeProve.Merge(m, src)
}
func (m *CommitTreeProve) XXX_Size() int {
	return xxx_messageInfo_CommitTreeProve.Size(m)
}
func (m *CommitTreeProve) XXX_DiscardUnknown() {
	xxx_messageInfo_CommitTreeProve.DiscardUnknown(m)
}

var xxx_messageInfo_CommitTreeProve proto.InternalMessageInfo

func (m *CommitTreeProve) GetRootHash() string {
	if m != nil {
		return m.RootHash
	}
	return ""
}

func (m *CommitTreeProve) GetProofSet() []string {
	if m != nil {
		return m.ProofSet
	}
	return nil
}

func (m *CommitTreeProve) GetProofIndex() uint32 {
	if m != nil {
		return m.ProofIndex
	}
	return 0
}

func (m *CommitTreeProve) GetNumLeaves() uint32 {
	if m != nil {
		return m.NumLeaves
	}
	return 0
}

func (m *CommitTreeProve) GetHelpers() []uint32 {
	if m != nil {
		return m.Helpers
	}
	return nil
}

type TreeInfoReq struct {
	RootHash             string   `protobuf:"bytes,1,opt,name=rootHash,proto3" json:"rootHash,omitempty"`
	LeafHash             string   `protobuf:"bytes,2,opt,name=leafHash,proto3" json:"leafHash,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TreeInfoReq) Reset()         { *m = TreeInfoReq{} }
func (m *TreeInfoReq) String() string { return proto.CompactTextString(m) }
func (*TreeInfoReq) ProtoMessage()    {}
func (*TreeInfoReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{22}
}

func (m *TreeInfoReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TreeInfoReq.Unmarshal(m, b)
}
func (m *TreeInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TreeInfoReq.Marshal(b, m, deterministic)
}
func (m *TreeInfoReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TreeInfoReq.Merge(m, src)
}
func (m *TreeInfoReq) XXX_Size() int {
	return xxx_messageInfo_TreeInfoReq.Size(m)
}
func (m *TreeInfoReq) XXX_DiscardUnknown() {
	xxx_messageInfo_TreeInfoReq.DiscardUnknown(m)
}

var xxx_messageInfo_TreeInfoReq proto.InternalMessageInfo

func (m *TreeInfoReq) GetRootHash() string {
	if m != nil {
		return m.RootHash
	}
	return ""
}

func (m *TreeInfoReq) GetLeafHash() string {
	if m != nil {
		return m.LeafHash
	}
	return ""
}

type TreeListResp struct {
	Datas                []string `protobuf:"bytes,1,rep,name=datas,proto3" json:"datas,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TreeListResp) Reset()         { *m = TreeListResp{} }
func (m *TreeListResp) String() string { return proto.CompactTextString(m) }
func (*TreeListResp) ProtoMessage()    {}
func (*TreeListResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{23}
}

func (m *TreeListResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TreeListResp.Unmarshal(m, b)
}
func (m *TreeListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TreeListResp.Marshal(b, m, deterministic)
}
func (m *TreeListResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TreeListResp.Merge(m, src)
}
func (m *TreeListResp) XXX_Size() int {
	return xxx_messageInfo_TreeListResp.Size(m)
}
func (m *TreeListResp) XXX_DiscardUnknown() {
	xxx_messageInfo_TreeListResp.DiscardUnknown(m)
}

var xxx_messageInfo_TreeListResp proto.InternalMessageInfo

func (m *TreeListResp) GetDatas() []string {
	if m != nil {
		return m.Datas
	}
	return nil
}

// mix wallet part
// receiverPubKey = hash(spendPriKey) for zk-snark note spend
type PaymentKeyPair struct {
	ReceiverPubKey       string   `protobuf:"bytes,1,opt,name=receiverPubKey,proto3" json:"receiverPubKey,omitempty"`
	SpendPriKey          string   `protobuf:"bytes,2,opt,name=spendPriKey,proto3" json:"spendPriKey,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PaymentKeyPair) Reset()         { *m = PaymentKeyPair{} }
func (m *PaymentKeyPair) String() string { return proto.CompactTextString(m) }
func (*PaymentKeyPair) ProtoMessage()    {}
func (*PaymentKeyPair) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{24}
}

func (m *PaymentKeyPair) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PaymentKeyPair.Unmarshal(m, b)
}
func (m *PaymentKeyPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PaymentKeyPair.Marshal(b, m, deterministic)
}
func (m *PaymentKeyPair) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PaymentKeyPair.Merge(m, src)
}
func (m *PaymentKeyPair) XXX_Size() int {
	return xxx_messageInfo_PaymentKeyPair.Size(m)
}
func (m *PaymentKeyPair) XXX_DiscardUnknown() {
	xxx_messageInfo_PaymentKeyPair.DiscardUnknown(m)
}

var xxx_messageInfo_PaymentKeyPair proto.InternalMessageInfo

func (m *PaymentKeyPair) GetReceiverPubKey() string {
	if m != nil {
		return m.ReceiverPubKey
	}
	return ""
}

func (m *PaymentKeyPair) GetSpendPriKey() string {
	if m != nil {
		return m.SpendPriKey
	}
	return ""
}

// pub = priv*G for diff-helman crypto
// out: take spender's tempPrikey*pubkey as password, tempPubkey show in note
// spender: take self prikey*tempPubkey as password to decode
type PubKey struct {
	X                    string   `protobuf:"bytes,1,opt,name=X,proto3" json:"X,omitempty"`
	Y                    string   `protobuf:"bytes,2,opt,name=Y,proto3" json:"Y,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PubKey) Reset()         { *m = PubKey{} }
func (m *PubKey) String() string { return proto.CompactTextString(m) }
func (*PubKey) ProtoMessage()    {}
func (*PubKey) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{25}
}

func (m *PubKey) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PubKey.Unmarshal(m, b)
}
func (m *PubKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PubKey.Marshal(b, m, deterministic)
}
func (m *PubKey) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PubKey.Merge(m, src)
}
func (m *PubKey) XXX_Size() int {
	return xxx_messageInfo_PubKey.Size(m)
}
func (m *PubKey) XXX_DiscardUnknown() {
	xxx_messageInfo_PubKey.DiscardUnknown(m)
}

var xxx_messageInfo_PubKey proto.InternalMessageInfo

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

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

type PrivKey struct {
	Data                 string   `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PrivKey) Reset()         { *m = PrivKey{} }
func (m *PrivKey) String() string { return proto.CompactTextString(m) }
func (*PrivKey) ProtoMessage()    {}
func (*PrivKey) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{26}
}

func (m *PrivKey) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrivKey.Unmarshal(m, b)
}
func (m *PrivKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrivKey.Marshal(b, m, deterministic)
}
func (m *PrivKey) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrivKey.Merge(m, src)
}
func (m *PrivKey) XXX_Size() int {
	return xxx_messageInfo_PrivKey.Size(m)
}
func (m *PrivKey) XXX_DiscardUnknown() {
	xxx_messageInfo_PrivKey.DiscardUnknown(m)
}

var xxx_messageInfo_PrivKey proto.InternalMessageInfo

func (m *PrivKey) GetData() string {
	if m != nil {
		return m.Data
	}
	return ""
}

type ShareSecretKeyPair struct {
	PrivKey              *PrivKey `protobuf:"bytes,1,opt,name=privKey,proto3" json:"privKey,omitempty"`
	ReceivingPk          *PubKey  `protobuf:"bytes,2,opt,name=receivingPk,proto3" json:"receivingPk,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ShareSecretKeyPair) Reset()         { *m = ShareSecretKeyPair{} }
func (m *ShareSecretKeyPair) String() string { return proto.CompactTextString(m) }
func (*ShareSecretKeyPair) ProtoMessage()    {}
func (*ShareSecretKeyPair) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{27}
}

func (m *ShareSecretKeyPair) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ShareSecretKeyPair.Unmarshal(m, b)
}
func (m *ShareSecretKeyPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ShareSecretKeyPair.Marshal(b, m, deterministic)
}
func (m *ShareSecretKeyPair) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ShareSecretKeyPair.Merge(m, src)
}
func (m *ShareSecretKeyPair) XXX_Size() int {
	return xxx_messageInfo_ShareSecretKeyPair.Size(m)
}
func (m *ShareSecretKeyPair) XXX_DiscardUnknown() {
	xxx_messageInfo_ShareSecretKeyPair.DiscardUnknown(m)
}

var xxx_messageInfo_ShareSecretKeyPair proto.InternalMessageInfo

func (m *ShareSecretKeyPair) GetPrivKey() *PrivKey {
	if m != nil {
		return m.PrivKey
	}
	return nil
}

func (m *ShareSecretKeyPair) GetReceivingPk() *PubKey {
	if m != nil {
		return m.ReceivingPk
	}
	return nil
}

//spend pair for note proof
//crypt pair for DH crypt/decrypt
type AccountPrivacyKey struct {
	PaymentKey           *PaymentKeyPair     `protobuf:"bytes,1,opt,name=paymentKey,proto3" json:"paymentKey,omitempty"`
	ShareSecretKey       *ShareSecretKeyPair `protobuf:"bytes,2,opt,name=shareSecretKey,proto3" json:"shareSecretKey,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *AccountPrivacyKey) Reset()         { *m = AccountPrivacyKey{} }
func (m *AccountPrivacyKey) String() string { return proto.CompactTextString(m) }
func (*AccountPrivacyKey) ProtoMessage()    {}
func (*AccountPrivacyKey) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{28}
}

func (m *AccountPrivacyKey) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AccountPrivacyKey.Unmarshal(m, b)
}
func (m *AccountPrivacyKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AccountPrivacyKey.Marshal(b, m, deterministic)
}
func (m *AccountPrivacyKey) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AccountPrivacyKey.Merge(m, src)
}
func (m *AccountPrivacyKey) XXX_Size() int {
	return xxx_messageInfo_AccountPrivacyKey.Size(m)
}
func (m *AccountPrivacyKey) XXX_DiscardUnknown() {
	xxx_messageInfo_AccountPrivacyKey.DiscardUnknown(m)
}

var xxx_messageInfo_AccountPrivacyKey proto.InternalMessageInfo

func (m *AccountPrivacyKey) GetPaymentKey() *PaymentKeyPair {
	if m != nil {
		return m.PaymentKey
	}
	return nil
}

func (m *AccountPrivacyKey) GetShareSecretKey() *ShareSecretKeyPair {
	if m != nil {
		return m.ShareSecretKey
	}
	return nil
}

type WalletAddrPrivacy struct {
	Privacy              *AccountPrivacyKey `protobuf:"bytes,1,opt,name=privacy,proto3" json:"privacy,omitempty"`
	Addr                 string             `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *WalletAddrPrivacy) Reset()         { *m = WalletAddrPrivacy{} }
func (m *WalletAddrPrivacy) String() string { return proto.CompactTextString(m) }
func (*WalletAddrPrivacy) ProtoMessage()    {}
func (*WalletAddrPrivacy) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{29}
}

func (m *WalletAddrPrivacy) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_WalletAddrPrivacy.Unmarshal(m, b)
}
func (m *WalletAddrPrivacy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_WalletAddrPrivacy.Marshal(b, m, deterministic)
}
func (m *WalletAddrPrivacy) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WalletAddrPrivacy.Merge(m, src)
}
func (m *WalletAddrPrivacy) XXX_Size() int {
	return xxx_messageInfo_WalletAddrPrivacy.Size(m)
}
func (m *WalletAddrPrivacy) XXX_DiscardUnknown() {
	xxx_messageInfo_WalletAddrPrivacy.DiscardUnknown(m)
}

var xxx_messageInfo_WalletAddrPrivacy proto.InternalMessageInfo

func (m *WalletAddrPrivacy) GetPrivacy() *AccountPrivacyKey {
	if m != nil {
		return m.Privacy
	}
	return nil
}

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

type SecretData struct {
	ReceiverPubKey       string   `protobuf:"bytes,1,opt,name=receiverPubKey,proto3" json:"receiverPubKey,omitempty"`
	ReturnPubKey         string   `protobuf:"bytes,2,opt,name=returnPubKey,proto3" json:"returnPubKey,omitempty"`
	AuthorizePubKey      string   `protobuf:"bytes,3,opt,name=authorizePubKey,proto3" json:"authorizePubKey,omitempty"`
	Amount               string   `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"`
	NoteRandom           string   `protobuf:"bytes,5,opt,name=noteRandom,proto3" json:"noteRandom,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SecretData) Reset()         { *m = SecretData{} }
func (m *SecretData) String() string { return proto.CompactTextString(m) }
func (*SecretData) ProtoMessage()    {}
func (*SecretData) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{30}
}

func (m *SecretData) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SecretData.Unmarshal(m, b)
}
func (m *SecretData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SecretData.Marshal(b, m, deterministic)
}
func (m *SecretData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SecretData.Merge(m, src)
}
func (m *SecretData) XXX_Size() int {
	return xxx_messageInfo_SecretData.Size(m)
}
func (m *SecretData) XXX_DiscardUnknown() {
	xxx_messageInfo_SecretData.DiscardUnknown(m)
}

var xxx_messageInfo_SecretData proto.InternalMessageInfo

func (m *SecretData) GetReceiverPubKey() string {
	if m != nil {
		return m.ReceiverPubKey
	}
	return ""
}

func (m *SecretData) GetReturnPubKey() string {
	if m != nil {
		return m.ReturnPubKey
	}
	return ""
}

func (m *SecretData) GetAuthorizePubKey() string {
	if m != nil {
		return m.AuthorizePubKey
	}
	return ""
}

func (m *SecretData) GetAmount() string {
	if m != nil {
		return m.Amount
	}
	return ""
}

func (m *SecretData) GetNoteRandom() string {
	if m != nil {
		return m.NoteRandom
	}
	return ""
}

type EncodedSecretData struct {
	Encoded              string      `protobuf:"bytes,1,opt,name=encoded,proto3" json:"encoded,omitempty"`
	RawData              *SecretData `protobuf:"bytes,2,opt,name=rawData,proto3" json:"rawData,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *EncodedSecretData) Reset()         { *m = EncodedSecretData{} }
func (m *EncodedSecretData) String() string { return proto.CompactTextString(m) }
func (*EncodedSecretData) ProtoMessage()    {}
func (*EncodedSecretData) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{31}
}

func (m *EncodedSecretData) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EncodedSecretData.Unmarshal(m, b)
}
func (m *EncodedSecretData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EncodedSecretData.Marshal(b, m, deterministic)
}
func (m *EncodedSecretData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EncodedSecretData.Merge(m, src)
}
func (m *EncodedSecretData) XXX_Size() int {
	return xxx_messageInfo_EncodedSecretData.Size(m)
}
func (m *EncodedSecretData) XXX_DiscardUnknown() {
	xxx_messageInfo_EncodedSecretData.DiscardUnknown(m)
}

var xxx_messageInfo_EncodedSecretData proto.InternalMessageInfo

func (m *EncodedSecretData) GetEncoded() string {
	if m != nil {
		return m.Encoded
	}
	return ""
}

func (m *EncodedSecretData) GetRawData() *SecretData {
	if m != nil {
		return m.RawData
	}
	return nil
}

type EncryptSecretData struct {
	Secret               string   `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"`
	SecretPubKey         *PubKey  `protobuf:"bytes,2,opt,name=SecretPubKey,proto3" json:"SecretPubKey,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *EncryptSecretData) Reset()         { *m = EncryptSecretData{} }
func (m *EncryptSecretData) String() string { return proto.CompactTextString(m) }
func (*EncryptSecretData) ProtoMessage()    {}
func (*EncryptSecretData) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{32}
}

func (m *EncryptSecretData) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EncryptSecretData.Unmarshal(m, b)
}
func (m *EncryptSecretData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EncryptSecretData.Marshal(b, m, deterministic)
}
func (m *EncryptSecretData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EncryptSecretData.Merge(m, src)
}
func (m *EncryptSecretData) XXX_Size() int {
	return xxx_messageInfo_EncryptSecretData.Size(m)
}
func (m *EncryptSecretData) XXX_DiscardUnknown() {
	xxx_messageInfo_EncryptSecretData.DiscardUnknown(m)
}

var xxx_messageInfo_EncryptSecretData proto.InternalMessageInfo

func (m *EncryptSecretData) GetSecret() string {
	if m != nil {
		return m.Secret
	}
	return ""
}

func (m *EncryptSecretData) GetSecretPubKey() *PubKey {
	if m != nil {
		return m.SecretPubKey
	}
	return nil
}

type DecryptSecretData struct {
	Secret               string   `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"`
	SecretPriKey         *PrivKey `protobuf:"bytes,2,opt,name=SecretPriKey,proto3" json:"SecretPriKey,omitempty"`
	Epk                  *PubKey  `protobuf:"bytes,3,opt,name=epk,proto3" json:"epk,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DecryptSecretData) Reset()         { *m = DecryptSecretData{} }
func (m *DecryptSecretData) String() string { return proto.CompactTextString(m) }
func (*DecryptSecretData) ProtoMessage()    {}
func (*DecryptSecretData) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{33}
}

func (m *DecryptSecretData) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DecryptSecretData.Unmarshal(m, b)
}
func (m *DecryptSecretData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DecryptSecretData.Marshal(b, m, deterministic)
}
func (m *DecryptSecretData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DecryptSecretData.Merge(m, src)
}
func (m *DecryptSecretData) XXX_Size() int {
	return xxx_messageInfo_DecryptSecretData.Size(m)
}
func (m *DecryptSecretData) XXX_DiscardUnknown() {
	xxx_messageInfo_DecryptSecretData.DiscardUnknown(m)
}

var xxx_messageInfo_DecryptSecretData proto.InternalMessageInfo

func (m *DecryptSecretData) GetSecret() string {
	if m != nil {
		return m.Secret
	}
	return ""
}

func (m *DecryptSecretData) GetSecretPriKey() *PrivKey {
	if m != nil {
		return m.SecretPriKey
	}
	return nil
}

func (m *DecryptSecretData) GetEpk() *PubKey {
	if m != nil {
		return m.Epk
	}
	return nil
}

//一键式获取加密数据
type DepositProofReq struct {
	ReceiverAddr         string   `protobuf:"bytes,1,opt,name=receiverAddr,proto3" json:"receiverAddr,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"`
	Amount               uint64   `protobuf:"varint,4,opt,name=amount,proto3" json:"amount,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DepositProofReq) Reset()         { *m = DepositProofReq{} }
func (m *DepositProofReq) String() string { return proto.CompactTextString(m) }
func (*DepositProofReq) ProtoMessage()    {}
func (*DepositProofReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{34}
}

func (m *DepositProofReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DepositProofReq.Unmarshal(m, b)
}
func (m *DepositProofReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DepositProofReq.Marshal(b, m, deterministic)
}
func (m *DepositProofReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DepositProofReq.Merge(m, src)
}
func (m *DepositProofReq) XXX_Size() int {
	return xxx_messageInfo_DepositProofReq.Size(m)
}
func (m *DepositProofReq) XXX_DiscardUnknown() {
	xxx_messageInfo_DepositProofReq.DiscardUnknown(m)
}

var xxx_messageInfo_DepositProofReq proto.InternalMessageInfo

func (m *DepositProofReq) GetReceiverAddr() string {
	if m != nil {
		return m.ReceiverAddr
	}
	return ""
}

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

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

func (m *DepositProofReq) GetAmount() uint64 {
	if m != nil {
		return m.Amount
	}
	return 0
}

type DepositProofResp struct {
	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"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *DepositProofResp) Reset()         { *m = DepositProofResp{} }
func (m *DepositProofResp) String() string { return proto.CompactTextString(m) }
func (*DepositProofResp) ProtoMessage()    {}
func (*DepositProofResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{35}
}

func (m *DepositProofResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DepositProofResp.Unmarshal(m, b)
}
func (m *DepositProofResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DepositProofResp.Marshal(b, m, deterministic)
}
func (m *DepositProofResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DepositProofResp.Merge(m, src)
}
func (m *DepositProofResp) XXX_Size() int {
	return xxx_messageInfo_DepositProofResp.Size(m)
}
func (m *DepositProofResp) XXX_DiscardUnknown() {
	xxx_messageInfo_DepositProofResp.DiscardUnknown(m)
}

var xxx_messageInfo_DepositProofResp proto.InternalMessageInfo

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

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

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

type TreePathProof struct {
	TreeRootHash         string   `protobuf:"bytes,1,opt,name=treeRootHash,proto3" json:"treeRootHash,omitempty"`
	TreePath             []string `protobuf:"bytes,2,rep,name=treePath,proto3" json:"treePath,omitempty"`
	Helpers              []uint32 `protobuf:"varint,3,rep,packed,name=helpers,proto3" json:"helpers,omitempty"`
	ValidPath            []uint32 `protobuf:"varint,4,rep,packed,name=validPath,proto3" json:"validPath,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TreePathProof) Reset()         { *m = TreePathProof{} }
func (m *TreePathProof) String() string { return proto.CompactTextString(m) }
func (*TreePathProof) ProtoMessage()    {}
func (*TreePathProof) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{36}
}

func (m *TreePathProof) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TreePathProof.Unmarshal(m, b)
}
func (m *TreePathProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TreePathProof.Marshal(b, m, deterministic)
}
func (m *TreePathProof) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TreePathProof.Merge(m, src)
}
func (m *TreePathProof) XXX_Size() int {
	return xxx_messageInfo_TreePathProof.Size(m)
}
func (m *TreePathProof) XXX_DiscardUnknown() {
	xxx_messageInfo_TreePathProof.DiscardUnknown(m)
}

var xxx_messageInfo_TreePathProof proto.InternalMessageInfo

func (m *TreePathProof) GetTreeRootHash() string {
	if m != nil {
		return m.TreeRootHash
	}
	return ""
}

func (m *TreePathProof) GetTreePath() []string {
	if m != nil {
		return m.TreePath
	}
	return nil
}

func (m *TreePathProof) GetHelpers() []uint32 {
	if m != nil {
		return m.Helpers
	}
	return nil
}

func (m *TreePathProof) GetValidPath() []uint32 {
	if m != nil {
		return m.ValidPath
	}
	return nil
}

type WithdrawProofReq struct {
	NoteHash             string   `protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *WithdrawProofReq) Reset()         { *m = WithdrawProofReq{} }
func (m *WithdrawProofReq) String() string { return proto.CompactTextString(m) }
func (*WithdrawProofReq) ProtoMessage()    {}
func (*WithdrawProofReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{37}
}

func (m *WithdrawProofReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_WithdrawProofReq.Unmarshal(m, b)
}
func (m *WithdrawProofReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_WithdrawProofReq.Marshal(b, m, deterministic)
}
func (m *WithdrawProofReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WithdrawProofReq.Merge(m, src)
}
func (m *WithdrawProofReq) XXX_Size() int {
	return xxx_messageInfo_WithdrawProofReq.Size(m)
}
func (m *WithdrawProofReq) XXX_DiscardUnknown() {
	xxx_messageInfo_WithdrawProofReq.DiscardUnknown(m)
}

var xxx_messageInfo_WithdrawProofReq proto.InternalMessageInfo

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

type WithdrawProofResp struct {
	Secret               *SecretData    `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"`
	NullifierHash        string         `protobuf:"bytes,2,opt,name=nullifierHash,proto3" json:"nullifierHash,omitempty"`
	AuthorizeSpendHash   string         `protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
	NoteHash             string         `protobuf:"bytes,4,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	SpendPrivKey         string         `protobuf:"bytes,5,opt,name=spendPrivKey,proto3" json:"spendPrivKey,omitempty"`
	SpendFlag            uint32         `protobuf:"varint,6,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
	AuthorizeFlag        uint32         `protobuf:"varint,7,opt,name=authorizeFlag,proto3" json:"authorizeFlag,omitempty"`
	TreeProof            *TreePathProof `protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *WithdrawProofResp) Reset()         { *m = WithdrawProofResp{} }
func (m *WithdrawProofResp) String() string { return proto.CompactTextString(m) }
func (*WithdrawProofResp) ProtoMessage()    {}
func (*WithdrawProofResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{38}
}

func (m *WithdrawProofResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_WithdrawProofResp.Unmarshal(m, b)
}
func (m *WithdrawProofResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_WithdrawProofResp.Marshal(b, m, deterministic)
}
func (m *WithdrawProofResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WithdrawProofResp.Merge(m, src)
}
func (m *WithdrawProofResp) XXX_Size() int {
	return xxx_messageInfo_WithdrawProofResp.Size(m)
}
func (m *WithdrawProofResp) XXX_DiscardUnknown() {
	xxx_messageInfo_WithdrawProofResp.DiscardUnknown(m)
}

var xxx_messageInfo_WithdrawProofResp proto.InternalMessageInfo

func (m *WithdrawProofResp) GetSecret() *SecretData {
	if m != nil {
		return m.Secret
	}
	return nil
}

func (m *WithdrawProofResp) GetNullifierHash() string {
	if m != nil {
		return m.NullifierHash
	}
	return ""
}

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

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

func (m *WithdrawProofResp) GetSpendPrivKey() string {
	if m != nil {
		return m.SpendPrivKey
	}
	return ""
}

func (m *WithdrawProofResp) GetSpendFlag() uint32 {
	if m != nil {
		return m.SpendFlag
	}
	return 0
}

func (m *WithdrawProofResp) GetAuthorizeFlag() uint32 {
	if m != nil {
		return m.AuthorizeFlag
	}
	return 0
}

func (m *WithdrawProofResp) GetTreeProof() *TreePathProof {
	if m != nil {
		return m.TreeProof
	}
	return nil
}

type AuthProofReq struct {
	NoteHash             string   `protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	ToReturn             uint32   `protobuf:"varint,2,opt,name=toReturn,proto3" json:"toReturn,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AuthProofReq) Reset()         { *m = AuthProofReq{} }
func (m *AuthProofReq) String() string { return proto.CompactTextString(m) }
func (*AuthProofReq) ProtoMessage()    {}
func (*AuthProofReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{39}
}

func (m *AuthProofReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AuthProofReq.Unmarshal(m, b)
}
func (m *AuthProofReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AuthProofReq.Marshal(b, m, deterministic)
}
func (m *AuthProofReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AuthProofReq.Merge(m, src)
}
func (m *AuthProofReq) XXX_Size() int {
	return xxx_messageInfo_AuthProofReq.Size(m)
}
func (m *AuthProofReq) XXX_DiscardUnknown() {
	xxx_messageInfo_AuthProofReq.DiscardUnknown(m)
}

var xxx_messageInfo_AuthProofReq proto.InternalMessageInfo

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

func (m *AuthProofReq) GetToReturn() uint32 {
	if m != nil {
		return m.ToReturn
	}
	return 0
}

type AuthProofResp struct {
	Proof                *SecretData    `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"`
	AuthPubKey           string         `protobuf:"bytes,2,opt,name=authPubKey,proto3" json:"authPubKey,omitempty"`
	AuthPrivKey          string         `protobuf:"bytes,3,opt,name=authPrivKey,proto3" json:"authPrivKey,omitempty"`
	AuthHash             string         `protobuf:"bytes,4,opt,name=authHash,proto3" json:"authHash,omitempty"`
	AuthorizeSpendHash   string         `protobuf:"bytes,5,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
	NoteHash             string         `protobuf:"bytes,6,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	SpendFlag            uint32         `protobuf:"varint,7,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
	TreeProof            *TreePathProof `protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *AuthProofResp) Reset()         { *m = AuthProofResp{} }
func (m *AuthProofResp) String() string { return proto.CompactTextString(m) }
func (*AuthProofResp) ProtoMessage()    {}
func (*AuthProofResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{40}
}

func (m *AuthProofResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AuthProofResp.Unmarshal(m, b)
}
func (m *AuthProofResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AuthProofResp.Marshal(b, m, deterministic)
}
func (m *AuthProofResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AuthProofResp.Merge(m, src)
}
func (m *AuthProofResp) XXX_Size() int {
	return xxx_messageInfo_AuthProofResp.Size(m)
}
func (m *AuthProofResp) XXX_DiscardUnknown() {
	xxx_messageInfo_AuthProofResp.DiscardUnknown(m)
}

var xxx_messageInfo_AuthProofResp proto.InternalMessageInfo

func (m *AuthProofResp) GetProof() *SecretData {
	if m != nil {
		return m.Proof
	}
	return nil
}

func (m *AuthProofResp) GetAuthPubKey() string {
	if m != nil {
		return m.AuthPubKey
	}
	return ""
}

func (m *AuthProofResp) GetAuthPrivKey() string {
	if m != nil {
		return m.AuthPrivKey
	}
	return ""
}

func (m *AuthProofResp) GetAuthHash() string {
	if m != nil {
		return m.AuthHash
	}
	return ""
}

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

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

func (m *AuthProofResp) GetSpendFlag() uint32 {
	if m != nil {
		return m.SpendFlag
	}
	return 0
}

func (m *AuthProofResp) GetTreeProof() *TreePathProof {
	if m != nil {
		return m.TreeProof
	}
	return nil
}

type TransferProofReq struct {
	NoteHash             string   `protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	ToAddr               string   `protobuf:"bytes,2,opt,name=toAddr,proto3" json:"toAddr,omitempty"`
	ToAuthAddr           string   `protobuf:"bytes,3,opt,name=toAuthAddr,proto3" json:"toAuthAddr,omitempty"`
	ReturnAddr           string   `protobuf:"bytes,4,opt,name=returnAddr,proto3" json:"returnAddr,omitempty"`
	Amount               uint64   `protobuf:"varint,5,opt,name=amount,proto3" json:"amount,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TransferProofReq) Reset()         { *m = TransferProofReq{} }
func (m *TransferProofReq) String() string { return proto.CompactTextString(m) }
func (*TransferProofReq) ProtoMessage()    {}
func (*TransferProofReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{41}
}

func (m *TransferProofReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TransferProofReq.Unmarshal(m, b)
}
func (m *TransferProofReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TransferProofReq.Marshal(b, m, deterministic)
}
func (m *TransferProofReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TransferProofReq.Merge(m, src)
}
func (m *TransferProofReq) XXX_Size() int {
	return xxx_messageInfo_TransferProofReq.Size(m)
}
func (m *TransferProofReq) XXX_DiscardUnknown() {
	xxx_messageInfo_TransferProofReq.DiscardUnknown(m)
}

var xxx_messageInfo_TransferProofReq proto.InternalMessageInfo

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

func (m *TransferProofReq) GetToAddr() string {
	if m != nil {
		return m.ToAddr
	}
	return ""
}

func (m *TransferProofReq) GetToAuthAddr() string {
	if m != nil {
		return m.ToAuthAddr
	}
	return ""
}

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

func (m *TransferProofReq) GetAmount() uint64 {
	if m != nil {
		return m.Amount
	}
	return 0
}

//加密了的input/output amount
type ShieldAmount struct {
	X                    string   `protobuf:"bytes,1,opt,name=X,proto3" json:"X,omitempty"`
	Y                    string   `protobuf:"bytes,2,opt,name=Y,proto3" json:"Y,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ShieldAmount) Reset()         { *m = ShieldAmount{} }
func (m *ShieldAmount) String() string { return proto.CompactTextString(m) }
func (*ShieldAmount) ProtoMessage()    {}
func (*ShieldAmount) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{42}
}

func (m *ShieldAmount) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ShieldAmount.Unmarshal(m, b)
}
func (m *ShieldAmount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ShieldAmount.Marshal(b, m, deterministic)
}
func (m *ShieldAmount) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ShieldAmount.Merge(m, src)
}
func (m *ShieldAmount) XXX_Size() int {
	return xxx_messageInfo_ShieldAmount.Size(m)
}
func (m *ShieldAmount) XXX_DiscardUnknown() {
	xxx_messageInfo_ShieldAmount.DiscardUnknown(m)
}

var xxx_messageInfo_ShieldAmount proto.InternalMessageInfo

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

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

type TransferInputProof struct {
	Proof                *SecretData    `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"`
	NullifierHash        string         `protobuf:"bytes,2,opt,name=nullifierHash,proto3" json:"nullifierHash,omitempty"`
	AuthorizeSpendHash   string         `protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
	NoteHash             string         `protobuf:"bytes,4,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	SpendPrivKey         string         `protobuf:"bytes,5,opt,name=spendPrivKey,proto3" json:"spendPrivKey,omitempty"`
	SpendFlag            uint32         `protobuf:"varint,6,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
	AuthorizeFlag        uint32         `protobuf:"varint,7,opt,name=authorizeFlag,proto3" json:"authorizeFlag,omitempty"`
	TreeProof            *TreePathProof `protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
	ShieldAmount         *ShieldAmount  `protobuf:"bytes,9,opt,name=shieldAmount,proto3" json:"shieldAmount,omitempty"`
	AmountRandom         string         `protobuf:"bytes,10,opt,name=amountRandom,proto3" json:"amountRandom,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *TransferInputProof) Reset()         { *m = TransferInputProof{} }
func (m *TransferInputProof) String() string { return proto.CompactTextString(m) }
func (*TransferInputProof) ProtoMessage()    {}
func (*TransferInputProof) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{43}
}

func (m *TransferInputProof) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TransferInputProof.Unmarshal(m, b)
}
func (m *TransferInputProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TransferInputProof.Marshal(b, m, deterministic)
}
func (m *TransferInputProof) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TransferInputProof.Merge(m, src)
}
func (m *TransferInputProof) XXX_Size() int {
	return xxx_messageInfo_TransferInputProof.Size(m)
}
func (m *TransferInputProof) XXX_DiscardUnknown() {
	xxx_messageInfo_TransferInputProof.DiscardUnknown(m)
}

var xxx_messageInfo_TransferInputProof proto.InternalMessageInfo

func (m *TransferInputProof) GetProof() *SecretData {
	if m != nil {
		return m.Proof
	}
	return nil
}

func (m *TransferInputProof) GetNullifierHash() string {
	if m != nil {
		return m.NullifierHash
	}
	return ""
}

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

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

func (m *TransferInputProof) GetSpendPrivKey() string {
	if m != nil {
		return m.SpendPrivKey
	}
	return ""
}

func (m *TransferInputProof) GetSpendFlag() uint32 {
	if m != nil {
		return m.SpendFlag
	}
	return 0
}

func (m *TransferInputProof) GetAuthorizeFlag() uint32 {
	if m != nil {
		return m.AuthorizeFlag
	}
	return 0
}

func (m *TransferInputProof) GetTreeProof() *TreePathProof {
	if m != nil {
		return m.TreeProof
	}
	return nil
}

func (m *TransferInputProof) GetShieldAmount() *ShieldAmount {
	if m != nil {
		return m.ShieldAmount
	}
	return nil
}

func (m *TransferInputProof) GetAmountRandom() string {
	if m != nil {
		return m.AmountRandom
	}
	return ""
}

type TransferOutputProof struct {
	Proof                *SecretData    `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"`
	NoteHash             string         `protobuf:"bytes,2,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
	Secrets              *DHSecretGroup `protobuf:"bytes,3,opt,name=secrets,proto3" json:"secrets,omitempty"`
	ShieldAmount         *ShieldAmount  `protobuf:"bytes,4,opt,name=shieldAmount,proto3" json:"shieldAmount,omitempty"`
	AmountRandom         string         `protobuf:"bytes,5,opt,name=amountRandom,proto3" json:"amountRandom,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *TransferOutputProof) Reset()         { *m = TransferOutputProof{} }
func (m *TransferOutputProof) String() string { return proto.CompactTextString(m) }
func (*TransferOutputProof) ProtoMessage()    {}
func (*TransferOutputProof) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{44}
}

func (m *TransferOutputProof) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TransferOutputProof.Unmarshal(m, b)
}
func (m *TransferOutputProof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TransferOutputProof.Marshal(b, m, deterministic)
}
func (m *TransferOutputProof) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TransferOutputProof.Merge(m, src)
}
func (m *TransferOutputProof) XXX_Size() int {
	return xxx_messageInfo_TransferOutputProof.Size(m)
}
func (m *TransferOutputProof) XXX_DiscardUnknown() {
	xxx_messageInfo_TransferOutputProof.DiscardUnknown(m)
}

var xxx_messageInfo_TransferOutputProof proto.InternalMessageInfo

func (m *TransferOutputProof) GetProof() *SecretData {
	if m != nil {
		return m.Proof
	}
	return nil
}

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

func (m *TransferOutputProof) GetSecrets() *DHSecretGroup {
	if m != nil {
		return m.Secrets
	}
	return nil
}

func (m *TransferOutputProof) GetShieldAmount() *ShieldAmount {
	if m != nil {
		return m.ShieldAmount
	}
	return nil
}

func (m *TransferOutputProof) GetAmountRandom() string {
	if m != nil {
		return m.AmountRandom
	}
	return ""
}

type TransferProofResp struct {
	TransferInput        *TransferInputProof  `protobuf:"bytes,1,opt,name=transferInput,proto3" json:"transferInput,omitempty"`
	TargetOutput         *TransferOutputProof `protobuf:"bytes,2,opt,name=targetOutput,proto3" json:"targetOutput,omitempty"`
	ChangeOutput         *TransferOutputProof `protobuf:"bytes,3,opt,name=changeOutput,proto3" json:"changeOutput,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *TransferProofResp) Reset()         { *m = TransferProofResp{} }
func (m *TransferProofResp) String() string { return proto.CompactTextString(m) }
func (*TransferProofResp) ProtoMessage()    {}
func (*TransferProofResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{45}
}

func (m *TransferProofResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TransferProofResp.Unmarshal(m, b)
}
func (m *TransferProofResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TransferProofResp.Marshal(b, m, deterministic)
}
func (m *TransferProofResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TransferProofResp.Merge(m, src)
}
func (m *TransferProofResp) XXX_Size() int {
	return xxx_messageInfo_TransferProofResp.Size(m)
}
func (m *TransferProofResp) XXX_DiscardUnknown() {
	xxx_messageInfo_TransferProofResp.DiscardUnknown(m)
}

var xxx_messageInfo_TransferProofResp proto.InternalMessageInfo

func (m *TransferProofResp) GetTransferInput() *TransferInputProof {
	if m != nil {
		return m.TransferInput
	}
	return nil
}

func (m *TransferProofResp) GetTargetOutput() *TransferOutputProof {
	if m != nil {
		return m.TargetOutput
	}
	return nil
}

func (m *TransferProofResp) GetChangeOutput() *TransferOutputProof {
	if m != nil {
		return m.ChangeOutput
	}
	return nil
}

type ShieldAmountRst struct {
	NoteRandom           string        `protobuf:"bytes,1,opt,name=noteRandom,proto3" json:"noteRandom,omitempty"`
	TransferRandom       string        `protobuf:"bytes,2,opt,name=transferRandom,proto3" json:"transferRandom,omitempty"`
	ChangeRandom         string        `protobuf:"bytes,3,opt,name=changeRandom,proto3" json:"changeRandom,omitempty"`
	Note                 *ShieldAmount `protobuf:"bytes,4,opt,name=note,proto3" json:"note,omitempty"`
	Transfer             *ShieldAmount `protobuf:"bytes,5,opt,name=transfer,proto3" json:"transfer,omitempty"`
	Change               *ShieldAmount `protobuf:"bytes,6,opt,name=change,proto3" json:"change,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *ShieldAmountRst) Reset()         { *m = ShieldAmountRst{} }
func (m *ShieldAmountRst) String() string { return proto.CompactTextString(m) }
func (*ShieldAmountRst) ProtoMessage()    {}
func (*ShieldAmountRst) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{46}
}

func (m *ShieldAmountRst) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ShieldAmountRst.Unmarshal(m, b)
}
func (m *ShieldAmountRst) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ShieldAmountRst.Marshal(b, m, deterministic)
}
func (m *ShieldAmountRst) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ShieldAmountRst.Merge(m, src)
}
func (m *ShieldAmountRst) XXX_Size() int {
	return xxx_messageInfo_ShieldAmountRst.Size(m)
}
func (m *ShieldAmountRst) XXX_DiscardUnknown() {
	xxx_messageInfo_ShieldAmountRst.DiscardUnknown(m)
}

var xxx_messageInfo_ShieldAmountRst proto.InternalMessageInfo

func (m *ShieldAmountRst) GetNoteRandom() string {
	if m != nil {
		return m.NoteRandom
	}
	return ""
}

func (m *ShieldAmountRst) GetTransferRandom() string {
	if m != nil {
		return m.TransferRandom
	}
	return ""
}

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

func (m *ShieldAmountRst) GetNote() *ShieldAmount {
	if m != nil {
		return m.Note
	}
	return nil
}

func (m *ShieldAmountRst) GetTransfer() *ShieldAmount {
	if m != nil {
		return m.Transfer
	}
	return nil
}

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

type WalletIndexInfo struct {
	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"`
	IsReturner           bool        `protobuf:"varint,4,opt,name=isReturner,proto3" json:"isReturner,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"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *WalletIndexInfo) Reset()         { *m = WalletIndexInfo{} }
func (m *WalletIndexInfo) String() string { return proto.CompactTextString(m) }
func (*WalletIndexInfo) ProtoMessage()    {}
func (*WalletIndexInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{47}
}

func (m *WalletIndexInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_WalletIndexInfo.Unmarshal(m, b)
}
func (m *WalletIndexInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_WalletIndexInfo.Marshal(b, m, deterministic)
}
func (m *WalletIndexInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WalletIndexInfo.Merge(m, src)
}
func (m *WalletIndexInfo) XXX_Size() int {
	return xxx_messageInfo_WalletIndexInfo.Size(m)
}
func (m *WalletIndexInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_WalletIndexInfo.DiscardUnknown(m)
}

var xxx_messageInfo_WalletIndexInfo proto.InternalMessageInfo

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

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

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

func (m *WalletIndexInfo) GetIsReturner() bool {
	if m != nil {
		return m.IsReturner
	}
	return false
}

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

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

func (m *WalletIndexInfo) GetSecret() *SecretData {
	if m != nil {
		return m.Secret
	}
	return nil
}

type WalletDbMixInfo struct {
	Info                 *WalletIndexInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
	TxIndex              string           `protobuf:"bytes,2,opt,name=txIndex,proto3" json:"txIndex,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *WalletDbMixInfo) Reset()         { *m = WalletDbMixInfo{} }
func (m *WalletDbMixInfo) String() string { return proto.CompactTextString(m) }
func (*WalletDbMixInfo) ProtoMessage()    {}
func (*WalletDbMixInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{48}
}

func (m *WalletDbMixInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_WalletDbMixInfo.Unmarshal(m, b)
}
func (m *WalletDbMixInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_WalletDbMixInfo.Marshal(b, m, deterministic)
}
func (m *WalletDbMixInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WalletDbMixInfo.Merge(m, src)
}
func (m *WalletDbMixInfo) XXX_Size() int {
	return xxx_messageInfo_WalletDbMixInfo.Size(m)
}
func (m *WalletDbMixInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_WalletDbMixInfo.DiscardUnknown(m)
}

var xxx_messageInfo_WalletDbMixInfo proto.InternalMessageInfo

func (m *WalletDbMixInfo) GetInfo() *WalletIndexInfo {
	if m != nil {
		return m.Info
	}
	return nil
}

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

type WalletMixIndexReq struct {
	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"`
	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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *WalletMixIndexReq) Reset()         { *m = WalletMixIndexReq{} }
func (m *WalletMixIndexReq) String() string { return proto.CompactTextString(m) }
func (*WalletMixIndexReq) ProtoMessage()    {}
func (*WalletMixIndexReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{49}
}

func (m *WalletMixIndexReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_WalletMixIndexReq.Unmarshal(m, b)
}
func (m *WalletMixIndexReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_WalletMixIndexReq.Marshal(b, m, deterministic)
}
func (m *WalletMixIndexReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WalletMixIndexReq.Merge(m, src)
}
func (m *WalletMixIndexReq) XXX_Size() int {
	return xxx_messageInfo_WalletMixIndexReq.Size(m)
}
func (m *WalletMixIndexReq) XXX_DiscardUnknown() {
	xxx_messageInfo_WalletMixIndexReq.DiscardUnknown(m)
}

var xxx_messageInfo_WalletMixIndexReq proto.InternalMessageInfo

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

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

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

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

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

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

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

type WalletIndexResp struct {
	Notes                []*WalletIndexInfo `protobuf:"bytes,1,rep,name=notes,proto3" json:"notes,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *WalletIndexResp) Reset()         { *m = WalletIndexResp{} }
func (m *WalletIndexResp) String() string { return proto.CompactTextString(m) }
func (*WalletIndexResp) ProtoMessage()    {}
func (*WalletIndexResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{50}
}

func (m *WalletIndexResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_WalletIndexResp.Unmarshal(m, b)
}
func (m *WalletIndexResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_WalletIndexResp.Marshal(b, m, deterministic)
}
func (m *WalletIndexResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WalletIndexResp.Merge(m, src)
}
func (m *WalletIndexResp) XXX_Size() int {
	return xxx_messageInfo_WalletIndexResp.Size(m)
}
func (m *WalletIndexResp) XXX_DiscardUnknown() {
	xxx_messageInfo_WalletIndexResp.DiscardUnknown(m)
}

var xxx_messageInfo_WalletIndexResp proto.InternalMessageInfo

func (m *WalletIndexResp) GetNotes() []*WalletIndexInfo {
	if m != nil {
		return m.Notes
	}
	return nil
}

type WalletReqAddrs struct {
	Addrs                []string `protobuf:"bytes,1,rep,name=addrs,proto3" json:"addrs,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *WalletReqAddrs) Reset()         { *m = WalletReqAddrs{} }
func (m *WalletReqAddrs) String() string { return proto.CompactTextString(m) }
func (*WalletReqAddrs) ProtoMessage()    {}
func (*WalletReqAddrs) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{51}
}

func (m *WalletReqAddrs) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_WalletReqAddrs.Unmarshal(m, b)
}
func (m *WalletReqAddrs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_WalletReqAddrs.Marshal(b, m, deterministic)
}
func (m *WalletReqAddrs) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WalletReqAddrs.Merge(m, src)
}
func (m *WalletReqAddrs) XXX_Size() int {
	return xxx_messageInfo_WalletReqAddrs.Size(m)
}
func (m *WalletReqAddrs) XXX_DiscardUnknown() {
	xxx_messageInfo_WalletReqAddrs.DiscardUnknown(m)
}

var xxx_messageInfo_WalletReqAddrs proto.InternalMessageInfo

func (m *WalletReqAddrs) GetAddrs() []string {
	if m != nil {
		return m.Addrs
	}
	return nil
}

type WalletEnablePrivacyRst struct {
	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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *WalletEnablePrivacyRst) Reset()         { *m = WalletEnablePrivacyRst{} }
func (m *WalletEnablePrivacyRst) String() string { return proto.CompactTextString(m) }
func (*WalletEnablePrivacyRst) ProtoMessage()    {}
func (*WalletEnablePrivacyRst) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{52}
}

func (m *WalletEnablePrivacyRst) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_WalletEnablePrivacyRst.Unmarshal(m, b)
}
func (m *WalletEnablePrivacyRst) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_WalletEnablePrivacyRst.Marshal(b, m, deterministic)
}
func (m *WalletEnablePrivacyRst) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WalletEnablePrivacyRst.Merge(m, src)
}
func (m *WalletEnablePrivacyRst) XXX_Size() int {
	return xxx_messageInfo_WalletEnablePrivacyRst.Size(m)
}
func (m *WalletEnablePrivacyRst) XXX_DiscardUnknown() {
	xxx_messageInfo_WalletEnablePrivacyRst.DiscardUnknown(m)
}

var xxx_messageInfo_WalletEnablePrivacyRst proto.InternalMessageInfo

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

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

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

type WalletEnablePrivacyResp struct {
	Resps                []*WalletEnablePrivacyRst `protobuf:"bytes,1,rep,name=resps,proto3" json:"resps,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *WalletEnablePrivacyResp) Reset()         { *m = WalletEnablePrivacyResp{} }
func (m *WalletEnablePrivacyResp) String() string { return proto.CompactTextString(m) }
func (*WalletEnablePrivacyResp) ProtoMessage()    {}
func (*WalletEnablePrivacyResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{53}
}

func (m *WalletEnablePrivacyResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_WalletEnablePrivacyResp.Unmarshal(m, b)
}
func (m *WalletEnablePrivacyResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_WalletEnablePrivacyResp.Marshal(b, m, deterministic)
}
func (m *WalletEnablePrivacyResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WalletEnablePrivacyResp.Merge(m, src)
}
func (m *WalletEnablePrivacyResp) XXX_Size() int {
	return xxx_messageInfo_WalletEnablePrivacyResp.Size(m)
}
func (m *WalletEnablePrivacyResp) XXX_DiscardUnknown() {
	xxx_messageInfo_WalletEnablePrivacyResp.DiscardUnknown(m)
}

var xxx_messageInfo_WalletEnablePrivacyResp proto.InternalMessageInfo

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

type LocalMixTx struct {
	Hash                 string   `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
	Height               int64    `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
	Index                int64    `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LocalMixTx) Reset()         { *m = LocalMixTx{} }
func (m *LocalMixTx) String() string { return proto.CompactTextString(m) }
func (*LocalMixTx) ProtoMessage()    {}
func (*LocalMixTx) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{54}
}

func (m *LocalMixTx) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LocalMixTx.Unmarshal(m, b)
}
func (m *LocalMixTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LocalMixTx.Marshal(b, m, deterministic)
}
func (m *LocalMixTx) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LocalMixTx.Merge(m, src)
}
func (m *LocalMixTx) XXX_Size() int {
	return xxx_messageInfo_LocalMixTx.Size(m)
}
func (m *LocalMixTx) XXX_DiscardUnknown() {
	xxx_messageInfo_LocalMixTx.DiscardUnknown(m)
}

var xxx_messageInfo_LocalMixTx proto.InternalMessageInfo

func (m *LocalMixTx) GetHash() string {
	if m != nil {
		return m.Hash
	}
	return ""
}

func (m *LocalMixTx) GetHeight() int64 {
	if m != nil {
		return m.Height
	}
	return 0
}

func (m *LocalMixTx) GetIndex() int64 {
	if m != nil {
		return m.Index
	}
	return 0
}

type MixTxListReq struct {
	TxIndex              string   `protobuf:"bytes,1,opt,name=txIndex,proto3" json:"txIndex,omitempty"`
	Hash                 string   `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
	Height               int64    `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	Index                int64    `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"`
	Count                int32    `protobuf:"varint,5,opt,name=count,proto3" json:"count,omitempty"`
	Direction            int32    `protobuf:"varint,6,opt,name=direction,proto3" json:"direction,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MixTxListReq) Reset()         { *m = MixTxListReq{} }
func (m *MixTxListReq) String() string { return proto.CompactTextString(m) }
func (*MixTxListReq) ProtoMessage()    {}
func (*MixTxListReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{55}
}

func (m *MixTxListReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MixTxListReq.Unmarshal(m, b)
}
func (m *MixTxListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MixTxListReq.Marshal(b, m, deterministic)
}
func (m *MixTxListReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MixTxListReq.Merge(m, src)
}
func (m *MixTxListReq) XXX_Size() int {
	return xxx_messageInfo_MixTxListReq.Size(m)
}
func (m *MixTxListReq) XXX_DiscardUnknown() {
	xxx_messageInfo_MixTxListReq.DiscardUnknown(m)
}

var xxx_messageInfo_MixTxListReq proto.InternalMessageInfo

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

func (m *MixTxListReq) GetHash() string {
	if m != nil {
		return m.Hash
	}
	return ""
}

func (m *MixTxListReq) GetHeight() int64 {
	if m != nil {
		return m.Height
	}
	return 0
}

func (m *MixTxListReq) GetIndex() int64 {
	if m != nil {
		return m.Index
	}
	return 0
}

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

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

type MixTxListResp struct {
	Txs                  []*LocalMixTx `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *MixTxListResp) Reset()         { *m = MixTxListResp{} }
func (m *MixTxListResp) String() string { return proto.CompactTextString(m) }
func (*MixTxListResp) ProtoMessage()    {}
func (*MixTxListResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{56}
}

func (m *MixTxListResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MixTxListResp.Unmarshal(m, b)
}
func (m *MixTxListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MixTxListResp.Marshal(b, m, deterministic)
}
func (m *MixTxListResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MixTxListResp.Merge(m, src)
}
func (m *MixTxListResp) XXX_Size() int {
	return xxx_messageInfo_MixTxListResp.Size(m)
}
func (m *MixTxListResp) XXX_DiscardUnknown() {
	xxx_messageInfo_MixTxListResp.DiscardUnknown(m)
}

var xxx_messageInfo_MixTxListResp proto.InternalMessageInfo

func (m *MixTxListResp) GetTxs() []*LocalMixTx {
	if m != nil {
		return m.Txs
	}
	return nil
}

type PrivacyAddrResult struct {
	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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PrivacyAddrResult) Reset()         { *m = PrivacyAddrResult{} }
func (m *PrivacyAddrResult) String() string { return proto.CompactTextString(m) }
func (*PrivacyAddrResult) ProtoMessage()    {}
func (*PrivacyAddrResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{57}
}

func (m *PrivacyAddrResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrivacyAddrResult.Unmarshal(m, b)
}
func (m *PrivacyAddrResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrivacyAddrResult.Marshal(b, m, deterministic)
}
func (m *PrivacyAddrResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrivacyAddrResult.Merge(m, src)
}
func (m *PrivacyAddrResult) XXX_Size() int {
	return xxx_messageInfo_PrivacyAddrResult.Size(m)
}
func (m *PrivacyAddrResult) XXX_DiscardUnknown() {
	xxx_messageInfo_PrivacyAddrResult.DiscardUnknown(m)
}

var xxx_messageInfo_PrivacyAddrResult proto.InternalMessageInfo

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

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

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

type ReqEnablePrivacyRst struct {
	Results              []*PrivacyAddrResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *ReqEnablePrivacyRst) Reset()         { *m = ReqEnablePrivacyRst{} }
func (m *ReqEnablePrivacyRst) String() string { return proto.CompactTextString(m) }
func (*ReqEnablePrivacyRst) ProtoMessage()    {}
func (*ReqEnablePrivacyRst) Descriptor() ([]byte, []int) {
	return fileDescriptor_5c21d519a9be369a, []int{58}
}

func (m *ReqEnablePrivacyRst) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReqEnablePrivacyRst.Unmarshal(m, b)
}
func (m *ReqEnablePrivacyRst) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReqEnablePrivacyRst.Marshal(b, m, deterministic)
}
func (m *ReqEnablePrivacyRst) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReqEnablePrivacyRst.Merge(m, src)
}
func (m *ReqEnablePrivacyRst) XXX_Size() int {
	return xxx_messageInfo_ReqEnablePrivacyRst.Size(m)
}
func (m *ReqEnablePrivacyRst) XXX_DiscardUnknown() {
	xxx_messageInfo_ReqEnablePrivacyRst.DiscardUnknown(m)
}

var xxx_messageInfo_ReqEnablePrivacyRst proto.InternalMessageInfo

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

func init() {
	proto.RegisterEnum("types.VerifyType", VerifyType_name, VerifyType_value)
	proto.RegisterEnum("types.MixConfigType", MixConfigType_name, MixConfigType_value)
	proto.RegisterEnum("types.MixConfigAct", MixConfigAct_name, MixConfigAct_value)
	proto.RegisterEnum("types.NoteStatus", NoteStatus_name, NoteStatus_value)
	proto.RegisterEnum("types.MixWalletRescanStatus", MixWalletRescanStatus_name, MixWalletRescanStatus_value)
	proto.RegisterType((*ZkVerifyKey)(nil), "types.ZkVerifyKey")
	proto.RegisterType((*ZkVerifyKeys)(nil), "types.ZkVerifyKeys")
	proto.RegisterType((*AuthPubKeys)(nil), "types.AuthPubKeys")
	proto.RegisterType((*PaymentKey)(nil), "types.PaymentKey")
	proto.RegisterType((*MixConfigAction)(nil), "types.MixConfigAction")
	proto.RegisterType((*DHSecret)(nil), "types.DHSecret")
	proto.RegisterType((*DHSecretGroup)(nil), "types.DHSecretGroup")
	proto.RegisterType((*ZkProofInfo)(nil), "types.ZkProofInfo")
	proto.RegisterType((*MixDepositAction)(nil), "types.MixDepositAction")
	proto.RegisterType((*MixTransferAction)(nil), "types.MixTransferAction")
	proto.RegisterType((*MixWithdrawAction)(nil), "types.MixWithdrawAction")
	proto.RegisterType((*MixAuthorizeAction)(nil), "types.MixAuthorizeAction")
	proto.RegisterType((*MixAction)(nil), "types.MixAction")
	proto.RegisterType((*DepositPublicInput)(nil), "types.DepositPublicInput")
	proto.RegisterType((*WithdrawPublicInput)(nil), "types.WithdrawPublicInput")
	proto.RegisterType((*TransferInputPublicInput)(nil), "types.TransferInputPublicInput")
	proto.RegisterType((*TransferOutputPublicInput)(nil), "types.TransferOutputPublicInput")
	proto.RegisterType((*AuthorizePublicInput)(nil), "types.AuthorizePublicInput")
	proto.RegisterType((*ExistValue)(nil), "types.ExistValue")
	proto.RegisterType((*CommitTreeLeaves)(nil), "types.CommitTreeLeaves")
	proto.RegisterType((*CommitTreeRoots)(nil), "types.CommitTreeRoots")
	proto.RegisterType((*CommitTreeProve)(nil), "types.CommitTreeProve")
	proto.RegisterType((*TreeInfoReq)(nil), "types.TreeInfoReq")
	proto.RegisterType((*TreeListResp)(nil), "types.TreeListResp")
	proto.RegisterType((*PaymentKeyPair)(nil), "types.PaymentKeyPair")
	proto.RegisterType((*PubKey)(nil), "types.PubKey")
	proto.RegisterType((*PrivKey)(nil), "types.PrivKey")
	proto.RegisterType((*ShareSecretKeyPair)(nil), "types.ShareSecretKeyPair")
	proto.RegisterType((*AccountPrivacyKey)(nil), "types.AccountPrivacyKey")
	proto.RegisterType((*WalletAddrPrivacy)(nil), "types.WalletAddrPrivacy")
	proto.RegisterType((*SecretData)(nil), "types.SecretData")
	proto.RegisterType((*EncodedSecretData)(nil), "types.EncodedSecretData")
	proto.RegisterType((*EncryptSecretData)(nil), "types.EncryptSecretData")
	proto.RegisterType((*DecryptSecretData)(nil), "types.DecryptSecretData")
	proto.RegisterType((*DepositProofReq)(nil), "types.DepositProofReq")
	proto.RegisterType((*DepositProofResp)(nil), "types.DepositProofResp")
	proto.RegisterType((*TreePathProof)(nil), "types.TreePathProof")
	proto.RegisterType((*WithdrawProofReq)(nil), "types.WithdrawProofReq")
	proto.RegisterType((*WithdrawProofResp)(nil), "types.WithdrawProofResp")
	proto.RegisterType((*AuthProofReq)(nil), "types.AuthProofReq")
	proto.RegisterType((*AuthProofResp)(nil), "types.AuthProofResp")
	proto.RegisterType((*TransferProofReq)(nil), "types.TransferProofReq")
	proto.RegisterType((*ShieldAmount)(nil), "types.ShieldAmount")
	proto.RegisterType((*TransferInputProof)(nil), "types.TransferInputProof")
	proto.RegisterType((*TransferOutputProof)(nil), "types.TransferOutputProof")
	proto.RegisterType((*TransferProofResp)(nil), "types.TransferProofResp")
	proto.RegisterType((*ShieldAmountRst)(nil), "types.ShieldAmountRst")
	proto.RegisterType((*WalletIndexInfo)(nil), "types.WalletIndexInfo")
	proto.RegisterType((*WalletDbMixInfo)(nil), "types.WalletDbMixInfo")
	proto.RegisterType((*WalletMixIndexReq)(nil), "types.WalletMixIndexReq")
	proto.RegisterType((*WalletIndexResp)(nil), "types.WalletIndexResp")
	proto.RegisterType((*WalletReqAddrs)(nil), "types.WalletReqAddrs")
	proto.RegisterType((*WalletEnablePrivacyRst)(nil), "types.WalletEnablePrivacyRst")
	proto.RegisterType((*WalletEnablePrivacyResp)(nil), "types.WalletEnablePrivacyResp")
	proto.RegisterType((*LocalMixTx)(nil), "types.LocalMixTx")
	proto.RegisterType((*MixTxListReq)(nil), "types.MixTxListReq")
	proto.RegisterType((*MixTxListResp)(nil), "types.MixTxListResp")
	proto.RegisterType((*PrivacyAddrResult)(nil), "types.PrivacyAddrResult")
	proto.RegisterType((*ReqEnablePrivacyRst)(nil), "types.ReqEnablePrivacyRst")
}

func init() {
	proto.RegisterFile("mix.proto", fileDescriptor_5c21d519a9be369a)
}

var fileDescriptor_5c21d519a9be369a = []byte{
	// 2515 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x6e, 0x1b, 0xc9,
	0x11, 0xd6, 0xf0, 0x57, 0x2c, 0x91, 0x12, 0xd5, 0xf6, 0x6a, 0x69, 0x21, 0xeb, 0x28, 0xbd, 0x5e,
	0xaf, 0x22, 0x07, 0xda, 0x0d, 0xed, 0x38, 0xc9, 0x21, 0xbb, 0x60, 0x4c, 0xca, 0xe4, 0xda, 0xa2,
	0x88, 0x26, 0xfd, 0x1b, 0x24, 0xc0, 0x98, 0x6c, 0x89, 0x03, 0x93, 0x9c, 0xf1, 0xcc, 0x50, 0xa6,
	0x72, 0xca, 0x21, 0xc0, 0x1e, 0x82, 0x9c, 0x82, 0x5c, 0x03, 0xe4, 0x94, 0x3c, 0xc0, 0x22, 0x01,
	0xf2, 0x0c, 0x39, 0xe6, 0x01, 0x02, 0xe4, 0x90, 0x6b, 0x1e, 0x21, 0xe8, 0xbf, 0x99, 0xee, 0x21,
	0xa9, 0x1f, 0x67, 0x73, 0xdb, 0x1b, 0xab, 0xe6, 0xeb, 0xee, 0xaa, 0xaf, 0xaa, 0xab, 0xab, 0x9b,
	0x50, 0x18, 0x3b, 0xb3, 0x7d, 0xcf, 0x77, 0x43, 0x17, 0x65, 0xc3, 0x33, 0x8f, 0x06, 0xdb, 0xc5,
	0xbe, 0x3b, 0x1e, 0xbb, 0x13, 0xa1, 0xdc, 0xde, 0x0c, 0x7d, 0x7b, 0x12, 0xd8, 0xfd, 0xd0, 0x51,
	0x2a, 0xfc, 0x05, 0xac, 0xbd, 0x7c, 0xfd, 0x94, 0xfa, 0xce, 0xf1, 0xd9, 0x23, 0x7a, 0x86, 0x3e,
	0x82, 0x0c, 0x1b, 0x58, 0xb1, 0x76, 0xac, 0xdd, 0xf5, 0xea, 0xe6, 0x3e, 0x9f, 0x65, 0x5f, 0x7c,
	0xef, 0x9d, 0x79, 0x94, 0xf0, 0xcf, 0xe8, 0x3a, 0x64, 0x4f, 0xed, 0xd1, 0x94, 0x56, 0x52, 0x3b,
	0xd6, 0x6e, 0x81, 0x08, 0x01, 0xdf, 0x87, 0xa2, 0x36, 0x57, 0x80, 0x6e, 0x43, 0x66, 0x60, 0x87,
	0x76, 0xc5, 0xda, 0x49, 0xef, 0xae, 0x55, 0x91, 0x9c, 0x4c, 0x83, 0x10, 0xfe, 0x1d, 0x7f, 0x07,
	0xd6, 0x6a, 0xd3, 0x70, 0xd8, 0x99, 0xbe, 0xe2, 0xc3, 0x90, 0x36, 0xac, 0x20, 0x21, 0x2e, 0x40,
	0xc7, 0x3e, 0x1b, 0xd3, 0x49, 0xc8, 0xac, 0x44, 0x90, 0xb1, 0x07, 0x03, 0x9f, 0x5b, 0x59, 0x20,
	0xfc, 0x37, 0xda, 0x81, 0x35, 0x9f, 0xf6, 0xa9, 0x73, 0x4a, 0xfd, 0x47, 0xf4, 0x4c, 0x1a, 0xa6,
	0xab, 0xd0, 0x1d, 0x28, 0x04, 0xb4, 0xef, 0x53, 0x36, 0x45, 0x25, 0xbd, 0x63, 0xed, 0xae, 0x55,
	0x4b, 0xd2, 0x26, 0xb1, 0x34, 0x89, 0xbf, 0xe3, 0xff, 0x58, 0xb0, 0x71, 0xe8, 0xcc, 0x1e, 0xb8,
	0x93, 0x63, 0xe7, 0xa4, 0xc6, 0x19, 0x43, 0xb7, 0x20, 0xd5, 0x3b, 0x93, 0xd4, 0x5c, 0x97, 0x23,
	0x23, 0x0c, 0x67, 0x27, 0xd5, 0x63, 0xcb, 0xe4, 0x04, 0x9e, 0xdb, 0xb0, 0x5e, 0xbd, 0x96, 0x44,
	0xd6, 0xfa, 0x21, 0x91, 0x10, 0x54, 0x85, 0xc2, 0xa9, 0x62, 0x43, 0xda, 0xb4, 0x80, 0xa7, 0xe6,
	0x0a, 0x89, 0x61, 0xa8, 0x02, 0x39, 0x9b, 0xd1, 0xf5, 0xba, 0x92, 0x61, 0x4e, 0x36, 0x57, 0x88,
	0x94, 0xd1, 0x5d, 0x00, 0x2f, 0x62, 0xa9, 0x92, 0xe5, 0xd3, 0xa9, 0x18, 0xc6, 0xf4, 0x35, 0x57,
	0x88, 0x06, 0xfb, 0x69, 0x5e, 0xc6, 0x12, 0x3f, 0x80, 0xd5, 0x7a, 0xb3, 0xcb, 0x19, 0x40, 0xdf,
	0x86, 0x34, 0xf5, 0x5e, 0x73, 0x5f, 0xe7, 0x58, 0x62, 0x5f, 0xd0, 0x16, 0xe4, 0x04, 0x59, 0xdc,
	0xea, 0x02, 0x91, 0x12, 0xa6, 0x50, 0x52, 0x93, 0x3c, 0xf4, 0xdd, 0xa9, 0x87, 0xb6, 0x61, 0x55,
	0x05, 0x41, 0xc6, 0x2b, 0x92, 0xc5, 0xb7, 0x70, 0xea, 0x4f, 0xa8, 0x2f, 0x03, 0x16, 0xc9, 0xe8,
	0x5b, 0x50, 0x60, 0x5e, 0xb9, 0xbe, 0xf3, 0x4b, 0x2a, 0xd7, 0x88, 0x15, 0x78, 0xca, 0xd2, 0xb6,
	0xe3, 0xbb, 0xee, 0x71, 0x6b, 0x72, 0xec, 0xb2, 0x7c, 0xf4, 0x98, 0x20, 0x57, 0x10, 0x02, 0x4b,
	0x09, 0x6f, 0xfa, 0x6a, 0xe4, 0xf4, 0x5b, 0x13, 0x6f, 0x1a, 0xaa, 0x94, 0xd0, 0x54, 0x68, 0x1f,
	0xf2, 0xc2, 0xee, 0x40, 0x92, 0xaf, 0xc2, 0x6a, 0xf8, 0x40, 0x14, 0x08, 0xf7, 0xa0, 0x7c, 0xe8,
	0xcc, 0xea, 0xd4, 0x73, 0x03, 0x27, 0x94, 0x21, 0xdc, 0x82, 0x9c, 0x3d, 0x76, 0xa7, 0x93, 0x90,
	0x2f, 0x9e, 0x21, 0x52, 0x42, 0xbb, 0xca, 0xa6, 0x54, 0x22, 0xac, 0x91, 0xd9, 0xd2, 0x4e, 0xfc,
	0x7b, 0x0b, 0x36, 0x0f, 0x9d, 0x59, 0x8f, 0x6d, 0xce, 0x63, 0xea, 0xcb, 0x79, 0x77, 0x21, 0xeb,
	0x70, 0xbb, 0xad, 0xe5, 0xe3, 0x39, 0x00, 0xed, 0x41, 0xce, 0x9d, 0x86, 0xca, 0xc5, 0xc5, 0x50,
	0x89, 0x60, 0xd8, 0xfe, 0xd0, 0x9e, 0x9c, 0xd0, 0xb9, 0x6c, 0xd3, 0xb0, 0x02, 0x81, 0xfb, 0xdc,
	0xac, 0x67, 0x4e, 0x38, 0x1c, 0xf8, 0xf6, 0xdb, 0x0b, 0xdc, 0xbd, 0x0f, 0xc5, 0xc0, 0xa3, 0x93,
	0xc1, 0x03, 0x77, 0x3c, 0x76, 0xc2, 0xa0, 0x92, 0x4a, 0x6c, 0xfa, 0x78, 0x7a, 0x03, 0x87, 0xbf,
	0x00, 0x74, 0xe8, 0xcc, 0x6a, 0x2a, 0xb2, 0x72, 0x95, 0x7b, 0xb0, 0xc6, 0x82, 0xad, 0x26, 0xb3,
	0x96, 0x4e, 0xa6, 0xc3, 0xf0, 0x5f, 0x52, 0x50, 0x60, 0x93, 0x89, 0x39, 0xd6, 0x21, 0x15, 0x8a,
	0xed, 0x9a, 0x25, 0xa9, 0xf0, 0x0c, 0x7d, 0x0a, 0xb9, 0x3e, 0xdf, 0x80, 0x92, 0xa6, 0xad, 0x05,
	0x1b, 0xd3, 0x71, 0x27, 0x6c, 0x3f, 0x09, 0x1c, 0xba, 0x0b, 0xf9, 0x81, 0x88, 0xb5, 0x64, 0xeb,
	0xfd, 0x78, 0x88, 0x91, 0x04, 0xcd, 0x15, 0xa2, 0x90, 0xe8, 0x3e, 0xac, 0xbe, 0x95, 0x94, 0xf1,
	0x0d, 0xba, 0x56, 0xad, 0xc4, 0xa3, 0x4c, 0x32, 0x9b, 0x2b, 0x24, 0xc2, 0xb2, 0x71, 0xa1, 0xcc,
	0x00, 0xb9, 0x75, 0xb5, 0x71, 0x66, 0x6e, 0xb0, 0x71, 0x0a, 0x8b, 0x7e, 0xac, 0x6f, 0x94, 0x1c,
	0x1f, 0x78, 0x23, 0x1e, 0x98, 0x20, 0x96, 0x55, 0x92, 0x08, 0x1d, 0x6f, 0xfd, 0x26, 0x20, 0xe9,
	0x4f, 0x47, 0xdb, 0x1d, 0xdb, 0xb0, 0x3a, 0x71, 0x43, 0xda, 0xb4, 0x83, 0xa1, 0xda, 0xba, 0x4a,
	0xd6, 0xd2, 0x40, 0x6c, 0x2b, 0x29, 0xe1, 0x3f, 0x59, 0x70, 0x4d, 0x39, 0xa9, 0xcf, 0x85, 0xa1,
	0x18, 0xfa, 0x94, 0x12, 0xd7, 0x0d, 0xb5, 0xf9, 0x0c, 0x1d, 0xba, 0x05, 0xa5, 0xc9, 0x74, 0x34,
	0x72, 0x8e, 0x1d, 0xea, 0x73, 0x90, 0x98, 0xda, 0x54, 0xa2, 0x7d, 0x40, 0x91, 0x07, 0x5d, 0x96,
	0x49, 0x1c, 0x2a, 0x2a, 0xc4, 0x82, 0x2f, 0x9a, 0xa5, 0x19, 0xc3, 0xd2, 0x7f, 0x5a, 0x50, 0x51,
	0xb4, 0x72, 0x1b, 0xdf, 0xc1, 0xdc, 0x60, 0xe8, 0xd0, 0xd1, 0xa0, 0xc6, 0x27, 0x7c, 0xae, 0xcc,
	0x35, 0x94, 0x49, 0xd4, 0x0b, 0x69, 0xa9, 0xa9, 0x5c, 0xe2, 0x54, 0x66, 0xa9, 0x53, 0x73, 0x54,
	0x65, 0x17, 0x50, 0x85, 0xff, 0x6a, 0xc1, 0x0d, 0xe5, 0xe2, 0x11, 0xdf, 0xff, 0x97, 0x0d, 0xef,
	0xd7, 0xe9, 0x5b, 0x15, 0x0a, 0x83, 0x61, 0x57, 0x96, 0xd9, 0xcc, 0x39, 0x65, 0x36, 0x86, 0xe1,
	0xbf, 0x59, 0x70, 0x3d, 0x4a, 0xdd, 0xab, 0x06, 0x66, 0x17, 0x36, 0x6c, 0x6d, 0x6c, 0xdc, 0x0e,
	0x24, 0xd5, 0xcc, 0x81, 0x48, 0xa5, 0xa5, 0x91, 0xa9, 0xbc, 0x6a, 0x70, 0xf0, 0x0e, 0x40, 0x63,
	0xe6, 0x04, 0xe1, 0x53, 0xb6, 0xb7, 0xb4, 0x76, 0xc6, 0xda, 0x5d, 0x95, 0xed, 0xcc, 0x6d, 0x28,
	0x8b, 0x9a, 0xd5, 0xf3, 0x29, 0x7d, 0x4c, 0xed, 0x53, 0x6a, 0xb6, 0x3d, 0x45, 0x89, 0xfb, 0x08,
	0x36, 0x62, 0x1c, 0xf3, 0x6f, 0x31, 0xec, 0x8f, 0x96, 0x8e, 0xeb, 0xf8, 0xee, 0x29, 0xe5, 0x67,
	0xab, 0x49, 0x52, 0x24, 0xb3, 0x6f, 0xfc, 0xe4, 0xe9, 0xd2, 0x90, 0xd7, 0xe9, 0x02, 0x89, 0x64,
	0x74, 0x13, 0xc0, 0x13, 0xd5, 0x75, 0x40, 0x67, 0x9c, 0x8f, 0x12, 0xd1, 0x34, 0xec, 0x5c, 0x9e,
	0x4c, 0xc7, 0xc2, 0x66, 0xce, 0x41, 0x89, 0xc4, 0x0a, 0x54, 0x81, 0xfc, 0x90, 0x8e, 0x3c, 0xea,
	0x07, 0x95, 0xec, 0x4e, 0x7a, 0xb7, 0x44, 0x94, 0x88, 0x1b, 0xb0, 0xc6, 0x8c, 0xe3, 0x45, 0x9b,
	0xbe, 0xb9, 0xc8, 0xbc, 0x11, 0xb5, 0x8f, 0xb5, 0x12, 0x10, 0xc9, 0xf8, 0x16, 0x14, 0x39, 0x67,
	0x4e, 0x10, 0x12, 0x1a, 0x78, 0xec, 0xe4, 0x67, 0x14, 0x04, 0xb2, 0x5b, 0x14, 0x02, 0x7e, 0x09,
	0xeb, 0x71, 0xbf, 0xd3, 0xb1, 0x1d, 0x1f, 0xdd, 0x86, 0x75, 0xd5, 0x76, 0xc8, 0x94, 0x10, 0xab,
	0x26, 0xb4, 0xac, 0x67, 0xe0, 0xc7, 0x53, 0xc7, 0x77, 0xb4, 0x36, 0x52, 0x53, 0xe1, 0x5b, 0x90,
	0x93, 0xd8, 0x22, 0x58, 0xcf, 0xe5, 0x34, 0xd6, 0x73, 0x26, 0xbd, 0x90, 0x78, 0xeb, 0x05, 0xfe,
	0x00, 0xf2, 0x1d, 0xdf, 0x39, 0x95, 0xdd, 0x6a, 0x94, 0x00, 0x71, 0x3f, 0x8b, 0xba, 0x43, 0xdb,
	0xa7, 0x5d, 0xd5, 0x70, 0x72, 0x23, 0x77, 0x21, 0xef, 0x89, 0x41, 0xf2, 0xd0, 0x5f, 0x57, 0x9d,
	0x97, 0xd0, 0x12, 0xf5, 0x19, 0x7d, 0xa2, 0xba, 0x5d, 0x67, 0x72, 0xd2, 0x79, 0x2d, 0x0f, 0xb4,
	0x44, 0x9f, 0xa6, 0x23, 0xf0, 0x6f, 0x2d, 0xd8, 0xac, 0xf5, 0xfb, 0x6c, 0x47, 0xb2, 0xc9, 0xec,
	0x3e, 0x6f, 0x25, 0x7f, 0x60, 0x34, 0x8c, 0x62, 0xcd, 0xf7, 0xe6, 0x1a, 0x46, 0x66, 0x9b, 0xde,
	0x32, 0xa2, 0x1a, 0xac, 0x07, 0x86, 0xf5, 0xd2, 0x00, 0x75, 0xee, 0xcc, 0xbb, 0x46, 0x12, 0x03,
	0xf0, 0xcf, 0x60, 0xf3, 0x99, 0x3d, 0x1a, 0xd1, 0xb0, 0x36, 0x18, 0xf8, 0xd2, 0x22, 0x54, 0x15,
	0xfe, 0xdb, 0x7d, 0x65, 0x8b, 0x3a, 0x01, 0xe7, 0x2c, 0x27, 0x0a, 0x18, 0xdd, 0x05, 0x52, 0xf1,
	0x5d, 0x80, 0x55, 0x0f, 0x10, 0x4b, 0xd5, 0xed, 0xd0, 0xbe, 0x74, 0xec, 0x31, 0x14, 0x45, 0xfb,
	0x69, 0x14, 0x0d, 0x43, 0xb7, 0xa8, 0xb6, 0xa4, 0x17, 0xd7, 0x96, 0x25, 0xe7, 0x0e, 0xdb, 0x60,
	0xac, 0xcc, 0x12, 0x7b, 0x32, 0x70, 0xc7, 0xb2, 0x6e, 0x6b, 0x1a, 0xfc, 0x12, 0x36, 0x1b, 0x93,
	0xbe, 0x3b, 0xa0, 0x03, 0xcd, 0x85, 0x0a, 0xe4, 0xa9, 0x50, 0x4a, 0xdb, 0x95, 0x88, 0xee, 0x40,
	0xde, 0xb7, 0xdf, 0x32, 0x90, 0x0c, 0x82, 0x6a, 0xf8, 0xe3, 0xd1, 0x44, 0x21, 0xf0, 0x2f, 0xf8,
	0xdc, 0xfe, 0x99, 0x17, 0x6a, 0x73, 0xc7, 0xad, 0xbc, 0xa5, 0xb7, 0xf2, 0xe8, 0xfb, 0x50, 0x14,
	0x28, 0x8d, 0x8e, 0xb9, 0x24, 0x33, 0x20, 0xf8, 0x57, 0x16, 0x6c, 0xd6, 0xe9, 0x65, 0x17, 0xa8,
	0x46, 0x0b, 0xc4, 0x9b, 0x6d, 0x3e, 0xe7, 0x0d, 0x8c, 0xba, 0x98, 0xa4, 0x97, 0x5d, 0x4c, 0xf0,
	0xef, 0x2c, 0xd8, 0x50, 0xbd, 0x0c, 0xab, 0x5a, 0xac, 0xd8, 0xf0, 0xc0, 0x8a, 0x50, 0xd7, 0xe2,
	0x7b, 0xa3, 0xa1, 0x63, 0x61, 0x11, 0x81, 0xae, 0xc5, 0xd9, 0xa4, 0x69, 0x8c, 0xa3, 0x82, 0x43,
	0x92, 0x47, 0x05, 0x47, 0x99, 0x41, 0x8f, 0xba, 0x63, 0xfc, 0xa5, 0x05, 0x65, 0xd3, 0xaa, 0xc0,
	0x3b, 0xf7, 0x00, 0xfe, 0xd8, 0xbc, 0x3d, 0x2c, 0x08, 0xaa, 0xbc, 0xe4, 0x5c, 0xf5, 0x0a, 0xf3,
	0xa5, 0x05, 0x25, 0x7e, 0x4a, 0xd8, 0xe1, 0x90, 0x9b, 0x72, 0xa9, 0x23, 0x75, 0x9b, 0x35, 0xa7,
	0x62, 0x90, 0x3a, 0x31, 0x94, 0xac, 0xd7, 0xfc, 0xb4, 0x51, 0xf3, 0xd9, 0x59, 0x71, 0x6a, 0x8f,
	0x9c, 0x01, 0x1f, 0x96, 0xe1, 0xdf, 0x62, 0x05, 0xde, 0x87, 0x72, 0xd4, 0x29, 0xaa, 0x48, 0x9d,
	0x43, 0x09, 0xfe, 0x7b, 0x0a, 0x36, 0x13, 0x03, 0x02, 0x0f, 0x7d, 0xd7, 0x48, 0xae, 0x85, 0x4c,
	0xa9, 0x7c, 0xfb, 0xff, 0xf4, 0x97, 0xba, 0xc9, 0x99, 0x44, 0x14, 0xb1, 0xbc, 0x14, 0xc9, 0x5c,
	0x96, 0xbb, 0xdd, 0xd0, 0x31, 0x92, 0xb8, 0x7c, 0x30, 0xb2, 0x4f, 0x78, 0xff, 0x5e, 0x22, 0xb1,
	0xc2, 0x48, 0x3b, 0x8e, 0xc8, 0x73, 0x84, 0xa9, 0x64, 0x2d, 0x56, 0x28, 0x4e, 0x7e, 0xf7, 0xb8,
	0xb2, 0x6a, 0xa4, 0x81, 0x11, 0x6b, 0x12, 0xc3, 0xf0, 0x01, 0x14, 0xf9, 0xab, 0xcb, 0x25, 0xa8,
	0xe7, 0xe1, 0x77, 0x09, 0xdf, 0x0c, 0x9c, 0xb4, 0x12, 0x89, 0x64, 0xfc, 0x55, 0x0a, 0x4a, 0xda,
	0x44, 0x81, 0x17, 0xe7, 0xae, 0x75, 0x41, 0xee, 0xde, 0x04, 0xb0, 0xa3, 0x87, 0x1f, 0xb5, 0xe7,
	0x62, 0x0d, 0x3b, 0x8c, 0xb9, 0x24, 0xd9, 0x13, 0x31, 0xd0, 0x55, 0xcc, 0x30, 0x26, 0xea, 0xe4,
	0x2b, 0x79, 0x49, 0x20, 0xb3, 0x97, 0x0a, 0x64, 0x2e, 0x41, 0x80, 0x11, 0xa4, 0x7c, 0x32, 0x48,
	0xef, 0x42, 0xff, 0x1f, 0x2c, 0x28, 0xab, 0xde, 0xfc, 0x52, 0x31, 0xd8, 0x82, 0x5c, 0xe8, 0x6a,
	0xc5, 0x49, 0x4a, 0x8c, 0xc4, 0xd0, 0x65, 0x01, 0xd0, 0xaa, 0x92, 0xa6, 0x49, 0x14, 0xb6, 0xcc,
	0x5c, 0x61, 0x8b, 0x4b, 0x56, 0xd6, 0x28, 0x59, 0x7b, 0x50, 0xec, 0x6a, 0x7d, 0xfc, 0xb9, 0xdd,
	0xce, 0x9f, 0xd3, 0x80, 0xcc, 0xbb, 0x14, 0x8f, 0xef, 0xa5, 0x13, 0xe1, 0x9b, 0x9d, 0xa9, 0xa5,
	0x06, 0xfa, 0x21, 0x14, 0xf5, 0x1b, 0x54, 0xa5, 0xc0, 0x87, 0x5d, 0x8b, 0x9a, 0xab, 0xf8, 0x13,
	0x31, 0x80, 0xcc, 0x29, 0x11, 0x3c, 0xd9, 0x5c, 0x80, 0x70, 0x4a, 0xd7, 0xe1, 0x7f, 0x5b, 0x70,
	0x2d, 0x71, 0x27, 0xbc, 0x5a, 0xac, 0x74, 0x56, 0x53, 0x09, 0x56, 0xaf, 0x78, 0x18, 0xcd, 0x79,
	0x9a, 0x79, 0x57, 0x4f, 0xb3, 0x0b, 0x3c, 0xfd, 0x87, 0x05, 0x9b, 0x89, 0x1d, 0x16, 0x78, 0xe8,
	0x73, 0x28, 0x85, 0x7a, 0xa6, 0x4a, 0x7f, 0x6f, 0x44, 0x41, 0x49, 0x66, 0x31, 0x31, 0xf1, 0xe8,
	0x33, 0x28, 0x86, 0xb6, 0x7f, 0x42, 0xc3, 0x23, 0xfd, 0xcd, 0x6d, 0x3b, 0x31, 0x5e, 0xa3, 0x96,
	0x18, 0x78, 0x36, 0x5e, 0xbc, 0xaf, 0xc9, 0xf1, 0xe9, 0x8b, 0xc7, 0xeb, 0x78, 0xfc, 0xeb, 0x14,
	0x6c, 0x18, 0xcc, 0x04, 0xc9, 0x9e, 0xd2, 0x4a, 0xf6, 0x94, 0xac, 0x03, 0x56, 0x4e, 0x48, 0x8c,
	0x88, 0x5c, 0x42, 0xcb, 0x68, 0x15, 0x6b, 0x49, 0x94, 0xd8, 0x5b, 0x86, 0x0e, 0x7d, 0x0c, 0x19,
	0x36, 0xf3, 0x79, 0xb1, 0xe2, 0x00, 0xf4, 0xc9, 0xdc, 0x83, 0xd6, 0x42, 0x70, 0xfc, 0x92, 0x75,
	0x27, 0x7a, 0x9b, 0xcc, 0x2d, 0x87, 0xab, 0xc7, 0xc9, 0xdf, 0xa4, 0x60, 0x43, 0xdc, 0x20, 0xf8,
	0xbd, 0x94, 0x3f, 0x03, 0x9f, 0x57, 0x3e, 0xf9, 0xbd, 0x55, 0x56, 0x13, 0xe9, 0x7d, 0xac, 0xb8,
	0x72, 0x69, 0xb9, 0x09, 0xe0, 0x04, 0x44, 0xbd, 0x5d, 0x67, 0xf8, 0xd5, 0x5e, 0xd3, 0xb0, 0x9e,
	0xc8, 0x16, 0x77, 0x16, 0x99, 0x9a, 0x4a, 0xe4, 0xfd, 0x4a, 0x68, 0x87, 0xd3, 0x80, 0x3b, 0x19,
	0xff, 0xc7, 0xd2, 0x76, 0x43, 0xda, 0xe5, 0x1f, 0x88, 0x04, 0x68, 0xad, 0x4d, 0xfe, 0x82, 0xd6,
	0x06, 0x3f, 0x53, 0x64, 0xd4, 0x5f, 0x1d, 0x3a, 0x82, 0x8c, 0x3d, 0xc8, 0x38, 0x93, 0x63, 0x57,
	0xe6, 0xb7, 0x7a, 0xec, 0x4c, 0x50, 0x46, 0x38, 0x86, 0x99, 0x1b, 0xce, 0xc4, 0x8d, 0x5f, 0x50,
	0xa3, 0x44, 0xfc, 0x2f, 0x4b, 0x5d, 0xd4, 0xf8, 0xbc, 0x03, 0x3a, 0xbb, 0xe8, 0x9c, 0xfa, 0x7a,
	0x89, 0x5e, 0x4e, 0xe4, 0x96, 0x41, 0x64, 0x36, 0x62, 0xed, 0x3a, 0x64, 0x05, 0x3e, 0xcf, 0xd5,
	0x42, 0x60, 0x56, 0x0d, 0x1c, 0x9f, 0x8a, 0x3f, 0x66, 0x56, 0xf9, 0x97, 0x58, 0x81, 0x3f, 0x37,
	0x72, 0x89, 0xd7, 0x89, 0xef, 0x41, 0x96, 0xb9, 0xa4, 0xde, 0x9e, 0x97, 0xf1, 0x27, 0x40, 0xf8,
	0x36, 0xac, 0x8b, 0x2f, 0x84, 0xbe, 0x61, 0xa7, 0x2a, 0x37, 0x83, 0xdd, 0x45, 0xa3, 0x87, 0x09,
	0x2e, 0x60, 0x02, 0x5b, 0x02, 0xd7, 0x98, 0xd8, 0xaf, 0x46, 0x54, 0x5e, 0x68, 0xd9, 0x16, 0x5e,
	0xf4, 0x9f, 0x16, 0x82, 0x8c, 0x13, 0x1c, 0x3d, 0xe2, 0x2c, 0xae, 0x12, 0xfe, 0x1b, 0x95, 0x21,
	0x3d, 0x0e, 0x4e, 0x24, 0x63, 0xec, 0x27, 0x6e, 0xc3, 0xfb, 0x8b, 0xe6, 0x64, 0x4e, 0xdc, 0x85,
	0xac, 0x4f, 0x03, 0x4f, 0x39, 0xf1, 0x81, 0xe1, 0x44, 0xd2, 0x04, 0x22, 0xb0, 0xb8, 0x0d, 0xf0,
	0xd8, 0xed, 0xdb, 0xa3, 0x43, 0x67, 0xd6, 0x9b, 0x31, 0x1b, 0x86, 0x71, 0x98, 0xf9, 0x6f, 0x46,
	0xfd, 0x90, 0x3a, 0x27, 0x43, 0x51, 0xfc, 0xd2, 0x44, 0x4a, 0xcc, 0x67, 0x27, 0x7a, 0x36, 0x4a,
	0x13, 0x21, 0xb0, 0x4e, 0xa7, 0xc8, 0xe7, 0x12, 0x8f, 0x36, 0x6f, 0xf4, 0x6c, 0xb3, 0x8c, 0x6c,
	0x8b, 0x16, 0x4b, 0x2d, 0x5c, 0x2c, 0xbd, 0x78, 0xb1, 0x8c, 0xb6, 0x58, 0x1c, 0xfd, 0xec, 0xd2,
	0xe8, 0xe7, 0x92, 0xd1, 0xbf, 0x07, 0x25, 0xcd, 0xbe, 0xc0, 0x43, 0x1f, 0x42, 0x3a, 0x9c, 0x29,
	0xd2, 0xd4, 0xae, 0x8b, 0x39, 0x21, 0xec, 0x2b, 0x3e, 0x84, 0x4d, 0xc9, 0x1d, 0x0b, 0x38, 0xa1,
	0xc1, 0x74, 0xf4, 0xbf, 0x44, 0xb1, 0x05, 0xd7, 0x08, 0x7d, 0x33, 0x97, 0x16, 0x55, 0xc8, 0xfb,
	0x7c, 0x6a, 0x65, 0x4e, 0x45, 0xbb, 0x1e, 0x1b, 0x6b, 0x13, 0x05, 0xdc, 0xfb, 0x39, 0x40, 0xfc,
	0x8f, 0x2d, 0x5a, 0x83, 0x7c, 0xbd, 0xd1, 0x39, 0xea, 0xb6, 0x7a, 0xe5, 0x15, 0x54, 0x84, 0xd5,
	0x67, 0xad, 0x5e, 0xb3, 0x4e, 0x6a, 0xcf, 0xca, 0x16, 0xda, 0x84, 0x52, 0x8f, 0xd4, 0xda, 0xdd,
	0x83, 0x06, 0x69, 0xb5, 0x3b, 0x4f, 0x7a, 0xe5, 0x14, 0x42, 0xb0, 0xae, 0x54, 0x47, 0x4f, 0x7a,
	0x4c, 0x97, 0x46, 0x25, 0x28, 0xd4, 0x9e, 0xf4, 0x9a, 0x47, 0xa4, 0xf5, 0xb2, 0x51, 0xce, 0xec,
	0xd5, 0x38, 0x5d, 0xf1, 0xbf, 0x9e, 0xec, 0x7b, 0xf4, 0x57, 0x65, 0x79, 0x05, 0xad, 0x03, 0xc4,
	0x7f, 0xe7, 0x8a, 0x55, 0xe4, 0x5b, 0x92, 0x54, 0xa5, 0xf6, 0x3e, 0xe4, 0x19, 0x11, 0xfd, 0xeb,
	0x82, 0xf2, 0x90, 0xae, 0x0d, 0x06, 0xe5, 0x15, 0x04, 0x90, 0xab, 0xd3, 0x11, 0x0d, 0x69, 0xd9,
	0xda, 0xfb, 0x11, 0x40, 0x5c, 0x14, 0x51, 0x01, 0xb2, 0x4f, 0xda, 0xf5, 0xc6, 0x41, 0x79, 0x85,
	0xfd, 0x7c, 0x5a, 0x7b, 0xdc, 0xaa, 0x97, 0x2d, 0x86, 0x3f, 0x20, 0x47, 0x2f, 0x1b, 0xed, 0x72,
	0x0a, 0xad, 0x42, 0xe6, 0x49, 0xb7, 0x51, 0x2f, 0xa7, 0xf7, 0x7e, 0x02, 0xef, 0x1d, 0x3a, 0x33,
	0xb5, 0x21, 0x83, 0xbe, 0x3d, 0x91, 0x93, 0xac, 0x42, 0xa6, 0x55, 0x7f, 0xdc, 0x10, 0x44, 0x74,
	0x1f, 0xd4, 0xda, 0xed, 0x56, 0xfb, 0x61, 0xd9, 0x62, 0xd2, 0x41, 0xab, 0xdd, 0xea, 0x36, 0x1b,
	0xf5, 0x72, 0xaa, 0xfa, 0x95, 0x05, 0x30, 0x76, 0x66, 0xea, 0x55, 0xea, 0x1e, 0x6c, 0x3c, 0x4c,
	0xcc, 0xa3, 0x1e, 0x1e, 0x08, 0x7d, 0xd3, 0x76, 0x46, 0xdb, 0xe5, 0x58, 0xec, 0x86, 0xbe, 0x33,
	0x39, 0xc1, 0x2b, 0xe8, 0x53, 0x58, 0x13, 0x43, 0x98, 0x0f, 0x97, 0x1a, 0xf1, 0x19, 0x94, 0x8c,
	0xf0, 0xa3, 0x8d, 0x18, 0xc4, 0x6b, 0xca, 0xf6, 0x76, 0xac, 0x48, 0x26, 0x0a, 0x5e, 0x79, 0x95,
	0xe3, 0xff, 0xe8, 0xdf, 0xfd, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0xb5, 0x08, 0xed, 0x06,
	0x20, 0x00, 0x00,
}

// 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(ctx context.Context, req *types.ReqNil) (*types.ReqString, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRescanStatus not implemented")
}
func (*UnimplementedMixPrivacyServer) RescanNotes(ctx context.Context, req *types.ReqNil) (*types.ReqString, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RescanNotes not implemented")
}
func (*UnimplementedMixPrivacyServer) EnablePrivacy(ctx context.Context, req *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: "mix.proto",
}
