忘记从哪次硬分叉开始,文章/点赞收益不直接发放了,而是进入到一个叫做reward_***_ balance
的池子,然后需要用户自己申领(claim)一下,才会到达账户余额中。
(图源 :pixabay)
以我的账户为例,当前这个池子的余额如下:
尽管你领或者不领,钱都在那里,不会少(随着文章/点赞收益等发放只会变多),但是感觉还是回到账户里更好一些,况且HIVE POWER越多,点赞收益越高,颇有些复利效应呢,所以收取收益还是很重要的。
收取收益使用的是claim_reward_balance
,我定义个简单如下操作模板:
1 | >op = ['claim_reward_balance',{ |
程序中部分代码如下:
op[1]['account'] = "oflyhigh"
op[1]['reward_steem'] = "0.000 HIVE"
op[1]['reward_sbd'] = "0.000 HBD"
op[1]['reward_vests'] = "0.000001 VESTS"
然后追加操作并签名广播:
trx.append_op(op)
trx.sign_digest(wif)
ret = trx.broadcast()
成功广播的transaction大致长成这样:
1 | {'expiration': '2020-04-26T02:43:43', |
https://hiveblocks.com/上可以查看成功的记录:
为什么是0 HP
呢,因为我收取的太少,显示上被四舍五入了。
好了,这看起来并没有什么呀?为什么标题要叫:有趣的claim_reward_balance,标题党嘛?当然不是,你难道没有发现,其实收益是可以只收取部分的,是不是很好玩?
所有的都设置为零是否可以呢?我试了一下,出现如下提示:
(‘Assert Exception:reward_steem.amount > 0 || reward_sbd.amount > 0 || ‘
‘reward_vests.amount > 0: Must claim something.’)
就是可以少收,但是不难一点不收,那不是扯蛋呢嘛,哈哈。
那么收取全部收益是如何实现的呢?答案很简单,先读取账户信息,然后获取待收取的资产,然后一起收取就好了,思路就是这样了,实现也很简单,就不贴代码了。
怎么样,是不是很好玩?
This page is synchronized from the post: ‘每天进步一点点:有趣的claim_reward_balance’