# 交易接口
支持发送交易,包括转账、节点staking、节点注册、节点投票、节点领取奖励、调用合约等。
在发送交易前,请确保:
1.您已拥有一个链上账户。可通过getAccount
查询此账户是否已经在链上创建。
2.获取链访问身份令牌,使用requestToken
命令获取。
# 交易费用说明
在RPC API中,账户余额、交易保证金等TOP token单位为uTOP,1TOP=1*10^6 uTOP。
TOP AI Network链上发送交易会消耗一定的gas资源,如果账户余额大于等于100*10^6 uTOP,系统会免费赠与25,000 Tgas。
每笔交易都至少需要100,000 uTOP token作为交易保证金,否则交易将被丢弃。
在账户gas资源充足的情况下,交易保证金在交易成功后会立即退回到您的账户。如gas资源不足以支付交易费用,则需要从交易保证金中扣除一笔费用用来兑换gas资源以支付交易费用,扣除的TOP token将被销毁。
如交易保证金也不足以兑换足够的gas资源,那么交易最终将失败。
交易所消耗的资源详细信息请参见 资源模型。
对于调用部署在Beacon系统合约的交易,系统还会自动从发送方账户里扣除100*10^6 uTOP token的服务费,并销毁。
需要扣除手续费的Beacon系统合约交易包括:
注册矿工、启动节点、更新矿工信息、增加矿工保证金、减少矿工保证金、修改矿工昵称、设置分红比例、更新矿工类型、赎回矿工保证金、注销矿工、发起提案、撤回提案、表决提案。
# 接口说明
请求方式
sendTransaction
请求参数
参数名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
authorization | 是 | String | 交易体签名。采用ECDSA数字签名算法。具体请参见 交易签名。 |
ext | 是 | String | 预留字段,空字符串。 |
last_tx_nonce | 是 | Uint64 | 交易发送方上次交易的nonce,用于交易的排序和去重。 |
note | 是 | String | 交易备注。 |
premium_price | 是 | Uint32 | 预留字段,为"0"。 |
receiver_action_name | 是 | String | 调用合约时,合约的函数名。系统合约函数请参见 系统智能合约 API。非合约交易时,默认为空。 |
receiver_action_param | 是 | String | 接收方执行内容。不同action type执行内容的序列化请参见 action param 序列化。 |
receiver_account | 是 | String | 交易接受方账户地址。 |
send_timestamp | 是 | Uint64 | 交易发送时间戳GMT。 |
sender_action_name | 是 | String | 预留字段,空字符串。 |
sender_action_param | 是 | String | 发送方执行内容。不同action type执行内容的序列化请参见 action param 序列化。 |
sender_account | 是 | String | 交易发送方账户地址。 |
tx_deposit | 是 | Uint32 | 交易保证金,最低为0.1*10^6 uTOP。 |
tx_expire_duration | 是 | Uint16 | 交易到期时长,超过则被丢弃,默认100s。 |
tx_structure_version | 是 | String | 交易结构版本号。默认为"2",暂未使用。 |
tx_type | 是 | Uint16 | 交易类型,不同的交易类型,action中action_param(执行内容)及action type(执行类型)不同。 xtransaction_type_run_contract = 3, // 调用智能合约 xtransaction_type_transfer = 4, // 转账 xtransaction_type_vote = 20, //投票 xtransaction_type_abolish_vote = 21, //取消投票 xtransaction_type_pledge_token_gas = 22, // 锁定TOP token兑换gas xtransaction_type_redeem_token_gas = 23, // 解锁兑换gas锁定的TOP token xtransaction_type_pledge_token_vote = 27, // 锁定TOP token兑换选票 xtransaction_type_redeem_token_vote = 28, // 解锁兑换选票锁定的TOP token |
返回参数
参数名称 | 类型 | 说明 |
---|---|---|
tx_hash | String | 本次交易hash,可用于查询交易结果。 |
tx_len | Uint16 | 交易大小,交易消耗的gas和交易大小相关。 |
请求样例
以转账交易为例:
curl -X POST --data 'target_account_addr=T80000a62be6926c19321b644672975e028f875669fb53&body={"params": {"authorization": "0x019c01db8e4fd9cd79e7efdd89f238691345a272836ef2325dd251984028cde98f6f93cd98bda7bfe55fc0b8c5a9e6ab5b0c44342081e92f2b2dd08dfe6f072583", "tx_expire_duration": 100, "send_timestamp": 1638257801, "tx_deposit": 200000, "premium_price": 0, "tx_type": 4, "tx_structure_version": 2, "last_tx_nonce": 1, "ext": "", "note": "fix_account_by_god", "amount": 200300000, "token_name": "", "sender_account": "T80000a62be6926c19321b644672975e028f875669fb53", "sender_action_name": "", "sender_action_param": "", "receiver_account": "T800004978b1ad8b4ae8400cb787ad709b04b331a4a440", "receiver_action_name": "", "receiver_action_param": "", "edge_nodeid": ""}}&method=sendTransaction&sequence_id=4&identity_token=521d0ca2-4679-45ad-9a7f-c30be870bc72&version=1.0&signature=AQQKSIR7VIPLYTGC73IZIQZHHJNM2IOKO4HMMYKTKCNZDGHX5BAA' http://localhost:19081
返回样例
- 成功返回
{
"errmsg": "ok",
"errno": 0,
"sequence_id": "2",
"tx_hash": "0x34ca8f317107ce6b01c933b017f28e6cf0f84f2e31627a8349f167c1aa9ade10",
"tx_len": 306
}
Please use command 'get transaction' to query transaction status later on!!!
TOP AI Network交易共识需要一定的时间,不会立刻返回交易共识结果,可通过get transaction
查询交易详细信息查看交易共识最终结果。
- 失败返回
{
"errmsg": "ok",
"errno": 0,
"sequence_id": "3",
"tips": "Please use command 'get transaction' to query transaction status later on!!!",
"tx_hash": "0xc73f6295bc5b6be1ace273d59504f4c97d1b01cd2d3301c47cf042e28795e35b",
"tx_len": 306
}
同样的,交易失败的情况下,也不会直接返回交易共识结果,需要通过get transaction
查询交易详细信息查看交易共识最终结果。