# API
说明:
- 接口中标名 W 的,表示该操作会有写链操作,需要对交易进行签名,消耗一定的gas
- 接口中标名 R 的,表示该操作不会有写链操作,不需要对交易进行签名,也不会消耗gas
# 结构体
# OrderSignature
/* 交易签名数据
* config: 包含签名v和签名方法(各占以1个字节, 其它字节缺省)
* r: 签名r
* s: 签名s
* */
struct OrderSignature {
bytes32 config;
bytes32 r;
bytes32 s;
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# OrderParam
/* 订单参数
* trader: taker 地址
* baseTokenAmount: 交易token的数量
* quoteTokenAmount: 报价token的数量
* gasTokenAmount: 交易费用token的数量,一般默认0
* data: 交易参数的设置, 包含hydro版本号、交易买卖标志等, 生成方式参见接口getConfigData
* signature: 交易签名数据, 包含签名的vrs, 以及签名方法, 生成方式参见接口 getConfigSignature
*/
struct OrderParam {
address trader;
uint256 baseTokenAmount;
uint256 quoteTokenAmount;
uint256 gasTokenAmount;
bytes32 data;
OrderSignature signature;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# getConfigData
/* 获取订单参数中的data - R
* is_sell: true 为卖单, false 为买单
*
* 返回值:
* bytes32 data
* */
function getConfigData(bool is_sell);
1
2
3
4
5
6
7
2
3
4
5
6
7
# getConfigSignature
/* 获取交易签名数据 - R
* v: 签名v值
* r: 签名r值
* s: 签名s值
* signMethod: 签名方法, 0为eth.sign, 1为EIP712
*
* 返回值:
* OrderSignature 结构体
* */
function getConfigSignature(bytes1 v, bytes32 r, bytes32 s, uint8 signMethod);
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# takeOrder
/* 发起订单 - W
* takerOrderParam: 订单参数
* orderAddressSet: 订单地址集合
* */
function takeOrder(OrderParam taker, OrderAddressSet orderAddressSet);
1
2
3
4
5
6
2
3
4
5
6
# getBQODHash
/* 获取订单相关hash值 - R
* orderParam: 订单参数
* orderAddressSet: 订单地址集合
*
* 返回值
* bq_hash: base-token/quote-token buy 哈希值
* sq_hash: base-token/quote-token sell 哈希值
* od_hash: 订单哈希值
*
* M 20200328
* */
function getBQODHash(OrderParam orderParam, OrderAddressSet orderAddressSet);
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
全局配置 →