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

package types

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

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

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

// action
type TokenAction struct {
	// Types that are valid to be assigned to Value:
	//	*TokenAction_TokenPreCreate
	//	*TokenAction_TokenFinishCreate
	//	*TokenAction_TokenRevokeCreate
	//	*TokenAction_Transfer
	//	*TokenAction_Withdraw
	//	*TokenAction_Genesis
	//	*TokenAction_TransferToExec
	Value                isTokenAction_Value `protobuf_oneof:"value"`
	Ty                   int32               `protobuf:"varint,7,opt,name=Ty,proto3" json:"Ty,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

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

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

var xxx_messageInfo_TokenAction proto.InternalMessageInfo

type isTokenAction_Value interface {
	isTokenAction_Value()
}

type TokenAction_TokenPreCreate struct {
	TokenPreCreate *TokenPreCreate `protobuf:"bytes,1,opt,name=tokenPreCreate,proto3,oneof"`
}

type TokenAction_TokenFinishCreate struct {
	TokenFinishCreate *TokenFinishCreate `protobuf:"bytes,2,opt,name=tokenFinishCreate,proto3,oneof"`
}

type TokenAction_TokenRevokeCreate struct {
	TokenRevokeCreate *TokenRevokeCreate `protobuf:"bytes,3,opt,name=tokenRevokeCreate,proto3,oneof"`
}

type TokenAction_Transfer struct {
	Transfer *types.AssetsTransfer `protobuf:"bytes,4,opt,name=transfer,proto3,oneof"`
}

type TokenAction_Withdraw struct {
	Withdraw *types.AssetsWithdraw `protobuf:"bytes,5,opt,name=withdraw,proto3,oneof"`
}

type TokenAction_Genesis struct {
	Genesis *types.AssetsGenesis `protobuf:"bytes,6,opt,name=genesis,proto3,oneof"`
}

type TokenAction_TransferToExec struct {
	TransferToExec *types.AssetsTransferToExec `protobuf:"bytes,8,opt,name=transferToExec,proto3,oneof"`
}

func (*TokenAction_TokenPreCreate) isTokenAction_Value() {}

func (*TokenAction_TokenFinishCreate) isTokenAction_Value() {}

func (*TokenAction_TokenRevokeCreate) isTokenAction_Value() {}

func (*TokenAction_Transfer) isTokenAction_Value() {}

func (*TokenAction_Withdraw) isTokenAction_Value() {}

func (*TokenAction_Genesis) isTokenAction_Value() {}

func (*TokenAction_TransferToExec) isTokenAction_Value() {}

func (m *TokenAction) GetValue() isTokenAction_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (m *TokenAction) GetTokenPreCreate() *TokenPreCreate {
	if x, ok := m.GetValue().(*TokenAction_TokenPreCreate); ok {
		return x.TokenPreCreate
	}
	return nil
}

func (m *TokenAction) GetTokenFinishCreate() *TokenFinishCreate {
	if x, ok := m.GetValue().(*TokenAction_TokenFinishCreate); ok {
		return x.TokenFinishCreate
	}
	return nil
}

func (m *TokenAction) GetTokenRevokeCreate() *TokenRevokeCreate {
	if x, ok := m.GetValue().(*TokenAction_TokenRevokeCreate); ok {
		return x.TokenRevokeCreate
	}
	return nil
}

func (m *TokenAction) GetTransfer() *types.AssetsTransfer {
	if x, ok := m.GetValue().(*TokenAction_Transfer); ok {
		return x.Transfer
	}
	return nil
}

func (m *TokenAction) GetWithdraw() *types.AssetsWithdraw {
	if x, ok := m.GetValue().(*TokenAction_Withdraw); ok {
		return x.Withdraw
	}
	return nil
}

func (m *TokenAction) GetGenesis() *types.AssetsGenesis {
	if x, ok := m.GetValue().(*TokenAction_Genesis); ok {
		return x.Genesis
	}
	return nil
}

func (m *TokenAction) GetTransferToExec() *types.AssetsTransferToExec {
	if x, ok := m.GetValue().(*TokenAction_TransferToExec); ok {
		return x.TransferToExec
	}
	return nil
}

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

// XXX_OneofFuncs is for the internal use of the proto package.
func (*TokenAction) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _TokenAction_OneofMarshaler, _TokenAction_OneofUnmarshaler, _TokenAction_OneofSizer, []interface{}{
		(*TokenAction_TokenPreCreate)(nil),
		(*TokenAction_TokenFinishCreate)(nil),
		(*TokenAction_TokenRevokeCreate)(nil),
		(*TokenAction_Transfer)(nil),
		(*TokenAction_Withdraw)(nil),
		(*TokenAction_Genesis)(nil),
		(*TokenAction_TransferToExec)(nil),
	}
}

func _TokenAction_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*TokenAction)
	// value
	switch x := m.Value.(type) {
	case *TokenAction_TokenPreCreate:
		b.EncodeVarint(1<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.TokenPreCreate); err != nil {
			return err
		}
	case *TokenAction_TokenFinishCreate:
		b.EncodeVarint(2<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.TokenFinishCreate); err != nil {
			return err
		}
	case *TokenAction_TokenRevokeCreate:
		b.EncodeVarint(3<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.TokenRevokeCreate); err != nil {
			return err
		}
	case *TokenAction_Transfer:
		b.EncodeVarint(4<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Transfer); err != nil {
			return err
		}
	case *TokenAction_Withdraw:
		b.EncodeVarint(5<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Withdraw); err != nil {
			return err
		}
	case *TokenAction_Genesis:
		b.EncodeVarint(6<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Genesis); err != nil {
			return err
		}
	case *TokenAction_TransferToExec:
		b.EncodeVarint(8<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.TransferToExec); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("TokenAction.Value has unexpected type %T", x)
	}
	return nil
}

func _TokenAction_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*TokenAction)
	switch tag {
	case 1: // value.tokenPreCreate
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TokenPreCreate)
		err := b.DecodeMessage(msg)
		m.Value = &TokenAction_TokenPreCreate{msg}
		return true, err
	case 2: // value.tokenFinishCreate
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TokenFinishCreate)
		err := b.DecodeMessage(msg)
		m.Value = &TokenAction_TokenFinishCreate{msg}
		return true, err
	case 3: // value.tokenRevokeCreate
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TokenRevokeCreate)
		err := b.DecodeMessage(msg)
		m.Value = &TokenAction_TokenRevokeCreate{msg}
		return true, err
	case 4: // value.transfer
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(types.AssetsTransfer)
		err := b.DecodeMessage(msg)
		m.Value = &TokenAction_Transfer{msg}
		return true, err
	case 5: // value.withdraw
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(types.AssetsWithdraw)
		err := b.DecodeMessage(msg)
		m.Value = &TokenAction_Withdraw{msg}
		return true, err
	case 6: // value.genesis
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(types.AssetsGenesis)
		err := b.DecodeMessage(msg)
		m.Value = &TokenAction_Genesis{msg}
		return true, err
	case 8: // value.transferToExec
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(types.AssetsTransferToExec)
		err := b.DecodeMessage(msg)
		m.Value = &TokenAction_TransferToExec{msg}
		return true, err
	default:
		return false, nil
	}
}

func _TokenAction_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*TokenAction)
	// value
	switch x := m.Value.(type) {
	case *TokenAction_TokenPreCreate:
		s := proto.Size(x.TokenPreCreate)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TokenAction_TokenFinishCreate:
		s := proto.Size(x.TokenFinishCreate)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TokenAction_TokenRevokeCreate:
		s := proto.Size(x.TokenRevokeCreate)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TokenAction_Transfer:
		s := proto.Size(x.Transfer)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TokenAction_Withdraw:
		s := proto.Size(x.Withdraw)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TokenAction_Genesis:
		s := proto.Size(x.Genesis)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *TokenAction_TransferToExec:
		s := proto.Size(x.TransferToExec)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

//创建token，支持最大精确度是8位小数,即存入数据库的实际总额需要放大1e8倍
type TokenPreCreate struct {
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Symbol               string   `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Introduction         string   `protobuf:"bytes,3,opt,name=introduction,proto3" json:"introduction,omitempty"`
	Total                int64    `protobuf:"varint,4,opt,name=total,proto3" json:"total,omitempty"`
	Price                int64    `protobuf:"varint,5,opt,name=price,proto3" json:"price,omitempty"`
	Owner                string   `protobuf:"bytes,6,opt,name=owner,proto3" json:"owner,omitempty"`
	Category             int32    `protobuf:"varint,7,opt,name=category,proto3" json:"category,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_TokenPreCreate proto.InternalMessageInfo

func (m *TokenPreCreate) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

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

func (m *TokenPreCreate) GetIntroduction() string {
	if m != nil {
		return m.Introduction
	}
	return ""
}

func (m *TokenPreCreate) GetTotal() int64 {
	if m != nil {
		return m.Total
	}
	return 0
}

func (m *TokenPreCreate) GetPrice() int64 {
	if m != nil {
		return m.Price
	}
	return 0
}

func (m *TokenPreCreate) GetOwner() string {
	if m != nil {
		return m.Owner
	}
	return ""
}

func (m *TokenPreCreate) GetCategory() int32 {
	if m != nil {
		return m.Category
	}
	return 0
}

type TokenFinishCreate struct {
	Symbol               string   `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Owner                string   `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_TokenFinishCreate proto.InternalMessageInfo

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

func (m *TokenFinishCreate) GetOwner() string {
	if m != nil {
		return m.Owner
	}
	return ""
}

type TokenRevokeCreate struct {
	Symbol               string   `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Owner                string   `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_TokenRevokeCreate proto.InternalMessageInfo

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

func (m *TokenRevokeCreate) GetOwner() string {
	if m != nil {
		return m.Owner
	}
	return ""
}

// state db
type Token struct {
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Symbol               string   `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Introduction         string   `protobuf:"bytes,3,opt,name=introduction,proto3" json:"introduction,omitempty"`
	Total                int64    `protobuf:"varint,4,opt,name=total,proto3" json:"total,omitempty"`
	Price                int64    `protobuf:"varint,5,opt,name=price,proto3" json:"price,omitempty"`
	Owner                string   `protobuf:"bytes,6,opt,name=owner,proto3" json:"owner,omitempty"`
	Creator              string   `protobuf:"bytes,7,opt,name=creator,proto3" json:"creator,omitempty"`
	Status               int32    `protobuf:"varint,8,opt,name=status,proto3" json:"status,omitempty"`
	Category             int32    `protobuf:"varint,9,opt,name=category,proto3" json:"category,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_Token proto.InternalMessageInfo

func (m *Token) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

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

func (m *Token) GetIntroduction() string {
	if m != nil {
		return m.Introduction
	}
	return ""
}

func (m *Token) GetTotal() int64 {
	if m != nil {
		return m.Total
	}
	return 0
}

func (m *Token) GetPrice() int64 {
	if m != nil {
		return m.Price
	}
	return 0
}

func (m *Token) GetOwner() string {
	if m != nil {
		return m.Owner
	}
	return ""
}

func (m *Token) GetCreator() string {
	if m != nil {
		return m.Creator
	}
	return ""
}

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

func (m *Token) GetCategory() int32 {
	if m != nil {
		return m.Category
	}
	return 0
}

// log
type ReceiptToken struct {
	Symbol               string   `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Owner                string   `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
	Status               int32    `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ReceiptToken proto.InternalMessageInfo

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

func (m *ReceiptToken) GetOwner() string {
	if m != nil {
		return m.Owner
	}
	return ""
}

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

// local
type LocalToken struct {
	Name                string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Symbol              string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Introduction        string `protobuf:"bytes,3,opt,name=introduction,proto3" json:"introduction,omitempty"`
	Total               int64  `protobuf:"varint,4,opt,name=total,proto3" json:"total,omitempty"`
	Price               int64  `protobuf:"varint,5,opt,name=price,proto3" json:"price,omitempty"`
	Owner               string `protobuf:"bytes,6,opt,name=owner,proto3" json:"owner,omitempty"`
	Creator             string `protobuf:"bytes,7,opt,name=creator,proto3" json:"creator,omitempty"`
	Status              int32  `protobuf:"varint,8,opt,name=status,proto3" json:"status,omitempty"`
	CreatedHeight       int64  `protobuf:"varint,9,opt,name=createdHeight,proto3" json:"createdHeight,omitempty"`
	CreatedTime         int64  `protobuf:"varint,10,opt,name=createdTime,proto3" json:"createdTime,omitempty"`
	PrepareCreateHeight int64  `protobuf:"varint,11,opt,name=prepareCreateHeight,proto3" json:"prepareCreateHeight,omitempty"`
	PrepareCreateTime   int64  `protobuf:"varint,12,opt,name=prepareCreateTime,proto3" json:"prepareCreateTime,omitempty"`
	Precision           int32  `protobuf:"varint,13,opt,name=precision,proto3" json:"precision,omitempty"`
	// 如果需要这个项可以单独做一个域存储
	TotalTransferTimes   int64    `protobuf:"varint,14,opt,name=totalTransferTimes,proto3" json:"totalTransferTimes,omitempty"`
	RevokedHeight        int64    `protobuf:"varint,15,opt,name=revokedHeight,proto3" json:"revokedHeight,omitempty"`
	RevokedTime          int64    `protobuf:"varint,16,opt,name=revokedTime,proto3" json:"revokedTime,omitempty"`
	Category             int32    `protobuf:"varint,17,opt,name=category,proto3" json:"category,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_LocalToken proto.InternalMessageInfo

func (m *LocalToken) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

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

func (m *LocalToken) GetIntroduction() string {
	if m != nil {
		return m.Introduction
	}
	return ""
}

func (m *LocalToken) GetTotal() int64 {
	if m != nil {
		return m.Total
	}
	return 0
}

func (m *LocalToken) GetPrice() int64 {
	if m != nil {
		return m.Price
	}
	return 0
}

func (m *LocalToken) GetOwner() string {
	if m != nil {
		return m.Owner
	}
	return ""
}

func (m *LocalToken) GetCreator() string {
	if m != nil {
		return m.Creator
	}
	return ""
}

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

func (m *LocalToken) GetCreatedHeight() int64 {
	if m != nil {
		return m.CreatedHeight
	}
	return 0
}

func (m *LocalToken) GetCreatedTime() int64 {
	if m != nil {
		return m.CreatedTime
	}
	return 0
}

func (m *LocalToken) GetPrepareCreateHeight() int64 {
	if m != nil {
		return m.PrepareCreateHeight
	}
	return 0
}

func (m *LocalToken) GetPrepareCreateTime() int64 {
	if m != nil {
		return m.PrepareCreateTime
	}
	return 0
}

func (m *LocalToken) GetPrecision() int32 {
	if m != nil {
		return m.Precision
	}
	return 0
}

func (m *LocalToken) GetTotalTransferTimes() int64 {
	if m != nil {
		return m.TotalTransferTimes
	}
	return 0
}

func (m *LocalToken) GetRevokedHeight() int64 {
	if m != nil {
		return m.RevokedHeight
	}
	return 0
}

func (m *LocalToken) GetRevokedTime() int64 {
	if m != nil {
		return m.RevokedTime
	}
	return 0
}

func (m *LocalToken) GetCategory() int32 {
	if m != nil {
		return m.Category
	}
	return 0
}

// query
type ReqTokens struct {
	QueryAll             bool     `protobuf:"varint,1,opt,name=queryAll,proto3" json:"queryAll,omitempty"`
	Status               int32    `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	Tokens               []string `protobuf:"bytes,3,rep,name=tokens,proto3" json:"tokens,omitempty"`
	SymbolOnly           bool     `protobuf:"varint,4,opt,name=symbolOnly,proto3" json:"symbolOnly,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ReqTokens proto.InternalMessageInfo

func (m *ReqTokens) GetQueryAll() bool {
	if m != nil {
		return m.QueryAll
	}
	return false
}

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

func (m *ReqTokens) GetTokens() []string {
	if m != nil {
		return m.Tokens
	}
	return nil
}

func (m *ReqTokens) GetSymbolOnly() bool {
	if m != nil {
		return m.SymbolOnly
	}
	return false
}

type ReplyTokens struct {
	Tokens               []*LocalToken `protobuf:"bytes,1,rep,name=tokens,proto3" json:"tokens,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

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

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

var xxx_messageInfo_ReplyTokens proto.InternalMessageInfo

func (m *ReplyTokens) GetTokens() []*LocalToken {
	if m != nil {
		return m.Tokens
	}
	return nil
}

type TokenRecv struct {
	Token                string   `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	Recv                 int64    `protobuf:"varint,2,opt,name=recv,proto3" json:"recv,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_TokenRecv proto.InternalMessageInfo

func (m *TokenRecv) GetToken() string {
	if m != nil {
		return m.Token
	}
	return ""
}

func (m *TokenRecv) GetRecv() int64 {
	if m != nil {
		return m.Recv
	}
	return 0
}

type ReplyAddrRecvForTokens struct {
	TokenRecvs           []*TokenRecv `protobuf:"bytes,1,rep,name=tokenRecvs,proto3" json:"tokenRecvs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

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

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

var xxx_messageInfo_ReplyAddrRecvForTokens proto.InternalMessageInfo

func (m *ReplyAddrRecvForTokens) GetTokenRecvs() []*TokenRecv {
	if m != nil {
		return m.TokenRecvs
	}
	return nil
}

type ReqTokenBalance struct {
	Addresses            []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"`
	TokenSymbol          string   `protobuf:"bytes,2,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	Execer               string   `protobuf:"bytes,3,opt,name=execer,proto3" json:"execer,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ReqTokenBalance proto.InternalMessageInfo

func (m *ReqTokenBalance) GetAddresses() []string {
	if m != nil {
		return m.Addresses
	}
	return nil
}

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

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

type ReqAccountTokenAssets struct {
	Address              string   `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Execer               string   `protobuf:"bytes,2,opt,name=execer,proto3" json:"execer,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ReqAccountTokenAssets proto.InternalMessageInfo

func (m *ReqAccountTokenAssets) GetAddress() string {
	if m != nil {
		return m.Address
	}
	return ""
}

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

type TokenAsset struct {
	Symbol               string         `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Account              *types.Account `protobuf:"bytes,2,opt,name=account,proto3" json:"account,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

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

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

var xxx_messageInfo_TokenAsset proto.InternalMessageInfo

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

func (m *TokenAsset) GetAccount() *types.Account {
	if m != nil {
		return m.Account
	}
	return nil
}

type ReplyAccountTokenAssets struct {
	TokenAssets          []*TokenAsset `protobuf:"bytes,1,rep,name=tokenAssets,proto3" json:"tokenAssets,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

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

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

var xxx_messageInfo_ReplyAccountTokenAssets proto.InternalMessageInfo

func (m *ReplyAccountTokenAssets) GetTokenAssets() []*TokenAsset {
	if m != nil {
		return m.TokenAssets
	}
	return nil
}

type ReqAddrTokens struct {
	Addr                 string   `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
	Status               int32    `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
	Token                []string `protobuf:"bytes,3,rep,name=token,proto3" json:"token,omitempty"`
	Direction            int32    `protobuf:"varint,4,opt,name=direction,proto3" json:"direction,omitempty"`
	Count                int32    `protobuf:"varint,5,opt,name=count,proto3" json:"count,omitempty"`
	FromKey              string   `protobuf:"bytes,6,opt,name=fromKey,proto3" json:"fromKey,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ReqAddrTokens proto.InternalMessageInfo

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

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

func (m *ReqAddrTokens) GetToken() []string {
	if m != nil {
		return m.Token
	}
	return nil
}

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

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

func (m *ReqAddrTokens) GetFromKey() string {
	if m != nil {
		return m.FromKey
	}
	return ""
}

type ReqTokenTx struct {
	Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,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"`
	Addr                 string   `protobuf:"bytes,7,opt,name=addr,proto3" json:"addr,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ReqTokenTx proto.InternalMessageInfo

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

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

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

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

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

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

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

func init() {
	proto.RegisterType((*TokenAction)(nil), "types.TokenAction")
	proto.RegisterType((*TokenPreCreate)(nil), "types.TokenPreCreate")
	proto.RegisterType((*TokenFinishCreate)(nil), "types.TokenFinishCreate")
	proto.RegisterType((*TokenRevokeCreate)(nil), "types.TokenRevokeCreate")
	proto.RegisterType((*Token)(nil), "types.Token")
	proto.RegisterType((*ReceiptToken)(nil), "types.ReceiptToken")
	proto.RegisterType((*LocalToken)(nil), "types.LocalToken")
	proto.RegisterType((*ReqTokens)(nil), "types.ReqTokens")
	proto.RegisterType((*ReplyTokens)(nil), "types.ReplyTokens")
	proto.RegisterType((*TokenRecv)(nil), "types.TokenRecv")
	proto.RegisterType((*ReplyAddrRecvForTokens)(nil), "types.ReplyAddrRecvForTokens")
	proto.RegisterType((*ReqTokenBalance)(nil), "types.ReqTokenBalance")
	proto.RegisterType((*ReqAccountTokenAssets)(nil), "types.ReqAccountTokenAssets")
	proto.RegisterType((*TokenAsset)(nil), "types.TokenAsset")
	proto.RegisterType((*ReplyAccountTokenAssets)(nil), "types.ReplyAccountTokenAssets")
	proto.RegisterType((*ReqAddrTokens)(nil), "types.ReqAddrTokens")
	proto.RegisterType((*ReqTokenTx)(nil), "types.ReqTokenTx")
}

func init() { proto.RegisterFile("token.proto", fileDescriptor_3aff0bcd502840ab) }

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

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

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

// TokenClient is the client API for Token service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type TokenClient interface {
	// token 对外提供服务的接口
	//区块链接口
	GetTokenBalance(ctx context.Context, in *ReqTokenBalance, opts ...grpc.CallOption) (*types.Accounts, error)
}

type tokenClient struct {
	cc *grpc.ClientConn
}

func NewTokenClient(cc *grpc.ClientConn) TokenClient {
	return &tokenClient{cc}
}

func (c *tokenClient) GetTokenBalance(ctx context.Context, in *ReqTokenBalance, opts ...grpc.CallOption) (*types.Accounts, error) {
	out := new(types.Accounts)
	err := c.cc.Invoke(ctx, "/types.token/GetTokenBalance", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// TokenServer is the server API for Token service.
type TokenServer interface {
	// token 对外提供服务的接口
	//区块链接口
	GetTokenBalance(context.Context, *ReqTokenBalance) (*types.Accounts, error)
}

func RegisterTokenServer(s *grpc.Server, srv TokenServer) {
	s.RegisterService(&_Token_serviceDesc, srv)
}

func _Token_GetTokenBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReqTokenBalance)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(TokenServer).GetTokenBalance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.token/GetTokenBalance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(TokenServer).GetTokenBalance(ctx, req.(*ReqTokenBalance))
	}
	return interceptor(ctx, in, info, handler)
}

var _Token_serviceDesc = grpc.ServiceDesc{
	ServiceName: "types.token",
	HandlerType: (*TokenServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetTokenBalance",
			Handler:    _Token_GetTokenBalance_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "token.proto",
}
