昨天看了一眼提案列表,发现#133 我竟然还没投票Airdrop VESTS/HP: non DHF funds held in trust used to repay up-front correction 我竟然还没投,要知道Hive的二次空投修复操作都已经完成了,中文区受影响的小伙伴们都已经收到了空投。
(图源 :pixabay)
其实,这个提案已经处于激活状态了,我投不投没啥影响,但是总是要表态支持一下才对,于是我登录了命令行钱包,想用命令行钱包投票支持一下这个提案:
update_proposal_votes oflyhigh [133] true true
然而执行上述命令后却被提示:
"error":"missing required active authority:Missing Active Authority oflyhigh"
我想起来了,见证人频道中有人讨论过这个问题,就是说hived v1.24.2版本附带的命令行钱包是有BUG的,需要升级到v1.24.4以后的版本(Fixes related to cli_wallet operating on new Hive chain-id)。
但是我v1.24.2版本跑着还挺好的,那么干脆不用命令行钱包,用我还是开发中的cutehive来实现吧。在这之前,我们要看看update_proposal_votes
这个操作做了啥?
在hive开发者网站上,我们很容易就找到了资料,其实就是广播了下边这个operation:
所以我定义了一个这样的模板:
然后我们在函数中填充这个模板:
op[1]['voter'] = voter
op[1]['proposal_ids'] = proposal_ids
op[1]['approve'] = approve
追加到transaction中签名并广播就可以了:
trx.append_op(op)
trx.sign_digest(wif)
ret = trx.broadcast()
然后执行执行一下这个函数,可以看到如下签名后的transaction信息:
成功执行后就可以在https://hiveblocks.com/看到执行成功transaction信息了:
再去看对应提案的支持者列表,就可以发现我的身影啦。怎么样,其实并不比cli_wallet费劲多少,还捎带学习一下update_proposal_votes
操作的细节,一举多得呢。