// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.23.0
// 	protoc        v3.6.0
// source: multisig.proto

package types

import (
	types "github.com/33cn/chain33/types"
	proto "github.com/golang/protobuf/proto"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

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)
)

// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4

//////////////////////////////////////////////////////////////////////////////
// message for multisig start/////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//多重签名账户的状态信息，存在在statedb中，通过多重签名账户作为key值
// createaddr: 创建多重签名地址的创建者账户
// multisigaddr: 多重签名地址
// owners: 可以操作此多重签名地址的owner账户列表
// DailyLimit: 不同资产的每日限额，通过symbol来区分，本连的原生币，以及跨链过来的其他链的原生币
// txCount:记录此多重签名地址上提交的withdraw交易数
// requiredweight:确认一笔withdraw交易需要的权重。
type MultiSig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CreateAddr     string        `protobuf:"bytes,1,opt,name=createAddr,proto3" json:"createAddr,omitempty"`
	MultiSigAddr   string        `protobuf:"bytes,2,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	Owners         []*Owner      `protobuf:"bytes,3,rep,name=owners,proto3" json:"owners,omitempty"`
	DailyLimits    []*DailyLimit `protobuf:"bytes,4,rep,name=dailyLimits,proto3" json:"dailyLimits,omitempty"`
	TxCount        uint64        `protobuf:"varint,5,opt,name=txCount,proto3" json:"txCount,omitempty"`
	RequiredWeight uint64        `protobuf:"varint,6,opt,name=requiredWeight,proto3" json:"requiredWeight,omitempty"`
}

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

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

func (*MultiSig) ProtoMessage() {}

func (x *MultiSig) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 MultiSig.ProtoReflect.Descriptor instead.
func (*MultiSig) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{0}
}

func (x *MultiSig) GetCreateAddr() string {
	if x != nil {
		return x.CreateAddr
	}
	return ""
}

func (x *MultiSig) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *MultiSig) GetOwners() []*Owner {
	if x != nil {
		return x.Owners
	}
	return nil
}

func (x *MultiSig) GetDailyLimits() []*DailyLimit {
	if x != nil {
		return x.DailyLimits
	}
	return nil
}

func (x *MultiSig) GetTxCount() uint64 {
	if x != nil {
		return x.TxCount
	}
	return 0
}

func (x *MultiSig) GetRequiredWeight() uint64 {
	if x != nil {
		return x.RequiredWeight
	}
	return 0
}

//这个地址是否已经确认某个交易
type ConfirmedOwner struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ConfirmedOwner []*Owner `protobuf:"bytes,1,rep,name=confirmedOwner,proto3" json:"confirmedOwner,omitempty"`
}

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

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

func (*ConfirmedOwner) ProtoMessage() {}

func (x *ConfirmedOwner) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 ConfirmedOwner.ProtoReflect.Descriptor instead.
func (*ConfirmedOwner) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{1}
}

func (x *ConfirmedOwner) GetConfirmedOwner() []*Owner {
	if x != nil {
		return x.ConfirmedOwner
	}
	return nil
}

//记录提交的交易详情，在满足确认条件后执行data中的交易
// txHash:用于存贮提交的确认交易。存贮在localdb中，通过txhash可以获取
type MultiSigTx struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Txid           uint64   `protobuf:"varint,1,opt,name=txid,proto3" json:"txid,omitempty"`
	TxHash         string   `protobuf:"bytes,2,opt,name=txHash,proto3" json:"txHash,omitempty"`
	Executed       bool     `protobuf:"varint,3,opt,name=executed,proto3" json:"executed,omitempty"`
	TxType         uint64   `protobuf:"varint,4,opt,name=txType,proto3" json:"txType,omitempty"`
	MultiSigAddr   string   `protobuf:"bytes,5,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	ConfirmedOwner []*Owner `protobuf:"bytes,6,rep,name=confirmedOwner,proto3" json:"confirmedOwner,omitempty"`
}

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

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

func (*MultiSigTx) ProtoMessage() {}

func (x *MultiSigTx) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 MultiSigTx.ProtoReflect.Descriptor instead.
func (*MultiSigTx) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{2}
}

func (x *MultiSigTx) GetTxid() uint64 {
	if x != nil {
		return x.Txid
	}
	return 0
}

func (x *MultiSigTx) GetTxHash() string {
	if x != nil {
		return x.TxHash
	}
	return ""
}

func (x *MultiSigTx) GetExecuted() bool {
	if x != nil {
		return x.Executed
	}
	return false
}

func (x *MultiSigTx) GetTxType() uint64 {
	if x != nil {
		return x.TxType
	}
	return 0
}

func (x *MultiSigTx) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *MultiSigTx) GetConfirmedOwner() []*Owner {
	if x != nil {
		return x.ConfirmedOwner
	}
	return nil
}

// owner 结构体：owner账户地址，以及权重
type Owner struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OwnerAddr string `protobuf:"bytes,1,opt,name=ownerAddr,proto3" json:"ownerAddr,omitempty"`
	Weight    uint64 `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"`
}

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

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

func (*Owner) ProtoMessage() {}

func (x *Owner) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 Owner.ProtoReflect.Descriptor instead.
func (*Owner) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{3}
}

func (x *Owner) GetOwnerAddr() string {
	if x != nil {
		return x.OwnerAddr
	}
	return ""
}

func (x *Owner) GetWeight() uint64 {
	if x != nil {
		return x.Weight
	}
	return 0
}

//每日资产限额，不同的资产价格不一致，需要设置各自的每日限额。没有设置或者限额是0时，表示不能取币
// spentToday今天已经花费的额度。用于和dailyLimit做对比，超过每日限额时需要多重签名
// lastDay记录当天开始的时间戳，新的一天需要重置spentToday为初始值0，并修改lastDay的时间戳
type DailyLimit struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol     string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Execer     string `protobuf:"bytes,2,opt,name=execer,proto3" json:"execer,omitempty"`
	DailyLimit uint64 `protobuf:"varint,3,opt,name=dailyLimit,proto3" json:"dailyLimit,omitempty"`
	SpentToday uint64 `protobuf:"varint,4,opt,name=spentToday,proto3" json:"spentToday,omitempty"`
	LastDay    int64  `protobuf:"varint,5,opt,name=lastDay,proto3" json:"lastDay,omitempty"`
}

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

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

func (*DailyLimit) ProtoMessage() {}

func (x *DailyLimit) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 DailyLimit.ProtoReflect.Descriptor instead.
func (*DailyLimit) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{4}
}

func (x *DailyLimit) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *DailyLimit) GetExecer() string {
	if x != nil {
		return x.Execer
	}
	return ""
}

func (x *DailyLimit) GetDailyLimit() uint64 {
	if x != nil {
		return x.DailyLimit
	}
	return 0
}

func (x *DailyLimit) GetSpentToday() uint64 {
	if x != nil {
		return x.SpentToday
	}
	return 0
}

func (x *DailyLimit) GetLastDay() int64 {
	if x != nil {
		return x.LastDay
	}
	return 0
}

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

	Symbol     string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Execer     string `protobuf:"bytes,2,opt,name=execer,proto3" json:"execer,omitempty"`
	DailyLimit uint64 `protobuf:"varint,3,opt,name=dailyLimit,proto3" json:"dailyLimit,omitempty"`
}

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

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

func (*SymbolDailyLimit) ProtoMessage() {}

func (x *SymbolDailyLimit) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 SymbolDailyLimit.ProtoReflect.Descriptor instead.
func (*SymbolDailyLimit) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{5}
}

func (x *SymbolDailyLimit) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *SymbolDailyLimit) GetExecer() string {
	if x != nil {
		return x.Execer
	}
	return ""
}

func (x *SymbolDailyLimit) GetDailyLimit() uint64 {
	if x != nil {
		return x.DailyLimit
	}
	return 0
}

// MultiSig 所有可能的交易action
type MultiSigAction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Value:
	//	*MultiSigAction_MultiSigAccCreate
	//	*MultiSigAction_MultiSigOwnerOperate
	//	*MultiSigAction_MultiSigAccOperate
	//	*MultiSigAction_MultiSigConfirmTx
	//	*MultiSigAction_MultiSigExecTransferTo
	//	*MultiSigAction_MultiSigExecTransferFrom
	Value isMultiSigAction_Value `protobuf_oneof:"value"`
	Ty    int32                  `protobuf:"varint,7,opt,name=Ty,proto3" json:"Ty,omitempty"`
}

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

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

func (*MultiSigAction) ProtoMessage() {}

func (x *MultiSigAction) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 MultiSigAction.ProtoReflect.Descriptor instead.
func (*MultiSigAction) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{6}
}

func (m *MultiSigAction) GetValue() isMultiSigAction_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *MultiSigAction) GetMultiSigAccCreate() *MultiSigAccCreate {
	if x, ok := x.GetValue().(*MultiSigAction_MultiSigAccCreate); ok {
		return x.MultiSigAccCreate
	}
	return nil
}

func (x *MultiSigAction) GetMultiSigOwnerOperate() *MultiSigOwnerOperate {
	if x, ok := x.GetValue().(*MultiSigAction_MultiSigOwnerOperate); ok {
		return x.MultiSigOwnerOperate
	}
	return nil
}

func (x *MultiSigAction) GetMultiSigAccOperate() *MultiSigAccOperate {
	if x, ok := x.GetValue().(*MultiSigAction_MultiSigAccOperate); ok {
		return x.MultiSigAccOperate
	}
	return nil
}

func (x *MultiSigAction) GetMultiSigConfirmTx() *MultiSigConfirmTx {
	if x, ok := x.GetValue().(*MultiSigAction_MultiSigConfirmTx); ok {
		return x.MultiSigConfirmTx
	}
	return nil
}

func (x *MultiSigAction) GetMultiSigExecTransferTo() *MultiSigExecTransferTo {
	if x, ok := x.GetValue().(*MultiSigAction_MultiSigExecTransferTo); ok {
		return x.MultiSigExecTransferTo
	}
	return nil
}

func (x *MultiSigAction) GetMultiSigExecTransferFrom() *MultiSigExecTransferFrom {
	if x, ok := x.GetValue().(*MultiSigAction_MultiSigExecTransferFrom); ok {
		return x.MultiSigExecTransferFrom
	}
	return nil
}

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

type isMultiSigAction_Value interface {
	isMultiSigAction_Value()
}

type MultiSigAction_MultiSigAccCreate struct {
	MultiSigAccCreate *MultiSigAccCreate `protobuf:"bytes,1,opt,name=multiSigAccCreate,proto3,oneof"`
}

type MultiSigAction_MultiSigOwnerOperate struct {
	MultiSigOwnerOperate *MultiSigOwnerOperate `protobuf:"bytes,2,opt,name=multiSigOwnerOperate,proto3,oneof"`
}

type MultiSigAction_MultiSigAccOperate struct {
	MultiSigAccOperate *MultiSigAccOperate `protobuf:"bytes,3,opt,name=multiSigAccOperate,proto3,oneof"`
}

type MultiSigAction_MultiSigConfirmTx struct {
	MultiSigConfirmTx *MultiSigConfirmTx `protobuf:"bytes,4,opt,name=multiSigConfirmTx,proto3,oneof"` //确认或者撤销已确认
}

type MultiSigAction_MultiSigExecTransferTo struct {
	MultiSigExecTransferTo *MultiSigExecTransferTo `protobuf:"bytes,5,opt,name=multiSigExecTransferTo,proto3,oneof"` //合约中外部账户转账到多重签名账户，Addr --->multiSigAddr
}

type MultiSigAction_MultiSigExecTransferFrom struct {
	MultiSigExecTransferFrom *MultiSigExecTransferFrom `protobuf:"bytes,6,opt,name=multiSigExecTransferFrom,proto3,oneof"` //合约中多重签名账户转账到外部账户，multiSigAddr--->Addr
}

func (*MultiSigAction_MultiSigAccCreate) isMultiSigAction_Value() {}

func (*MultiSigAction_MultiSigOwnerOperate) isMultiSigAction_Value() {}

func (*MultiSigAction_MultiSigAccOperate) isMultiSigAction_Value() {}

func (*MultiSigAction_MultiSigConfirmTx) isMultiSigAction_Value() {}

func (*MultiSigAction_MultiSigExecTransferTo) isMultiSigAction_Value() {}

func (*MultiSigAction_MultiSigExecTransferFrom) isMultiSigAction_Value() {}

//创建多重签名账户时需要的信息：创建时最少初始化两个owners，资产的每日限额初始时可以不设置
type MultiSigAccCreate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Owners         []*Owner          `protobuf:"bytes,1,rep,name=owners,proto3" json:"owners,omitempty"`
	RequiredWeight uint64            `protobuf:"varint,2,opt,name=requiredWeight,proto3" json:"requiredWeight,omitempty"`
	DailyLimit     *SymbolDailyLimit `protobuf:"bytes,3,opt,name=dailyLimit,proto3" json:"dailyLimit,omitempty"`
}

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

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

func (*MultiSigAccCreate) ProtoMessage() {}

func (x *MultiSigAccCreate) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 MultiSigAccCreate.ProtoReflect.Descriptor instead.
func (*MultiSigAccCreate) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{7}
}

func (x *MultiSigAccCreate) GetOwners() []*Owner {
	if x != nil {
		return x.Owners
	}
	return nil
}

func (x *MultiSigAccCreate) GetRequiredWeight() uint64 {
	if x != nil {
		return x.RequiredWeight
	}
	return 0
}

func (x *MultiSigAccCreate) GetDailyLimit() *SymbolDailyLimit {
	if x != nil {
		return x.DailyLimit
	}
	return nil
}

//对MultiSigAccount账户owner的操作：add/del/replace/modify
type MultiSigOwnerOperate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAccAddr string `protobuf:"bytes,1,opt,name=multiSigAccAddr,proto3" json:"multiSigAccAddr,omitempty"`
	OldOwner        string `protobuf:"bytes,2,opt,name=oldOwner,proto3" json:"oldOwner,omitempty"`
	NewOwner        string `protobuf:"bytes,3,opt,name=newOwner,proto3" json:"newOwner,omitempty"`
	NewWeight       uint64 `protobuf:"varint,4,opt,name=newWeight,proto3" json:"newWeight,omitempty"`
	OperateFlag     uint64 `protobuf:"varint,5,opt,name=operateFlag,proto3" json:"operateFlag,omitempty"`
}

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

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

func (*MultiSigOwnerOperate) ProtoMessage() {}

func (x *MultiSigOwnerOperate) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 MultiSigOwnerOperate.ProtoReflect.Descriptor instead.
func (*MultiSigOwnerOperate) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{8}
}

func (x *MultiSigOwnerOperate) GetMultiSigAccAddr() string {
	if x != nil {
		return x.MultiSigAccAddr
	}
	return ""
}

func (x *MultiSigOwnerOperate) GetOldOwner() string {
	if x != nil {
		return x.OldOwner
	}
	return ""
}

func (x *MultiSigOwnerOperate) GetNewOwner() string {
	if x != nil {
		return x.NewOwner
	}
	return ""
}

func (x *MultiSigOwnerOperate) GetNewWeight() uint64 {
	if x != nil {
		return x.NewWeight
	}
	return 0
}

func (x *MultiSigOwnerOperate) GetOperateFlag() uint64 {
	if x != nil {
		return x.OperateFlag
	}
	return 0
}

//对MultiSigAccount账户的操作：modify/add:SymbolDailyLimit,requiredweight
//修改或者添加每日限额，或者请求权重的值。
type MultiSigAccOperate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAccAddr   string            `protobuf:"bytes,1,opt,name=multiSigAccAddr,proto3" json:"multiSigAccAddr,omitempty"`
	DailyLimit        *SymbolDailyLimit `protobuf:"bytes,2,opt,name=dailyLimit,proto3" json:"dailyLimit,omitempty"`
	NewRequiredWeight uint64            `protobuf:"varint,3,opt,name=newRequiredWeight,proto3" json:"newRequiredWeight,omitempty"`
	OperateFlag       bool              `protobuf:"varint,4,opt,name=operateFlag,proto3" json:"operateFlag,omitempty"`
}

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

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

func (*MultiSigAccOperate) ProtoMessage() {}

func (x *MultiSigAccOperate) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 MultiSigAccOperate.ProtoReflect.Descriptor instead.
func (*MultiSigAccOperate) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{9}
}

func (x *MultiSigAccOperate) GetMultiSigAccAddr() string {
	if x != nil {
		return x.MultiSigAccAddr
	}
	return ""
}

func (x *MultiSigAccOperate) GetDailyLimit() *SymbolDailyLimit {
	if x != nil {
		return x.DailyLimit
	}
	return nil
}

func (x *MultiSigAccOperate) GetNewRequiredWeight() uint64 {
	if x != nil {
		return x.NewRequiredWeight
	}
	return 0
}

func (x *MultiSigAccOperate) GetOperateFlag() bool {
	if x != nil {
		return x.OperateFlag
	}
	return false
}

//多重签名合约中账户之间转币操作:增加一个from的字段实现MultiSigAddr--->addr之间的转账
//需要判断from地址是否是多重签名地址
//将MultiSig合约中from地址上execname+symbol的资产转移到to地址
type MultiSigExecTransferFrom struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol   string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Amount   int64  `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
	Note     string `protobuf:"bytes,3,opt,name=note,proto3" json:"note,omitempty"`
	Execname string `protobuf:"bytes,4,opt,name=execname,proto3" json:"execname,omitempty"`
	To       string `protobuf:"bytes,5,opt,name=to,proto3" json:"to,omitempty"`
	From     string `protobuf:"bytes,6,opt,name=from,proto3" json:"from,omitempty"`
}

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

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

func (*MultiSigExecTransferFrom) ProtoMessage() {}

func (x *MultiSigExecTransferFrom) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 MultiSigExecTransferFrom.ProtoReflect.Descriptor instead.
func (*MultiSigExecTransferFrom) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{10}
}

func (x *MultiSigExecTransferFrom) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

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

func (x *MultiSigExecTransferFrom) GetNote() string {
	if x != nil {
		return x.Note
	}
	return ""
}

func (x *MultiSigExecTransferFrom) GetExecname() string {
	if x != nil {
		return x.Execname
	}
	return ""
}

func (x *MultiSigExecTransferFrom) GetTo() string {
	if x != nil {
		return x.To
	}
	return ""
}

func (x *MultiSigExecTransferFrom) GetFrom() string {
	if x != nil {
		return x.From
	}
	return ""
}

//多重签名合约中账户之间转币操作: addr --->MultiSigAddr之间的转账
//需要判断to地址是否是多重签名地址
//将MultiSig合约中签名地址上execname+symbol的资产转移到to地址
type MultiSigExecTransferTo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol   string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Amount   int64  `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
	Note     string `protobuf:"bytes,3,opt,name=note,proto3" json:"note,omitempty"`
	Execname string `protobuf:"bytes,4,opt,name=execname,proto3" json:"execname,omitempty"`
	To       string `protobuf:"bytes,5,opt,name=to,proto3" json:"to,omitempty"`
}

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

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

func (*MultiSigExecTransferTo) ProtoMessage() {}

func (x *MultiSigExecTransferTo) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 MultiSigExecTransferTo.ProtoReflect.Descriptor instead.
func (*MultiSigExecTransferTo) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{11}
}

func (x *MultiSigExecTransferTo) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

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

func (x *MultiSigExecTransferTo) GetNote() string {
	if x != nil {
		return x.Note
	}
	return ""
}

func (x *MultiSigExecTransferTo) GetExecname() string {
	if x != nil {
		return x.Execname
	}
	return ""
}

func (x *MultiSigExecTransferTo) GetTo() string {
	if x != nil {
		return x.To
	}
	return ""
}

//多重签名账户withdraw交易的确认或者取消确认
// multisigaccaddr:多重签名账户地址
// transactionid:多重签名账户上的withdraw交易的内部id
type MultiSigConfirmTx struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAccAddr string `protobuf:"bytes,1,opt,name=multiSigAccAddr,proto3" json:"multiSigAccAddr,omitempty"`
	TxId            uint64 `protobuf:"varint,2,opt,name=txId,proto3" json:"txId,omitempty"`
	ConfirmOrRevoke bool   `protobuf:"varint,3,opt,name=confirmOrRevoke,proto3" json:"confirmOrRevoke,omitempty"`
}

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

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

func (*MultiSigConfirmTx) ProtoMessage() {}

func (x *MultiSigConfirmTx) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 MultiSigConfirmTx.ProtoReflect.Descriptor instead.
func (*MultiSigConfirmTx) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{12}
}

func (x *MultiSigConfirmTx) GetMultiSigAccAddr() string {
	if x != nil {
		return x.MultiSigAccAddr
	}
	return ""
}

func (x *MultiSigConfirmTx) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

func (x *MultiSigConfirmTx) GetConfirmOrRevoke() bool {
	if x != nil {
		return x.ConfirmOrRevoke
	}
	return false
}

//获取所有多重签名账号
type ReqMultiSigAccs struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"`
	End   int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`
}

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

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

func (*ReqMultiSigAccs) ProtoMessage() {}

func (x *ReqMultiSigAccs) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 ReqMultiSigAccs.ProtoReflect.Descriptor instead.
func (*ReqMultiSigAccs) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{13}
}

func (x *ReqMultiSigAccs) GetStart() int64 {
	if x != nil {
		return x.Start
	}
	return 0
}

func (x *ReqMultiSigAccs) GetEnd() int64 {
	if x != nil {
		return x.End
	}
	return 0
}

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

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

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

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

func (*ReplyMultiSigAccs) ProtoMessage() {}

func (x *ReplyMultiSigAccs) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 ReplyMultiSigAccs.ProtoReflect.Descriptor instead.
func (*ReplyMultiSigAccs) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{14}
}

func (x *ReplyMultiSigAccs) GetAddress() []string {
	if x != nil {
		return x.Address
	}
	return nil
}

//获取指定多重签名账号的状态信息
type ReqMultiSigAccInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAccAddr string `protobuf:"bytes,1,opt,name=multiSigAccAddr,proto3" json:"multiSigAccAddr,omitempty"`
}

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

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

func (*ReqMultiSigAccInfo) ProtoMessage() {}

func (x *ReqMultiSigAccInfo) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 ReqMultiSigAccInfo.ProtoReflect.Descriptor instead.
func (*ReqMultiSigAccInfo) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{15}
}

func (x *ReqMultiSigAccInfo) GetMultiSigAccAddr() string {
	if x != nil {
		return x.MultiSigAccAddr
	}
	return ""
}

//指定多重签名账号的状态信息
type ReplyMultiSigAccInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CreateAddr     string        `protobuf:"bytes,1,opt,name=createAddr,proto3" json:"createAddr,omitempty"`
	MultiSigAddr   string        `protobuf:"bytes,2,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	Owners         []*Owner      `protobuf:"bytes,3,rep,name=owners,proto3" json:"owners,omitempty"`
	DailyLimits    []*DailyLimit `protobuf:"bytes,4,rep,name=dailyLimits,proto3" json:"dailyLimits,omitempty"`
	TxCount        uint64        `protobuf:"varint,5,opt,name=txCount,proto3" json:"txCount,omitempty"`
	RequiredWeight uint64        `protobuf:"varint,6,opt,name=requiredWeight,proto3" json:"requiredWeight,omitempty"`
}

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

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

func (*ReplyMultiSigAccInfo) ProtoMessage() {}

func (x *ReplyMultiSigAccInfo) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_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 ReplyMultiSigAccInfo.ProtoReflect.Descriptor instead.
func (*ReplyMultiSigAccInfo) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{16}
}

func (x *ReplyMultiSigAccInfo) GetCreateAddr() string {
	if x != nil {
		return x.CreateAddr
	}
	return ""
}

func (x *ReplyMultiSigAccInfo) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *ReplyMultiSigAccInfo) GetOwners() []*Owner {
	if x != nil {
		return x.Owners
	}
	return nil
}

func (x *ReplyMultiSigAccInfo) GetDailyLimits() []*DailyLimit {
	if x != nil {
		return x.DailyLimits
	}
	return nil
}

func (x *ReplyMultiSigAccInfo) GetTxCount() uint64 {
	if x != nil {
		return x.TxCount
	}
	return 0
}

func (x *ReplyMultiSigAccInfo) GetRequiredWeight() uint64 {
	if x != nil {
		return x.RequiredWeight
	}
	return 0
}

//获取txids设置过滤条件和区间，pending, executed
type ReqMultiSigTxids struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAddr string `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	FromTxId     uint64 `protobuf:"varint,2,opt,name=fromTxId,proto3" json:"fromTxId,omitempty"`
	ToTxId       uint64 `protobuf:"varint,3,opt,name=toTxId,proto3" json:"toTxId,omitempty"`
	Pending      bool   `protobuf:"varint,4,opt,name=pending,proto3" json:"pending,omitempty"`
	Executed     bool   `protobuf:"varint,5,opt,name=executed,proto3" json:"executed,omitempty"`
}

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

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

func (*ReqMultiSigTxids) ProtoMessage() {}

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

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

func (x *ReqMultiSigTxids) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *ReqMultiSigTxids) GetFromTxId() uint64 {
	if x != nil {
		return x.FromTxId
	}
	return 0
}

func (x *ReqMultiSigTxids) GetToTxId() uint64 {
	if x != nil {
		return x.ToTxId
	}
	return 0
}

func (x *ReqMultiSigTxids) GetPending() bool {
	if x != nil {
		return x.Pending
	}
	return false
}

func (x *ReqMultiSigTxids) GetExecuted() bool {
	if x != nil {
		return x.Executed
	}
	return false
}

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

	MultiSigAddr string   `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	Txids        []uint64 `protobuf:"varint,2,rep,packed,name=txids,proto3" json:"txids,omitempty"`
}

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

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

func (*ReplyMultiSigTxids) ProtoMessage() {}

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

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

func (x *ReplyMultiSigTxids) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *ReplyMultiSigTxids) GetTxids() []uint64 {
	if x != nil {
		return x.Txids
	}
	return nil
}

//获取txid交易的信息，以及参与确认的owner信息
type ReqMultiSigTxInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAddr string `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	TxId         uint64 `protobuf:"varint,2,opt,name=txId,proto3" json:"txId,omitempty"`
}

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

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

func (*ReqMultiSigTxInfo) ProtoMessage() {}

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

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

func (x *ReqMultiSigTxInfo) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *ReqMultiSigTxInfo) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

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

	MultiSigTxInfo *MultiSigTx `protobuf:"bytes,1,opt,name=multiSigTxInfo,proto3" json:"multiSigTxInfo,omitempty"`
}

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

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

func (*ReplyMultiSigTxInfo) ProtoMessage() {}

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

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

func (x *ReplyMultiSigTxInfo) GetMultiSigTxInfo() *MultiSigTx {
	if x != nil {
		return x.MultiSigTxInfo
	}
	return nil
}

//获取指定资产当日剩余的免多重签名的余额
type ReqMultiSigAccUnSpentToday struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAddr string `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	Execer       string `protobuf:"bytes,2,opt,name=execer,proto3" json:"execer,omitempty"`
	Symbol       string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"`
}

func (x *ReqMultiSigAccUnSpentToday) Reset() {
	*x = ReqMultiSigAccUnSpentToday{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReqMultiSigAccUnSpentToday) ProtoMessage() {}

func (x *ReqMultiSigAccUnSpentToday) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[21]
	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 ReqMultiSigAccUnSpentToday.ProtoReflect.Descriptor instead.
func (*ReqMultiSigAccUnSpentToday) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{21}
}

func (x *ReqMultiSigAccUnSpentToday) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *ReqMultiSigAccUnSpentToday) GetExecer() string {
	if x != nil {
		return x.Execer
	}
	return ""
}

func (x *ReqMultiSigAccUnSpentToday) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

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

	UnSpentAssets []*UnSpentAssets `protobuf:"bytes,3,rep,name=unSpentAssets,proto3" json:"unSpentAssets,omitempty"`
}

func (x *ReplyUnSpentAssets) Reset() {
	*x = ReplyUnSpentAssets{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReplyUnSpentAssets) ProtoMessage() {}

func (x *ReplyUnSpentAssets) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[22]
	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 ReplyUnSpentAssets.ProtoReflect.Descriptor instead.
func (*ReplyUnSpentAssets) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{22}
}

func (x *ReplyUnSpentAssets) GetUnSpentAssets() []*UnSpentAssets {
	if x != nil {
		return x.UnSpentAssets
	}
	return nil
}

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

	Assets *Assets `protobuf:"bytes,1,opt,name=assets,proto3" json:"assets,omitempty"`
	Amount uint64  `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
}

func (x *UnSpentAssets) Reset() {
	*x = UnSpentAssets{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UnSpentAssets) ProtoMessage() {}

func (x *UnSpentAssets) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[23]
	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 UnSpentAssets.ProtoReflect.Descriptor instead.
func (*UnSpentAssets) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{23}
}

func (x *UnSpentAssets) GetAssets() *Assets {
	if x != nil {
		return x.Assets
	}
	return nil
}

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

// TyLogMultiSigAccCreate交易的执行Receipt
type ReceiptMultiSig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAddr string `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
}

func (x *ReceiptMultiSig) Reset() {
	*x = ReceiptMultiSig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReceiptMultiSig) ProtoMessage() {}

func (x *ReceiptMultiSig) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[24]
	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 ReceiptMultiSig.ProtoReflect.Descriptor instead.
func (*ReceiptMultiSig) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{24}
}

func (x *ReceiptMultiSig) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

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

	MultiSigAddr string `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	Owner        *Owner `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
	AddOrDel     bool   `protobuf:"varint,3,opt,name=addOrDel,proto3" json:"addOrDel,omitempty"`
}

func (x *ReceiptOwnerAddOrDel) Reset() {
	*x = ReceiptOwnerAddOrDel{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReceiptOwnerAddOrDel) ProtoMessage() {}

func (x *ReceiptOwnerAddOrDel) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[25]
	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 ReceiptOwnerAddOrDel.ProtoReflect.Descriptor instead.
func (*ReceiptOwnerAddOrDel) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{25}
}

func (x *ReceiptOwnerAddOrDel) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *ReceiptOwnerAddOrDel) GetOwner() *Owner {
	if x != nil {
		return x.Owner
	}
	return nil
}

func (x *ReceiptOwnerAddOrDel) GetAddOrDel() bool {
	if x != nil {
		return x.AddOrDel
	}
	return false
}

// TyLogMultiSigOwnerModify  = 10003 //输出modify的owner：preweight以及currentweight
// TyLogMultiSigOwnerReplace = 10004 //输出old的owner的信息：以及当前的owner信息：addr+weight
type ReceiptOwnerModOrRep struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAddr string `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	PrevOwner    *Owner `protobuf:"bytes,2,opt,name=prevOwner,proto3" json:"prevOwner,omitempty"`
	CurrentOwner *Owner `protobuf:"bytes,3,opt,name=currentOwner,proto3" json:"currentOwner,omitempty"`
	ModOrRep     bool   `protobuf:"varint,4,opt,name=modOrRep,proto3" json:"modOrRep,omitempty"`
}

func (x *ReceiptOwnerModOrRep) Reset() {
	*x = ReceiptOwnerModOrRep{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReceiptOwnerModOrRep) ProtoMessage() {}

func (x *ReceiptOwnerModOrRep) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[26]
	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 ReceiptOwnerModOrRep.ProtoReflect.Descriptor instead.
func (*ReceiptOwnerModOrRep) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{26}
}

func (x *ReceiptOwnerModOrRep) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *ReceiptOwnerModOrRep) GetPrevOwner() *Owner {
	if x != nil {
		return x.PrevOwner
	}
	return nil
}

func (x *ReceiptOwnerModOrRep) GetCurrentOwner() *Owner {
	if x != nil {
		return x.CurrentOwner
	}
	return nil
}

func (x *ReceiptOwnerModOrRep) GetModOrRep() bool {
	if x != nil {
		return x.ModOrRep
	}
	return false
}

//多重签名账户的操作：ReqWeight，AssetDailyLimit
// TyLogMultiSigAccWeightModify     = 10005 //输出修改前后确认权重的值：preReqWeight和curReqWeight
type ReceiptWeightModify struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAddr  string `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	PrevWeight    uint64 `protobuf:"varint,2,opt,name=prevWeight,proto3" json:"prevWeight,omitempty"`
	CurrentWeight uint64 `protobuf:"varint,3,opt,name=currentWeight,proto3" json:"currentWeight,omitempty"`
}

func (x *ReceiptWeightModify) Reset() {
	*x = ReceiptWeightModify{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReceiptWeightModify) ProtoMessage() {}

func (x *ReceiptWeightModify) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[27]
	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 ReceiptWeightModify.ProtoReflect.Descriptor instead.
func (*ReceiptWeightModify) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{27}
}

func (x *ReceiptWeightModify) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *ReceiptWeightModify) GetPrevWeight() uint64 {
	if x != nil {
		return x.PrevWeight
	}
	return 0
}

func (x *ReceiptWeightModify) GetCurrentWeight() uint64 {
	if x != nil {
		return x.CurrentWeight
	}
	return 0
}

// TyLogMultiSigAccDailyLimitAdd    = 10006 //输出add的DailyLimit：Symbol和DailyLimit
// TyLogMultiSigAccDailyLimitModify = 10007 //输出modify的DailyLimit：preDailyLimit以及currentDailyLimit
type ReceiptDailyLimitOperate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAddr   string      `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	PrevDailyLimit *DailyLimit `protobuf:"bytes,2,opt,name=prevDailyLimit,proto3" json:"prevDailyLimit,omitempty"`
	CurDailyLimit  *DailyLimit `protobuf:"bytes,3,opt,name=curDailyLimit,proto3" json:"curDailyLimit,omitempty"`
	AddOrModify    bool        `protobuf:"varint,4,opt,name=addOrModify,proto3" json:"addOrModify,omitempty"`
}

func (x *ReceiptDailyLimitOperate) Reset() {
	*x = ReceiptDailyLimitOperate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReceiptDailyLimitOperate) ProtoMessage() {}

func (x *ReceiptDailyLimitOperate) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[28]
	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 ReceiptDailyLimitOperate.ProtoReflect.Descriptor instead.
func (*ReceiptDailyLimitOperate) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{28}
}

func (x *ReceiptDailyLimitOperate) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *ReceiptDailyLimitOperate) GetPrevDailyLimit() *DailyLimit {
	if x != nil {
		return x.PrevDailyLimit
	}
	return nil
}

func (x *ReceiptDailyLimitOperate) GetCurDailyLimit() *DailyLimit {
	if x != nil {
		return x.CurDailyLimit
	}
	return nil
}

func (x *ReceiptDailyLimitOperate) GetAddOrModify() bool {
	if x != nil {
		return x.AddOrModify
	}
	return false
}

//交易确认或者撤销（撤销值针对未执行的交易）
// TyLogMultiSigConfirmTx       = 10008 //输出确认的交易id，以及owner信息：addr+weight
// TyLogMultiSigConfirmTxRevoke = 10009 //输出撤销确认的交易id，以及owner信息：addr+weight
type ReceiptConfirmTx struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigTxOwner  *MultiSigTxOwner `protobuf:"bytes,1,opt,name=multiSigTxOwner,proto3" json:"multiSigTxOwner,omitempty"`
	ConfirmeOrRevoke bool             `protobuf:"varint,2,opt,name=confirmeOrRevoke,proto3" json:"confirmeOrRevoke,omitempty"`
}

func (x *ReceiptConfirmTx) Reset() {
	*x = ReceiptConfirmTx{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReceiptConfirmTx) ProtoMessage() {}

func (x *ReceiptConfirmTx) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[29]
	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 ReceiptConfirmTx.ProtoReflect.Descriptor instead.
func (*ReceiptConfirmTx) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{29}
}

func (x *ReceiptConfirmTx) GetMultiSigTxOwner() *MultiSigTxOwner {
	if x != nil {
		return x.MultiSigTxOwner
	}
	return nil
}

func (x *ReceiptConfirmTx) GetConfirmeOrRevoke() bool {
	if x != nil {
		return x.ConfirmeOrRevoke
	}
	return false
}

//可能会修改dailyLimit的相关属性
type ReceiptAccDailyLimitUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAddr   string      `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	PrevDailyLimit *DailyLimit `protobuf:"bytes,2,opt,name=prevDailyLimit,proto3" json:"prevDailyLimit,omitempty"`
	CurDailyLimit  *DailyLimit `protobuf:"bytes,3,opt,name=curDailyLimit,proto3" json:"curDailyLimit,omitempty"`
}

func (x *ReceiptAccDailyLimitUpdate) Reset() {
	*x = ReceiptAccDailyLimitUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReceiptAccDailyLimitUpdate) ProtoMessage() {}

func (x *ReceiptAccDailyLimitUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[30]
	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 ReceiptAccDailyLimitUpdate.ProtoReflect.Descriptor instead.
func (*ReceiptAccDailyLimitUpdate) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{30}
}

func (x *ReceiptAccDailyLimitUpdate) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *ReceiptAccDailyLimitUpdate) GetPrevDailyLimit() *DailyLimit {
	if x != nil {
		return x.PrevDailyLimit
	}
	return nil
}

func (x *ReceiptAccDailyLimitUpdate) GetCurDailyLimit() *DailyLimit {
	if x != nil {
		return x.CurDailyLimit
	}
	return nil
}

//执行MultiSigAcc相关的交易可能会修改tx的执行状态和增加确认owner
type ReceiptMultiSigTx struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigTxOwner *MultiSigTxOwner `protobuf:"bytes,1,opt,name=multiSigTxOwner,proto3" json:"multiSigTxOwner,omitempty"`
	PrevExecuted    bool             `protobuf:"varint,2,opt,name=prevExecuted,proto3" json:"prevExecuted,omitempty"`
	CurExecuted     bool             `protobuf:"varint,3,opt,name=curExecuted,proto3" json:"curExecuted,omitempty"`
	SubmitOrConfirm bool             `protobuf:"varint,4,opt,name=submitOrConfirm,proto3" json:"submitOrConfirm,omitempty"`
	TxHash          string           `protobuf:"bytes,5,opt,name=txHash,proto3" json:"txHash,omitempty"`
	TxType          uint64           `protobuf:"varint,6,opt,name=txType,proto3" json:"txType,omitempty"`
}

func (x *ReceiptMultiSigTx) Reset() {
	*x = ReceiptMultiSigTx{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReceiptMultiSigTx) ProtoMessage() {}

func (x *ReceiptMultiSigTx) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[31]
	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 ReceiptMultiSigTx.ProtoReflect.Descriptor instead.
func (*ReceiptMultiSigTx) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{31}
}

func (x *ReceiptMultiSigTx) GetMultiSigTxOwner() *MultiSigTxOwner {
	if x != nil {
		return x.MultiSigTxOwner
	}
	return nil
}

func (x *ReceiptMultiSigTx) GetPrevExecuted() bool {
	if x != nil {
		return x.PrevExecuted
	}
	return false
}

func (x *ReceiptMultiSigTx) GetCurExecuted() bool {
	if x != nil {
		return x.CurExecuted
	}
	return false
}

func (x *ReceiptMultiSigTx) GetSubmitOrConfirm() bool {
	if x != nil {
		return x.SubmitOrConfirm
	}
	return false
}

func (x *ReceiptMultiSigTx) GetTxHash() string {
	if x != nil {
		return x.TxHash
	}
	return ""
}

func (x *ReceiptMultiSigTx) GetTxType() uint64 {
	if x != nil {
		return x.TxType
	}
	return 0
}

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

	MultiSigAddr string `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	CurTxCount   uint64 `protobuf:"varint,2,opt,name=curTxCount,proto3" json:"curTxCount,omitempty"`
}

func (x *ReceiptTxCountUpdate) Reset() {
	*x = ReceiptTxCountUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReceiptTxCountUpdate) ProtoMessage() {}

func (x *ReceiptTxCountUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[32]
	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 ReceiptTxCountUpdate.ProtoReflect.Descriptor instead.
func (*ReceiptTxCountUpdate) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{32}
}

func (x *ReceiptTxCountUpdate) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *ReceiptTxCountUpdate) GetCurTxCount() uint64 {
	if x != nil {
		return x.CurTxCount
	}
	return 0
}

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

	MultiSigAddr   string `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	Txid           uint64 `protobuf:"varint,2,opt,name=txid,proto3" json:"txid,omitempty"`
	ConfirmedOwner *Owner `protobuf:"bytes,3,opt,name=confirmedOwner,proto3" json:"confirmedOwner,omitempty"`
}

func (x *MultiSigTxOwner) Reset() {
	*x = MultiSigTxOwner{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*MultiSigTxOwner) ProtoMessage() {}

func (x *MultiSigTxOwner) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[33]
	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 MultiSigTxOwner.ProtoReflect.Descriptor instead.
func (*MultiSigTxOwner) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{33}
}

func (x *MultiSigTxOwner) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *MultiSigTxOwner) GetTxid() uint64 {
	if x != nil {
		return x.Txid
	}
	return 0
}

func (x *MultiSigTxOwner) GetConfirmedOwner() *Owner {
	if x != nil {
		return x.ConfirmedOwner
	}
	return nil
}

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

	Data uint64 `protobuf:"varint,1,opt,name=data,proto3" json:"data,omitempty"`
}

func (x *Uint64) Reset() {
	*x = Uint64{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Uint64) ProtoMessage() {}

func (x *Uint64) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[34]
	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 Uint64.ProtoReflect.Descriptor instead.
func (*Uint64) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{34}
}

func (x *Uint64) GetData() uint64 {
	if x != nil {
		return x.Data
	}
	return 0
}

//记录账户收到固定资产的数量
type AccountAssets struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAddr string  `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	Assets       *Assets `protobuf:"bytes,2,opt,name=assets,proto3" json:"assets,omitempty"`
	Amount       int64   `protobuf:"varint,3,opt,name=amount,proto3" json:"amount,omitempty"`
}

func (x *AccountAssets) Reset() {
	*x = AccountAssets{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AccountAssets) ProtoMessage() {}

func (x *AccountAssets) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[35]
	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 AccountAssets.ProtoReflect.Descriptor instead.
func (*AccountAssets) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{35}
}

func (x *AccountAssets) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *AccountAssets) GetAssets() *Assets {
	if x != nil {
		return x.Assets
	}
	return nil
}

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

//获取多重签名账户上的指定资产或者所有资产
type ReqAccAssets struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAddr string  `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	Assets       *Assets `protobuf:"bytes,2,opt,name=assets,proto3" json:"assets,omitempty"`
	IsAll        bool    `protobuf:"varint,3,opt,name=isAll,proto3" json:"isAll,omitempty"`
}

func (x *ReqAccAssets) Reset() {
	*x = ReqAccAssets{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReqAccAssets) ProtoMessage() {}

func (x *ReqAccAssets) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[36]
	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 ReqAccAssets.ProtoReflect.Descriptor instead.
func (*ReqAccAssets) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{36}
}

func (x *ReqAccAssets) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *ReqAccAssets) GetAssets() *Assets {
	if x != nil {
		return x.Assets
	}
	return nil
}

func (x *ReqAccAssets) GetIsAll() bool {
	if x != nil {
		return x.IsAll
	}
	return false
}

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

	AccAssets []*AccAssets `protobuf:"bytes,1,rep,name=accAssets,proto3" json:"accAssets,omitempty"`
}

func (x *ReplyAccAssets) Reset() {
	*x = ReplyAccAssets{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ReplyAccAssets) ProtoMessage() {}

func (x *ReplyAccAssets) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[37]
	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 ReplyAccAssets.ProtoReflect.Descriptor instead.
func (*ReplyAccAssets) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{37}
}

func (x *ReplyAccAssets) GetAccAssets() []*AccAssets {
	if x != nil {
		return x.AccAssets
	}
	return nil
}

//账户资产信息
type AccAssets struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Assets     *Assets        `protobuf:"bytes,1,opt,name=assets,proto3" json:"assets,omitempty"`
	RecvAmount int64          `protobuf:"varint,2,opt,name=recvAmount,proto3" json:"recvAmount,omitempty"`
	Account    *types.Account `protobuf:"bytes,3,opt,name=account,proto3" json:"account,omitempty"`
}

func (x *AccAssets) Reset() {
	*x = AccAssets{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AccAssets) ProtoMessage() {}

func (x *AccAssets) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[38]
	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 AccAssets.ProtoReflect.Descriptor instead.
func (*AccAssets) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{38}
}

func (x *AccAssets) GetAssets() *Assets {
	if x != nil {
		return x.Assets
	}
	return nil
}

func (x *AccAssets) GetRecvAmount() int64 {
	if x != nil {
		return x.RecvAmount
	}
	return 0
}

func (x *AccAssets) GetAccount() *types.Account {
	if x != nil {
		return x.Account
	}
	return nil
}

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

	Execer string `protobuf:"bytes,1,opt,name=execer,proto3" json:"execer,omitempty"`
	Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"`
}

func (x *Assets) Reset() {
	*x = Assets{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Assets) ProtoMessage() {}

func (x *Assets) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[39]
	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 Assets.ProtoReflect.Descriptor instead.
func (*Assets) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{39}
}

func (x *Assets) GetExecer() string {
	if x != nil {
		return x.Execer
	}
	return ""
}

func (x *Assets) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

//账户地址列表
type AccAddress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

func (x *AccAddress) Reset() {
	*x = AccAddress{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AccAddress) ProtoMessage() {}

func (x *AccAddress) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[40]
	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 AccAddress.ProtoReflect.Descriptor instead.
func (*AccAddress) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{40}
}

func (x *AccAddress) GetAddress() []string {
	if x != nil {
		return x.Address
	}
	return nil
}

// owner拥有的多重签名账户信息
type OwnerAttr struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MultiSigAddr string `protobuf:"bytes,1,opt,name=multiSigAddr,proto3" json:"multiSigAddr,omitempty"`
	OwnerAddr    string `protobuf:"bytes,2,opt,name=ownerAddr,proto3" json:"ownerAddr,omitempty"`
	Weight       uint64 `protobuf:"varint,3,opt,name=weight,proto3" json:"weight,omitempty"`
}

func (x *OwnerAttr) Reset() {
	*x = OwnerAttr{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OwnerAttr) ProtoMessage() {}

func (x *OwnerAttr) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[41]
	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 OwnerAttr.ProtoReflect.Descriptor instead.
func (*OwnerAttr) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{41}
}

func (x *OwnerAttr) GetMultiSigAddr() string {
	if x != nil {
		return x.MultiSigAddr
	}
	return ""
}

func (x *OwnerAttr) GetOwnerAddr() string {
	if x != nil {
		return x.OwnerAddr
	}
	return ""
}

func (x *OwnerAttr) GetWeight() uint64 {
	if x != nil {
		return x.Weight
	}
	return 0
}

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

	Items []*OwnerAttr `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
}

func (x *OwnerAttrs) Reset() {
	*x = OwnerAttrs{}
	if protoimpl.UnsafeEnabled {
		mi := &file_multisig_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OwnerAttrs) ProtoMessage() {}

func (x *OwnerAttrs) ProtoReflect() protoreflect.Message {
	mi := &file_multisig_proto_msgTypes[42]
	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 OwnerAttrs.ProtoReflect.Descriptor instead.
func (*OwnerAttrs) Descriptor() ([]byte, []int) {
	return file_multisig_proto_rawDescGZIP(), []int{42}
}

func (x *OwnerAttrs) GetItems() []*OwnerAttr {
	if x != nil {
		return x.Items
	}
	return nil
}

var File_multisig_proto protoreflect.FileDescriptor

var file_multisig_proto_rawDesc = []byte{
	0x0a, 0x0e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x12, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xeb, 0x01, 0x0a, 0x08, 0x4d, 0x75, 0x6c, 0x74, 0x69,
	0x53, 0x69, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41,
	0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41,
	0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69,
	0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72,
	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a,
	0x0b, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79,
	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x0b, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69,
	0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e,
	0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x57, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x22, 0x46, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65,
	0x64, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72,
	0x6d, 0x65, 0x64, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x0e, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x22, 0xc6, 0x01, 0x0a,
	0x0a, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74,
	0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12,
	0x16, 0x0a, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75,
	0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75,
	0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x78, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d,
	0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x12,
	0x34, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4f, 0x77, 0x6e, 0x65,
	0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64,
	0x4f, 0x77, 0x6e, 0x65, 0x72, 0x22, 0x3d, 0x0a, 0x05, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c,
	0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x16, 0x0a, 0x06,
	0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x77, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x0a, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69,
	0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x65,
	0x78, 0x65, 0x63, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x65,
	0x63, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69,
	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69,
	0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x64, 0x61,
	0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x54, 0x6f,
	0x64, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79, 0x22, 0x62, 0x0a,
	0x10, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69,
	0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x65,
	0x63, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x65, 0x63, 0x65,
	0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69,
	0x74, 0x22, 0x95, 0x04, 0x0a, 0x0e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x11, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67,
	0x41, 0x63, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x18, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67,
	0x41, 0x63, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x11, 0x6d, 0x75, 0x6c,
	0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x63, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x51,
	0x0a, 0x14, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x4f,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x4f, 0x77, 0x6e,
	0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x14, 0x6d, 0x75, 0x6c,
	0x74, 0x69, 0x53, 0x69, 0x67, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x65, 0x12, 0x4b, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x63, 0x63,
	0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x63,
	0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x12, 0x6d, 0x75, 0x6c, 0x74,
	0x69, 0x53, 0x69, 0x67, 0x41, 0x63, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x48,
	0x0a, 0x11, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72,
	0x6d, 0x54, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72,
	0x6d, 0x54, 0x78, 0x48, 0x00, 0x52, 0x11, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x78, 0x12, 0x57, 0x0a, 0x16, 0x6d, 0x75, 0x6c, 0x74,
	0x69, 0x53, 0x69, 0x67, 0x45, 0x78, 0x65, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
	0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x45, 0x78, 0x65, 0x63, 0x54, 0x72, 0x61,
	0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x48, 0x00, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69,
	0x53, 0x69, 0x67, 0x45, 0x78, 0x65, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54,
	0x6f, 0x12, 0x5d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x45, 0x78, 0x65,
	0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x75, 0x6c, 0x74,
	0x69, 0x53, 0x69, 0x67, 0x45, 0x78, 0x65, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
	0x46, 0x72, 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67,
	0x45, 0x78, 0x65, 0x63, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d,
	0x12, 0x0e, 0x0a, 0x02, 0x54, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x79,
	0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x11, 0x4d, 0x75,
	0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x63, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12,
	0x24, 0x0a, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x06, 0x6f,
	0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
	0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72,
	0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x37, 0x0a,
	0x0a, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x0a, 0x64, 0x61, 0x69, 0x6c,
	0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xb8, 0x01, 0x0a, 0x14, 0x4d, 0x75, 0x6c, 0x74, 0x69,
	0x53, 0x69, 0x67, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12,
	0x28, 0x0a, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x63, 0x63, 0x41, 0x64,
	0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53,
	0x69, 0x67, 0x41, 0x63, 0x63, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x6c, 0x64,
	0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x6c, 0x64,
	0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x4f, 0x77, 0x6e, 0x65,
	0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x4f, 0x77, 0x6e, 0x65,
	0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12,
	0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61,
	0x67, 0x22, 0xc7, 0x01, 0x0a, 0x12, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x63,
	0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x75, 0x6c, 0x74,
	0x69, 0x53, 0x69, 0x67, 0x41, 0x63, 0x63, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x63, 0x63, 0x41, 0x64,
	0x64, 0x72, 0x12, 0x37, 0x0a, 0x0a, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53,
	0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52,
	0x0a, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6e,
	0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6e, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x69,
	0x72, 0x65, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
	0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x9e, 0x01, 0x0a, 0x18,
	0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x45, 0x78, 0x65, 0x63, 0x54, 0x72, 0x61, 0x6e,
	0x73, 0x66, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62,
	0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08,
	0x65, 0x78, 0x65, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x65, 0x78, 0x65, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x22, 0x88, 0x01, 0x0a,
	0x16, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x45, 0x78, 0x65, 0x63, 0x54, 0x72, 0x61,
	0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12,
	0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65,
	0x78, 0x65, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65,
	0x78, 0x65, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x22, 0x7b, 0x0a, 0x11, 0x4d, 0x75, 0x6c, 0x74, 0x69,
	0x53, 0x69, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x78, 0x12, 0x28, 0x0a, 0x0f,
	0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x63, 0x63, 0x41, 0x64, 0x64, 0x72, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41,
	0x63, 0x63, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x49, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x78, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x72, 0x6d, 0x4f, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x4f, 0x72, 0x52, 0x65,
	0x76, 0x6f, 0x6b, 0x65, 0x22, 0x39, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x4d, 0x75, 0x6c, 0x74, 0x69,
	0x53, 0x69, 0x67, 0x41, 0x63, 0x63, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a,
	0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22,
	0x2d, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67,
	0x41, 0x63, 0x63, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3e,
	0x0a, 0x12, 0x52, 0x65, 0x71, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x63, 0x63,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67,
	0x41, 0x63, 0x63, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d,
	0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x63, 0x63, 0x41, 0x64, 0x64, 0x72, 0x22, 0xf7,
	0x01, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67,
	0x41, 0x63, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69,
	0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d,
	0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, 0x06, 0x6f,
	0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72,
	0x73, 0x12, 0x33, 0x0a, 0x0b, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44,
	0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x0b, 0x64, 0x61, 0x69, 0x6c, 0x79,
	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x78, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x57, 0x65, 0x69, 0x67,
	0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72,
	0x65, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71,
	0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54, 0x78, 0x69, 0x64, 0x73, 0x12, 0x22, 0x0a,
	0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64,
	0x72, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x78, 0x49, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x78, 0x49, 0x64, 0x12, 0x16, 0x0a,
	0x06, 0x74, 0x6f, 0x54, 0x78, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74,
	0x6f, 0x54, 0x78, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12,
	0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54, 0x78, 0x69, 0x64,
	0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69,
	0x67, 0x41, 0x64, 0x64, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x78, 0x69, 0x64, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x74, 0x78, 0x69, 0x64, 0x73, 0x22, 0x4b, 0x0a, 0x11, 0x52,
	0x65, 0x71, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67,
	0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x04, 0x74, 0x78, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c,
	0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x39, 0x0a, 0x0e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54, 0x78, 0x49, 0x6e, 0x66,
	0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54, 0x78, 0x52, 0x0e, 0x6d, 0x75, 0x6c, 0x74,
	0x69, 0x53, 0x69, 0x67, 0x54, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x70, 0x0a, 0x1a, 0x52, 0x65,
	0x71, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x63, 0x63, 0x55, 0x6e, 0x53, 0x70,
	0x65, 0x6e, 0x74, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74,
	0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
	0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x12, 0x16, 0x0a, 0x06,
	0x65, 0x78, 0x65, 0x63, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78,
	0x65, 0x63, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0x50, 0x0a, 0x12,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x55, 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65,
	0x74, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x75, 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73,
	0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x55, 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52,
	0x0d, 0x75, 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0x4e,
	0x0a, 0x0d, 0x55, 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12,
	0x25, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x06,
	0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x35,
	0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69,
	0x67, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69,
	0x67, 0x41, 0x64, 0x64, 0x72, 0x22, 0x7a, 0x0a, 0x14, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74,
	0x4f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x44, 0x65, 0x6c, 0x12, 0x22, 0x0a,
	0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64,
	0x72, 0x12, 0x22, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x05,
	0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x4f, 0x72, 0x44, 0x65,
	0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x64, 0x64, 0x4f, 0x72, 0x44, 0x65,
	0x6c, 0x22, 0xb4, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x4f, 0x77, 0x6e,
	0x65, 0x72, 0x4d, 0x6f, 0x64, 0x4f, 0x72, 0x52, 0x65, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75,
	0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x12, 0x2a,
	0x0a, 0x09, 0x70, 0x72, 0x65, 0x76, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52,
	0x09, 0x70, 0x72, 0x65, 0x76, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x0c, 0x63, 0x75,
	0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x0c,
	0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08,
	0x6d, 0x6f, 0x64, 0x4f, 0x72, 0x52, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
	0x6d, 0x6f, 0x64, 0x4f, 0x72, 0x52, 0x65, 0x70, 0x22, 0x7f, 0x0a, 0x13, 0x52, 0x65, 0x63, 0x65,
	0x69, 0x70, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x12,
	0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41,
	0x64, 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x57, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x57, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x75, 0x72, 0x72,
	0x65, 0x6e, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xd4, 0x01, 0x0a, 0x18, 0x52, 0x65,
	0x63, 0x65, 0x69, 0x70, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53,
	0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75,
	0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x12, 0x39, 0x0a, 0x0e, 0x70, 0x72,
	0x65, 0x76, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79,
	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x44, 0x61, 0x69, 0x6c, 0x79,
	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x44, 0x61, 0x69, 0x6c,
	0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52,
	0x0d, 0x63, 0x75, 0x72, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20,
	0x0a, 0x0b, 0x61, 0x64, 0x64, 0x4f, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x4f, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79,
	0x22, 0x80, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x72, 0x6d, 0x54, 0x78, 0x12, 0x40, 0x0a, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69,
	0x67, 0x54, 0x78, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54,
	0x78, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67,
	0x54, 0x78, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x72, 0x6d, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x76,
	0x6f, 0x6b, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x41,
	0x63, 0x63, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64,
	0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53,
	0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x12, 0x39, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x44, 0x61,
	0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69,
	0x74, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69,
	0x74, 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d,
	0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x0d, 0x63, 0x75, 0x72,
	0x44, 0x61, 0x69, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xf5, 0x01, 0x0a, 0x11, 0x52,
	0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54, 0x78,
	0x12, 0x40, 0x0a, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54, 0x78, 0x4f, 0x77,
	0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54, 0x78, 0x4f, 0x77, 0x6e, 0x65,
	0x72, 0x52, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54, 0x78, 0x4f, 0x77, 0x6e,
	0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
	0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x45, 0x78,
	0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x45, 0x78, 0x65,
	0x63, 0x75, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x75, 0x72,
	0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d,
	0x69, 0x74, 0x4f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x78,
	0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x54, 0x79,
	0x70, 0x65, 0x22, 0x5a, 0x0a, 0x14, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x54, 0x78, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75,
	0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1e,
	0x0a, 0x0a, 0x63, 0x75, 0x72, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x0a, 0x63, 0x75, 0x72, 0x54, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x7f,
	0x0a, 0x0f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x54, 0x78, 0x4f, 0x77, 0x6e, 0x65,
	0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69,
	0x67, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x0e, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52,
	0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x22,
	0x1c, 0x0a, 0x06, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74,
	0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x72, 0x0a,
	0x0d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x22,
	0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64,
	0x64, 0x72, 0x12, 0x25, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74,
	0x73, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e,
	0x74, 0x22, 0x6f, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x41, 0x63, 0x63, 0x41, 0x73, 0x73, 0x65, 0x74,
	0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69,
	0x67, 0x41, 0x64, 0x64, 0x72, 0x12, 0x25, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x73,
	0x73, 0x65, 0x74, 0x73, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05,
	0x69, 0x73, 0x41, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x41,
	0x6c, 0x6c, 0x22, 0x40, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x41, 0x63, 0x63, 0x41, 0x73,
	0x73, 0x65, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x41, 0x73, 0x73, 0x65, 0x74,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x41, 0x63, 0x63, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x09, 0x61, 0x63, 0x63, 0x41, 0x73,
	0x73, 0x65, 0x74, 0x73, 0x22, 0x7c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x41, 0x73, 0x73, 0x65, 0x74,
	0x73, 0x12, 0x25, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73,
	0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x76,
	0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65,
	0x63, 0x76, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65,
	0x73, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x22, 0x38, 0x0a, 0x06, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06,
	0x65, 0x78, 0x65, 0x63, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78,
	0x65, 0x63, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0x26, 0x0a, 0x0a,
	0x41, 0x63, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x22, 0x65, 0x0a, 0x09, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x74, 0x74,
	0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x41, 0x64, 0x64,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69,
	0x67, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64,
	0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41,
	0x64, 0x64, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x34, 0x0a, 0x0a, 0x4f,
	0x77, 0x6e, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x05, 0x69, 0x74, 0x65,
	0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d,
	0x73, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_multisig_proto_rawDescOnce sync.Once
	file_multisig_proto_rawDescData = file_multisig_proto_rawDesc
)

func file_multisig_proto_rawDescGZIP() []byte {
	file_multisig_proto_rawDescOnce.Do(func() {
		file_multisig_proto_rawDescData = protoimpl.X.CompressGZIP(file_multisig_proto_rawDescData)
	})
	return file_multisig_proto_rawDescData
}

var file_multisig_proto_msgTypes = make([]protoimpl.MessageInfo, 43)
var file_multisig_proto_goTypes = []interface{}{
	(*MultiSig)(nil),                   // 0: types.MultiSig
	(*ConfirmedOwner)(nil),             // 1: types.ConfirmedOwner
	(*MultiSigTx)(nil),                 // 2: types.MultiSigTx
	(*Owner)(nil),                      // 3: types.Owner
	(*DailyLimit)(nil),                 // 4: types.DailyLimit
	(*SymbolDailyLimit)(nil),           // 5: types.SymbolDailyLimit
	(*MultiSigAction)(nil),             // 6: types.MultiSigAction
	(*MultiSigAccCreate)(nil),          // 7: types.MultiSigAccCreate
	(*MultiSigOwnerOperate)(nil),       // 8: types.MultiSigOwnerOperate
	(*MultiSigAccOperate)(nil),         // 9: types.MultiSigAccOperate
	(*MultiSigExecTransferFrom)(nil),   // 10: types.MultiSigExecTransferFrom
	(*MultiSigExecTransferTo)(nil),     // 11: types.MultiSigExecTransferTo
	(*MultiSigConfirmTx)(nil),          // 12: types.MultiSigConfirmTx
	(*ReqMultiSigAccs)(nil),            // 13: types.ReqMultiSigAccs
	(*ReplyMultiSigAccs)(nil),          // 14: types.ReplyMultiSigAccs
	(*ReqMultiSigAccInfo)(nil),         // 15: types.ReqMultiSigAccInfo
	(*ReplyMultiSigAccInfo)(nil),       // 16: types.ReplyMultiSigAccInfo
	(*ReqMultiSigTxids)(nil),           // 17: types.ReqMultiSigTxids
	(*ReplyMultiSigTxids)(nil),         // 18: types.ReplyMultiSigTxids
	(*ReqMultiSigTxInfo)(nil),          // 19: types.ReqMultiSigTxInfo
	(*ReplyMultiSigTxInfo)(nil),        // 20: types.ReplyMultiSigTxInfo
	(*ReqMultiSigAccUnSpentToday)(nil), // 21: types.ReqMultiSigAccUnSpentToday
	(*ReplyUnSpentAssets)(nil),         // 22: types.ReplyUnSpentAssets
	(*UnSpentAssets)(nil),              // 23: types.UnSpentAssets
	(*ReceiptMultiSig)(nil),            // 24: types.ReceiptMultiSig
	(*ReceiptOwnerAddOrDel)(nil),       // 25: types.ReceiptOwnerAddOrDel
	(*ReceiptOwnerModOrRep)(nil),       // 26: types.ReceiptOwnerModOrRep
	(*ReceiptWeightModify)(nil),        // 27: types.ReceiptWeightModify
	(*ReceiptDailyLimitOperate)(nil),   // 28: types.ReceiptDailyLimitOperate
	(*ReceiptConfirmTx)(nil),           // 29: types.ReceiptConfirmTx
	(*ReceiptAccDailyLimitUpdate)(nil), // 30: types.ReceiptAccDailyLimitUpdate
	(*ReceiptMultiSigTx)(nil),          // 31: types.ReceiptMultiSigTx
	(*ReceiptTxCountUpdate)(nil),       // 32: types.ReceiptTxCountUpdate
	(*MultiSigTxOwner)(nil),            // 33: types.MultiSigTxOwner
	(*Uint64)(nil),                     // 34: types.Uint64
	(*AccountAssets)(nil),              // 35: types.AccountAssets
	(*ReqAccAssets)(nil),               // 36: types.ReqAccAssets
	(*ReplyAccAssets)(nil),             // 37: types.ReplyAccAssets
	(*AccAssets)(nil),                  // 38: types.AccAssets
	(*Assets)(nil),                     // 39: types.Assets
	(*AccAddress)(nil),                 // 40: types.AccAddress
	(*OwnerAttr)(nil),                  // 41: types.OwnerAttr
	(*OwnerAttrs)(nil),                 // 42: types.OwnerAttrs
	(*types.Account)(nil),              // 43: types.Account
}
var file_multisig_proto_depIdxs = []int32{
	3,  // 0: types.MultiSig.owners:type_name -> types.Owner
	4,  // 1: types.MultiSig.dailyLimits:type_name -> types.DailyLimit
	3,  // 2: types.ConfirmedOwner.confirmedOwner:type_name -> types.Owner
	3,  // 3: types.MultiSigTx.confirmedOwner:type_name -> types.Owner
	7,  // 4: types.MultiSigAction.multiSigAccCreate:type_name -> types.MultiSigAccCreate
	8,  // 5: types.MultiSigAction.multiSigOwnerOperate:type_name -> types.MultiSigOwnerOperate
	9,  // 6: types.MultiSigAction.multiSigAccOperate:type_name -> types.MultiSigAccOperate
	12, // 7: types.MultiSigAction.multiSigConfirmTx:type_name -> types.MultiSigConfirmTx
	11, // 8: types.MultiSigAction.multiSigExecTransferTo:type_name -> types.MultiSigExecTransferTo
	10, // 9: types.MultiSigAction.multiSigExecTransferFrom:type_name -> types.MultiSigExecTransferFrom
	3,  // 10: types.MultiSigAccCreate.owners:type_name -> types.Owner
	5,  // 11: types.MultiSigAccCreate.dailyLimit:type_name -> types.SymbolDailyLimit
	5,  // 12: types.MultiSigAccOperate.dailyLimit:type_name -> types.SymbolDailyLimit
	3,  // 13: types.ReplyMultiSigAccInfo.owners:type_name -> types.Owner
	4,  // 14: types.ReplyMultiSigAccInfo.dailyLimits:type_name -> types.DailyLimit
	2,  // 15: types.ReplyMultiSigTxInfo.multiSigTxInfo:type_name -> types.MultiSigTx
	23, // 16: types.ReplyUnSpentAssets.unSpentAssets:type_name -> types.UnSpentAssets
	39, // 17: types.UnSpentAssets.assets:type_name -> types.Assets
	3,  // 18: types.ReceiptOwnerAddOrDel.owner:type_name -> types.Owner
	3,  // 19: types.ReceiptOwnerModOrRep.prevOwner:type_name -> types.Owner
	3,  // 20: types.ReceiptOwnerModOrRep.currentOwner:type_name -> types.Owner
	4,  // 21: types.ReceiptDailyLimitOperate.prevDailyLimit:type_name -> types.DailyLimit
	4,  // 22: types.ReceiptDailyLimitOperate.curDailyLimit:type_name -> types.DailyLimit
	33, // 23: types.ReceiptConfirmTx.multiSigTxOwner:type_name -> types.MultiSigTxOwner
	4,  // 24: types.ReceiptAccDailyLimitUpdate.prevDailyLimit:type_name -> types.DailyLimit
	4,  // 25: types.ReceiptAccDailyLimitUpdate.curDailyLimit:type_name -> types.DailyLimit
	33, // 26: types.ReceiptMultiSigTx.multiSigTxOwner:type_name -> types.MultiSigTxOwner
	3,  // 27: types.MultiSigTxOwner.confirmedOwner:type_name -> types.Owner
	39, // 28: types.AccountAssets.assets:type_name -> types.Assets
	39, // 29: types.ReqAccAssets.assets:type_name -> types.Assets
	38, // 30: types.ReplyAccAssets.accAssets:type_name -> types.AccAssets
	39, // 31: types.AccAssets.assets:type_name -> types.Assets
	43, // 32: types.AccAssets.account:type_name -> types.Account
	41, // 33: types.OwnerAttrs.items:type_name -> types.OwnerAttr
	34, // [34:34] is the sub-list for method output_type
	34, // [34:34] is the sub-list for method input_type
	34, // [34:34] is the sub-list for extension type_name
	34, // [34:34] is the sub-list for extension extendee
	0,  // [0:34] is the sub-list for field type_name
}

func init() { file_multisig_proto_init() }
func file_multisig_proto_init() {
	if File_multisig_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_multisig_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiSig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConfirmedOwner); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiSigTx); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Owner); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DailyLimit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SymbolDailyLimit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiSigAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiSigAccCreate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiSigOwnerOperate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiSigAccOperate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiSigExecTransferFrom); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiSigExecTransferTo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiSigConfirmTx); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqMultiSigAccs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyMultiSigAccs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqMultiSigAccInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyMultiSigAccInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqMultiSigTxids); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyMultiSigTxids); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqMultiSigTxInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyMultiSigTxInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqMultiSigAccUnSpentToday); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyUnSpentAssets); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UnSpentAssets); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptMultiSig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptOwnerAddOrDel); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptOwnerModOrRep); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptWeightModify); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptDailyLimitOperate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptConfirmTx); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptAccDailyLimitUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptMultiSigTx); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptTxCountUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiSigTxOwner); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Uint64); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AccountAssets); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReqAccAssets); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyAccAssets); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AccAssets); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Assets); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AccAddress); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OwnerAttr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_multisig_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OwnerAttrs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_multisig_proto_msgTypes[6].OneofWrappers = []interface{}{
		(*MultiSigAction_MultiSigAccCreate)(nil),
		(*MultiSigAction_MultiSigOwnerOperate)(nil),
		(*MultiSigAction_MultiSigAccOperate)(nil),
		(*MultiSigAction_MultiSigConfirmTx)(nil),
		(*MultiSigAction_MultiSigExecTransferTo)(nil),
		(*MultiSigAction_MultiSigExecTransferFrom)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_multisig_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   43,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_multisig_proto_goTypes,
		DependencyIndexes: file_multisig_proto_depIdxs,
		MessageInfos:      file_multisig_proto_msgTypes,
	}.Build()
	File_multisig_proto = out.File
	file_multisig_proto_rawDesc = nil
	file_multisig_proto_goTypes = nil
	file_multisig_proto_depIdxs = nil
}
