# 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查询交易,交易最终共识失败,则节点领取奖励失败。