授予资产碎片
接口描述
- 本接口用于资产发行者将数字资产的一个碎片授予给指定账户。
- 本接口是收费接口,调用消耗次数
- 需要创造该资产账户私钥对 asset_id和nonce 签名。
- 注意shard_id可以由调用方设置,需要调用方确保单asset_id下shard_id唯一,可以使用有序编号,也可以使用随机数。需要调用方业务系统控制不超发和少发,可以在下单等纪录中分配shard_id和业务对应纪录做唯一绑定。
- 注意资产amount小于1或者大于20w(库存太大,严格控制库存意义有限),会被当做无限授予处理,不做库存控制,大于20w时业务注意自行管理授予库存。
- 资产amount大于0且小于20w时,会有库存控制,不允许超过amount值授予,业务需要注意正确调用grant接口,否则会导致库存浪费无法授予,建议业务严格按amount份数分配shard_id,为每个订单绑定shard_id。有失败的情况时,重试使用原来的shard_id重试,更换shard_id会导致原库存浪费。
请求结构
POST /xasset/horae/v1/grant HTTP/1.1
Host: xuper.baidu.com
Authorization: Authorization string
Content-Type: application/x-www-form-urlencoded;charset=utf-8
asset_id={asset_id}
&shard_id={shard_id}
&price={price}
&addr={address}
&sign={sign}
&pkey={pkey}
&nonce={nonce}
&to_userid={user_id}
&to_addr={to_addr}
请求头域
请求参数
参数名 |
参数类型 |
是否可选 |
参数说明 |
asset_id |
int64 |
必选 |
对应的资产id |
shard_id |
int64 |
必选 |
资产碎片id,需要确保asset下唯一,可以使用有序编号,也可以使用随机整数,默认使用sdk提供GenRandId方法生成 |
addr |
string |
必选 |
创建资产账户地址 |
sign |
string |
必选 |
创建资产账户私钥签名私钥签名内容msg = Sprintf(“%d%d”, asset_id, nonce),sign = XassetSignECDSA(account, msg) |
pkey |
string |
必选 |
创建资产账户公钥 |
nonce |
int64 |
必选 |
随机数 |
price |
int64 |
可选 |
藏品实际售卖价格,单位为分,默认0 |
to_addr |
string |
必选 |
资产接收者账户地址 |
to_userid |
int64 |
可选 |
资产接收者用户id,建议填写关联 |
响应头域
响应参数
参数名 |
参数类型 |
参数说明 |
shard_id |
int64 |
碎片id |
asset_id |
int64 |
资产id |
请求示例
Post xasset/horae/v1/grant
Host: xuper.baidu.com
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2022-04-18T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
asset_id=1332322111211
&shard_id=10
&price=100
&addr=bFKZMPVBtUPb1bdoXzWwKX1jaSy9omMjR
&pubKey={"Curvname":"P-256","X":99992390283545488142355111780630053962942114118238766864067722901319912547387,"Y":62636249704255210574823120529280656364753347818712821209439354501575504249596}
&sign=B014EDF86B6DEE29E167E9D9ED9C5832
&nonce=8856422235281354998
&to_userid=123
&to_addr=akdul2kjl54435jlk345
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Date: Wed, 18 Apr 2022 03:28:11 GMT
X-Trace-Id: "1182282645"
{
"errno": 0,
"request_id": "1182282645",
"asset_id": 123456,
"shard_id": 7890123
}