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

package types

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
)

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

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

// assert transfer struct
type AssetsGenesis struct {
	Amount               int64    `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
	ReturnAddress        string   `protobuf:"bytes,3,opt,name=returnAddress,proto3" json:"returnAddress,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AssetsGenesis proto.InternalMessageInfo

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

func (m *AssetsGenesis) GetReturnAddress() string {
	if m != nil {
		return m.ReturnAddress
	}
	return ""
}

type AssetsTransferToExec struct {
	Cointoken            string   `protobuf:"bytes,1,opt,name=cointoken,proto3" json:"cointoken,omitempty"`
	Amount               int64    `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
	Note                 []byte   `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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AssetsTransferToExec proto.InternalMessageInfo

func (m *AssetsTransferToExec) GetCointoken() string {
	if m != nil {
		return m.Cointoken
	}
	return ""
}

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

func (m *AssetsTransferToExec) GetNote() []byte {
	if m != nil {
		return m.Note
	}
	return nil
}

func (m *AssetsTransferToExec) GetExecName() string {
	if m != nil {
		return m.ExecName
	}
	return ""
}

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

type AssetsWithdraw struct {
	Cointoken            string   `protobuf:"bytes,1,opt,name=cointoken,proto3" json:"cointoken,omitempty"`
	Amount               int64    `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
	Note                 []byte   `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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AssetsWithdraw proto.InternalMessageInfo

func (m *AssetsWithdraw) GetCointoken() string {
	if m != nil {
		return m.Cointoken
	}
	return ""
}

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

func (m *AssetsWithdraw) GetNote() []byte {
	if m != nil {
		return m.Note
	}
	return nil
}

func (m *AssetsWithdraw) GetExecName() string {
	if m != nil {
		return m.ExecName
	}
	return ""
}

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

type AssetsTransfer struct {
	Cointoken            string   `protobuf:"bytes,1,opt,name=cointoken,proto3" json:"cointoken,omitempty"`
	Amount               int64    `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
	Note                 []byte   `protobuf:"bytes,3,opt,name=note,proto3" json:"note,omitempty"`
	To                   string   `protobuf:"bytes,4,opt,name=to,proto3" json:"to,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AssetsTransfer proto.InternalMessageInfo

func (m *AssetsTransfer) GetCointoken() string {
	if m != nil {
		return m.Cointoken
	}
	return ""
}

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

func (m *AssetsTransfer) GetNote() []byte {
	if m != nil {
		return m.Note
	}
	return nil
}

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

type Asset struct {
	Exec                 string   `protobuf:"bytes,1,opt,name=exec,proto3" json:"exec,omitempty"`
	Symbol               string   `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Amount               int64    `protobuf:"varint,3,opt,name=amount,proto3" json:"amount,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_Asset proto.InternalMessageInfo

func (m *Asset) GetExec() string {
	if m != nil {
		return m.Exec
	}
	return ""
}

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

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

type CreateTx struct {
	To                   string   `protobuf:"bytes,1,opt,name=to,proto3" json:"to,omitempty"`
	Amount               int64    `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
	Fee                  int64    `protobuf:"varint,3,opt,name=fee,proto3" json:"fee,omitempty"`
	Note                 []byte   `protobuf:"bytes,4,opt,name=note,proto3" json:"note,omitempty"`
	IsWithdraw           bool     `protobuf:"varint,5,opt,name=isWithdraw,proto3" json:"isWithdraw,omitempty"`
	IsToken              bool     `protobuf:"varint,6,opt,name=isToken,proto3" json:"isToken,omitempty"`
	TokenSymbol          string   `protobuf:"bytes,7,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	ExecName             string   `protobuf:"bytes,8,opt,name=execName,proto3" json:"execName,omitempty"`
	Execer               string   `protobuf:"bytes,9,opt,name=execer,proto3" json:"execer,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_CreateTx proto.InternalMessageInfo

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

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

func (m *CreateTx) GetFee() int64 {
	if m != nil {
		return m.Fee
	}
	return 0
}

func (m *CreateTx) GetNote() []byte {
	if m != nil {
		return m.Note
	}
	return nil
}

func (m *CreateTx) GetIsWithdraw() bool {
	if m != nil {
		return m.IsWithdraw
	}
	return false
}

func (m *CreateTx) GetIsToken() bool {
	if m != nil {
		return m.IsToken
	}
	return false
}

func (m *CreateTx) GetTokenSymbol() string {
	if m != nil {
		return m.TokenSymbol
	}
	return ""
}

func (m *CreateTx) GetExecName() string {
	if m != nil {
		return m.ExecName
	}
	return ""
}

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

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

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

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

var xxx_messageInfo_CreateTransactionGroup proto.InternalMessageInfo

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

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

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

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

var xxx_messageInfo_UnsignTx proto.InternalMessageInfo

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

// payAddr 可以支持 1. 地址 2. 私钥
type NoBalanceTx struct {
	TxHex                string   `protobuf:"bytes,1,opt,name=txHex,proto3" json:"txHex,omitempty"`
	PayAddr              string   `protobuf:"bytes,2,opt,name=payAddr,proto3" json:"payAddr,omitempty"`
	Privkey              string   `protobuf:"bytes,3,opt,name=privkey,proto3" json:"privkey,omitempty"`
	Expire               string   `protobuf:"bytes,4,opt,name=expire,proto3" json:"expire,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_NoBalanceTx proto.InternalMessageInfo

func (m *NoBalanceTx) GetTxHex() string {
	if m != nil {
		return m.TxHex
	}
	return ""
}

func (m *NoBalanceTx) GetPayAddr() string {
	if m != nil {
		return m.PayAddr
	}
	return ""
}

func (m *NoBalanceTx) GetPrivkey() string {
	if m != nil {
		return m.Privkey
	}
	return ""
}

func (m *NoBalanceTx) GetExpire() string {
	if m != nil {
		return m.Expire
	}
	return ""
}

type SignedTx struct {
	Unsign               []byte   `protobuf:"bytes,1,opt,name=unsign,proto3" json:"unsign,omitempty"`
	Sign                 []byte   `protobuf:"bytes,2,opt,name=sign,proto3" json:"sign,omitempty"`
	Pubkey               []byte   `protobuf:"bytes,3,opt,name=pubkey,proto3" json:"pubkey,omitempty"`
	Ty                   int32    `protobuf:"varint,4,opt,name=ty,proto3" json:"ty,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_SignedTx proto.InternalMessageInfo

func (m *SignedTx) GetUnsign() []byte {
	if m != nil {
		return m.Unsign
	}
	return nil
}

func (m *SignedTx) GetSign() []byte {
	if m != nil {
		return m.Sign
	}
	return nil
}

func (m *SignedTx) GetPubkey() []byte {
	if m != nil {
		return m.Pubkey
	}
	return nil
}

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

type Transaction struct {
	Execer    []byte     `protobuf:"bytes,1,opt,name=execer,proto3" json:"execer,omitempty"`
	Payload   []byte     `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
	Signature *Signature `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"`
	Fee       int64      `protobuf:"varint,4,opt,name=fee,proto3" json:"fee,omitempty"`
	Expire    int64      `protobuf:"varint,5,opt,name=expire,proto3" json:"expire,omitempty"`
	//随机ID，可以防止payload 相同的时候，交易重复
	Nonce int64 `protobuf:"varint,6,opt,name=nonce,proto3" json:"nonce,omitempty"`
	//对方地址，如果没有对方地址，可以为空
	To                   string   `protobuf:"bytes,7,opt,name=to,proto3" json:"to,omitempty"`
	GroupCount           int32    `protobuf:"varint,8,opt,name=groupCount,proto3" json:"groupCount,omitempty"`
	Header               []byte   `protobuf:"bytes,9,opt,name=header,proto3" json:"header,omitempty"`
	Next                 []byte   `protobuf:"bytes,10,opt,name=next,proto3" json:"next,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_Transaction proto.InternalMessageInfo

func (m *Transaction) GetExecer() []byte {
	if m != nil {
		return m.Execer
	}
	return nil
}

func (m *Transaction) GetPayload() []byte {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (m *Transaction) GetSignature() *Signature {
	if m != nil {
		return m.Signature
	}
	return nil
}

func (m *Transaction) GetFee() int64 {
	if m != nil {
		return m.Fee
	}
	return 0
}

func (m *Transaction) GetExpire() int64 {
	if m != nil {
		return m.Expire
	}
	return 0
}

func (m *Transaction) GetNonce() int64 {
	if m != nil {
		return m.Nonce
	}
	return 0
}

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

func (m *Transaction) GetGroupCount() int32 {
	if m != nil {
		return m.GroupCount
	}
	return 0
}

func (m *Transaction) GetHeader() []byte {
	if m != nil {
		return m.Header
	}
	return nil
}

func (m *Transaction) GetNext() []byte {
	if m != nil {
		return m.Next
	}
	return nil
}

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

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

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

var xxx_messageInfo_Transactions proto.InternalMessageInfo

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

// 环签名类型时，签名字段存储的环签名信息
type RingSignature struct {
	Items                []*RingSignatureItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

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

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

var xxx_messageInfo_RingSignature proto.InternalMessageInfo

func (m *RingSignature) GetItems() []*RingSignatureItem {
	if m != nil {
		return m.Items
	}
	return nil
}

// 环签名中的一组签名数据
type RingSignatureItem struct {
	Pubkey               [][]byte `protobuf:"bytes,1,rep,name=pubkey,proto3" json:"pubkey,omitempty"`
	Signature            [][]byte `protobuf:"bytes,2,rep,name=signature,proto3" json:"signature,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_RingSignatureItem proto.InternalMessageInfo

func (m *RingSignatureItem) GetPubkey() [][]byte {
	if m != nil {
		return m.Pubkey
	}
	return nil
}

func (m *RingSignatureItem) GetSignature() [][]byte {
	if m != nil {
		return m.Signature
	}
	return nil
}

//对于一个交易组中的交易，要么全部成功，要么全部失败
//这个要好好设计一下
//最好交易构成一个链条[prevhash].独立的交易构成链条
//只要这个组中有一个执行是出错的，那么就执行不成功
//三种签名支持
// ty = 1 -> secp256k1
// ty = 2 -> ed25519
// ty = 3 -> sm2
// ty = 4 -> OnetimeED25519
// ty = 5 -> RingBaseonED25519
type Signature struct {
	Ty     int32  `protobuf:"varint,1,opt,name=ty,proto3" json:"ty,omitempty"`
	Pubkey []byte `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey,omitempty"`
	//当ty为5时，格式应该用RingSignature去解析
	Signature            []byte   `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_Signature proto.InternalMessageInfo

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

func (m *Signature) GetPubkey() []byte {
	if m != nil {
		return m.Pubkey
	}
	return nil
}

func (m *Signature) GetSignature() []byte {
	if m != nil {
		return m.Signature
	}
	return nil
}

type AddrOverview struct {
	Reciver              int64    `protobuf:"varint,1,opt,name=reciver,proto3" json:"reciver,omitempty"`
	Balance              int64    `protobuf:"varint,2,opt,name=balance,proto3" json:"balance,omitempty"`
	TxCount              int64    `protobuf:"varint,3,opt,name=txCount,proto3" json:"txCount,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AddrOverview proto.InternalMessageInfo

func (m *AddrOverview) GetReciver() int64 {
	if m != nil {
		return m.Reciver
	}
	return 0
}

func (m *AddrOverview) GetBalance() int64 {
	if m != nil {
		return m.Balance
	}
	return 0
}

func (m *AddrOverview) GetTxCount() int64 {
	if m != nil {
		return m.TxCount
	}
	return 0
}

type ReqAddr struct {
	Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
	//表示取所有/from/to/其他的hash列表
	Flag                 int32    `protobuf:"varint,2,opt,name=flag,proto3" json:"flag,omitempty"`
	Count                int32    `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
	Direction            int32    `protobuf:"varint,4,opt,name=direction,proto3" json:"direction,omitempty"`
	Height               int64    `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"`
	Index                int64    `protobuf:"varint,6,opt,name=index,proto3" json:"index,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ReqAddr proto.InternalMessageInfo

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

func (m *ReqAddr) GetFlag() int32 {
	if m != nil {
		return m.Flag
	}
	return 0
}

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

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

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

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

type ReqPrivacy struct {
	Count                int32    `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
	Direction            int32    `protobuf:"varint,2,opt,name=direction,proto3" json:"direction,omitempty"`
	Height               int64    `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ReqPrivacy proto.InternalMessageInfo

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

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

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

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

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

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

var xxx_messageInfo_HexTx proto.InternalMessageInfo

func (m *HexTx) GetTx() string {
	if m != nil {
		return m.Tx
	}
	return ""
}

type ReplyTxInfo struct {
	Hash                 []byte   `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
	Height               int64    `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
	Index                int64    `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
	Assets               []*Asset `protobuf:"bytes,4,rep,name=assets,proto3" json:"assets,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ReplyTxInfo proto.InternalMessageInfo

func (m *ReplyTxInfo) GetHash() []byte {
	if m != nil {
		return m.Hash
	}
	return nil
}

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

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

func (m *ReplyTxInfo) GetAssets() []*Asset {
	if m != nil {
		return m.Assets
	}
	return nil
}

type ReqTxList struct {
	Count                int64    `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ReqTxList proto.InternalMessageInfo

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

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

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

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

var xxx_messageInfo_ReplyTxList proto.InternalMessageInfo

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

type TxHashList struct {
	Hashes               [][]byte `protobuf:"bytes,1,rep,name=hashes,proto3" json:"hashes,omitempty"`
	Count                int64    `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
	Expire               []int64  `protobuf:"varint,3,rep,packed,name=expire,proto3" json:"expire,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_TxHashList proto.InternalMessageInfo

func (m *TxHashList) GetHashes() [][]byte {
	if m != nil {
		return m.Hashes
	}
	return nil
}

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

func (m *TxHashList) GetExpire() []int64 {
	if m != nil {
		return m.Expire
	}
	return nil
}

type ReplyTxInfos struct {
	TxInfos              []*ReplyTxInfo `protobuf:"bytes,1,rep,name=txInfos,proto3" json:"txInfos,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

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

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

var xxx_messageInfo_ReplyTxInfos proto.InternalMessageInfo

func (m *ReplyTxInfos) GetTxInfos() []*ReplyTxInfo {
	if m != nil {
		return m.TxInfos
	}
	return nil
}

type ReceiptLog struct {
	Ty                   int32    `protobuf:"varint,1,opt,name=ty,proto3" json:"ty,omitempty"`
	Log                  []byte   `protobuf:"bytes,2,opt,name=log,proto3" json:"log,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ReceiptLog proto.InternalMessageInfo

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

func (m *ReceiptLog) GetLog() []byte {
	if m != nil {
		return m.Log
	}
	return nil
}

// ty = 0 -> error Receipt
// ty = 1 -> CutFee //cut fee ,bug exec not ok
// ty = 2 -> exec ok
type Receipt struct {
	Ty                   int32         `protobuf:"varint,1,opt,name=ty,proto3" json:"ty,omitempty"`
	KV                   []*KeyValue   `protobuf:"bytes,2,rep,name=KV,proto3" json:"KV,omitempty"`
	Logs                 []*ReceiptLog `protobuf:"bytes,3,rep,name=logs,proto3" json:"logs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

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

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

var xxx_messageInfo_Receipt proto.InternalMessageInfo

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

func (m *Receipt) GetKV() []*KeyValue {
	if m != nil {
		return m.KV
	}
	return nil
}

func (m *Receipt) GetLogs() []*ReceiptLog {
	if m != nil {
		return m.Logs
	}
	return nil
}

type ReceiptData struct {
	Ty                   int32         `protobuf:"varint,1,opt,name=ty,proto3" json:"ty,omitempty"`
	Logs                 []*ReceiptLog `protobuf:"bytes,3,rep,name=logs,proto3" json:"logs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

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

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

var xxx_messageInfo_ReceiptData proto.InternalMessageInfo

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

func (m *ReceiptData) GetLogs() []*ReceiptLog {
	if m != nil {
		return m.Logs
	}
	return nil
}

type TxResult struct {
	Height               int64        `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Index                int32        `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
	Tx                   *Transaction `protobuf:"bytes,3,opt,name=tx,proto3" json:"tx,omitempty"`
	Receiptdate          *ReceiptData `protobuf:"bytes,4,opt,name=receiptdate,proto3" json:"receiptdate,omitempty"`
	Blocktime            int64        `protobuf:"varint,5,opt,name=blocktime,proto3" json:"blocktime,omitempty"`
	ActionName           string       `protobuf:"bytes,6,opt,name=actionName,proto3" json:"actionName,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

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

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

var xxx_messageInfo_TxResult proto.InternalMessageInfo

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

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

func (m *TxResult) GetTx() *Transaction {
	if m != nil {
		return m.Tx
	}
	return nil
}

func (m *TxResult) GetReceiptdate() *ReceiptData {
	if m != nil {
		return m.Receiptdate
	}
	return nil
}

func (m *TxResult) GetBlocktime() int64 {
	if m != nil {
		return m.Blocktime
	}
	return 0
}

func (m *TxResult) GetActionName() string {
	if m != nil {
		return m.ActionName
	}
	return ""
}

type TransactionDetail struct {
	Tx                   *Transaction `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"`
	Receipt              *ReceiptData `protobuf:"bytes,2,opt,name=receipt,proto3" json:"receipt,omitempty"`
	Proofs               [][]byte     `protobuf:"bytes,3,rep,name=proofs,proto3" json:"proofs,omitempty"`
	Height               int64        `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"`
	Index                int64        `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"`
	Blocktime            int64        `protobuf:"varint,6,opt,name=blocktime,proto3" json:"blocktime,omitempty"`
	Amount               int64        `protobuf:"varint,7,opt,name=amount,proto3" json:"amount,omitempty"`
	Fromaddr             string       `protobuf:"bytes,8,opt,name=fromaddr,proto3" json:"fromaddr,omitempty"`
	ActionName           string       `protobuf:"bytes,9,opt,name=actionName,proto3" json:"actionName,omitempty"`
	Assets               []*Asset     `protobuf:"bytes,10,rep,name=assets,proto3" json:"assets,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

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

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

var xxx_messageInfo_TransactionDetail proto.InternalMessageInfo

func (m *TransactionDetail) GetTx() *Transaction {
	if m != nil {
		return m.Tx
	}
	return nil
}

func (m *TransactionDetail) GetReceipt() *ReceiptData {
	if m != nil {
		return m.Receipt
	}
	return nil
}

func (m *TransactionDetail) GetProofs() [][]byte {
	if m != nil {
		return m.Proofs
	}
	return nil
}

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

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

func (m *TransactionDetail) GetBlocktime() int64 {
	if m != nil {
		return m.Blocktime
	}
	return 0
}

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

func (m *TransactionDetail) GetFromaddr() string {
	if m != nil {
		return m.Fromaddr
	}
	return ""
}

func (m *TransactionDetail) GetActionName() string {
	if m != nil {
		return m.ActionName
	}
	return ""
}

func (m *TransactionDetail) GetAssets() []*Asset {
	if m != nil {
		return m.Assets
	}
	return nil
}

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

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

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

var xxx_messageInfo_TransactionDetails proto.InternalMessageInfo

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

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

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

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

var xxx_messageInfo_ReqAddrs proto.InternalMessageInfo

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

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

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

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

var xxx_messageInfo_ReqDecodeRawTransaction proto.InternalMessageInfo

func (m *ReqDecodeRawTransaction) GetTxHex() string {
	if m != nil {
		return m.TxHex
	}
	return ""
}

type UserWrite struct {
	Topic                string   `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
	Content              string   `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_UserWrite proto.InternalMessageInfo

func (m *UserWrite) GetTopic() string {
	if m != nil {
		return m.Topic
	}
	return ""
}

func (m *UserWrite) GetContent() string {
	if m != nil {
		return m.Content
	}
	return ""
}

type UpgradeMeta struct {
	Indexing             bool     `protobuf:"varint,1,opt,name=indexing,proto3" json:"indexing,omitempty"`
	Version              string   `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
	Height               int64    `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_UpgradeMeta proto.InternalMessageInfo

func (m *UpgradeMeta) GetIndexing() bool {
	if m != nil {
		return m.Indexing
	}
	return false
}

func (m *UpgradeMeta) GetVersion() string {
	if m != nil {
		return m.Version
	}
	return ""
}

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

func init() {
	proto.RegisterType((*AssetsGenesis)(nil), "types.AssetsGenesis")
	proto.RegisterType((*AssetsTransferToExec)(nil), "types.AssetsTransferToExec")
	proto.RegisterType((*AssetsWithdraw)(nil), "types.AssetsWithdraw")
	proto.RegisterType((*AssetsTransfer)(nil), "types.AssetsTransfer")
	proto.RegisterType((*Asset)(nil), "types.Asset")
	proto.RegisterType((*CreateTx)(nil), "types.CreateTx")
	proto.RegisterType((*CreateTransactionGroup)(nil), "types.CreateTransactionGroup")
	proto.RegisterType((*UnsignTx)(nil), "types.UnsignTx")
	proto.RegisterType((*NoBalanceTx)(nil), "types.NoBalanceTx")
	proto.RegisterType((*SignedTx)(nil), "types.SignedTx")
	proto.RegisterType((*Transaction)(nil), "types.Transaction")
	proto.RegisterType((*Transactions)(nil), "types.Transactions")
	proto.RegisterType((*RingSignature)(nil), "types.RingSignature")
	proto.RegisterType((*RingSignatureItem)(nil), "types.RingSignatureItem")
	proto.RegisterType((*Signature)(nil), "types.Signature")
	proto.RegisterType((*AddrOverview)(nil), "types.AddrOverview")
	proto.RegisterType((*ReqAddr)(nil), "types.ReqAddr")
	proto.RegisterType((*ReqPrivacy)(nil), "types.ReqPrivacy")
	proto.RegisterType((*HexTx)(nil), "types.HexTx")
	proto.RegisterType((*ReplyTxInfo)(nil), "types.ReplyTxInfo")
	proto.RegisterType((*ReqTxList)(nil), "types.ReqTxList")
	proto.RegisterType((*ReplyTxList)(nil), "types.ReplyTxList")
	proto.RegisterType((*TxHashList)(nil), "types.TxHashList")
	proto.RegisterType((*ReplyTxInfos)(nil), "types.ReplyTxInfos")
	proto.RegisterType((*ReceiptLog)(nil), "types.ReceiptLog")
	proto.RegisterType((*Receipt)(nil), "types.Receipt")
	proto.RegisterType((*ReceiptData)(nil), "types.ReceiptData")
	proto.RegisterType((*TxResult)(nil), "types.TxResult")
	proto.RegisterType((*TransactionDetail)(nil), "types.TransactionDetail")
	proto.RegisterType((*TransactionDetails)(nil), "types.TransactionDetails")
	proto.RegisterType((*ReqAddrs)(nil), "types.ReqAddrs")
	proto.RegisterType((*ReqDecodeRawTransaction)(nil), "types.ReqDecodeRawTransaction")
	proto.RegisterType((*UserWrite)(nil), "types.UserWrite")
	proto.RegisterType((*UpgradeMeta)(nil), "types.UpgradeMeta")
}

func init() { proto.RegisterFile("transaction.proto", fileDescriptor_2cc4e03d2c28c490) }

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