Skip to content
linj edited this page Nov 23, 2022 · 1 revision

Trade 接口

[TOC]

在下面查询相关接口中,返回的卖单都一个一种格式,买单也是一种格式,只在第一个卖单或买单查询中列出其格式,不重复。

卖单买单状态说明:

状态 名称 说明
1 TradeOrderStatusOnSale 在售
2 TradeOrderStatusSoldOut 售完
3 TradeOrderStatusRevoked 卖单被撤回
4 TradeOrderStatusExpired 订单超时(目前不支持订单超时)
5 TradeOrderStatusOnBuy 求购
6 TradeOrderStatusBoughtOut 购买完成
7 TradeOrderStatusBuyRevoked 买单被撤回

Buy/Sell ID 在创建交易时不需要带上前缀 "mavl-trade-sell-" 或 "mavl-trade-buy-"

1 查询地址对应的买单 GetOnesBuyOrder

只指定地址,同时指定地址和token

请求报文:

{
	"jsonrpc":"2.0",
	"id":int32,
	"method":"Chain33.Query",
	"params":[
		{
			"execer":"trade",
			"funcName":"GetOnesBuyOrder",
			"payload":{"addr":"string"}
		}
	]
}

{
	"jsonrpc":"2.0",
	"id":int32,
	"method":"Chain33.Query",
	"params":[
		{
			"execer":"trade",
			"funcName":"GetOnesBuyOrder",
			"payload":{"addr":"string","token":["string","string"]}
		}
	]
}

参数说明:

参数 类型 是否必选 说明
addr string 买单持有人
token []string 具体的token的标识符,可以是多个
status int32 状态
direction int32 查询的方向
count int32 最多取的数量
fromKey string 开始查询的主键

响应报文:

{
	"id":int32,
	"result": {
		"buyOrders" : [
			{
				"buyID" : "string",
				"sellID" : "string",
				"txHash" : "string",
				"key" : "string",
				"height" : int64,
				"tokenSymbol" : "string",
				"status" : int32,
				"owner" : "string",
				"blockTime" : int64,
				"isSellOrder" : bool,
				"tradedBoardlot" : int64,
				"pricePerBoardlot" : int64,
				"amountPerBoardlot" : int64,
				"minBoardlot" : int64,
				"totalBoardlot" : int64,
				"assetExec":"string",
				"priceExec":"string",
				"priceSymbol":"string"
			}
		]
	},
	"error":null
}

参数说明:

参数 类型 说明
result - 对应买单的列表
key string 可能是 buyID 或 txhash。 在现价买单中是txHash, 在限价买单中是 buyID
txHash string 对应交易的hash
sellID string 卖单id
buyID string 买单id
tokenSymbol string token的标识符
owner string token购买者的地址
blockTime int64 出块的 UTC 时间
isSellOrder string 是否是买单
status bool 买单状态
height int64 买单所在区块的高度
amountPerBoardlot int64 每一手成交的数量
minBoardlot int64 一次购买最少成交的数量
pricePerBoardlot int64 一手成交的价格
totalBoardlot int64 总共购买的手数
tradedBoardlot int64 已经成交手数
assetExec string 资产来源的执行器名称
priceExec string
priceSymbol string -

2 分状态查询地址的买单 GetOnesBuyOrderWithStatus

请求报文:

{
	"jsonrpc":"2.0",
	"id":int32,
	"method" : "Chain33.Query",
	"params":[
		{
			"execer" : "trade",
			"funcName" : "GetOnesBuyOrderWithStatus",
			"payload" : {
				"addr" : "string",
				"status" : int32
			}
		}
	]
}

参数说明:

参数 类型 是否必选 说明
addr string 买单持有人
token []string 具体的token的标识符,可以是多个
status int32 买单状态
direction int32 查询的方向
count int32 最多取的数量
fromKey string 开始查询的主键

响应报文:

{
	"id":int32,
	"result": {
		"buyOrders" : [
			{
				"buyID" : "string",
				"sellID" : "string",
				"txHash" : "string",
				"key" : "string",
				"height" : int64,
				"tokenSymbol" : "string",
				"status" : int32,
				"owner" : "string",
				"blockTime" : int64,
				"isSellOrder" : bool,
				"tradedBoardlot" : int64,
				"pricePerBoardlot" : int64,
				"amountPerBoardlot" : int64,
				"minBoardlot" : int64,
				"totalBoardlot" : int64,
				"assetExec":"string",
				"priceExec":"string",
				"priceSymbol":"string"
			}
		]
	},
	"error":null
}

result: 对应买单的列表,各项同1.1。

3 显示一个token 指定数量的买单 GetTokenBuyOrderByStatus

请求报文:

{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"Chain33.Query",
    "params":[
		{
			"execer" : "trade",
			"funcName" : "GetTokenBuyOrderByStatus",
			"payload" : {"tokenSymbol":"string","status":int32,"count":int32,"direction":int32,"fromKey":"string"}
		}
	]
}

参数说明:

参数 类型 说明
status int32 订单状态 (默认是4, 求购状态)
count int32 卖单数量
direction int32 0 上一页; 1下一页
tokenSymbol string 填写token标识符
fromKey string 买单的key,不填第一页;如果要获取下一页, 填写这一页的最后一个买单的key;如果要获取上一页, 填写这一页的第一个买单的key。

响应报文:

{
	"id":int32,
	"result": {
		"buyOrders" : [
			{
				"buyID" : "string",
				"sellID" : "string",
				"txHash" : "string",
				"key" : "string",
				"height" : int64,
				"tokenSymbol" : "string",
				"status" : int32,
				"owner" : "string",
				"blockTime" : int64,
				"isSellOrder" : bool,
				"tradedBoardlot" : int64,
				"pricePerBoardlot" : int64,
				"amountPerBoardlot" : int64,
				"minBoardlot" : int64,
				"totalBoardlot" : int64,
				"assetExec":"string",
				"priceExec":"string",
				"priceSymbol":"string"
			}
		]
	},
	"error":null
}

result: 对应买单的列表,各项同1.1。

4 显示指定token出售者的一个或多个token 或 不指定token 的卖单 GetOnesSellOrder

请求报文:

{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"Chain33.Query",
    "params":[
		{
			"execer" : "trade",
			"funcName" : "GetOnesSellOrder",
			"payload" : {"addr": string, "token": ["string", "string"]}
		}
	]
}

参数说明:

参数 类型 是否必选 说明
addr string 买单持有人
token []string 具体的token的标识符,可以是多个, 或不指定
status int32 状态
direction int32 查询的方向
count int32 最多取的数量
fromKey string 开始查询的主键

响应报文:

{
	"id":int32,
	"result": {
		"sellOrders" : [
			{
				"buyID" : "string",
				"sellID" : "string",
				"txHash" : "string",
				"key" : "string",
				"height" : int64,
				"tokenSymbol" : "string",
				"status" : int32,
				"owner" : "string",
				"blockTime" : int64,
				"isSellOrder" : bool,
				"tradedBoardlot" : int64,
				"pricePerBoardlot" : int64,
				"amountPerBoardlot" : int64,
				"minBoardlot" : int64,
				"totalBoardlot" : int64,
				"assetExec":"string",
				"priceExec":"string",
				"priceSymbol":"string"
			}
		]
	},
	"error":null
}

参数说明:

参数 类型 说明
result - 对应买单的列表
key string 可能是 sellID 或 txHash。 在现价卖单中是txHash, 在限价卖单中是 sellID
txHash string 对应交易的hash
sellID string 卖单id
buyID string 买单id
tokenSymbol string 在售token的标识符
owner string token卖单的地址
blockTime int64 出块的 UTC 时间
isSellOrder string 是否是买单
status bool 卖单状态
height int64 卖单所在区块的高度
amountPerBoardlot int64 每一手成交的数量
minBoardlot int64 一次购买最少成交的数量
pricePerBoardlot int64 一手成交的价格
totalBoardlot int64 总共购买的手数
tradedBoardlot int64 已经成交手数
assetExec string 资产来源的执行器名称
priceExec string
priceSymbol string -

5 显示指定状态下的某地址卖单 GetOnesSellOrderWithStatus

请求报文:

{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"Chain33.Query",
    "params":[
		{
			"execer" : "trade",
			"funcName" : "GetOnesSellOrderWithStatus",
			"payload" : {"addr": string, "status": int32}
		}
	]
}

参数说明:

参数 类型 是否必选 说明
addr string 卖单地址
token []string 具体的token的标识符,可以是多个
status int32 1表示在售状态; 2,表示售罄状态;3,表示卖单被撤销状态
direction int32 查询的方向
count int32 最多取的数量
fromKey string 开始查询的主键

响应报文:

{
	"id":int32,
	"result": {
		"sellOrders" : [
			{
				"buyID" : "string",
				"sellID" : "string",
				"txHash" : "string",
				"key" : "string",
				"height" : int64,
				"tokenSymbol" : "string",
				"status" : int32,
				"owner" : "string",
				"blockTime" : int64,
				"isSellOrder" : bool,
				"tradedBoardlot" : int64,
				"pricePerBoardlot" : int64,
				"amountPerBoardlot" : int64,
				"minBoardlot" : int64,
				"totalBoardlot" : int64,
				"assetExec":"string",
				"priceExec":"string",
				"priceSymbol":"string"
			}
		]
	},
	"error":null
}

result: 对应卖单的列表,各项同1.4。

6 显示一个用户成交的所有买单

见 1.1

7 显示一个用户成交的指定一个或者多个token所有买单

见 1.1

8 显示一个token 指定数量的卖单 GetTokenSellOrderByStatus

请求报文:

{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"Chain33.Query",
    "params":[
		{
			"execer" : "trade",
			"funcName" : "GetTokenSellOrderByStatus",
			"payload" : {"tokenSymbol":"string","status":int32,"count":int32,"direction":int32,"fromKey":"string"}
		}
	]
}

参数说明:

参数 类型 说明
status int32 查询状态 (默认 1, 在售状态)
count int32 卖单数量
direction int32 0 上一页; 1下一页
tokenSymbol string 填写token标识符
fromKey string 卖单的key,不填第一页;如果要获取下一页, 填写这一页的最后一个卖单的key;如果要获取上一页, 填写这一页的第一个卖单的key。

响应报文:

{
	"id":int32,
	"result": {
		"sellOrders" : [
			{
				"buyID" : "string",
				"sellID" : "string",
				"txHash" : "string",
				"key" : "string",
				"height" : int64,
				"tokenSymbol" : "string",
				"status" : int32,
				"owner" : "string",
				"blockTime" : int64,
				"isSellOrder" : bool,
				"tradedBoardlot" : int64,
				"pricePerBoardlot" : int64,
				"amountPerBoardlot" : int64,
				"minBoardlot" : int64,
				"totalBoardlot" : int64,
				"assetExec":"string",
				"priceExec":"string",
				"priceSymbol":"string"
			}
		]
	},
	"error":null
}

result: 对应卖单的列表,各项同1.4。

9 生成 卖出资产的交易(未签名) CreateRawTradeSellTx

请求报文:

{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"trade.CreateRawTradeSellTx",
    "params":[
		{
			"tokenSymbol":"string",
			"assetExec":"string",
			"amountPerBoardlot":int64,
			"minBoardlot":int64,
			"pricePerBoardlot":int64,
			"totalBoardlot":int64,
			"priceExec" : "string",
			"priceSymbol" : "string",
			"fee" : int64
		}
	]
}

参数说明:

参数 类型 说明
tokenSymbol string 资产标识符
assetExec string 资产来源的执行器名称
amountPerBoardlot int64 每一手成交的数量
minBoardlot int64 一次购买最少成交的数量
pricePerBoardlot int64 一手成交的价格
totalBoardlot int64 总共的出售的手数
priceExec string 标价资产的合约
priceSymbol string 标价资产的名字
fee int64 交易的手续费

响应报文:

{
    "id":int32,
    "result":"string",
    "error":null
}

参数说明:

参数 类型 说明
result string 交易十六进制编码后的字符串

10 生成买入指定卖单卖出的token的交易(未签名)CreateRawTradeBuyTx

请求报文:

{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"trade.CreateRawTradeBuyTx",
    "params":[
		{
			"sellID":string,
            "boardlotCnt":int64,
            "fee" : int64
		}
	]
}

参数说明:

参数 类型 说明
sellID string 卖单id
boardlotCnt int64 购买数量,单位手
fee int64 交易的手续费

响应报文:

{
    "id":int32,
    "result":"string",
    "error":null
}

参数说明:

参数 类型 说明
result string 交易十六进制编码后的字符串

11 生成撤销卖出token(卖单)的交易(未签名) CreateRawTradeRevokeTx

请求报文:

{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"trade.CreateRawTradeRevokeTx",
    "params":[{"sellID":"string","fee" : int64}]
}

参数说明:

参数 类型 说明
sellID string 卖单id
fee int64 交易的手续费

响应报文:

{
    "id":int32,
    "result":"string",
    "error":null
}

参数说明:

参数 类型 说明
result string 交易十六进制编码后的字符串

12 生成 买入token的交易(未签名) CreateRawTradeBuyLimitTx

请求报文:

{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"trade.CreateRawTradeBuyLimitTx",
    "params":[
		{
			"tokenSymbol":"string",
			"assetExec":"string",
			"amountPerBoardlot":int64,
			"minBoardlot":int64,
			"pricePerBoardlot":int64,
			"totalBoardlot":int64,
			"priceExec" : "string",
			"priceSymbol" : "string",
			"fee" : int64
		}
    ]
}

参数说明:

参数 类型 说明
tokenSymbol string token标识符
assetExec string 资产来源的执行器名称
amountPerBoardlot int64 每一手成交的数量
minBoardlot int64 一次购买最少成交的数量
pricePerBoardlot int64 一手成交的价格
totalBoardlot int64 总共的出售的手数
priceExec string 标价资产的合约
priceSymbol string 标价资产的名字
fee int64 交易的手续费

响应报文:

{
    "id":int32,
    "result":"string",
    "error":null
}

参数说明:

参数 类型 说明
result string 交易十六进制编码后的字符串

13 生成卖出指定买单的token的交易(未签名) CreateRawTradeSellMarketTx

请求报文:

{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"trade.CreateRawTradeSellMarketTx",
    "method":
    "params":[{"buyID":string,"boardlotCnt":int64,"fee" : int64}]
}

参数说明:

参数 类型 说明
buyID string 买单id
boardlotCnt int64 购买数量,单位手
fee int64 交易的手续费

响应报文:

{
    "id":int32,
    "result":"string",
    "error":null
}

参数说明:

参数 类型 说明
result string 交易十六进制编码后的字符串

14 生成撤销买入token(买单)的交易(未签名) CreateRawTradeRevokeBuyTx

请求报文:

{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"trade.CreateRawTradeRevokeBuyTx",
    "params":[{"buyID":"string","fee" : int64}]
}

参数说明:

参数 类型 说明
buyID string 买单id
fee int64 交易的手续费

响应报文:

{
    "id":int32,
    "result":"string",
    "error":null
}

参数说明:

参数 类型 说明
result string 交易十六进制编码后的字符串

15 根据状态分页列出某地址的订单(包括买单卖单) GetOnesOrderWithStatus

请求报文:

{
	"id" :int32 ,
    "method" : "Chain33.Query",
	"params":[
		{
			"execer" : "trade",
			"funcName" : "GetOnesOrderWithStatus",
			"payload" : {
				"status":int32,
				"addr" : "string",
				"direction":int32,
				"count" : int32,
				"fromKey" : "string"
			}
		}
	]
}

参数说明:

参数 类型 是否必选 说明
addr string 指定地址
token []string 具体的token的标识符,可以是多个
status int32 1: 未完成交易, 2: 完成的交易, 3: 撤销的交易
direction int32 查询的方向,0 按高度降序, 1 按高度升序
count int32 最多取的数量
fromKey string 开始查询的主键,第一页时不指定。 其他页时,指定上一页的最后一个key

响应报文:

{
	"id":int32,
	"result": {
		"orders" : [
			{
				"buyID" : "string",
				"sellID" : "string",
				"txHash" : "string",
				"key" : "string",
				"height" : int64,
				"tokenSymbol" : "string",
				"status" : int32,
				"owner" : "string",
				"blockTime" : int64,
				"isSellOrder" : bool,
				"tradedBoardlot" : int64,
				"pricePerBoardlot" : int64,
				"amountPerBoardlot" : int64,
				"minBoardlot" : int64,
				"totalBoardlot" : int64,
				"assetExec":"string",
				"priceExec":"string",
				"priceSymbol":"string"
			}
		]
	},
	"error":null
}

result: 对应列表,各项同1.1。

Clone this wiki locally