生成赎回交易的调用数据#
描述:该 API 将提供赎回交易的调用数据。
请求地址#
POST https://www.okx.com/api/v5/defi/transaction/redemption
请求参数#
参数名称 | 相关描述 | 参数类型 | 必传 | 数据类型 |
---|---|---|---|---|
address | 用户钱包地址 | 请求体 | 是 | String |
investmentId | 投资品 ID | 请求体 | 是 | String |
userInputList | 用户输入代币信息 | 请求体 | 是 | Array[Struct] |
>chainId | 区块链 ID (默认:投资品网络) | 请求体 | 否 | String |
>coinAmount | 认购数量 | 请求体 | 是 | String |
>tokenAddress | 认购代币的智能合约地址 (默认:投资品代币地址) | 请求体 | 否 | String |
expectOutputLIst | 用户预期收益信息 | 请求体 | 是 | Array[Struct] |
>chainId | 区块链 ID | 请求体 | 否 | String |
>coinAmount | 认购数量 | 请求体 | 是 | String |
>tokenAddress | 认购代币的智能合约地址 | 请求体 | 否 | String |
extra | 具体含义见备注 | 请求体 | 否 | String |
备注:#
extra 用法 redeemCalldataExtInfo
- SUI Staking: SUI staking investment
- SOL Staking: SOL staking investment
这个接口可以得到 investOrderList 字段,代表用户每一笔申购。 investOrderList.redeemExtra 代表 Call data Extra 需要的数据。
{"extra": "{\"redeemCalldataExtInfo\":[{\"unstakeIndex\":\"0xbc5118e65240dd5702218b37fd8d965d6eb4400474f34b6fe4a8f7805fc09405\"}]}"}
响应参数#
参数名称 | 相关描述 | 数据类型 |
---|---|---|
dataList | Call data 数据信息 | Array[Struct] |
>from | 发送地址 (用户地址) | String |
>to | 接受地址 (目标合约地址) | String |
>value | 转账金额 (原生代币数量,默认为空字符串) | String |
>serializedData | Call data 数据 | String |
>originalData | 原始数据 (JSON) | JSON String |
>callDataType | 操作类型 (授权、申购、赎回、领取) | String |
>signatureData | 签名 Call data 数据信息,可用于验证数据由欧易生成 | String |
备注:#
验签方法:
- 使用 signatureData 签名信息计算出 r、s、v。
- 与 to + serializedData + originalData 拼接成的字符串计算出验签 hash。
- 恢复公钥验证。可由接入客户选则是否验签,如果验签成功,则说明该数据由欧易签名生成。
赎回示例#
请求示例#
shell
curl --location 'https://www.okx.com/api/v5/defi/transaction/redemption' \
--header 'OK-ACCESS-KEY: 9c****77' \
--header 'OK-ACCESS-PASSPHRASE: p****d' \
--header 'Content-Type: application/json' \
--data '{
"address": "0x7f****da",
"investmentId": "21033",
"userInputList": [
{
"chainId": 1,
"coinAmount": "1",
"tokenAddress": "0x6b175474e89094c44da98b954eedeac495271d0f"
}
],
"extra": "{\"redeemAll\":1}"
}'
响应示例#
200
{
"code": 0,
"msg": "",
"data": {
"dataList": [
{
"callDataType": "WITHDRAW",
"from": "0x7f****da",
"to": "0x83****ea",
"value": "0x0",
"serializedData": "0xba0876520000000000000000000000000000000000000000000000000cbb507c8eb3879f0000000000000000000000007f429edeff8afc7bb3a2cf7db832fc86f6fa99da0000000000000000000000007f429edeff8afc7bb3a2cf7db832fc86f6fa99da",
"originalData": "{\"callDataType\":\"WITHDRAW\",\"methodDefine\":\"redeem(uint256,address,address)\",\"methodId\":\"0xba087652\",\"methodType\":\"METHOD_ID\",\"params\":{\"params\":[\"917415445000325023\",\"0x7f429edeff8afc7bb3a2cf7db832fc86f6fa99da\",\"0x7f429edeff8afc7bb3a2cf7db832fc86f6fa99da\"]},\"useAdapter\":false}",
"signatureData": "e6beeb6f9df6ecb7eb7791e57226f9eca1d7c3efa869172bb5021b9c827ad21b46e3dc4566608af727555e0a47aa90cf261331f4e1691b0201aa0b8a00ea685b1b"
}
]
}
}