# Staking
staking 提供账户兑票、投票以及领取投票分红等功能,具体命令如下表所示。
命令 | 说明 |
---|---|
topio staking stakeFund | 锁定TOP token兑换选票。 |
topio staking withdrawFund | 解锁兑换选票的TOP token。 |
topio staking voteMiner | 给高级矿工投票。 |
topio staking withdrawVotes | 取消给高级矿工投票。 |
topio staking queryVotes | 查询账户投票分布信息。 |
topio staking queryReward | 查询投票者分红。 |
topio staking claimReward | 领取投票者分红。 |
# 锁定TOP token兑换选票
兑票规则:
locked TOP token=votes_amount / [ 1.04^(lock_duration / 30 - 1) ], lock_duration < 570;
locked TOP token=vote_amount / 2, lock_duration >= 570。
锁定期越长,相同的兑票数量锁定越少的TOP token。
请求方式
topio staking stakeFund
请求参数
参数名称 | 是否必选 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
vote_amount | 是 | - | Uint64 | 兑票数量。 |
lock_duration | 是 | - | Uint64 | TOP token锁定期,锁定期单位:天。 锁定期最少为30天,且必须为30的整数倍。 |
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-h, --help | - | - | 查看命令帮助信息。 |
返回参数
参数名称 | 类型 | 说明 |
---|---|---|
Transaction hash | String | 本次交易hash,可用于查询交易结果。 |
请求样例
兑换10,000张票,锁定期30天,请求命令如下所示。
topio staking stakeFund 10000 30
返回样例
- 成功返回
Transaction hash: 0x14a3301e093d27e351b4cfe036456419830d4f43ba6938fe91e6641b1c8e90aa
Please use command 'topio querytx' to query transaction status later on!!!
根据交易hash,使用topio querytx
查询交易,最终共识成功,使用topio chain queryAccount
查看账户"balance"、"unused_vote_amount"、"vote_staked_token"有相应发生变化,则成功兑换选票。
- 失败返回
Transaction hash: 0x3eadada0895b86aa502627f89406d07f085681381648aa1479fbc5f183dc93ea
Please use command 'topio querytx' to query transaction status later on!!!
根据交易hash,使用topio querytx
查询交易,最终共识失败,topio chain queryAccount
查看账户余额无变化,则兑换选票失败。
# 解锁兑换选票的TOP token
锁定期内的TOP token不能解锁,只能解锁到期的TOP token。
已经被使用的选票对应锁定的TOP token不能被解锁。
发起解锁后,解锁的金额将立刻到账。
解锁规则:
在兑换选票的时候系统会每笔兑票交易生成一个订单。订单中记录兑票数量和TOP以及锁定期,来判断此笔交易的兑票比率,解锁TOP,按照当时此笔交易的兑票比率解锁TOP。
请求方式
topio staking withdrawFund
请求参数
参数名称 | 是否必选 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
votes_num | 是 | - | Uint64 | 选票数量,解锁相应的TOP token。 |
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-h, --help | - | - | 查看命令帮助信息。 |
返回参数
参数名称 | 类型 | 说明 |
---|---|---|
Transaction hash | String | 本次交易hash,可用于查询交易结果。 |
请求样例
解锁200张票对应的TOP。
topio staking withdrawFund 200
返回样例
- 成功返回
Transaction hash: 0x6e74dd5860873cd9bf0dc14f5312aac93bcbbec2a92372c783fffb7fc1f7c902
Please use command 'topio querytx' to query transaction status later on!!!
根据交易hash,使用topio querytx
查询交易,最终共识成功,使用topio chain queryAccount
查看账户余额"balance"及选票"unused_vote_amount"有相应变化,则成功解锁TOP token。
- 失败返回
解锁超过总票数的TOP token返回:
Transaction hash: 0x68c925994cb066d11ed946f7e6ef8ec5e62f3554ac7370c82442f8e8b5d067ed
Please use command 'topio querytx' to query transaction status later on!!!
# 给高级矿工投票
投票之前请确保您的账户中有足够的未使用的选票,给高级矿工投票,获取收益:
- 只有高级矿工才能接收投票;
单个账户目前最多允许给10,000个矿工投票;
给矿工投票后,矿工获取的奖励会有一部分分给投票者。
请求方式
topio staking voteMiner
请求参数
参数名称 | 是否必选 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
miner_and_votes | 是 | - | String, Int | 接受的投票矿工账户地址,投票数量 |
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-h, --help | - | - | 查看命令帮助信息。 |
返回参数
参数名称 | 类型 | 说明 |
---|---|---|
Transaction hash | String | 本次交易hash,可用于查询此次交易结果。 |
请求样例
topio staking voteMiner T800002276a7d58218ac4978733e5cca927a7d86cb7c87 200 T8000066ab344963eaa071f9636faac26b0d1a39900325 300
返回样例
- 成功返回
Transaction hash: 0x2330f8d417bd6c51770df492272f5e9669717ec25a915d3d379e0ed52e462d07
Please use command 'topio querytx' to query transaction status later on!!!
根据交易hash,使用topio querytx
查询交易,交易最终共识成功,topio chain queryAccount
查询节点账户未使用选票有相应变化,则成功给矿工投票。
- 失败返回
根据交易hash,使用topio querytx
查询交易,交易最终共识失败,则给矿工投票失败。
# 取消投票
投票人可以随时将已经投给矿工的选票取消并收回。
每次取消投票的票数无限制,但是不能高于给矿工投票的总数,否则取消投票将失败。
给矿工投票后,即使矿工注销了,选票也不会主动退还至您的账户,需要您主动发起取消投票操作。
您可以批量取消矿工投票。
请求方式
topio staking withdrawVotes
请求参数
参数名称 | 是否必选 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
miner_and_votes | 是 | - | String, Int | 取消投票的矿工账户地址,取消的投票数量 |
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-h, --help | - | - | 查看命令帮助信息。 |
返回参数
参数名称 | 类型 | 说明 |
---|---|---|
Transaction hash | String | 本次交易hash,可用于查询此次交易结果。 |
请求样例
topio staking withdrawVotes T800002276a7d58218ac4978733e5cca927a7d86cb7c87 100
返回样例
- 成功返回
Transaction hash: 0xb740183a59398241ecf709d9003f607bb6dde40441b106d9edd795fde0da1208
Please use command 'topio querytx' to query transaction status later on!!!
根据交易hash,使用topio querytx
查询交易,交易最终共识成功,topio chain queryAccount
查询节点账户未使用选票有相应变化,则成功取消给矿工投票。
- 失败返回
根据交易hash,使用topio querytx
查询交易,交易最终共识失败,则取消给矿工投票失败。
# 查询账户投票分布信息
支持查询账户已投票的具体信息,包括接收投票的矿工账户、对应的票数。
请求方式
topio staking queryVotes
请求参数
参数名称 | 是否必选 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
account_addr | 否 | 默认账户 | String | 投票者账户地址。如不指定,查询默认账户的投票分布信息。 |
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-h, --help | - | - | 查看命令帮助信息。 |
返回参数
参数名称 | 类型 | 说明 |
---|---|---|
vote_infos | Map数组 | 接收投票矿工账户地址(String);给矿工投票数量(Integer)。 |
请求样例
topio staking queryVotes T800002276a7d58218ac4978733e5cca927a7d86cb7c87
返回样例
- 成功返回
{
"data" : {
"vote_infos" : {
"T8000066ab344963eaa071f9636faac26b0d1a39900325" : 200
}
},
"errmsg" : "ok",
"errno" : 0,
"sequence_id" : "80"
}
- 失败返回
No data!
# 查询投票者分红
您给矿工投票之后,可以获取相应的投票分红,分红比例由被投票的矿工设置。
投票者分红不是立刻可以查询,需要经过一个奖励周期(12小时)后可查询到投票分红。
请求方式
topio staking queryReward
请求参数
参数名称 | 是否必选 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
account_addr | 否 | - | String | 投票者账户地址。如不指定,查询默认账户投票者分红。 |
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-h,--help | - | - | 查看命令帮助信息。 |
返回参数
参数名称 | 类型 | 说明 | |
---|---|---|---|
accumulated | Uint64 | 投票者分红总额的整数部分。单位uTOP。 | |
accumulated_decimals | Uint32 | 投票者分红总额的小数部分。单位10^-6 uTOP。 | |
issue_time | Uint64 | 投票者分红发放时间。 | |
last_claim_time | Uint64 | 投票者上次领取分红的时钟高度。 | |
node_dividend | List | 被投票矿工的分红信息。 | |
account_addr | String | 被投票矿工账户地址。 | |
accumulated | Uint64 | 被投票矿工分给该投票者的分红整数部分。单位uTOP。 | |
accumulated_decimals | Uint32 | 被投票矿工分给该投票者的分红小数部分。单位10^-6 uTOP。 | |
issue_time | Uint64 | 被投票矿工给该投票者的分红最新发放时间。 | |
last_claim_time | Uint64 | 被投票矿工分红上次被领取的时钟高度。 | |
unclaimed | Uint64 | 被投票矿工分给该投票者未领取的分红整数部分。单位uTOP。 | |
unclaimed_decimals | Uint32 | 被投票矿工分给该投票者未领取的分红小数部分。单位10^-6 uTOP。 | |
unclaimed | Uint64 | 投票者未领取的分红总额整数部分,单位uTOP。 | |
unclaimed_decimals | Uint32 | 投票者未领取的分红总额小数部分。单位10^-6 uTOP。 |
请求样例
topio staking queryReward T800002276a7d58218ac4978733e5cca927a7d86cb7c87
返回样例
- 成功返回
{
"data" : {
"accumulated" : 6994245799976,
"accumulated_decimals" : 419004,
"issue_time" : 3535500,
"last_claim_time" : 0,
"node_dividend" : [
{
"account_addr" : "T800002276a7d58218ac4978733e5cca927a7d86cb7c87",
"accumulated" : 6994245799976,
"accumulated_decimals" : 419004,
"issue_time" : 3535500,
"last_claim_time" : 0,
"unclaimed" : 6994245799976,
"unclaimed_decimals" : 419004
}
],
"unclaimed" : 6994245799976,
"unclaimed_decimals" : 419004
},
"errmsg" : "OK",
"errno" : 0,
"sequence_id" : "1"
}
- 失败返回
No data!
# 领取投票者分红
系统每12小时结算一次投票者分红,将投票人分红自动发放到分红池。
投票人12小时内可以申请提现一次,发起提现申请后立即到账。
请求方式
topio staking claimReward
请求参数
无。
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-h, --help | - | - | 查看命令帮助信息。 |
返回参数
参数名称 | 类型 | 说明 |
---|---|---|
Transaction hash | String | 本次交易hash,可用于查询此次交易结果。 |
请求样例
topio staking claimReward
返回样例
- 成功返回
Transaction hash: 0x591c0f2fdc3a6e189bedefbe21e965c2aa7bfec70e31a0660fe2a00e02edea07
Please use command 'topio querytx' to query transaction status later on!!!
根据交易hash,使用topio querytx
查询交易,交易最终共识成功,使用topio chain queryAccount
查询节点账户余额有变化,则成功领取节点奖励。
- 失败返回
根据交易hash,使用topio querytx
查询交易,交易最终共识失败,则节点领取奖励失败。