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

package types

import (
	fmt "fmt"

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

	math "math"

	types "github.com/33cn/chain33/types"

	context "golang.org/x/net/context"

	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

// trade 交易部分
//
type Trade struct {
	// Types that are valid to be assigned to Value:
	//	*Trade_SellLimit
	//	*Trade_BuyMarket
	//	*Trade_RevokeSell
	//	*Trade_BuyLimit
	//	*Trade_SellMarket
	//	*Trade_RevokeBuy
	Value                isTrade_Value `protobuf_oneof:"value"`
	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 *Trade) Reset()         { *m = Trade{} }
func (m *Trade) String() string { return proto.CompactTextString(m) }
func (*Trade) ProtoMessage()    {}
func (*Trade) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{0}
}
func (m *Trade) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Trade.Unmarshal(m, b)
}
func (m *Trade) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Trade.Marshal(b, m, deterministic)
}
func (dst *Trade) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Trade.Merge(dst, src)
}
func (m *Trade) XXX_Size() int {
	return xxx_messageInfo_Trade.Size(m)
}
func (m *Trade) XXX_DiscardUnknown() {
	xxx_messageInfo_Trade.DiscardUnknown(m)
}

var xxx_messageInfo_Trade proto.InternalMessageInfo

type isTrade_Value interface {
	isTrade_Value()
}

type Trade_SellLimit struct {
	SellLimit *TradeForSell `protobuf:"bytes,1,opt,name=sellLimit,proto3,oneof"`
}

type Trade_BuyMarket struct {
	BuyMarket *TradeForBuy `protobuf:"bytes,2,opt,name=buyMarket,proto3,oneof"`
}

type Trade_RevokeSell struct {
	RevokeSell *TradeForRevokeSell `protobuf:"bytes,3,opt,name=revokeSell,proto3,oneof"`
}

type Trade_BuyLimit struct {
	BuyLimit *TradeForBuyLimit `protobuf:"bytes,5,opt,name=buyLimit,proto3,oneof"`
}

type Trade_SellMarket struct {
	SellMarket *TradeForSellMarket `protobuf:"bytes,6,opt,name=sellMarket,proto3,oneof"`
}

type Trade_RevokeBuy struct {
	RevokeBuy *TradeForRevokeBuy `protobuf:"bytes,7,opt,name=revokeBuy,proto3,oneof"`
}

func (*Trade_SellLimit) isTrade_Value() {}

func (*Trade_BuyMarket) isTrade_Value() {}

func (*Trade_RevokeSell) isTrade_Value() {}

func (*Trade_BuyLimit) isTrade_Value() {}

func (*Trade_SellMarket) isTrade_Value() {}

func (*Trade_RevokeBuy) isTrade_Value() {}

func (m *Trade) GetValue() isTrade_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (m *Trade) GetSellLimit() *TradeForSell {
	if x, ok := m.GetValue().(*Trade_SellLimit); ok {
		return x.SellLimit
	}
	return nil
}

func (m *Trade) GetBuyMarket() *TradeForBuy {
	if x, ok := m.GetValue().(*Trade_BuyMarket); ok {
		return x.BuyMarket
	}
	return nil
}

func (m *Trade) GetRevokeSell() *TradeForRevokeSell {
	if x, ok := m.GetValue().(*Trade_RevokeSell); ok {
		return x.RevokeSell
	}
	return nil
}

func (m *Trade) GetBuyLimit() *TradeForBuyLimit {
	if x, ok := m.GetValue().(*Trade_BuyLimit); ok {
		return x.BuyLimit
	}
	return nil
}

func (m *Trade) GetSellMarket() *TradeForSellMarket {
	if x, ok := m.GetValue().(*Trade_SellMarket); ok {
		return x.SellMarket
	}
	return nil
}

func (m *Trade) GetRevokeBuy() *TradeForRevokeBuy {
	if x, ok := m.GetValue().(*Trade_RevokeBuy); ok {
		return x.RevokeBuy
	}
	return nil
}

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

// XXX_OneofFuncs is for the internal use of the proto package.
func (*Trade) 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 _Trade_OneofMarshaler, _Trade_OneofUnmarshaler, _Trade_OneofSizer, []interface{}{
		(*Trade_SellLimit)(nil),
		(*Trade_BuyMarket)(nil),
		(*Trade_RevokeSell)(nil),
		(*Trade_BuyLimit)(nil),
		(*Trade_SellMarket)(nil),
		(*Trade_RevokeBuy)(nil),
	}
}

func _Trade_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*Trade)
	// value
	switch x := m.Value.(type) {
	case *Trade_SellLimit:
		b.EncodeVarint(1<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.SellLimit); err != nil {
			return err
		}
	case *Trade_BuyMarket:
		b.EncodeVarint(2<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.BuyMarket); err != nil {
			return err
		}
	case *Trade_RevokeSell:
		b.EncodeVarint(3<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.RevokeSell); err != nil {
			return err
		}
	case *Trade_BuyLimit:
		b.EncodeVarint(5<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.BuyLimit); err != nil {
			return err
		}
	case *Trade_SellMarket:
		b.EncodeVarint(6<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.SellMarket); err != nil {
			return err
		}
	case *Trade_RevokeBuy:
		b.EncodeVarint(7<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.RevokeBuy); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("Trade.Value has unexpected type %T", x)
	}
	return nil
}

func _Trade_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*Trade)
	switch tag {
	case 1: // value.sellLimit
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TradeForSell)
		err := b.DecodeMessage(msg)
		m.Value = &Trade_SellLimit{msg}
		return true, err
	case 2: // value.buyMarket
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TradeForBuy)
		err := b.DecodeMessage(msg)
		m.Value = &Trade_BuyMarket{msg}
		return true, err
	case 3: // value.revokeSell
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TradeForRevokeSell)
		err := b.DecodeMessage(msg)
		m.Value = &Trade_RevokeSell{msg}
		return true, err
	case 5: // value.buyLimit
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TradeForBuyLimit)
		err := b.DecodeMessage(msg)
		m.Value = &Trade_BuyLimit{msg}
		return true, err
	case 6: // value.sellMarket
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TradeForSellMarket)
		err := b.DecodeMessage(msg)
		m.Value = &Trade_SellMarket{msg}
		return true, err
	case 7: // value.revokeBuy
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TradeForRevokeBuy)
		err := b.DecodeMessage(msg)
		m.Value = &Trade_RevokeBuy{msg}
		return true, err
	default:
		return false, nil
	}
}

func _Trade_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*Trade)
	// value
	switch x := m.Value.(type) {
	case *Trade_SellLimit:
		s := proto.Size(x.SellLimit)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *Trade_BuyMarket:
		s := proto.Size(x.BuyMarket)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *Trade_RevokeSell:
		s := proto.Size(x.RevokeSell)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *Trade_BuyLimit:
		s := proto.Size(x.BuyLimit)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *Trade_SellMarket:
		s := proto.Size(x.SellMarket)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *Trade_RevokeBuy:
		s := proto.Size(x.RevokeBuy)
		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的数量，单价以及总共有多少手token可以进行众筹
type TradeForSell struct {
	TokenSymbol string `protobuf:"bytes,1,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	// 每一手出售的token的数量
	AmountPerBoardlot int64 `protobuf:"varint,2,opt,name=amountPerBoardlot,proto3" json:"amountPerBoardlot,omitempty"`
	// 起卖手数,必须达到这个门槛才允许进行交易
	MinBoardlot int64 `protobuf:"varint,3,opt,name=minBoardlot,proto3" json:"minBoardlot,omitempty"`
	// 每一手token的价格
	PricePerBoardlot int64 `protobuf:"varint,4,opt,name=pricePerBoardlot,proto3" json:"pricePerBoardlot,omitempty"`
	TotalBoardlot    int64 `protobuf:"varint,5,opt,name=totalBoardlot,proto3" json:"totalBoardlot,omitempty"`
	// 此次出售的起始时间，如果非众筹则可以忽略此时间
	Starttime int64 `protobuf:"varint,6,opt,name=starttime,proto3" json:"starttime,omitempty"`
	Stoptime  int64 `protobuf:"varint,7,opt,name=stoptime,proto3" json:"stoptime,omitempty"`
	Crowdfund bool  `protobuf:"varint,8,opt,name=crowdfund,proto3" json:"crowdfund,omitempty"`
	// 资产来源
	AssetExec string `protobuf:"bytes,9,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	// 定价资产
	PriceExec            string   `protobuf:"bytes,10,opt,name=priceExec,proto3" json:"priceExec,omitempty"`
	PriceSymbol          string   `protobuf:"bytes,11,opt,name=priceSymbol,proto3" json:"priceSymbol,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TradeForSell) Reset()         { *m = TradeForSell{} }
func (m *TradeForSell) String() string { return proto.CompactTextString(m) }
func (*TradeForSell) ProtoMessage()    {}
func (*TradeForSell) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{1}
}
func (m *TradeForSell) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TradeForSell.Unmarshal(m, b)
}
func (m *TradeForSell) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TradeForSell.Marshal(b, m, deterministic)
}
func (dst *TradeForSell) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TradeForSell.Merge(dst, src)
}
func (m *TradeForSell) XXX_Size() int {
	return xxx_messageInfo_TradeForSell.Size(m)
}
func (m *TradeForSell) XXX_DiscardUnknown() {
	xxx_messageInfo_TradeForSell.DiscardUnknown(m)
}

var xxx_messageInfo_TradeForSell proto.InternalMessageInfo

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

func (m *TradeForSell) GetAmountPerBoardlot() int64 {
	if m != nil {
		return m.AmountPerBoardlot
	}
	return 0
}

func (m *TradeForSell) GetMinBoardlot() int64 {
	if m != nil {
		return m.MinBoardlot
	}
	return 0
}

func (m *TradeForSell) GetPricePerBoardlot() int64 {
	if m != nil {
		return m.PricePerBoardlot
	}
	return 0
}

func (m *TradeForSell) GetTotalBoardlot() int64 {
	if m != nil {
		return m.TotalBoardlot
	}
	return 0
}

func (m *TradeForSell) GetStarttime() int64 {
	if m != nil {
		return m.Starttime
	}
	return 0
}

func (m *TradeForSell) GetStoptime() int64 {
	if m != nil {
		return m.Stoptime
	}
	return 0
}

func (m *TradeForSell) GetCrowdfund() bool {
	if m != nil {
		return m.Crowdfund
	}
	return false
}

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

func (m *TradeForSell) GetPriceExec() string {
	if m != nil {
		return m.PriceExec
	}
	return ""
}

func (m *TradeForSell) GetPriceSymbol() string {
	if m != nil {
		return m.PriceSymbol
	}
	return ""
}

// 购买者发起交易用来购买token持有者之前挂单出售的token
// 其中的hash为token出售者发起出售交易的hash
type TradeForBuy struct {
	SellID               string   `protobuf:"bytes,1,opt,name=sellID,proto3" json:"sellID,omitempty"`
	BoardlotCnt          int64    `protobuf:"varint,2,opt,name=boardlotCnt,proto3" json:"boardlotCnt,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TradeForBuy) Reset()         { *m = TradeForBuy{} }
func (m *TradeForBuy) String() string { return proto.CompactTextString(m) }
func (*TradeForBuy) ProtoMessage()    {}
func (*TradeForBuy) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{2}
}
func (m *TradeForBuy) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TradeForBuy.Unmarshal(m, b)
}
func (m *TradeForBuy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TradeForBuy.Marshal(b, m, deterministic)
}
func (dst *TradeForBuy) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TradeForBuy.Merge(dst, src)
}
func (m *TradeForBuy) XXX_Size() int {
	return xxx_messageInfo_TradeForBuy.Size(m)
}
func (m *TradeForBuy) XXX_DiscardUnknown() {
	xxx_messageInfo_TradeForBuy.DiscardUnknown(m)
}

var xxx_messageInfo_TradeForBuy proto.InternalMessageInfo

func (m *TradeForBuy) GetSellID() string {
	if m != nil {
		return m.SellID
	}
	return ""
}

func (m *TradeForBuy) GetBoardlotCnt() int64 {
	if m != nil {
		return m.BoardlotCnt
	}
	return 0
}

// 允许token的持有者撤销之前未成交出售token的挂单
type TradeForRevokeSell struct {
	SellID               string   `protobuf:"bytes,1,opt,name=sellID,proto3" json:"sellID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TradeForRevokeSell) Reset()         { *m = TradeForRevokeSell{} }
func (m *TradeForRevokeSell) String() string { return proto.CompactTextString(m) }
func (*TradeForRevokeSell) ProtoMessage()    {}
func (*TradeForRevokeSell) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{3}
}
func (m *TradeForRevokeSell) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TradeForRevokeSell.Unmarshal(m, b)
}
func (m *TradeForRevokeSell) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TradeForRevokeSell.Marshal(b, m, deterministic)
}
func (dst *TradeForRevokeSell) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TradeForRevokeSell.Merge(dst, src)
}
func (m *TradeForRevokeSell) XXX_Size() int {
	return xxx_messageInfo_TradeForRevokeSell.Size(m)
}
func (m *TradeForRevokeSell) XXX_DiscardUnknown() {
	xxx_messageInfo_TradeForRevokeSell.DiscardUnknown(m)
}

var xxx_messageInfo_TradeForRevokeSell proto.InternalMessageInfo

func (m *TradeForRevokeSell) GetSellID() string {
	if m != nil {
		return m.SellID
	}
	return ""
}

// 限价买单构造请求
type TradeForBuyLimit struct {
	TokenSymbol       string `protobuf:"bytes,1,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	AmountPerBoardlot int64  `protobuf:"varint,2,opt,name=amountPerBoardlot,proto3" json:"amountPerBoardlot,omitempty"`
	MinBoardlot       int64  `protobuf:"varint,3,opt,name=minBoardlot,proto3" json:"minBoardlot,omitempty"`
	PricePerBoardlot  int64  `protobuf:"varint,4,opt,name=pricePerBoardlot,proto3" json:"pricePerBoardlot,omitempty"`
	TotalBoardlot     int64  `protobuf:"varint,5,opt,name=totalBoardlot,proto3" json:"totalBoardlot,omitempty"`
	AssetExec         string `protobuf:"bytes,6,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	// 定价资产
	PriceExec            string   `protobuf:"bytes,7,opt,name=priceExec,proto3" json:"priceExec,omitempty"`
	PriceSymbol          string   `protobuf:"bytes,8,opt,name=priceSymbol,proto3" json:"priceSymbol,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TradeForBuyLimit) Reset()         { *m = TradeForBuyLimit{} }
func (m *TradeForBuyLimit) String() string { return proto.CompactTextString(m) }
func (*TradeForBuyLimit) ProtoMessage()    {}
func (*TradeForBuyLimit) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{4}
}
func (m *TradeForBuyLimit) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TradeForBuyLimit.Unmarshal(m, b)
}
func (m *TradeForBuyLimit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TradeForBuyLimit.Marshal(b, m, deterministic)
}
func (dst *TradeForBuyLimit) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TradeForBuyLimit.Merge(dst, src)
}
func (m *TradeForBuyLimit) XXX_Size() int {
	return xxx_messageInfo_TradeForBuyLimit.Size(m)
}
func (m *TradeForBuyLimit) XXX_DiscardUnknown() {
	xxx_messageInfo_TradeForBuyLimit.DiscardUnknown(m)
}

var xxx_messageInfo_TradeForBuyLimit proto.InternalMessageInfo

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

func (m *TradeForBuyLimit) GetAmountPerBoardlot() int64 {
	if m != nil {
		return m.AmountPerBoardlot
	}
	return 0
}

func (m *TradeForBuyLimit) GetMinBoardlot() int64 {
	if m != nil {
		return m.MinBoardlot
	}
	return 0
}

func (m *TradeForBuyLimit) GetPricePerBoardlot() int64 {
	if m != nil {
		return m.PricePerBoardlot
	}
	return 0
}

func (m *TradeForBuyLimit) GetTotalBoardlot() int64 {
	if m != nil {
		return m.TotalBoardlot
	}
	return 0
}

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

func (m *TradeForBuyLimit) GetPriceExec() string {
	if m != nil {
		return m.PriceExec
	}
	return ""
}

func (m *TradeForBuyLimit) GetPriceSymbol() string {
	if m != nil {
		return m.PriceSymbol
	}
	return ""
}

// 现价卖单
type TradeForSellMarket struct {
	BuyID                string   `protobuf:"bytes,1,opt,name=buyID,proto3" json:"buyID,omitempty"`
	BoardlotCnt          int64    `protobuf:"varint,2,opt,name=boardlotCnt,proto3" json:"boardlotCnt,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TradeForSellMarket) Reset()         { *m = TradeForSellMarket{} }
func (m *TradeForSellMarket) String() string { return proto.CompactTextString(m) }
func (*TradeForSellMarket) ProtoMessage()    {}
func (*TradeForSellMarket) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{5}
}
func (m *TradeForSellMarket) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TradeForSellMarket.Unmarshal(m, b)
}
func (m *TradeForSellMarket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TradeForSellMarket.Marshal(b, m, deterministic)
}
func (dst *TradeForSellMarket) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TradeForSellMarket.Merge(dst, src)
}
func (m *TradeForSellMarket) XXX_Size() int {
	return xxx_messageInfo_TradeForSellMarket.Size(m)
}
func (m *TradeForSellMarket) XXX_DiscardUnknown() {
	xxx_messageInfo_TradeForSellMarket.DiscardUnknown(m)
}

var xxx_messageInfo_TradeForSellMarket proto.InternalMessageInfo

func (m *TradeForSellMarket) GetBuyID() string {
	if m != nil {
		return m.BuyID
	}
	return ""
}

func (m *TradeForSellMarket) GetBoardlotCnt() int64 {
	if m != nil {
		return m.BoardlotCnt
	}
	return 0
}

// 撤销买单
type TradeForRevokeBuy struct {
	BuyID                string   `protobuf:"bytes,1,opt,name=buyID,proto3" json:"buyID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TradeForRevokeBuy) Reset()         { *m = TradeForRevokeBuy{} }
func (m *TradeForRevokeBuy) String() string { return proto.CompactTextString(m) }
func (*TradeForRevokeBuy) ProtoMessage()    {}
func (*TradeForRevokeBuy) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{6}
}
func (m *TradeForRevokeBuy) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TradeForRevokeBuy.Unmarshal(m, b)
}
func (m *TradeForRevokeBuy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TradeForRevokeBuy.Marshal(b, m, deterministic)
}
func (dst *TradeForRevokeBuy) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TradeForRevokeBuy.Merge(dst, src)
}
func (m *TradeForRevokeBuy) XXX_Size() int {
	return xxx_messageInfo_TradeForRevokeBuy.Size(m)
}
func (m *TradeForRevokeBuy) XXX_DiscardUnknown() {
	xxx_messageInfo_TradeForRevokeBuy.DiscardUnknown(m)
}

var xxx_messageInfo_TradeForRevokeBuy proto.InternalMessageInfo

func (m *TradeForRevokeBuy) GetBuyID() string {
	if m != nil {
		return m.BuyID
	}
	return ""
}

// 数据库部分
type SellOrder struct {
	TokenSymbol string `protobuf:"bytes,1,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	Address     string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	// 每一手出售的token的数量
	AmountPerBoardlot int64 `protobuf:"varint,3,opt,name=amountPerBoardlot,proto3" json:"amountPerBoardlot,omitempty"`
	MinBoardlot       int64 `protobuf:"varint,4,opt,name=minBoardlot,proto3" json:"minBoardlot,omitempty"`
	// 每一手token的价格
	PricePerBoardlot int64 `protobuf:"varint,5,opt,name=pricePerBoardlot,proto3" json:"pricePerBoardlot,omitempty"`
	TotalBoardlot    int64 `protobuf:"varint,6,opt,name=totalBoardlot,proto3" json:"totalBoardlot,omitempty"`
	SoldBoardlot     int64 `protobuf:"varint,7,opt,name=soldBoardlot,proto3" json:"soldBoardlot,omitempty"`
	// 此次出售的起始时间，如果非众筹则可以忽略此时间
	Starttime int64 `protobuf:"varint,8,opt,name=starttime,proto3" json:"starttime,omitempty"`
	Stoptime  int64 `protobuf:"varint,9,opt,name=stoptime,proto3" json:"stoptime,omitempty"`
	Crowdfund bool  `protobuf:"varint,10,opt,name=crowdfund,proto3" json:"crowdfund,omitempty"`
	// 此处使用tx的hash来指定
	SellID               string   `protobuf:"bytes,11,opt,name=sellID,proto3" json:"sellID,omitempty"`
	Status               int32    `protobuf:"varint,12,opt,name=status,proto3" json:"status,omitempty"`
	Height               int64    `protobuf:"varint,13,opt,name=height,proto3" json:"height,omitempty"`
	AssetExec            string   `protobuf:"bytes,14,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	PriceExec            string   `protobuf:"bytes,15,opt,name=priceExec,proto3" json:"priceExec,omitempty"`
	PriceSymbol          string   `protobuf:"bytes,16,opt,name=priceSymbol,proto3" json:"priceSymbol,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SellOrder) Reset()         { *m = SellOrder{} }
func (m *SellOrder) String() string { return proto.CompactTextString(m) }
func (*SellOrder) ProtoMessage()    {}
func (*SellOrder) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{7}
}
func (m *SellOrder) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SellOrder.Unmarshal(m, b)
}
func (m *SellOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SellOrder.Marshal(b, m, deterministic)
}
func (dst *SellOrder) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SellOrder.Merge(dst, src)
}
func (m *SellOrder) XXX_Size() int {
	return xxx_messageInfo_SellOrder.Size(m)
}
func (m *SellOrder) XXX_DiscardUnknown() {
	xxx_messageInfo_SellOrder.DiscardUnknown(m)
}

var xxx_messageInfo_SellOrder proto.InternalMessageInfo

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

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

func (m *SellOrder) GetAmountPerBoardlot() int64 {
	if m != nil {
		return m.AmountPerBoardlot
	}
	return 0
}

func (m *SellOrder) GetMinBoardlot() int64 {
	if m != nil {
		return m.MinBoardlot
	}
	return 0
}

func (m *SellOrder) GetPricePerBoardlot() int64 {
	if m != nil {
		return m.PricePerBoardlot
	}
	return 0
}

func (m *SellOrder) GetTotalBoardlot() int64 {
	if m != nil {
		return m.TotalBoardlot
	}
	return 0
}

func (m *SellOrder) GetSoldBoardlot() int64 {
	if m != nil {
		return m.SoldBoardlot
	}
	return 0
}

func (m *SellOrder) GetStarttime() int64 {
	if m != nil {
		return m.Starttime
	}
	return 0
}

func (m *SellOrder) GetStoptime() int64 {
	if m != nil {
		return m.Stoptime
	}
	return 0
}

func (m *SellOrder) GetCrowdfund() bool {
	if m != nil {
		return m.Crowdfund
	}
	return false
}

func (m *SellOrder) GetSellID() string {
	if m != nil {
		return m.SellID
	}
	return ""
}

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

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

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

func (m *SellOrder) GetPriceExec() string {
	if m != nil {
		return m.PriceExec
	}
	return ""
}

func (m *SellOrder) GetPriceSymbol() string {
	if m != nil {
		return m.PriceSymbol
	}
	return ""
}

// 限价买单数据库记录
type BuyLimitOrder struct {
	TokenSymbol          string   `protobuf:"bytes,1,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	Address              string   `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	AmountPerBoardlot    int64    `protobuf:"varint,3,opt,name=amountPerBoardlot,proto3" json:"amountPerBoardlot,omitempty"`
	MinBoardlot          int64    `protobuf:"varint,4,opt,name=minBoardlot,proto3" json:"minBoardlot,omitempty"`
	PricePerBoardlot     int64    `protobuf:"varint,5,opt,name=pricePerBoardlot,proto3" json:"pricePerBoardlot,omitempty"`
	TotalBoardlot        int64    `protobuf:"varint,6,opt,name=totalBoardlot,proto3" json:"totalBoardlot,omitempty"`
	BoughtBoardlot       int64    `protobuf:"varint,7,opt,name=boughtBoardlot,proto3" json:"boughtBoardlot,omitempty"`
	BuyID                string   `protobuf:"bytes,8,opt,name=buyID,proto3" json:"buyID,omitempty"`
	Status               int32    `protobuf:"varint,9,opt,name=status,proto3" json:"status,omitempty"`
	Height               int64    `protobuf:"varint,10,opt,name=height,proto3" json:"height,omitempty"`
	AssetExec            string   `protobuf:"bytes,11,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	PriceExec            string   `protobuf:"bytes,12,opt,name=priceExec,proto3" json:"priceExec,omitempty"`
	PriceSymbol          string   `protobuf:"bytes,13,opt,name=priceSymbol,proto3" json:"priceSymbol,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BuyLimitOrder) Reset()         { *m = BuyLimitOrder{} }
func (m *BuyLimitOrder) String() string { return proto.CompactTextString(m) }
func (*BuyLimitOrder) ProtoMessage()    {}
func (*BuyLimitOrder) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{8}
}
func (m *BuyLimitOrder) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BuyLimitOrder.Unmarshal(m, b)
}
func (m *BuyLimitOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BuyLimitOrder.Marshal(b, m, deterministic)
}
func (dst *BuyLimitOrder) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BuyLimitOrder.Merge(dst, src)
}
func (m *BuyLimitOrder) XXX_Size() int {
	return xxx_messageInfo_BuyLimitOrder.Size(m)
}
func (m *BuyLimitOrder) XXX_DiscardUnknown() {
	xxx_messageInfo_BuyLimitOrder.DiscardUnknown(m)
}

var xxx_messageInfo_BuyLimitOrder proto.InternalMessageInfo

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

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

func (m *BuyLimitOrder) GetAmountPerBoardlot() int64 {
	if m != nil {
		return m.AmountPerBoardlot
	}
	return 0
}

func (m *BuyLimitOrder) GetMinBoardlot() int64 {
	if m != nil {
		return m.MinBoardlot
	}
	return 0
}

func (m *BuyLimitOrder) GetPricePerBoardlot() int64 {
	if m != nil {
		return m.PricePerBoardlot
	}
	return 0
}

func (m *BuyLimitOrder) GetTotalBoardlot() int64 {
	if m != nil {
		return m.TotalBoardlot
	}
	return 0
}

func (m *BuyLimitOrder) GetBoughtBoardlot() int64 {
	if m != nil {
		return m.BoughtBoardlot
	}
	return 0
}

func (m *BuyLimitOrder) GetBuyID() string {
	if m != nil {
		return m.BuyID
	}
	return ""
}

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

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

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

func (m *BuyLimitOrder) GetPriceExec() string {
	if m != nil {
		return m.PriceExec
	}
	return ""
}

func (m *BuyLimitOrder) GetPriceSymbol() string {
	if m != nil {
		return m.PriceSymbol
	}
	return ""
}

// 执行器日志部分
type ReceiptBuyBase struct {
	TokenSymbol          string   `protobuf:"bytes,1,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	Owner                string   `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
	AmountPerBoardlot    string   `protobuf:"bytes,3,opt,name=amountPerBoardlot,proto3" json:"amountPerBoardlot,omitempty"`
	MinBoardlot          int64    `protobuf:"varint,4,opt,name=minBoardlot,proto3" json:"minBoardlot,omitempty"`
	PricePerBoardlot     string   `protobuf:"bytes,5,opt,name=pricePerBoardlot,proto3" json:"pricePerBoardlot,omitempty"`
	TotalBoardlot        int64    `protobuf:"varint,6,opt,name=totalBoardlot,proto3" json:"totalBoardlot,omitempty"`
	BoughtBoardlot       int64    `protobuf:"varint,7,opt,name=boughtBoardlot,proto3" json:"boughtBoardlot,omitempty"`
	BuyID                string   `protobuf:"bytes,8,opt,name=buyID,proto3" json:"buyID,omitempty"`
	Status               string   `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"`
	SellID               string   `protobuf:"bytes,10,opt,name=sellID,proto3" json:"sellID,omitempty"`
	TxHash               string   `protobuf:"bytes,11,opt,name=txHash,proto3" json:"txHash,omitempty"`
	Height               int64    `protobuf:"varint,12,opt,name=height,proto3" json:"height,omitempty"`
	AssetExec            string   `protobuf:"bytes,13,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	PriceExec            string   `protobuf:"bytes,14,opt,name=priceExec,proto3" json:"priceExec,omitempty"`
	PriceSymbol          string   `protobuf:"bytes,15,opt,name=priceSymbol,proto3" json:"priceSymbol,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReceiptBuyBase) Reset()         { *m = ReceiptBuyBase{} }
func (m *ReceiptBuyBase) String() string { return proto.CompactTextString(m) }
func (*ReceiptBuyBase) ProtoMessage()    {}
func (*ReceiptBuyBase) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{9}
}
func (m *ReceiptBuyBase) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReceiptBuyBase.Unmarshal(m, b)
}
func (m *ReceiptBuyBase) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReceiptBuyBase.Marshal(b, m, deterministic)
}
func (dst *ReceiptBuyBase) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReceiptBuyBase.Merge(dst, src)
}
func (m *ReceiptBuyBase) XXX_Size() int {
	return xxx_messageInfo_ReceiptBuyBase.Size(m)
}
func (m *ReceiptBuyBase) XXX_DiscardUnknown() {
	xxx_messageInfo_ReceiptBuyBase.DiscardUnknown(m)
}

var xxx_messageInfo_ReceiptBuyBase proto.InternalMessageInfo

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

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

func (m *ReceiptBuyBase) GetAmountPerBoardlot() string {
	if m != nil {
		return m.AmountPerBoardlot
	}
	return ""
}

func (m *ReceiptBuyBase) GetMinBoardlot() int64 {
	if m != nil {
		return m.MinBoardlot
	}
	return 0
}

func (m *ReceiptBuyBase) GetPricePerBoardlot() string {
	if m != nil {
		return m.PricePerBoardlot
	}
	return ""
}

func (m *ReceiptBuyBase) GetTotalBoardlot() int64 {
	if m != nil {
		return m.TotalBoardlot
	}
	return 0
}

func (m *ReceiptBuyBase) GetBoughtBoardlot() int64 {
	if m != nil {
		return m.BoughtBoardlot
	}
	return 0
}

func (m *ReceiptBuyBase) GetBuyID() string {
	if m != nil {
		return m.BuyID
	}
	return ""
}

func (m *ReceiptBuyBase) GetStatus() string {
	if m != nil {
		return m.Status
	}
	return ""
}

func (m *ReceiptBuyBase) GetSellID() string {
	if m != nil {
		return m.SellID
	}
	return ""
}

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

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

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

func (m *ReceiptBuyBase) GetPriceExec() string {
	if m != nil {
		return m.PriceExec
	}
	return ""
}

func (m *ReceiptBuyBase) GetPriceSymbol() string {
	if m != nil {
		return m.PriceSymbol
	}
	return ""
}

type ReceiptSellBase struct {
	TokenSymbol string `protobuf:"bytes,1,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	Owner       string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
	// 每一手出售的token的数量
	AmountPerBoardlot string `protobuf:"bytes,3,opt,name=amountPerBoardlot,proto3" json:"amountPerBoardlot,omitempty"`
	MinBoardlot       int64  `protobuf:"varint,4,opt,name=minBoardlot,proto3" json:"minBoardlot,omitempty"`
	// 每一手token的价格
	PricePerBoardlot string `protobuf:"bytes,5,opt,name=pricePerBoardlot,proto3" json:"pricePerBoardlot,omitempty"`
	TotalBoardlot    int64  `protobuf:"varint,6,opt,name=totalBoardlot,proto3" json:"totalBoardlot,omitempty"`
	SoldBoardlot     int64  `protobuf:"varint,7,opt,name=soldBoardlot,proto3" json:"soldBoardlot,omitempty"`
	// 此次出售的起始时间，如果非众筹则可以忽略此时间
	Starttime int64 `protobuf:"varint,8,opt,name=starttime,proto3" json:"starttime,omitempty"`
	Stoptime  int64 `protobuf:"varint,9,opt,name=stoptime,proto3" json:"stoptime,omitempty"`
	Crowdfund bool  `protobuf:"varint,10,opt,name=crowdfund,proto3" json:"crowdfund,omitempty"`
	// 此处使用tx的hash来指定
	SellID string `protobuf:"bytes,11,opt,name=sellID,proto3" json:"sellID,omitempty"`
	Status string `protobuf:"bytes,12,opt,name=status,proto3" json:"status,omitempty"`
	// buyid
	BuyID                string   `protobuf:"bytes,13,opt,name=buyID,proto3" json:"buyID,omitempty"`
	TxHash               string   `protobuf:"bytes,14,opt,name=txHash,proto3" json:"txHash,omitempty"`
	Height               int64    `protobuf:"varint,15,opt,name=height,proto3" json:"height,omitempty"`
	AssetExec            string   `protobuf:"bytes,16,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	PriceExec            string   `protobuf:"bytes,17,opt,name=priceExec,proto3" json:"priceExec,omitempty"`
	PriceSymbol          string   `protobuf:"bytes,18,opt,name=priceSymbol,proto3" json:"priceSymbol,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReceiptSellBase) Reset()         { *m = ReceiptSellBase{} }
func (m *ReceiptSellBase) String() string { return proto.CompactTextString(m) }
func (*ReceiptSellBase) ProtoMessage()    {}
func (*ReceiptSellBase) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{10}
}
func (m *ReceiptSellBase) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReceiptSellBase.Unmarshal(m, b)
}
func (m *ReceiptSellBase) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReceiptSellBase.Marshal(b, m, deterministic)
}
func (dst *ReceiptSellBase) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReceiptSellBase.Merge(dst, src)
}
func (m *ReceiptSellBase) XXX_Size() int {
	return xxx_messageInfo_ReceiptSellBase.Size(m)
}
func (m *ReceiptSellBase) XXX_DiscardUnknown() {
	xxx_messageInfo_ReceiptSellBase.DiscardUnknown(m)
}

var xxx_messageInfo_ReceiptSellBase proto.InternalMessageInfo

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

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

func (m *ReceiptSellBase) GetAmountPerBoardlot() string {
	if m != nil {
		return m.AmountPerBoardlot
	}
	return ""
}

func (m *ReceiptSellBase) GetMinBoardlot() int64 {
	if m != nil {
		return m.MinBoardlot
	}
	return 0
}

func (m *ReceiptSellBase) GetPricePerBoardlot() string {
	if m != nil {
		return m.PricePerBoardlot
	}
	return ""
}

func (m *ReceiptSellBase) GetTotalBoardlot() int64 {
	if m != nil {
		return m.TotalBoardlot
	}
	return 0
}

func (m *ReceiptSellBase) GetSoldBoardlot() int64 {
	if m != nil {
		return m.SoldBoardlot
	}
	return 0
}

func (m *ReceiptSellBase) GetStarttime() int64 {
	if m != nil {
		return m.Starttime
	}
	return 0
}

func (m *ReceiptSellBase) GetStoptime() int64 {
	if m != nil {
		return m.Stoptime
	}
	return 0
}

func (m *ReceiptSellBase) GetCrowdfund() bool {
	if m != nil {
		return m.Crowdfund
	}
	return false
}

func (m *ReceiptSellBase) GetSellID() string {
	if m != nil {
		return m.SellID
	}
	return ""
}

func (m *ReceiptSellBase) GetStatus() string {
	if m != nil {
		return m.Status
	}
	return ""
}

func (m *ReceiptSellBase) GetBuyID() string {
	if m != nil {
		return m.BuyID
	}
	return ""
}

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

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

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

func (m *ReceiptSellBase) GetPriceExec() string {
	if m != nil {
		return m.PriceExec
	}
	return ""
}

func (m *ReceiptSellBase) GetPriceSymbol() string {
	if m != nil {
		return m.PriceSymbol
	}
	return ""
}

type ReceiptTradeBuyMarket struct {
	Base                 *ReceiptBuyBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *ReceiptTradeBuyMarket) Reset()         { *m = ReceiptTradeBuyMarket{} }
func (m *ReceiptTradeBuyMarket) String() string { return proto.CompactTextString(m) }
func (*ReceiptTradeBuyMarket) ProtoMessage()    {}
func (*ReceiptTradeBuyMarket) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{11}
}
func (m *ReceiptTradeBuyMarket) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReceiptTradeBuyMarket.Unmarshal(m, b)
}
func (m *ReceiptTradeBuyMarket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReceiptTradeBuyMarket.Marshal(b, m, deterministic)
}
func (dst *ReceiptTradeBuyMarket) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReceiptTradeBuyMarket.Merge(dst, src)
}
func (m *ReceiptTradeBuyMarket) XXX_Size() int {
	return xxx_messageInfo_ReceiptTradeBuyMarket.Size(m)
}
func (m *ReceiptTradeBuyMarket) XXX_DiscardUnknown() {
	xxx_messageInfo_ReceiptTradeBuyMarket.DiscardUnknown(m)
}

var xxx_messageInfo_ReceiptTradeBuyMarket proto.InternalMessageInfo

func (m *ReceiptTradeBuyMarket) GetBase() *ReceiptBuyBase {
	if m != nil {
		return m.Base
	}
	return nil
}

type ReceiptTradeBuyLimit struct {
	Base                 *ReceiptBuyBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *ReceiptTradeBuyLimit) Reset()         { *m = ReceiptTradeBuyLimit{} }
func (m *ReceiptTradeBuyLimit) String() string { return proto.CompactTextString(m) }
func (*ReceiptTradeBuyLimit) ProtoMessage()    {}
func (*ReceiptTradeBuyLimit) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{12}
}
func (m *ReceiptTradeBuyLimit) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReceiptTradeBuyLimit.Unmarshal(m, b)
}
func (m *ReceiptTradeBuyLimit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReceiptTradeBuyLimit.Marshal(b, m, deterministic)
}
func (dst *ReceiptTradeBuyLimit) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReceiptTradeBuyLimit.Merge(dst, src)
}
func (m *ReceiptTradeBuyLimit) XXX_Size() int {
	return xxx_messageInfo_ReceiptTradeBuyLimit.Size(m)
}
func (m *ReceiptTradeBuyLimit) XXX_DiscardUnknown() {
	xxx_messageInfo_ReceiptTradeBuyLimit.DiscardUnknown(m)
}

var xxx_messageInfo_ReceiptTradeBuyLimit proto.InternalMessageInfo

func (m *ReceiptTradeBuyLimit) GetBase() *ReceiptBuyBase {
	if m != nil {
		return m.Base
	}
	return nil
}

type ReceiptTradeBuyRevoke struct {
	Base                 *ReceiptBuyBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *ReceiptTradeBuyRevoke) Reset()         { *m = ReceiptTradeBuyRevoke{} }
func (m *ReceiptTradeBuyRevoke) String() string { return proto.CompactTextString(m) }
func (*ReceiptTradeBuyRevoke) ProtoMessage()    {}
func (*ReceiptTradeBuyRevoke) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{13}
}
func (m *ReceiptTradeBuyRevoke) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReceiptTradeBuyRevoke.Unmarshal(m, b)
}
func (m *ReceiptTradeBuyRevoke) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReceiptTradeBuyRevoke.Marshal(b, m, deterministic)
}
func (dst *ReceiptTradeBuyRevoke) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReceiptTradeBuyRevoke.Merge(dst, src)
}
func (m *ReceiptTradeBuyRevoke) XXX_Size() int {
	return xxx_messageInfo_ReceiptTradeBuyRevoke.Size(m)
}
func (m *ReceiptTradeBuyRevoke) XXX_DiscardUnknown() {
	xxx_messageInfo_ReceiptTradeBuyRevoke.DiscardUnknown(m)
}

var xxx_messageInfo_ReceiptTradeBuyRevoke proto.InternalMessageInfo

func (m *ReceiptTradeBuyRevoke) GetBase() *ReceiptBuyBase {
	if m != nil {
		return m.Base
	}
	return nil
}

type ReceiptTradeSellLimit struct {
	Base                 *ReceiptSellBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *ReceiptTradeSellLimit) Reset()         { *m = ReceiptTradeSellLimit{} }
func (m *ReceiptTradeSellLimit) String() string { return proto.CompactTextString(m) }
func (*ReceiptTradeSellLimit) ProtoMessage()    {}
func (*ReceiptTradeSellLimit) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{14}
}
func (m *ReceiptTradeSellLimit) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReceiptTradeSellLimit.Unmarshal(m, b)
}
func (m *ReceiptTradeSellLimit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReceiptTradeSellLimit.Marshal(b, m, deterministic)
}
func (dst *ReceiptTradeSellLimit) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReceiptTradeSellLimit.Merge(dst, src)
}
func (m *ReceiptTradeSellLimit) XXX_Size() int {
	return xxx_messageInfo_ReceiptTradeSellLimit.Size(m)
}
func (m *ReceiptTradeSellLimit) XXX_DiscardUnknown() {
	xxx_messageInfo_ReceiptTradeSellLimit.DiscardUnknown(m)
}

var xxx_messageInfo_ReceiptTradeSellLimit proto.InternalMessageInfo

func (m *ReceiptTradeSellLimit) GetBase() *ReceiptSellBase {
	if m != nil {
		return m.Base
	}
	return nil
}

type ReceiptSellMarket struct {
	Base                 *ReceiptSellBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *ReceiptSellMarket) Reset()         { *m = ReceiptSellMarket{} }
func (m *ReceiptSellMarket) String() string { return proto.CompactTextString(m) }
func (*ReceiptSellMarket) ProtoMessage()    {}
func (*ReceiptSellMarket) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{15}
}
func (m *ReceiptSellMarket) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReceiptSellMarket.Unmarshal(m, b)
}
func (m *ReceiptSellMarket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReceiptSellMarket.Marshal(b, m, deterministic)
}
func (dst *ReceiptSellMarket) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReceiptSellMarket.Merge(dst, src)
}
func (m *ReceiptSellMarket) XXX_Size() int {
	return xxx_messageInfo_ReceiptSellMarket.Size(m)
}
func (m *ReceiptSellMarket) XXX_DiscardUnknown() {
	xxx_messageInfo_ReceiptSellMarket.DiscardUnknown(m)
}

var xxx_messageInfo_ReceiptSellMarket proto.InternalMessageInfo

func (m *ReceiptSellMarket) GetBase() *ReceiptSellBase {
	if m != nil {
		return m.Base
	}
	return nil
}

type ReceiptTradeSellRevoke struct {
	Base                 *ReceiptSellBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *ReceiptTradeSellRevoke) Reset()         { *m = ReceiptTradeSellRevoke{} }
func (m *ReceiptTradeSellRevoke) String() string { return proto.CompactTextString(m) }
func (*ReceiptTradeSellRevoke) ProtoMessage()    {}
func (*ReceiptTradeSellRevoke) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{16}
}
func (m *ReceiptTradeSellRevoke) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReceiptTradeSellRevoke.Unmarshal(m, b)
}
func (m *ReceiptTradeSellRevoke) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReceiptTradeSellRevoke.Marshal(b, m, deterministic)
}
func (dst *ReceiptTradeSellRevoke) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReceiptTradeSellRevoke.Merge(dst, src)
}
func (m *ReceiptTradeSellRevoke) XXX_Size() int {
	return xxx_messageInfo_ReceiptTradeSellRevoke.Size(m)
}
func (m *ReceiptTradeSellRevoke) XXX_DiscardUnknown() {
	xxx_messageInfo_ReceiptTradeSellRevoke.DiscardUnknown(m)
}

var xxx_messageInfo_ReceiptTradeSellRevoke proto.InternalMessageInfo

func (m *ReceiptTradeSellRevoke) GetBase() *ReceiptSellBase {
	if m != nil {
		return m.Base
	}
	return nil
}

type ReqAddrAssets 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 *ReqAddrAssets) Reset()         { *m = ReqAddrAssets{} }
func (m *ReqAddrAssets) String() string { return proto.CompactTextString(m) }
func (*ReqAddrAssets) ProtoMessage()    {}
func (*ReqAddrAssets) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{17}
}
func (m *ReqAddrAssets) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReqAddrAssets.Unmarshal(m, b)
}
func (m *ReqAddrAssets) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReqAddrAssets.Marshal(b, m, deterministic)
}
func (dst *ReqAddrAssets) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReqAddrAssets.Merge(dst, src)
}
func (m *ReqAddrAssets) XXX_Size() int {
	return xxx_messageInfo_ReqAddrAssets.Size(m)
}
func (m *ReqAddrAssets) XXX_DiscardUnknown() {
	xxx_messageInfo_ReqAddrAssets.DiscardUnknown(m)
}

var xxx_messageInfo_ReqAddrAssets proto.InternalMessageInfo

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

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

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

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

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

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

// 获取Token未完成卖单的交易列表
// 	 fromKey : 第一次传参为空，获取卖单单价最低的列表。 当要获得下一页时，
// 传当前页最后一个；当要获得上一页时， 传当前页第一个。 	 count
// :获取交易列表的个数。 	 direction :查找方式；0，上一页；1，下一页。
// 越靠后的也单价越贵
type ReqTokenSellOrder struct {
	TokenSymbol          string   `protobuf:"bytes,1,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	FromKey              string   `protobuf:"bytes,2,opt,name=fromKey,proto3" json:"fromKey,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"`
	Status               int32    `protobuf:"varint,5,opt,name=status,proto3" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReqTokenSellOrder) Reset()         { *m = ReqTokenSellOrder{} }
func (m *ReqTokenSellOrder) String() string { return proto.CompactTextString(m) }
func (*ReqTokenSellOrder) ProtoMessage()    {}
func (*ReqTokenSellOrder) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{18}
}
func (m *ReqTokenSellOrder) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReqTokenSellOrder.Unmarshal(m, b)
}
func (m *ReqTokenSellOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReqTokenSellOrder.Marshal(b, m, deterministic)
}
func (dst *ReqTokenSellOrder) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReqTokenSellOrder.Merge(dst, src)
}
func (m *ReqTokenSellOrder) XXX_Size() int {
	return xxx_messageInfo_ReqTokenSellOrder.Size(m)
}
func (m *ReqTokenSellOrder) XXX_DiscardUnknown() {
	xxx_messageInfo_ReqTokenSellOrder.DiscardUnknown(m)
}

var xxx_messageInfo_ReqTokenSellOrder proto.InternalMessageInfo

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

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

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

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

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

type ReqTokenBuyOrder struct {
	TokenSymbol          string   `protobuf:"bytes,1,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	FromKey              string   `protobuf:"bytes,2,opt,name=fromKey,proto3" json:"fromKey,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"`
	Status               int32    `protobuf:"varint,5,opt,name=status,proto3" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReqTokenBuyOrder) Reset()         { *m = ReqTokenBuyOrder{} }
func (m *ReqTokenBuyOrder) String() string { return proto.CompactTextString(m) }
func (*ReqTokenBuyOrder) ProtoMessage()    {}
func (*ReqTokenBuyOrder) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{19}
}
func (m *ReqTokenBuyOrder) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReqTokenBuyOrder.Unmarshal(m, b)
}
func (m *ReqTokenBuyOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReqTokenBuyOrder.Marshal(b, m, deterministic)
}
func (dst *ReqTokenBuyOrder) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReqTokenBuyOrder.Merge(dst, src)
}
func (m *ReqTokenBuyOrder) XXX_Size() int {
	return xxx_messageInfo_ReqTokenBuyOrder.Size(m)
}
func (m *ReqTokenBuyOrder) XXX_DiscardUnknown() {
	xxx_messageInfo_ReqTokenBuyOrder.DiscardUnknown(m)
}

var xxx_messageInfo_ReqTokenBuyOrder proto.InternalMessageInfo

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

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

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

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

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

type ReplyBuyOrder struct {
	TokenSymbol          string   `protobuf:"bytes,1,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	Owner                string   `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
	AmountPerBoardlot    int64    `protobuf:"varint,3,opt,name=amountPerBoardlot,proto3" json:"amountPerBoardlot,omitempty"`
	MinBoardlot          int64    `protobuf:"varint,4,opt,name=minBoardlot,proto3" json:"minBoardlot,omitempty"`
	PricePerBoardlot     int64    `protobuf:"varint,5,opt,name=pricePerBoardlot,proto3" json:"pricePerBoardlot,omitempty"`
	TotalBoardlot        int64    `protobuf:"varint,6,opt,name=totalBoardlot,proto3" json:"totalBoardlot,omitempty"`
	BoughtBoardlot       int64    `protobuf:"varint,7,opt,name=boughtBoardlot,proto3" json:"boughtBoardlot,omitempty"`
	BuyID                string   `protobuf:"bytes,8,opt,name=buyID,proto3" json:"buyID,omitempty"`
	Status               int32    `protobuf:"varint,9,opt,name=status,proto3" json:"status,omitempty"`
	SellID               string   `protobuf:"bytes,10,opt,name=sellID,proto3" json:"sellID,omitempty"`
	TxHash               string   `protobuf:"bytes,11,opt,name=txHash,proto3" json:"txHash,omitempty"`
	Height               int64    `protobuf:"varint,12,opt,name=height,proto3" json:"height,omitempty"`
	Key                  string   `protobuf:"bytes,13,opt,name=key,proto3" json:"key,omitempty"`
	AssetExec            string   `protobuf:"bytes,14,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReplyBuyOrder) Reset()         { *m = ReplyBuyOrder{} }
func (m *ReplyBuyOrder) String() string { return proto.CompactTextString(m) }
func (*ReplyBuyOrder) ProtoMessage()    {}
func (*ReplyBuyOrder) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{20}
}
func (m *ReplyBuyOrder) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReplyBuyOrder.Unmarshal(m, b)
}
func (m *ReplyBuyOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReplyBuyOrder.Marshal(b, m, deterministic)
}
func (dst *ReplyBuyOrder) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReplyBuyOrder.Merge(dst, src)
}
func (m *ReplyBuyOrder) XXX_Size() int {
	return xxx_messageInfo_ReplyBuyOrder.Size(m)
}
func (m *ReplyBuyOrder) XXX_DiscardUnknown() {
	xxx_messageInfo_ReplyBuyOrder.DiscardUnknown(m)
}

var xxx_messageInfo_ReplyBuyOrder proto.InternalMessageInfo

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

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

func (m *ReplyBuyOrder) GetAmountPerBoardlot() int64 {
	if m != nil {
		return m.AmountPerBoardlot
	}
	return 0
}

func (m *ReplyBuyOrder) GetMinBoardlot() int64 {
	if m != nil {
		return m.MinBoardlot
	}
	return 0
}

func (m *ReplyBuyOrder) GetPricePerBoardlot() int64 {
	if m != nil {
		return m.PricePerBoardlot
	}
	return 0
}

func (m *ReplyBuyOrder) GetTotalBoardlot() int64 {
	if m != nil {
		return m.TotalBoardlot
	}
	return 0
}

func (m *ReplyBuyOrder) GetBoughtBoardlot() int64 {
	if m != nil {
		return m.BoughtBoardlot
	}
	return 0
}

func (m *ReplyBuyOrder) GetBuyID() string {
	if m != nil {
		return m.BuyID
	}
	return ""
}

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

func (m *ReplyBuyOrder) GetSellID() string {
	if m != nil {
		return m.SellID
	}
	return ""
}

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

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

func (m *ReplyBuyOrder) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

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

type ReplySellOrder struct {
	TokenSymbol          string   `protobuf:"bytes,1,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	Owner                string   `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
	AmountPerBoardlot    int64    `protobuf:"varint,3,opt,name=amountPerBoardlot,proto3" json:"amountPerBoardlot,omitempty"`
	MinBoardlot          int64    `protobuf:"varint,4,opt,name=minBoardlot,proto3" json:"minBoardlot,omitempty"`
	PricePerBoardlot     int64    `protobuf:"varint,5,opt,name=pricePerBoardlot,proto3" json:"pricePerBoardlot,omitempty"`
	TotalBoardlot        int64    `protobuf:"varint,6,opt,name=totalBoardlot,proto3" json:"totalBoardlot,omitempty"`
	SoldBoardlot         int64    `protobuf:"varint,7,opt,name=soldBoardlot,proto3" json:"soldBoardlot,omitempty"`
	BuyID                string   `protobuf:"bytes,8,opt,name=buyID,proto3" json:"buyID,omitempty"`
	Status               int32    `protobuf:"varint,9,opt,name=status,proto3" json:"status,omitempty"`
	SellID               string   `protobuf:"bytes,10,opt,name=sellID,proto3" json:"sellID,omitempty"`
	TxHash               string   `protobuf:"bytes,11,opt,name=txHash,proto3" json:"txHash,omitempty"`
	Height               int64    `protobuf:"varint,12,opt,name=height,proto3" json:"height,omitempty"`
	Key                  string   `protobuf:"bytes,13,opt,name=key,proto3" json:"key,omitempty"`
	AssetExec            string   `protobuf:"bytes,14,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReplySellOrder) Reset()         { *m = ReplySellOrder{} }
func (m *ReplySellOrder) String() string { return proto.CompactTextString(m) }
func (*ReplySellOrder) ProtoMessage()    {}
func (*ReplySellOrder) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{21}
}
func (m *ReplySellOrder) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReplySellOrder.Unmarshal(m, b)
}
func (m *ReplySellOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReplySellOrder.Marshal(b, m, deterministic)
}
func (dst *ReplySellOrder) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReplySellOrder.Merge(dst, src)
}
func (m *ReplySellOrder) XXX_Size() int {
	return xxx_messageInfo_ReplySellOrder.Size(m)
}
func (m *ReplySellOrder) XXX_DiscardUnknown() {
	xxx_messageInfo_ReplySellOrder.DiscardUnknown(m)
}

var xxx_messageInfo_ReplySellOrder proto.InternalMessageInfo

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

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

func (m *ReplySellOrder) GetAmountPerBoardlot() int64 {
	if m != nil {
		return m.AmountPerBoardlot
	}
	return 0
}

func (m *ReplySellOrder) GetMinBoardlot() int64 {
	if m != nil {
		return m.MinBoardlot
	}
	return 0
}

func (m *ReplySellOrder) GetPricePerBoardlot() int64 {
	if m != nil {
		return m.PricePerBoardlot
	}
	return 0
}

func (m *ReplySellOrder) GetTotalBoardlot() int64 {
	if m != nil {
		return m.TotalBoardlot
	}
	return 0
}

func (m *ReplySellOrder) GetSoldBoardlot() int64 {
	if m != nil {
		return m.SoldBoardlot
	}
	return 0
}

func (m *ReplySellOrder) GetBuyID() string {
	if m != nil {
		return m.BuyID
	}
	return ""
}

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

func (m *ReplySellOrder) GetSellID() string {
	if m != nil {
		return m.SellID
	}
	return ""
}

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

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

func (m *ReplySellOrder) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

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

type ReplySellOrders struct {
	SellOrders           []*ReplySellOrder `protobuf:"bytes,1,rep,name=sellOrders,proto3" json:"sellOrders,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *ReplySellOrders) Reset()         { *m = ReplySellOrders{} }
func (m *ReplySellOrders) String() string { return proto.CompactTextString(m) }
func (*ReplySellOrders) ProtoMessage()    {}
func (*ReplySellOrders) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{22}
}
func (m *ReplySellOrders) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReplySellOrders.Unmarshal(m, b)
}
func (m *ReplySellOrders) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReplySellOrders.Marshal(b, m, deterministic)
}
func (dst *ReplySellOrders) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReplySellOrders.Merge(dst, src)
}
func (m *ReplySellOrders) XXX_Size() int {
	return xxx_messageInfo_ReplySellOrders.Size(m)
}
func (m *ReplySellOrders) XXX_DiscardUnknown() {
	xxx_messageInfo_ReplySellOrders.DiscardUnknown(m)
}

var xxx_messageInfo_ReplySellOrders proto.InternalMessageInfo

func (m *ReplySellOrders) GetSellOrders() []*ReplySellOrder {
	if m != nil {
		return m.SellOrders
	}
	return nil
}

type ReplyBuyOrders struct {
	BuyOrders            []*ReplyBuyOrder `protobuf:"bytes,1,rep,name=buyOrders,proto3" json:"buyOrders,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *ReplyBuyOrders) Reset()         { *m = ReplyBuyOrders{} }
func (m *ReplyBuyOrders) String() string { return proto.CompactTextString(m) }
func (*ReplyBuyOrders) ProtoMessage()    {}
func (*ReplyBuyOrders) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{23}
}
func (m *ReplyBuyOrders) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReplyBuyOrders.Unmarshal(m, b)
}
func (m *ReplyBuyOrders) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReplyBuyOrders.Marshal(b, m, deterministic)
}
func (dst *ReplyBuyOrders) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReplyBuyOrders.Merge(dst, src)
}
func (m *ReplyBuyOrders) XXX_Size() int {
	return xxx_messageInfo_ReplyBuyOrders.Size(m)
}
func (m *ReplyBuyOrders) XXX_DiscardUnknown() {
	xxx_messageInfo_ReplyBuyOrders.DiscardUnknown(m)
}

var xxx_messageInfo_ReplyBuyOrders proto.InternalMessageInfo

func (m *ReplyBuyOrders) GetBuyOrders() []*ReplyBuyOrder {
	if m != nil {
		return m.BuyOrders
	}
	return nil
}

type ReplyTradeOrder struct {
	TokenSymbol          string   `protobuf:"bytes,1,opt,name=tokenSymbol,proto3" json:"tokenSymbol,omitempty"`
	Owner                string   `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
	AmountPerBoardlot    int64    `protobuf:"varint,3,opt,name=amountPerBoardlot,proto3" json:"amountPerBoardlot,omitempty"`
	MinBoardlot          int64    `protobuf:"varint,4,opt,name=minBoardlot,proto3" json:"minBoardlot,omitempty"`
	PricePerBoardlot     int64    `protobuf:"varint,5,opt,name=pricePerBoardlot,proto3" json:"pricePerBoardlot,omitempty"`
	TotalBoardlot        int64    `protobuf:"varint,6,opt,name=totalBoardlot,proto3" json:"totalBoardlot,omitempty"`
	TradedBoardlot       int64    `protobuf:"varint,7,opt,name=tradedBoardlot,proto3" json:"tradedBoardlot,omitempty"`
	BuyID                string   `protobuf:"bytes,8,opt,name=buyID,proto3" json:"buyID,omitempty"`
	Status               int32    `protobuf:"varint,9,opt,name=status,proto3" json:"status,omitempty"`
	SellID               string   `protobuf:"bytes,10,opt,name=sellID,proto3" json:"sellID,omitempty"`
	TxHash               string   `protobuf:"bytes,11,opt,name=txHash,proto3" json:"txHash,omitempty"`
	Height               int64    `protobuf:"varint,12,opt,name=height,proto3" json:"height,omitempty"`
	Key                  string   `protobuf:"bytes,13,opt,name=key,proto3" json:"key,omitempty"`
	BlockTime            int64    `protobuf:"varint,14,opt,name=blockTime,proto3" json:"blockTime,omitempty"`
	IsSellOrder          bool     `protobuf:"varint,15,opt,name=isSellOrder,proto3" json:"isSellOrder,omitempty"`
	AssetExec            string   `protobuf:"bytes,16,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	PriceExec            string   `protobuf:"bytes,17,opt,name=priceExec,proto3" json:"priceExec,omitempty"`
	PriceSymbol          string   `protobuf:"bytes,18,opt,name=priceSymbol,proto3" json:"priceSymbol,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReplyTradeOrder) Reset()         { *m = ReplyTradeOrder{} }
func (m *ReplyTradeOrder) String() string { return proto.CompactTextString(m) }
func (*ReplyTradeOrder) ProtoMessage()    {}
func (*ReplyTradeOrder) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{24}
}
func (m *ReplyTradeOrder) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReplyTradeOrder.Unmarshal(m, b)
}
func (m *ReplyTradeOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReplyTradeOrder.Marshal(b, m, deterministic)
}
func (dst *ReplyTradeOrder) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReplyTradeOrder.Merge(dst, src)
}
func (m *ReplyTradeOrder) XXX_Size() int {
	return xxx_messageInfo_ReplyTradeOrder.Size(m)
}
func (m *ReplyTradeOrder) XXX_DiscardUnknown() {
	xxx_messageInfo_ReplyTradeOrder.DiscardUnknown(m)
}

var xxx_messageInfo_ReplyTradeOrder proto.InternalMessageInfo

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

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

func (m *ReplyTradeOrder) GetAmountPerBoardlot() int64 {
	if m != nil {
		return m.AmountPerBoardlot
	}
	return 0
}

func (m *ReplyTradeOrder) GetMinBoardlot() int64 {
	if m != nil {
		return m.MinBoardlot
	}
	return 0
}

func (m *ReplyTradeOrder) GetPricePerBoardlot() int64 {
	if m != nil {
		return m.PricePerBoardlot
	}
	return 0
}

func (m *ReplyTradeOrder) GetTotalBoardlot() int64 {
	if m != nil {
		return m.TotalBoardlot
	}
	return 0
}

func (m *ReplyTradeOrder) GetTradedBoardlot() int64 {
	if m != nil {
		return m.TradedBoardlot
	}
	return 0
}

func (m *ReplyTradeOrder) GetBuyID() string {
	if m != nil {
		return m.BuyID
	}
	return ""
}

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

func (m *ReplyTradeOrder) GetSellID() string {
	if m != nil {
		return m.SellID
	}
	return ""
}

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

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

func (m *ReplyTradeOrder) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

func (m *ReplyTradeOrder) GetBlockTime() int64 {
	if m != nil {
		return m.BlockTime
	}
	return 0
}

func (m *ReplyTradeOrder) GetIsSellOrder() bool {
	if m != nil {
		return m.IsSellOrder
	}
	return false
}

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

func (m *ReplyTradeOrder) GetPriceExec() string {
	if m != nil {
		return m.PriceExec
	}
	return ""
}

func (m *ReplyTradeOrder) GetPriceSymbol() string {
	if m != nil {
		return m.PriceSymbol
	}
	return ""
}

type ReplyTradeOrders struct {
	Orders               []*ReplyTradeOrder `protobuf:"bytes,1,rep,name=orders,proto3" json:"orders,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *ReplyTradeOrders) Reset()         { *m = ReplyTradeOrders{} }
func (m *ReplyTradeOrders) String() string { return proto.CompactTextString(m) }
func (*ReplyTradeOrders) ProtoMessage()    {}
func (*ReplyTradeOrders) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{25}
}
func (m *ReplyTradeOrders) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReplyTradeOrders.Unmarshal(m, b)
}
func (m *ReplyTradeOrders) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReplyTradeOrders.Marshal(b, m, deterministic)
}
func (dst *ReplyTradeOrders) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReplyTradeOrders.Merge(dst, src)
}
func (m *ReplyTradeOrders) XXX_Size() int {
	return xxx_messageInfo_ReplyTradeOrders.Size(m)
}
func (m *ReplyTradeOrders) XXX_DiscardUnknown() {
	xxx_messageInfo_ReplyTradeOrders.DiscardUnknown(m)
}

var xxx_messageInfo_ReplyTradeOrders proto.InternalMessageInfo

func (m *ReplyTradeOrders) GetOrders() []*ReplyTradeOrder {
	if m != nil {
		return m.Orders
	}
	return nil
}

type ReqSellToken struct {
	Sell                 *TradeForSell `protobuf:"bytes,1,opt,name=sell,proto3" json:"sell,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 *ReqSellToken) Reset()         { *m = ReqSellToken{} }
func (m *ReqSellToken) String() string { return proto.CompactTextString(m) }
func (*ReqSellToken) ProtoMessage()    {}
func (*ReqSellToken) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{26}
}
func (m *ReqSellToken) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReqSellToken.Unmarshal(m, b)
}
func (m *ReqSellToken) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReqSellToken.Marshal(b, m, deterministic)
}
func (dst *ReqSellToken) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReqSellToken.Merge(dst, src)
}
func (m *ReqSellToken) XXX_Size() int {
	return xxx_messageInfo_ReqSellToken.Size(m)
}
func (m *ReqSellToken) XXX_DiscardUnknown() {
	xxx_messageInfo_ReqSellToken.DiscardUnknown(m)
}

var xxx_messageInfo_ReqSellToken proto.InternalMessageInfo

func (m *ReqSellToken) GetSell() *TradeForSell {
	if m != nil {
		return m.Sell
	}
	return nil
}

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

type ReqRevokeSell struct {
	Revoke               *TradeForRevokeSell `protobuf:"bytes,1,opt,name=revoke,proto3" json:"revoke,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 *ReqRevokeSell) Reset()         { *m = ReqRevokeSell{} }
func (m *ReqRevokeSell) String() string { return proto.CompactTextString(m) }
func (*ReqRevokeSell) ProtoMessage()    {}
func (*ReqRevokeSell) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{27}
}
func (m *ReqRevokeSell) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReqRevokeSell.Unmarshal(m, b)
}
func (m *ReqRevokeSell) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReqRevokeSell.Marshal(b, m, deterministic)
}
func (dst *ReqRevokeSell) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReqRevokeSell.Merge(dst, src)
}
func (m *ReqRevokeSell) XXX_Size() int {
	return xxx_messageInfo_ReqRevokeSell.Size(m)
}
func (m *ReqRevokeSell) XXX_DiscardUnknown() {
	xxx_messageInfo_ReqRevokeSell.DiscardUnknown(m)
}

var xxx_messageInfo_ReqRevokeSell proto.InternalMessageInfo

func (m *ReqRevokeSell) GetRevoke() *TradeForRevokeSell {
	if m != nil {
		return m.Revoke
	}
	return nil
}

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

type ReqBuyToken struct {
	Buy                  *TradeForBuy `protobuf:"bytes,1,opt,name=buy,proto3" json:"buy,omitempty"`
	Buyer                string       `protobuf:"bytes,2,opt,name=buyer,proto3" json:"buyer,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *ReqBuyToken) Reset()         { *m = ReqBuyToken{} }
func (m *ReqBuyToken) String() string { return proto.CompactTextString(m) }
func (*ReqBuyToken) ProtoMessage()    {}
func (*ReqBuyToken) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{28}
}
func (m *ReqBuyToken) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReqBuyToken.Unmarshal(m, b)
}
func (m *ReqBuyToken) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReqBuyToken.Marshal(b, m, deterministic)
}
func (dst *ReqBuyToken) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReqBuyToken.Merge(dst, src)
}
func (m *ReqBuyToken) XXX_Size() int {
	return xxx_messageInfo_ReqBuyToken.Size(m)
}
func (m *ReqBuyToken) XXX_DiscardUnknown() {
	xxx_messageInfo_ReqBuyToken.DiscardUnknown(m)
}

var xxx_messageInfo_ReqBuyToken proto.InternalMessageInfo

func (m *ReqBuyToken) GetBuy() *TradeForBuy {
	if m != nil {
		return m.Buy
	}
	return nil
}

func (m *ReqBuyToken) GetBuyer() string {
	if m != nil {
		return m.Buyer
	}
	return ""
}

type LocalOrder struct {
	AssetSymbol          string   `protobuf:"bytes,1,opt,name=assetSymbol,proto3" json:"assetSymbol,omitempty"`
	Owner                string   `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
	AmountPerBoardlot    int64    `protobuf:"varint,3,opt,name=amountPerBoardlot,proto3" json:"amountPerBoardlot,omitempty"`
	MinBoardlot          int64    `protobuf:"varint,4,opt,name=minBoardlot,proto3" json:"minBoardlot,omitempty"`
	PricePerBoardlot     int64    `protobuf:"varint,5,opt,name=pricePerBoardlot,proto3" json:"pricePerBoardlot,omitempty"`
	TotalBoardlot        int64    `protobuf:"varint,6,opt,name=totalBoardlot,proto3" json:"totalBoardlot,omitempty"`
	TradedBoardlot       int64    `protobuf:"varint,7,opt,name=tradedBoardlot,proto3" json:"tradedBoardlot,omitempty"`
	BuyID                string   `protobuf:"bytes,8,opt,name=buyID,proto3" json:"buyID,omitempty"`
	Status               int32    `protobuf:"varint,9,opt,name=status,proto3" json:"status,omitempty"`
	SellID               string   `protobuf:"bytes,10,opt,name=sellID,proto3" json:"sellID,omitempty"`
	TxHash               []string `protobuf:"bytes,11,rep,name=txHash,proto3" json:"txHash,omitempty"`
	Height               int64    `protobuf:"varint,12,opt,name=height,proto3" json:"height,omitempty"`
	Key                  string   `protobuf:"bytes,13,opt,name=key,proto3" json:"key,omitempty"`
	BlockTime            int64    `protobuf:"varint,14,opt,name=blockTime,proto3" json:"blockTime,omitempty"`
	IsSellOrder          bool     `protobuf:"varint,15,opt,name=isSellOrder,proto3" json:"isSellOrder,omitempty"`
	AssetExec            string   `protobuf:"bytes,16,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
	TxIndex              string   `protobuf:"bytes,17,opt,name=txIndex,proto3" json:"txIndex,omitempty"`
	IsFinished           bool     `protobuf:"varint,18,opt,name=isFinished,proto3" json:"isFinished,omitempty"`
	PriceExec            string   `protobuf:"bytes,19,opt,name=priceExec,proto3" json:"priceExec,omitempty"`
	PriceSymbol          string   `protobuf:"bytes,20,opt,name=priceSymbol,proto3" json:"priceSymbol,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LocalOrder) Reset()         { *m = LocalOrder{} }
func (m *LocalOrder) String() string { return proto.CompactTextString(m) }
func (*LocalOrder) ProtoMessage()    {}
func (*LocalOrder) Descriptor() ([]byte, []int) {
	return fileDescriptor_trade_05e36a4efd974a28, []int{29}
}
func (m *LocalOrder) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LocalOrder.Unmarshal(m, b)
}
func (m *LocalOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LocalOrder.Marshal(b, m, deterministic)
}
func (dst *LocalOrder) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LocalOrder.Merge(dst, src)
}
func (m *LocalOrder) XXX_Size() int {
	return xxx_messageInfo_LocalOrder.Size(m)
}
func (m *LocalOrder) XXX_DiscardUnknown() {
	xxx_messageInfo_LocalOrder.DiscardUnknown(m)
}

var xxx_messageInfo_LocalOrder proto.InternalMessageInfo

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

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

func (m *LocalOrder) GetAmountPerBoardlot() int64 {
	if m != nil {
		return m.AmountPerBoardlot
	}
	return 0
}

func (m *LocalOrder) GetMinBoardlot() int64 {
	if m != nil {
		return m.MinBoardlot
	}
	return 0
}

func (m *LocalOrder) GetPricePerBoardlot() int64 {
	if m != nil {
		return m.PricePerBoardlot
	}
	return 0
}

func (m *LocalOrder) GetTotalBoardlot() int64 {
	if m != nil {
		return m.TotalBoardlot
	}
	return 0
}

func (m *LocalOrder) GetTradedBoardlot() int64 {
	if m != nil {
		return m.TradedBoardlot
	}
	return 0
}

func (m *LocalOrder) GetBuyID() string {
	if m != nil {
		return m.BuyID
	}
	return ""
}

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

func (m *LocalOrder) GetSellID() string {
	if m != nil {
		return m.SellID
	}
	return ""
}

func (m *LocalOrder) GetTxHash() []string {
	if m != nil {
		return m.TxHash
	}
	return nil
}

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

func (m *LocalOrder) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

func (m *LocalOrder) GetBlockTime() int64 {
	if m != nil {
		return m.BlockTime
	}
	return 0
}

func (m *LocalOrder) GetIsSellOrder() bool {
	if m != nil {
		return m.IsSellOrder
	}
	return false
}

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

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

func (m *LocalOrder) GetIsFinished() bool {
	if m != nil {
		return m.IsFinished
	}
	return false
}

func (m *LocalOrder) GetPriceExec() string {
	if m != nil {
		return m.PriceExec
	}
	return ""
}

func (m *LocalOrder) GetPriceSymbol() string {
	if m != nil {
		return m.PriceSymbol
	}
	return ""
}

func init() {
	proto.RegisterType((*Trade)(nil), "types.Trade")
	proto.RegisterType((*TradeForSell)(nil), "types.TradeForSell")
	proto.RegisterType((*TradeForBuy)(nil), "types.TradeForBuy")
	proto.RegisterType((*TradeForRevokeSell)(nil), "types.TradeForRevokeSell")
	proto.RegisterType((*TradeForBuyLimit)(nil), "types.TradeForBuyLimit")
	proto.RegisterType((*TradeForSellMarket)(nil), "types.TradeForSellMarket")
	proto.RegisterType((*TradeForRevokeBuy)(nil), "types.TradeForRevokeBuy")
	proto.RegisterType((*SellOrder)(nil), "types.SellOrder")
	proto.RegisterType((*BuyLimitOrder)(nil), "types.BuyLimitOrder")
	proto.RegisterType((*ReceiptBuyBase)(nil), "types.ReceiptBuyBase")
	proto.RegisterType((*ReceiptSellBase)(nil), "types.ReceiptSellBase")
	proto.RegisterType((*ReceiptTradeBuyMarket)(nil), "types.ReceiptTradeBuyMarket")
	proto.RegisterType((*ReceiptTradeBuyLimit)(nil), "types.ReceiptTradeBuyLimit")
	proto.RegisterType((*ReceiptTradeBuyRevoke)(nil), "types.ReceiptTradeBuyRevoke")
	proto.RegisterType((*ReceiptTradeSellLimit)(nil), "types.ReceiptTradeSellLimit")
	proto.RegisterType((*ReceiptSellMarket)(nil), "types.ReceiptSellMarket")
	proto.RegisterType((*ReceiptTradeSellRevoke)(nil), "types.ReceiptTradeSellRevoke")
	proto.RegisterType((*ReqAddrAssets)(nil), "types.ReqAddrAssets")
	proto.RegisterType((*ReqTokenSellOrder)(nil), "types.ReqTokenSellOrder")
	proto.RegisterType((*ReqTokenBuyOrder)(nil), "types.ReqTokenBuyOrder")
	proto.RegisterType((*ReplyBuyOrder)(nil), "types.ReplyBuyOrder")
	proto.RegisterType((*ReplySellOrder)(nil), "types.ReplySellOrder")
	proto.RegisterType((*ReplySellOrders)(nil), "types.ReplySellOrders")
	proto.RegisterType((*ReplyBuyOrders)(nil), "types.ReplyBuyOrders")
	proto.RegisterType((*ReplyTradeOrder)(nil), "types.ReplyTradeOrder")
	proto.RegisterType((*ReplyTradeOrders)(nil), "types.ReplyTradeOrders")
	proto.RegisterType((*ReqSellToken)(nil), "types.ReqSellToken")
	proto.RegisterType((*ReqRevokeSell)(nil), "types.ReqRevokeSell")
	proto.RegisterType((*ReqBuyToken)(nil), "types.ReqBuyToken")
	proto.RegisterType((*LocalOrder)(nil), "types.LocalOrder")
}

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

// TradeClient is the client API for Trade service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type TradeClient interface {
	CreateRawTradeSellTx(ctx context.Context, in *TradeForSell, opts ...grpc.CallOption) (*types.UnsignTx, error)
	CreateRawTradeBuyTx(ctx context.Context, in *TradeForBuy, opts ...grpc.CallOption) (*types.UnsignTx, error)
	CreateRawTradeRevokeTx(ctx context.Context, in *TradeForRevokeSell, opts ...grpc.CallOption) (*types.UnsignTx, error)
	CreateRawTradeBuyLimitTx(ctx context.Context, in *TradeForBuyLimit, opts ...grpc.CallOption) (*types.UnsignTx, error)
	CreateRawTradeSellMarketTx(ctx context.Context, in *TradeForSellMarket, opts ...grpc.CallOption) (*types.UnsignTx, error)
	CreateRawTradeRevokeBuyTx(ctx context.Context, in *TradeForRevokeBuy, opts ...grpc.CallOption) (*types.UnsignTx, error)
}

type tradeClient struct {
	cc *grpc.ClientConn
}

func NewTradeClient(cc *grpc.ClientConn) TradeClient {
	return &tradeClient{cc}
}

func (c *tradeClient) CreateRawTradeSellTx(ctx context.Context, in *TradeForSell, opts ...grpc.CallOption) (*types.UnsignTx, error) {
	out := new(types.UnsignTx)
	err := c.cc.Invoke(ctx, "/types.trade/CreateRawTradeSellTx", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *tradeClient) CreateRawTradeBuyTx(ctx context.Context, in *TradeForBuy, opts ...grpc.CallOption) (*types.UnsignTx, error) {
	out := new(types.UnsignTx)
	err := c.cc.Invoke(ctx, "/types.trade/CreateRawTradeBuyTx", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *tradeClient) CreateRawTradeRevokeTx(ctx context.Context, in *TradeForRevokeSell, opts ...grpc.CallOption) (*types.UnsignTx, error) {
	out := new(types.UnsignTx)
	err := c.cc.Invoke(ctx, "/types.trade/CreateRawTradeRevokeTx", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *tradeClient) CreateRawTradeBuyLimitTx(ctx context.Context, in *TradeForBuyLimit, opts ...grpc.CallOption) (*types.UnsignTx, error) {
	out := new(types.UnsignTx)
	err := c.cc.Invoke(ctx, "/types.trade/CreateRawTradeBuyLimitTx", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *tradeClient) CreateRawTradeSellMarketTx(ctx context.Context, in *TradeForSellMarket, opts ...grpc.CallOption) (*types.UnsignTx, error) {
	out := new(types.UnsignTx)
	err := c.cc.Invoke(ctx, "/types.trade/CreateRawTradeSellMarketTx", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *tradeClient) CreateRawTradeRevokeBuyTx(ctx context.Context, in *TradeForRevokeBuy, opts ...grpc.CallOption) (*types.UnsignTx, error) {
	out := new(types.UnsignTx)
	err := c.cc.Invoke(ctx, "/types.trade/CreateRawTradeRevokeBuyTx", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// TradeServer is the server API for Trade service.
type TradeServer interface {
	CreateRawTradeSellTx(context.Context, *TradeForSell) (*types.UnsignTx, error)
	CreateRawTradeBuyTx(context.Context, *TradeForBuy) (*types.UnsignTx, error)
	CreateRawTradeRevokeTx(context.Context, *TradeForRevokeSell) (*types.UnsignTx, error)
	CreateRawTradeBuyLimitTx(context.Context, *TradeForBuyLimit) (*types.UnsignTx, error)
	CreateRawTradeSellMarketTx(context.Context, *TradeForSellMarket) (*types.UnsignTx, error)
	CreateRawTradeRevokeBuyTx(context.Context, *TradeForRevokeBuy) (*types.UnsignTx, error)
}

func RegisterTradeServer(s *grpc.Server, srv TradeServer) {
	s.RegisterService(&_Trade_serviceDesc, srv)
}

func _Trade_CreateRawTradeSellTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TradeForSell)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(TradeServer).CreateRawTradeSellTx(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.trade/CreateRawTradeSellTx",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(TradeServer).CreateRawTradeSellTx(ctx, req.(*TradeForSell))
	}
	return interceptor(ctx, in, info, handler)
}

func _Trade_CreateRawTradeBuyTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TradeForBuy)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(TradeServer).CreateRawTradeBuyTx(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.trade/CreateRawTradeBuyTx",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(TradeServer).CreateRawTradeBuyTx(ctx, req.(*TradeForBuy))
	}
	return interceptor(ctx, in, info, handler)
}

func _Trade_CreateRawTradeRevokeTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TradeForRevokeSell)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(TradeServer).CreateRawTradeRevokeTx(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.trade/CreateRawTradeRevokeTx",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(TradeServer).CreateRawTradeRevokeTx(ctx, req.(*TradeForRevokeSell))
	}
	return interceptor(ctx, in, info, handler)
}

func _Trade_CreateRawTradeBuyLimitTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TradeForBuyLimit)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(TradeServer).CreateRawTradeBuyLimitTx(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.trade/CreateRawTradeBuyLimitTx",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(TradeServer).CreateRawTradeBuyLimitTx(ctx, req.(*TradeForBuyLimit))
	}
	return interceptor(ctx, in, info, handler)
}

func _Trade_CreateRawTradeSellMarketTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TradeForSellMarket)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(TradeServer).CreateRawTradeSellMarketTx(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.trade/CreateRawTradeSellMarketTx",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(TradeServer).CreateRawTradeSellMarketTx(ctx, req.(*TradeForSellMarket))
	}
	return interceptor(ctx, in, info, handler)
}

func _Trade_CreateRawTradeRevokeBuyTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TradeForRevokeBuy)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(TradeServer).CreateRawTradeRevokeBuyTx(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/types.trade/CreateRawTradeRevokeBuyTx",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(TradeServer).CreateRawTradeRevokeBuyTx(ctx, req.(*TradeForRevokeBuy))
	}
	return interceptor(ctx, in, info, handler)
}

var _Trade_serviceDesc = grpc.ServiceDesc{
	ServiceName: "types.trade",
	HandlerType: (*TradeServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreateRawTradeSellTx",
			Handler:    _Trade_CreateRawTradeSellTx_Handler,
		},
		{
			MethodName: "CreateRawTradeBuyTx",
			Handler:    _Trade_CreateRawTradeBuyTx_Handler,
		},
		{
			MethodName: "CreateRawTradeRevokeTx",
			Handler:    _Trade_CreateRawTradeRevokeTx_Handler,
		},
		{
			MethodName: "CreateRawTradeBuyLimitTx",
			Handler:    _Trade_CreateRawTradeBuyLimitTx_Handler,
		},
		{
			MethodName: "CreateRawTradeSellMarketTx",
			Handler:    _Trade_CreateRawTradeSellMarketTx_Handler,
		},
		{
			MethodName: "CreateRawTradeRevokeBuyTx",
			Handler:    _Trade_CreateRawTradeRevokeBuyTx_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "trade.proto",
}

func init() { proto.RegisterFile("trade.proto", fileDescriptor_trade_05e36a4efd974a28) }

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