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

package types

import (
	context "context"
	reflect "reflect"
	sync "sync"

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

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

type Exchange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*Exchange) ProtoMessage() {}

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

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

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

	// Types that are assignable to Value:
	//	*ExchangeAction_LimitOrder
	//	*ExchangeAction_MarketOrder
	//	*ExchangeAction_RevokeOrder
	Value isExchangeAction_Value `protobuf_oneof:"value"`
	Ty    int32                  `protobuf:"varint,6,opt,name=ty,proto3" json:"ty,omitempty"`
}

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

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

func (*ExchangeAction) ProtoMessage() {}

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

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

func (m *ExchangeAction) GetValue() isExchangeAction_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *ExchangeAction) GetLimitOrder() *LimitOrder {
	if x, ok := x.GetValue().(*ExchangeAction_LimitOrder); ok {
		return x.LimitOrder
	}
	return nil
}

func (x *ExchangeAction) GetMarketOrder() *MarketOrder {
	if x, ok := x.GetValue().(*ExchangeAction_MarketOrder); ok {
		return x.MarketOrder
	}
	return nil
}

func (x *ExchangeAction) GetRevokeOrder() *RevokeOrder {
	if x, ok := x.GetValue().(*ExchangeAction_RevokeOrder); ok {
		return x.RevokeOrder
	}
	return nil
}

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

type isExchangeAction_Value interface {
	isExchangeAction_Value()
}

type ExchangeAction_LimitOrder struct {
	LimitOrder *LimitOrder `protobuf:"bytes,1,opt,name=limitOrder,proto3,oneof"`
}

type ExchangeAction_MarketOrder struct {
	MarketOrder *MarketOrder `protobuf:"bytes,2,opt,name=marketOrder,proto3,oneof"`
}

type ExchangeAction_RevokeOrder struct {
	RevokeOrder *RevokeOrder `protobuf:"bytes,3,opt,name=revokeOrder,proto3,oneof"`
}

func (*ExchangeAction_LimitOrder) isExchangeAction_Value() {}

func (*ExchangeAction_MarketOrder) isExchangeAction_Value() {}

func (*ExchangeAction_RevokeOrder) isExchangeAction_Value() {}

//限价订单
type LimitOrder struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//交易对
	LeftAsset *Asset `protobuf:"bytes,1,opt,name=leftAsset,proto3" json:"leftAsset,omitempty"`
	//交易对
	RightAsset *Asset `protobuf:"bytes,2,opt,name=rightAsset,proto3" json:"rightAsset,omitempty"`
	//价格
	Price int64 `protobuf:"varint,3,opt,name=price,proto3" json:"price,omitempty"`
	//总量
	Amount int64 `protobuf:"varint,4,opt,name=amount,proto3" json:"amount,omitempty"`
	//操作， 1为买，2为卖
	Op int32 `protobuf:"varint,5,opt,name=op,proto3" json:"op,omitempty"`
}

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

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

func (*LimitOrder) ProtoMessage() {}

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

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

func (x *LimitOrder) GetLeftAsset() *Asset {
	if x != nil {
		return x.LeftAsset
	}
	return nil
}

func (x *LimitOrder) GetRightAsset() *Asset {
	if x != nil {
		return x.RightAsset
	}
	return nil
}

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

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

func (x *LimitOrder) GetOp() int32 {
	if x != nil {
		return x.Op
	}
	return 0
}

//市价委托
type MarketOrder struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//资产1
	LeftAsset *Asset `protobuf:"bytes,1,opt,name=leftAsset,proto3" json:"leftAsset,omitempty"`
	//资产2
	RightAsset *Asset `protobuf:"bytes,2,opt,name=rightAsset,proto3" json:"rightAsset,omitempty"`
	//总量
	Amount int64 `protobuf:"varint,3,opt,name=amount,proto3" json:"amount,omitempty"`
	//操作， 1为买，2为卖
	Op int32 `protobuf:"varint,4,opt,name=op,proto3" json:"op,omitempty"`
}

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

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

func (*MarketOrder) ProtoMessage() {}

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

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

func (x *MarketOrder) GetLeftAsset() *Asset {
	if x != nil {
		return x.LeftAsset
	}
	return nil
}

func (x *MarketOrder) GetRightAsset() *Asset {
	if x != nil {
		return x.RightAsset
	}
	return nil
}

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

func (x *MarketOrder) GetOp() int32 {
	if x != nil {
		return x.Op
	}
	return 0
}

//撤回订单
type RevokeOrder struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//订单号
	OrderID int64 `protobuf:"varint,1,opt,name=orderID,proto3" json:"orderID,omitempty"`
}

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

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

func (*RevokeOrder) ProtoMessage() {}

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

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

func (x *RevokeOrder) GetOrderID() int64 {
	if x != nil {
		return x.OrderID
	}
	return 0
}

//资产类型
type Asset struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*Asset) ProtoMessage() {}

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

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

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

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

//订单信息
type Order struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OrderID int64 `protobuf:"varint,1,opt,name=orderID,proto3" json:"orderID,omitempty"`
	// Types that are assignable to Value:
	//	*Order_LimitOrder
	//	*Order_MarketOrder
	Value isOrder_Value `protobuf_oneof:"value"`
	//挂单类型
	Ty int32 `protobuf:"varint,4,opt,name=ty,proto3" json:"ty,omitempty"`
	//已经成交的数量
	Executed int64 `protobuf:"varint,5,opt,name=executed,proto3" json:"executed,omitempty"`
	//成交均价
	AVGPrice int64 `protobuf:"varint,6,opt,name=AVG_price,json=AVGPrice,proto3" json:"AVG_price,omitempty"`
	//余额
	Balance int64 `protobuf:"varint,7,opt,name=balance,proto3" json:"balance,omitempty"`
	//状态,0 挂单中ordered， 1 完成completed， 2撤回 revoked
	Status int32 `protobuf:"varint,8,opt,name=status,proto3" json:"status,omitempty"`
	//用户地址
	Addr string `protobuf:"bytes,9,opt,name=addr,proto3" json:"addr,omitempty"`
	//更新时间
	UpdateTime int64 `protobuf:"varint,10,opt,name=updateTime,proto3" json:"updateTime,omitempty"`
	//索引
	Index int64 `protobuf:"varint,11,opt,name=index,proto3" json:"index,omitempty"`
	//手续费率
	Rate int32 `protobuf:"varint,12,opt,name=rate,proto3" json:"rate,omitempty"`
	//手续费
	DigestedFee int64 `protobuf:"varint,13,opt,name=digestedFee,proto3" json:"digestedFee,omitempty"`
	//最小手续费
	MinFee int64 `protobuf:"varint,14,opt,name=minFee,proto3" json:"minFee,omitempty"`
	//挂单hash
	Hash string `protobuf:"bytes,15,opt,name=hash,proto3" json:"hash,omitempty"`
	//撤单hash
	RevokeHash string `protobuf:"bytes,16,opt,name=revokeHash,proto3" json:"revokeHash,omitempty"`
	//创建时间
	CreateTime int64 `protobuf:"varint,17,opt,name=createTime,proto3" json:"createTime,omitempty"`
}

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

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

func (*Order) ProtoMessage() {}

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

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

func (x *Order) GetOrderID() int64 {
	if x != nil {
		return x.OrderID
	}
	return 0
}

func (m *Order) GetValue() isOrder_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *Order) GetLimitOrder() *LimitOrder {
	if x, ok := x.GetValue().(*Order_LimitOrder); ok {
		return x.LimitOrder
	}
	return nil
}

func (x *Order) GetMarketOrder() *MarketOrder {
	if x, ok := x.GetValue().(*Order_MarketOrder); ok {
		return x.MarketOrder
	}
	return nil
}

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

func (x *Order) GetExecuted() int64 {
	if x != nil {
		return x.Executed
	}
	return 0
}

func (x *Order) GetAVGPrice() int64 {
	if x != nil {
		return x.AVGPrice
	}
	return 0
}

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

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

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

func (x *Order) GetUpdateTime() int64 {
	if x != nil {
		return x.UpdateTime
	}
	return 0
}

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

func (x *Order) GetRate() int32 {
	if x != nil {
		return x.Rate
	}
	return 0
}

func (x *Order) GetDigestedFee() int64 {
	if x != nil {
		return x.DigestedFee
	}
	return 0
}

func (x *Order) GetMinFee() int64 {
	if x != nil {
		return x.MinFee
	}
	return 0
}

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

func (x *Order) GetRevokeHash() string {
	if x != nil {
		return x.RevokeHash
	}
	return ""
}

func (x *Order) GetCreateTime() int64 {
	if x != nil {
		return x.CreateTime
	}
	return 0
}

type isOrder_Value interface {
	isOrder_Value()
}

type Order_LimitOrder struct {
	LimitOrder *LimitOrder `protobuf:"bytes,2,opt,name=limitOrder,proto3,oneof"`
}

type Order_MarketOrder struct {
	MarketOrder *MarketOrder `protobuf:"bytes,3,opt,name=marketOrder,proto3,oneof"`
}

func (*Order_LimitOrder) isOrder_Value() {}

func (*Order_MarketOrder) isOrder_Value() {}

//查询接口
type QueryMarketDepth struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//资产1
	LeftAsset *Asset `protobuf:"bytes,1,opt,name=leftAsset,proto3" json:"leftAsset,omitempty"`
	//资产2
	RightAsset *Asset `protobuf:"bytes,2,opt,name=rightAsset,proto3" json:"rightAsset,omitempty"`
	//操作， 1为买，2为卖
	Op int32 `protobuf:"varint,3,opt,name=op,proto3" json:"op,omitempty"`
	// 这里用价格作为索引值
	PrimaryKey string `protobuf:"bytes,4,opt,name=primaryKey,proto3" json:"primaryKey,omitempty"`
	//单页返回多少条记录，默认返回10条,为了系统安全最多单次只能返回20条
	Count int32 `protobuf:"varint,5,opt,name=count,proto3" json:"count,omitempty"`
}

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

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

func (*QueryMarketDepth) ProtoMessage() {}

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

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

func (x *QueryMarketDepth) GetLeftAsset() *Asset {
	if x != nil {
		return x.LeftAsset
	}
	return nil
}

func (x *QueryMarketDepth) GetRightAsset() *Asset {
	if x != nil {
		return x.RightAsset
	}
	return nil
}

func (x *QueryMarketDepth) GetOp() int32 {
	if x != nil {
		return x.Op
	}
	return 0
}

func (x *QueryMarketDepth) GetPrimaryKey() string {
	if x != nil {
		return x.PrimaryKey
	}
	return ""
}

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

//市场深度
type MarketDepth struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//资产1
	LeftAsset *Asset `protobuf:"bytes,1,opt,name=leftAsset,proto3" json:"leftAsset,omitempty"`
	//资产2
	RightAsset *Asset `protobuf:"bytes,2,opt,name=rightAsset,proto3" json:"rightAsset,omitempty"`
	//价格
	Price int64 `protobuf:"varint,3,opt,name=price,proto3" json:"price,omitempty"`
	//总量
	Amount int64 `protobuf:"varint,4,opt,name=amount,proto3" json:"amount,omitempty"`
	//操作， 1为买，2为卖
	Op int32 `protobuf:"varint,5,opt,name=op,proto3" json:"op,omitempty"`
}

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

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

func (*MarketDepth) ProtoMessage() {}

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

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

func (x *MarketDepth) GetLeftAsset() *Asset {
	if x != nil {
		return x.LeftAsset
	}
	return nil
}

func (x *MarketDepth) GetRightAsset() *Asset {
	if x != nil {
		return x.RightAsset
	}
	return nil
}

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

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

func (x *MarketDepth) GetOp() int32 {
	if x != nil {
		return x.Op
	}
	return 0
}

//查询接口返回的市场深度列表
type MarketDepthList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	List       []*MarketDepth `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
	PrimaryKey string         `protobuf:"bytes,2,opt,name=primaryKey,proto3" json:"primaryKey,omitempty"`
}

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

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

func (*MarketDepthList) ProtoMessage() {}

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

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

func (x *MarketDepthList) GetList() []*MarketDepth {
	if x != nil {
		return x.List
	}
	return nil
}

func (x *MarketDepthList) GetPrimaryKey() string {
	if x != nil {
		return x.PrimaryKey
	}
	return ""
}

//查询最新得成交信息,外部接口
type QueryHistoryOrderList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//资产1
	LeftAsset *Asset `protobuf:"bytes,1,opt,name=leftAsset,proto3" json:"leftAsset,omitempty"`
	//资产2
	RightAsset *Asset `protobuf:"bytes,2,opt,name=rightAsset,proto3" json:"rightAsset,omitempty"`
	// 索引值
	PrimaryKey string `protobuf:"bytes,3,opt,name=primaryKey,proto3" json:"primaryKey,omitempty"`
	//单页返回多少条记录，默认返回10条,为了系统安全最多单次只能返回20条
	Count int32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"`
	// 0降序，1升序，默认降序
	Direction int32 `protobuf:"varint,5,opt,name=direction,proto3" json:"direction,omitempty"`
}

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

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

func (*QueryHistoryOrderList) ProtoMessage() {}

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

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

func (x *QueryHistoryOrderList) GetLeftAsset() *Asset {
	if x != nil {
		return x.LeftAsset
	}
	return nil
}

func (x *QueryHistoryOrderList) GetRightAsset() *Asset {
	if x != nil {
		return x.RightAsset
	}
	return nil
}

func (x *QueryHistoryOrderList) GetPrimaryKey() string {
	if x != nil {
		return x.PrimaryKey
	}
	return ""
}

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

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

//根据orderID去查询订单信息
type QueryOrder struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OrderID int64 `protobuf:"varint,1,opt,name=orderID,proto3" json:"orderID,omitempty"`
}

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

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

func (*QueryOrder) ProtoMessage() {}

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

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

func (x *QueryOrder) GetOrderID() int64 {
	if x != nil {
		return x.OrderID
	}
	return 0
}

//根据地址，状态查询用户自己的挂单信息
type QueryOrderList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//挂单状态必填(默认是0,只查询ordered挂单中的)
	Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
	//用户地址信息，必填
	Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	// 主键索引
	PrimaryKey string `protobuf:"bytes,3,opt,name=primaryKey,proto3" json:"primaryKey,omitempty"`
	//单页返回多少条记录，默认返回10条,为了系统安全最多单次只能返回20条
	Count int32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"`
	// 0降序，1升序，默认降序
	Direction int32 `protobuf:"varint,5,opt,name=direction,proto3" json:"direction,omitempty"`
}

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

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

func (*QueryOrderList) ProtoMessage() {}

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

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

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

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

func (x *QueryOrderList) GetPrimaryKey() string {
	if x != nil {
		return x.PrimaryKey
	}
	return ""
}

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

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

//订单列表
type OrderList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	List       []*Order `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
	PrimaryKey string   `protobuf:"bytes,2,opt,name=primaryKey,proto3" json:"primaryKey,omitempty"`
}

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

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

func (*OrderList) ProtoMessage() {}

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

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

func (x *OrderList) GetList() []*Order {
	if x != nil {
		return x.List
	}
	return nil
}

func (x *OrderList) GetPrimaryKey() string {
	if x != nil {
		return x.PrimaryKey
	}
	return ""
}

// exchange执行票据日志
type ReceiptExchange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Order       *Order   `protobuf:"bytes,1,opt,name=order,proto3" json:"order,omitempty"`
	MatchOrders []*Order `protobuf:"bytes,2,rep,name=matchOrders,proto3" json:"matchOrders,omitempty"`
	Index       int64    `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"`
}

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

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

func (*ReceiptExchange) ProtoMessage() {}

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

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

func (x *ReceiptExchange) GetOrder() *Order {
	if x != nil {
		return x.Order
	}
	return nil
}

func (x *ReceiptExchange) GetMatchOrders() []*Order {
	if x != nil {
		return x.MatchOrders
	}
	return nil
}

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

var File_exchange_proto protoreflect.FileDescriptor

var file_exchange_proto_rawDesc = []byte{
	0x0a, 0x0e, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x12, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x0a, 0x0a, 0x08, 0x45, 0x78, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x0e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f,
	0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52,
	0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0b, 0x6d,
	0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f,
	0x72, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72,
	0x64, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0b, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x72, 0x64,
	0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b,
	0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x74,
	0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x74, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72,
	0x64, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x61,
	0x73, 0x73, 0x65, 0x74, 0x52, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12,
	0x2c, 0x0a, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x61, 0x73, 0x73, 0x65,
	0x74, 0x52, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a,
	0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72,
	0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6f,
	0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6f, 0x70, 0x22, 0x8f, 0x01, 0x0a, 0x0b,
	0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x09, 0x6c,
	0x65, 0x66, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x52, 0x09, 0x6c, 0x65,
	0x66, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74,
	0x41, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x52, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74,
	0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a,
	0x02, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6f, 0x70, 0x22, 0x27, 0x0a,
	0x0b, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07,
	0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f,
	0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x22, 0x37, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12,
	0x16, 0x0a, 0x06, 0x65, 0x78, 0x65, 0x63, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x65, 0x78, 0x65, 0x63, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22,
	0xfe, 0x03, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64,
	0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65,
	0x72, 0x49, 0x44, 0x12, 0x33, 0x0a, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65,
	0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69,
	0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b,
	0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65,
	0x72, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72,
	0x12, 0x0e, 0x0a, 0x02, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x74, 0x79,
	0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09,
	0x41, 0x56, 0x47, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x08, 0x41, 0x56, 0x47, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c,
	0x61, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61,
	0x6e, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61,
	0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12,
	0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12,
	0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x67,
	0x65, 0x73, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
	0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d,
	0x69, 0x6e, 0x46, 0x65, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x69, 0x6e,
	0x46, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x76, 0x6f, 0x6b,
	0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x76,
	0x6f, 0x6b, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x22, 0xb2, 0x01, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74,
	0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x2a, 0x0a, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x41, 0x73, 0x73,
	0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x52, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x41, 0x73, 0x73, 0x65,
	0x74, 0x12, 0x2c, 0x0a, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x61, 0x73,
	0x73, 0x65, 0x74, 0x52, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12,
	0x0e, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6f, 0x70, 0x12,
	0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x12,
	0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x0b, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74,
	0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x2a, 0x0a, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x41, 0x73, 0x73,
	0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x52, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x41, 0x73, 0x73, 0x65,
	0x74, 0x12, 0x2c, 0x0a, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x61, 0x73,
	0x73, 0x65, 0x74, 0x52, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12,
	0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
	0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a,
	0x02, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6f, 0x70, 0x22, 0x59, 0x0a,
	0x0f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x44, 0x65, 0x70, 0x74, 0x68, 0x4c, 0x69, 0x73, 0x74,
	0x12, 0x26, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x44, 0x65, 0x70,
	0x74, 0x68, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6d,
	0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72,
	0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x22, 0xc5, 0x01, 0x0a, 0x15, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69,
	0x73, 0x74, 0x12, 0x2a, 0x0a, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x61, 0x73,
	0x73, 0x65, 0x74, 0x52, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x2c,
	0x0a, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74,
	0x52, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a,
	0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x22, 0x26, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18,
	0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x22, 0x96, 0x01, 0x0a, 0x0e, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a,
	0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a,
	0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x22, 0x4d, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20,
	0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74,
	0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79,
	0x22, 0x7b, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72,
	0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68,
	0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63,
	0x68, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x32, 0x0a, 0x0a,
	0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_exchange_proto_rawDescOnce sync.Once
	file_exchange_proto_rawDescData = file_exchange_proto_rawDesc
)

func file_exchange_proto_rawDescGZIP() []byte {
	file_exchange_proto_rawDescOnce.Do(func() {
		file_exchange_proto_rawDescData = protoimpl.X.CompressGZIP(file_exchange_proto_rawDescData)
	})
	return file_exchange_proto_rawDescData
}

var file_exchange_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_exchange_proto_goTypes = []interface{}{
	(*Exchange)(nil),              // 0: types.Exchange
	(*ExchangeAction)(nil),        // 1: types.ExchangeAction
	(*LimitOrder)(nil),            // 2: types.LimitOrder
	(*MarketOrder)(nil),           // 3: types.MarketOrder
	(*RevokeOrder)(nil),           // 4: types.RevokeOrder
	(*Asset)(nil),                 // 5: types.asset
	(*Order)(nil),                 // 6: types.Order
	(*QueryMarketDepth)(nil),      // 7: types.QueryMarketDepth
	(*MarketDepth)(nil),           // 8: types.MarketDepth
	(*MarketDepthList)(nil),       // 9: types.MarketDepthList
	(*QueryHistoryOrderList)(nil), // 10: types.QueryHistoryOrderList
	(*QueryOrder)(nil),            // 11: types.QueryOrder
	(*QueryOrderList)(nil),        // 12: types.QueryOrderList
	(*OrderList)(nil),             // 13: types.OrderList
	(*ReceiptExchange)(nil),       // 14: types.ReceiptExchange
}
var file_exchange_proto_depIdxs = []int32{
	2,  // 0: types.ExchangeAction.limitOrder:type_name -> types.LimitOrder
	3,  // 1: types.ExchangeAction.marketOrder:type_name -> types.MarketOrder
	4,  // 2: types.ExchangeAction.revokeOrder:type_name -> types.RevokeOrder
	5,  // 3: types.LimitOrder.leftAsset:type_name -> types.asset
	5,  // 4: types.LimitOrder.rightAsset:type_name -> types.asset
	5,  // 5: types.MarketOrder.leftAsset:type_name -> types.asset
	5,  // 6: types.MarketOrder.rightAsset:type_name -> types.asset
	2,  // 7: types.Order.limitOrder:type_name -> types.LimitOrder
	3,  // 8: types.Order.marketOrder:type_name -> types.MarketOrder
	5,  // 9: types.QueryMarketDepth.leftAsset:type_name -> types.asset
	5,  // 10: types.QueryMarketDepth.rightAsset:type_name -> types.asset
	5,  // 11: types.MarketDepth.leftAsset:type_name -> types.asset
	5,  // 12: types.MarketDepth.rightAsset:type_name -> types.asset
	8,  // 13: types.MarketDepthList.list:type_name -> types.MarketDepth
	5,  // 14: types.QueryHistoryOrderList.leftAsset:type_name -> types.asset
	5,  // 15: types.QueryHistoryOrderList.rightAsset:type_name -> types.asset
	6,  // 16: types.OrderList.list:type_name -> types.Order
	6,  // 17: types.ReceiptExchange.order:type_name -> types.Order
	6,  // 18: types.ReceiptExchange.matchOrders:type_name -> types.Order
	19, // [19:19] is the sub-list for method output_type
	19, // [19:19] is the sub-list for method input_type
	19, // [19:19] is the sub-list for extension type_name
	19, // [19:19] is the sub-list for extension extendee
	0,  // [0:19] is the sub-list for field type_name
}

func init() { file_exchange_proto_init() }
func file_exchange_proto_init() {
	if File_exchange_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_exchange_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Exchange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExchangeAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LimitOrder); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MarketOrder); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RevokeOrder); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Asset); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Order); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryMarketDepth); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MarketDepth); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MarketDepthList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryHistoryOrderList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryOrder); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryOrderList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OrderList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_exchange_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReceiptExchange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_exchange_proto_msgTypes[1].OneofWrappers = []interface{}{
		(*ExchangeAction_LimitOrder)(nil),
		(*ExchangeAction_MarketOrder)(nil),
		(*ExchangeAction_RevokeOrder)(nil),
	}
	file_exchange_proto_msgTypes[6].OneofWrappers = []interface{}{
		(*Order_LimitOrder)(nil),
		(*Order_MarketOrder)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_exchange_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   15,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_exchange_proto_goTypes,
		DependencyIndexes: file_exchange_proto_depIdxs,
		MessageInfos:      file_exchange_proto_msgTypes,
	}.Build()
	File_exchange_proto = out.File
	file_exchange_proto_rawDesc = nil
	file_exchange_proto_goTypes = nil
	file_exchange_proto_depIdxs = nil
}

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

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

// ExchangeClient is the client API for Exchange service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ExchangeClient interface {
}

type exchangeClient struct {
	cc grpc.ClientConnInterface
}

func NewExchangeClient(cc grpc.ClientConnInterface) ExchangeClient {
	return &exchangeClient{cc}
}

// ExchangeServer is the server API for Exchange service.
type ExchangeServer interface {
}

// UnimplementedExchangeServer can be embedded to have forward compatible implementations.
type UnimplementedExchangeServer struct {
}

func RegisterExchangeServer(s *grpc.Server, srv ExchangeServer) {
	s.RegisterService(&_Exchange_serviceDesc, srv)
}

var _Exchange_serviceDesc = grpc.ServiceDesc{
	ServiceName: "types.exchange",
	HandlerType: (*ExchangeServer)(nil),
	Methods:     []grpc.MethodDesc{},
	Streams:     []grpc.StreamDesc{},
	Metadata:    "exchange.proto",
}
