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

package types

import (
	reflect "reflect"
	sync "sync"

	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

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

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

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

// Enum value maps for VerifyType.
var (
	VerifyType_name = map[int32]string{
		0: "DEPOSIT",
		1: "WITHDRAW",
		2: "TRANSFERINPUT",
		3: "TRANSFEROUTPUT",
		4: "AUTHORIZE",
	}
	VerifyType_value = map[string]int32{
		"DEPOSIT":        0,
		"WITHDRAW":       1,
		"TRANSFERINPUT":  2,
		"TRANSFEROUTPUT": 3,
		"AUTHORIZE":      4,
	}
)

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

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

func (VerifyType) Descriptor() protoreflect.EnumDescriptor {
	return file_mix_proto_enumTypes[0].Descriptor()
}

func (VerifyType) Type() protoreflect.EnumType {
	return &file_mix_proto_enumTypes[0]
}

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

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

type MixConfigType int32

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

// Enum value maps for MixConfigType.
var (
	MixConfigType_name = map[int32]string{
		0: "Verify",
		1: "Auth",
		2: "Payment",
	}
	MixConfigType_value = map[string]int32{
		"Verify":  0,
		"Auth":    1,
		"Payment": 2,
	}
)

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

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

func (MixConfigType) Descriptor() protoreflect.EnumDescriptor {
	return file_mix_proto_enumTypes[1].Descriptor()
}

func (MixConfigType) Type() protoreflect.EnumType {
	return &file_mix_proto_enumTypes[1]
}

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

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

type MixConfigAct int32

const (
	MixConfigAct_Add    MixConfigAct = 0
	MixConfigAct_Delete MixConfigAct = 1
)

// Enum value maps for MixConfigAct.
var (
	MixConfigAct_name = map[int32]string{
		0: "Add",
		1: "Delete",
	}
	MixConfigAct_value = map[string]int32{
		"Add":    0,
		"Delete": 1,
	}
)

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

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

func (MixConfigAct) Descriptor() protoreflect.EnumDescriptor {
	return file_mix_proto_enumTypes[2].Descriptor()
}

func (MixConfigAct) Type() protoreflect.EnumType {
	return &file_mix_proto_enumTypes[2]
}

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

// Deprecated: Use MixConfigAct.Descriptor instead.
func (MixConfigAct) EnumDescriptor() ([]byte, []int) {
	return file_mix_proto_rawDescGZIP(), []int{2}
}

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

	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"`
}

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

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

func (*ZkVerifyKey) ProtoMessage() {}

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

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

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

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

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

	Data []*ZkVerifyKey `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
}

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

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

func (*ZkVerifyKeys) ProtoMessage() {}

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

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

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

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

	Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
}

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

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

func (*AuthKeys) ProtoMessage() {}

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

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

func (x *AuthKeys) GetKeys() []string {
	if x != nil {
		return x.Keys
	}
	return nil
}

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

	//链上地址
	Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
	//支票收款地址
	NoteReceiveAddr string `protobuf:"bytes,2,opt,name=noteReceiveAddr,proto3" json:"noteReceiveAddr,omitempty"`
	//note秘密信息接收key
	SecretReceiveKey string `protobuf:"bytes,3,opt,name=secretReceiveKey,proto3" json:"secretReceiveKey,omitempty"`
}

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

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

func (*NoteAccountKey) ProtoMessage() {}

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

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

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

func (x *NoteAccountKey) GetNoteReceiveAddr() string {
	if x != nil {
		return x.NoteReceiveAddr
	}
	return ""
}

func (x *NoteAccountKey) GetSecretReceiveKey() string {
	if x != nil {
		return x.SecretReceiveKey
	}
	return ""
}

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

	AssetExec   string `protobuf:"bytes,1,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	AssetSymbol string `protobuf:"bytes,2,opt,name=assetSymbol,proto3" json:"assetSymbol,omitempty"`
}

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

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

func (*TokenTxFeeAddrReq) ProtoMessage() {}

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

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

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

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

//config verify parameter for proof
//当前authPk=mimc_hash(prikey),没有X,Y值
type MixConfigAction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	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 assignable to Value:
	//	*MixConfigAction_VerifyKey
	//	*MixConfigAction_AuthKey
	//	*MixConfigAction_NoteAccountKey
	Value isMixConfigAction_Value `protobuf_oneof:"value"`
}

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

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

func (*MixConfigAction) ProtoMessage() {}

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

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

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

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

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

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

func (x *MixConfigAction) GetAuthKey() string {
	if x, ok := x.GetValue().(*MixConfigAction_AuthKey); ok {
		return x.AuthKey
	}
	return ""
}

func (x *MixConfigAction) GetNoteAccountKey() *NoteAccountKey {
	if x, ok := x.GetValue().(*MixConfigAction_NoteAccountKey); ok {
		return x.NoteAccountKey
	}
	return nil
}

type isMixConfigAction_Value interface {
	isMixConfigAction_Value()
}

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

type MixConfigAction_AuthKey struct {
	AuthKey string `protobuf:"bytes,4,opt,name=authKey,proto3,oneof"`
}

type MixConfigAction_NoteAccountKey struct {
	NoteAccountKey *NoteAccountKey `protobuf:"bytes,5,opt,name=noteAccountKey,proto3,oneof"`
}

func (*MixConfigAction_VerifyKey) isMixConfigAction_Value() {}

func (*MixConfigAction_AuthKey) isMixConfigAction_Value() {}

func (*MixConfigAction_NoteAccountKey) isMixConfigAction_Value() {}

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

	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"`
}

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

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

func (*ZkProofInfo) ProtoMessage() {}

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

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

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

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

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

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

	AssetExec   string         `protobuf:"bytes,1,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	AssetSymbol string         `protobuf:"bytes,2,opt,name=assetSymbol,proto3" json:"assetSymbol,omitempty"`
	Proofs      []*ZkProofInfo `protobuf:"bytes,3,rep,name=proofs,proto3" json:"proofs,omitempty"`
}

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

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

func (*MixDepositAction) ProtoMessage() {}

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

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

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

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

func (x *MixDepositAction) GetProofs() []*ZkProofInfo {
	if x != nil {
		return x.Proofs
	}
	return nil
}

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

	AssetExec   string         `protobuf:"bytes,1,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	AssetSymbol string         `protobuf:"bytes,2,opt,name=assetSymbol,proto3" json:"assetSymbol,omitempty"`
	Inputs      []*ZkProofInfo `protobuf:"bytes,3,rep,name=inputs,proto3" json:"inputs,omitempty"`
	Output      *ZkProofInfo   `protobuf:"bytes,4,opt,name=output,proto3" json:"output,omitempty"`
	Change      *ZkProofInfo   `protobuf:"bytes,5,opt,name=change,proto3" json:"change,omitempty"`
}

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

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

func (*MixTransferAction) ProtoMessage() {}

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

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

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

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

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

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

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

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

	AssetExec   string         `protobuf:"bytes,1,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	AssetSymbol string         `protobuf:"bytes,2,opt,name=assetSymbol,proto3" json:"assetSymbol,omitempty"`
	Amount      uint64         `protobuf:"varint,3,opt,name=amount,proto3" json:"amount,omitempty"`
	Proofs      []*ZkProofInfo `protobuf:"bytes,4,rep,name=proofs,proto3" json:"proofs,omitempty"`
}

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

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

func (*MixWithdrawAction) ProtoMessage() {}

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

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

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

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

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

func (x *MixWithdrawAction) GetProofs() []*ZkProofInfo {
	if x != nil {
		return x.Proofs
	}
	return nil
}

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

	AssetExec   string       `protobuf:"bytes,1,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	AssetSymbol string       `protobuf:"bytes,2,opt,name=assetSymbol,proto3" json:"assetSymbol,omitempty"`
	ProofInfo   *ZkProofInfo `protobuf:"bytes,3,opt,name=proofInfo,proto3" json:"proofInfo,omitempty"`
}

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

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

func (*MixAuthorizeAction) ProtoMessage() {}

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

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

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

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

func (x *MixAuthorizeAction) GetProofInfo() *ZkProofInfo {
	if x != nil {
		return x.ProofInfo
	}
	return nil
}

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

	Ty int32 `protobuf:"varint,1,opt,name=ty,proto3" json:"ty,omitempty"`
	// Types that are assignable to Value:
	//	*MixAction_Config
	//	*MixAction_Deposit
	//	*MixAction_Withdraw
	//	*MixAction_Transfer
	//	*MixAction_Authorize
	Value isMixAction_Value `protobuf_oneof:"value"`
}

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

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

func (*MixAction) ProtoMessage() {}

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

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

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

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

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

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

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

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

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

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() {}

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

	Ty    VerifyType   `protobuf:"varint,1,opt,name=ty,proto3,enum=types.VerifyType" json:"ty,omitempty"`
	Proof *ZkProofInfo `protobuf:"bytes,2,opt,name=proof,proto3" json:"proof,omitempty"`
}

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

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

func (*VerifyProofInfo) ProtoMessage() {}

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

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

func (x *VerifyProofInfo) GetTy() VerifyType {
	if x != nil {
		return x.Ty
	}
	return VerifyType_DEPOSIT
}

func (x *VerifyProofInfo) GetProof() *ZkProofInfo {
	if x != nil {
		return x.Proof
	}
	return nil
}

//nullifer 存在value
type ExistValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Nullifier string `protobuf:"bytes,1,opt,name=nullifier,proto3" json:"nullifier,omitempty"`
	Exist     bool   `protobuf:"varint,2,opt,name=exist,proto3" json:"exist,omitempty"`
}

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

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

func (*ExistValue) ProtoMessage() {}

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

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

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

func (x *ExistValue) GetExist() bool {
	if x != nil {
		return x.Exist
	}
	return false
}

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

	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"`
}

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

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

func (*LocalMixTx) ProtoMessage() {}

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

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

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

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

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

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

	TxIndex   string `protobuf:"bytes,1,opt,name=txIndex,proto3" json:"txIndex,omitempty"` //primary direct query
	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"`
}

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

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

func (*MixTxListReq) ProtoMessage() {}

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

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

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

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

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

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

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

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

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

	Txs []*LocalMixTx `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"`
}

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

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

func (*MixTxListResp) ProtoMessage() {}

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

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

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

var File_mix_proto protoreflect.FileDescriptor

var file_mix_proto_rawDesc = []byte{
	0x0a, 0x09, 0x6d, 0x69, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x1a, 0x0f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x6b, 0x65, 0x79, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x22, 0x4a, 0x0a, 0x0b, 0x5a, 0x6b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b,
	0x65, 0x79, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,
	0x36, 0x0a, 0x0c, 0x5a, 0x6b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x73, 0x12,
	0x26, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65,
	0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1e, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x4b,
	0x65, 0x79, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x7a, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x65, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x28, 0x0a,
	0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x41, 0x64, 0x64, 0x72,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65,
	0x69, 0x76, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x72, 0x65,
	0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x10, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
	0x4b, 0x65, 0x79, 0x22, 0x53, 0x0a, 0x11, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x78, 0x46, 0x65,
	0x65, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65,
	0x74, 0x45, 0x78, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73,
	0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x53,
	0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x73, 0x73,
	0x65, 0x74, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0xfe, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x78,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x02,
	0x54, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x4d, 0x69, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x02,
	0x54, 0x79, 0x12, 0x2b, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x69, 0x78, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x41, 0x63, 0x74, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x32, 0x0a, 0x09, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x56, 0x65, 0x72,
	0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x09, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79,
	0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12,
	0x3f, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65,
	0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x4e, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x48, 0x00,
	0x52, 0x0e, 0x6e, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4b, 0x65, 0x79,
	0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x75, 0x0a, 0x0b, 0x5a, 0x6b, 0x50,
	0x72, 0x6f, 0x6f, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f,
	0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x20,
	0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74,
	0x12, 0x2e, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x48, 0x53, 0x65, 0x63, 0x72,
	0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73,
	0x22, 0x7e, 0x0a, 0x10, 0x4d, 0x69, 0x78, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x45, 0x78, 0x65,
	0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x45, 0x78,
	0x65, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x53, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x53, 0x79,
	0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x50,
	0x72, 0x6f, 0x6f, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73,
	0x22, 0xd7, 0x01, 0x0a, 0x11, 0x4d, 0x69, 0x78, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x45,
	0x78, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74,
	0x45, 0x78, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x53, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74,
	0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x2a, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73,
	0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a,
	0x6b, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75,
	0x74, 0x73, 0x12, 0x2a, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x50, 0x72, 0x6f,
	0x6f, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2a,
	0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x11, 0x4d,
	0x69, 0x78, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x1c, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x12, 0x20,
	0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x6f,
	0x66, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x5a, 0x6b, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x70, 0x72,
	0x6f, 0x6f, 0x66, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x12, 0x4d, 0x69, 0x78, 0x41, 0x75, 0x74, 0x68,
	0x6f, 0x72, 0x69, 0x7a, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x61,
	0x73, 0x73, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x61, 0x73, 0x73, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x73, 0x73,
	0x65, 0x74, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x61, 0x73, 0x73, 0x65, 0x74, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x70,
	0x72, 0x6f, 0x6f, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xb6, 0x02,
	0x0a, 0x09, 0x4d, 0x69, 0x78, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x74,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x06, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x4d, 0x69, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x33, 0x0a,
	0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x69, 0x78, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x69, 0x78,
	0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00,
	0x52, 0x08, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x36, 0x0a, 0x08, 0x74, 0x72,
	0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x69, 0x78, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66,
	0x65, 0x72, 0x12, 0x39, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x69,
	0x78, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x42, 0x07, 0x0a,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5e, 0x0a, 0x0f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79,
	0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x02, 0x74, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x65,
	0x72, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x02, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x05,
	0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x5a, 0x6b, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x40, 0x0a, 0x0a, 0x45, 0x78, 0x69, 0x73, 0x74, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69,
	0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x05, 0x65, 0x78, 0x69, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x0a, 0x4c, 0x6f, 0x63, 0x61,
	0x6c, 0x4d, 0x69, 0x78, 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67,
	0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x4d, 0x69, 0x78,
	0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x78, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x78, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12,
	0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x34, 0x0a, 0x0d, 0x4d, 0x69, 0x78,
	0x54, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x03, 0x74, 0x78,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4d, 0x69, 0x78, 0x54, 0x78, 0x52, 0x03, 0x74, 0x78, 0x73, 0x2a,
	0x5d, 0x0a, 0x0a, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a,
	0x07, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x57, 0x49,
	0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x52, 0x41, 0x4e,
	0x53, 0x46, 0x45, 0x52, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x54,
	0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x10, 0x03, 0x12,
	0x0d, 0x0a, 0x09, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x45, 0x10, 0x04, 0x2a, 0x32,
	0x0a, 0x0d, 0x4d, 0x69, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x0a, 0x0a, 0x06, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x41,
	0x75, 0x74, 0x68, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74,
	0x10, 0x02, 0x2a, 0x23, 0x0a, 0x0c, 0x4d, 0x69, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41,
	0x63, 0x74, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x64, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x01, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_mix_proto_rawDescOnce sync.Once
	file_mix_proto_rawDescData = file_mix_proto_rawDesc
)

func file_mix_proto_rawDescGZIP() []byte {
	file_mix_proto_rawDescOnce.Do(func() {
		file_mix_proto_rawDescData = protoimpl.X.CompressGZIP(file_mix_proto_rawDescData)
	})
	return file_mix_proto_rawDescData
}

var file_mix_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_mix_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_mix_proto_goTypes = []interface{}{
	(VerifyType)(0),            // 0: types.VerifyType
	(MixConfigType)(0),         // 1: types.MixConfigType
	(MixConfigAct)(0),          // 2: types.MixConfigAct
	(*ZkVerifyKey)(nil),        // 3: types.ZkVerifyKey
	(*ZkVerifyKeys)(nil),       // 4: types.ZkVerifyKeys
	(*AuthKeys)(nil),           // 5: types.AuthKeys
	(*NoteAccountKey)(nil),     // 6: types.NoteAccountKey
	(*TokenTxFeeAddrReq)(nil),  // 7: types.TokenTxFeeAddrReq
	(*MixConfigAction)(nil),    // 8: types.MixConfigAction
	(*ZkProofInfo)(nil),        // 9: types.ZkProofInfo
	(*MixDepositAction)(nil),   // 10: types.MixDepositAction
	(*MixTransferAction)(nil),  // 11: types.MixTransferAction
	(*MixWithdrawAction)(nil),  // 12: types.MixWithdrawAction
	(*MixAuthorizeAction)(nil), // 13: types.MixAuthorizeAction
	(*MixAction)(nil),          // 14: types.MixAction
	(*VerifyProofInfo)(nil),    // 15: types.VerifyProofInfo
	(*ExistValue)(nil),         // 16: types.ExistValue
	(*LocalMixTx)(nil),         // 17: types.LocalMixTx
	(*MixTxListReq)(nil),       // 18: types.MixTxListReq
	(*MixTxListResp)(nil),      // 19: types.MixTxListResp
	(*DHSecretGroup)(nil),      // 20: types.DHSecretGroup
}
var file_mix_proto_depIdxs = []int32{
	0,  // 0: types.ZkVerifyKey.type:type_name -> types.VerifyType
	3,  // 1: types.ZkVerifyKeys.data:type_name -> types.ZkVerifyKey
	1,  // 2: types.MixConfigAction.Ty:type_name -> types.MixConfigType
	2,  // 3: types.MixConfigAction.Action:type_name -> types.MixConfigAct
	3,  // 4: types.MixConfigAction.verifyKey:type_name -> types.ZkVerifyKey
	6,  // 5: types.MixConfigAction.noteAccountKey:type_name -> types.NoteAccountKey
	20, // 6: types.ZkProofInfo.secrets:type_name -> types.DHSecretGroup
	9,  // 7: types.MixDepositAction.proofs:type_name -> types.ZkProofInfo
	9,  // 8: types.MixTransferAction.inputs:type_name -> types.ZkProofInfo
	9,  // 9: types.MixTransferAction.output:type_name -> types.ZkProofInfo
	9,  // 10: types.MixTransferAction.change:type_name -> types.ZkProofInfo
	9,  // 11: types.MixWithdrawAction.proofs:type_name -> types.ZkProofInfo
	9,  // 12: types.MixAuthorizeAction.proofInfo:type_name -> types.ZkProofInfo
	8,  // 13: types.MixAction.config:type_name -> types.MixConfigAction
	10, // 14: types.MixAction.deposit:type_name -> types.MixDepositAction
	12, // 15: types.MixAction.withdraw:type_name -> types.MixWithdrawAction
	11, // 16: types.MixAction.transfer:type_name -> types.MixTransferAction
	13, // 17: types.MixAction.authorize:type_name -> types.MixAuthorizeAction
	0,  // 18: types.VerifyProofInfo.ty:type_name -> types.VerifyType
	9,  // 19: types.VerifyProofInfo.proof:type_name -> types.ZkProofInfo
	17, // 20: types.MixTxListResp.txs:type_name -> types.LocalMixTx
	21, // [21:21] is the sub-list for method output_type
	21, // [21:21] is the sub-list for method input_type
	21, // [21:21] is the sub-list for extension type_name
	21, // [21:21] is the sub-list for extension extendee
	0,  // [0:21] is the sub-list for field type_name
}

func init() { file_mix_proto_init() }
func file_mix_proto_init() {
	if File_mix_proto != nil {
		return
	}
	file_cryptokey_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_mix_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkVerifyKey); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkVerifyKeys); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AuthKeys); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NoteAccountKey); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TokenTxFeeAddrReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MixConfigAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZkProofInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MixDepositAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MixTransferAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MixWithdrawAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MixAuthorizeAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MixAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VerifyProofInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExistValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LocalMixTx); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MixTxListReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_mix_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MixTxListResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_mix_proto_msgTypes[5].OneofWrappers = []interface{}{
		(*MixConfigAction_VerifyKey)(nil),
		(*MixConfigAction_AuthKey)(nil),
		(*MixConfigAction_NoteAccountKey)(nil),
	}
	file_mix_proto_msgTypes[11].OneofWrappers = []interface{}{
		(*MixAction_Config)(nil),
		(*MixAction_Deposit)(nil),
		(*MixAction_Withdraw)(nil),
		(*MixAction_Transfer)(nil),
		(*MixAction_Authorize)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_mix_proto_rawDesc,
			NumEnums:      3,
			NumMessages:   17,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_mix_proto_goTypes,
		DependencyIndexes: file_mix_proto_depIdxs,
		EnumInfos:         file_mix_proto_enumTypes,
		MessageInfos:      file_mix_proto_msgTypes,
	}.Build()
	File_mix_proto = out.File
	file_mix_proto_rawDesc = nil
	file_mix_proto_goTypes = nil
	file_mix_proto_depIdxs = nil
}
