完善cutehive见证人列表工具:增加Delayed Votes计算

in HIVE CN 中文社区3 months ago

大概四个月之前,学习了一下HIVE治理票中Delayed Votes(延迟投票)的相关内容,当时就有一个想法,在我的见证人列表工具中加上Delay Votes查询,让计算更为精准。

image.png
(图源 :pixabay)

就像我很多想法都是拖呀拖一样,这个想法也一样,我总是能找到各种借口拖延,今天一早终于下定决心,一定要搞定这个功能。

首先,复习了一下Delayed Votes的内容,在HIVE上记一记笔记就是好,记过的内容翻看一下笔记就可以了。

每天进步一点点:给我的投票哪去了?(Delayed Votes)

不过上边这篇笔记虽然写清楚了Delayed Votes的前世今生(来龙去脉),也指出了一个账户的治理票,应该是本身股权+别人代理的股权-延迟投票,但是并没有介绍如何查询Delayed Votes。

好在查询Delayed Votes其实并不麻烦,以我的账户为例,在区块链浏览器中会查询到如下Delayed Votes信息:
1722929130905.png

那么问题来了,要在cutehive的网页中查询上述内容,我们需要用编程的方式获取上述数据(肯定不能去抓网页呀,哈哈),那么又如何用编程方式实现呢?

通过查询开发文档可知,Delayed Votes会在condenser_api.get_accounts或者database_api.find_accounts两个API调用中返回。

以我账户为例,使用API调用返回如下:

image.png

这样,我们就可以在程序中获取Delayed Votes数据啦。我们注意到Delayed Votes可能包含N条元素,对于cutehive见证人列表这个功能而言,我们仅需知晓总的Delayed Vote数据即可,亦即上述N条数据中val值的和。

在PHP中,我们可以使用foreach来处理上述数据并求和,为了便于理解和阅读,以M Vest形式表示,比如我的账户:

1722933055348.png

而Total VESTS计算公式为:用户自己的VESTS - Delayed votes + Proxied VESTS 亦即本身股权 - 延迟投票 + 别人代理的(治理)股权。(请注意Proxy与Delegate的区别)

小伙伴们可能有个疑问,如果用户A 从零开始,Power UP了100W HP,然后将治理权代理给用户B,那么用户B的治理票权是多少呢?

我觉得答案是用户A的Delayed Voted 为100W HP(就先不换算成VESTs啦),然后虽然把治理权代理出去,但是用户B目前收到的代理权应该为零,只有Delayed Votes到期,用户B才会增加100W HP的治理权哦。(仅供参考,感兴趣的小伙伴可以去验证一下)

好了,现在我的见证人列表工具就更加完善了,快来看看你的Delayed Votes数据吧。

vote-1804596_960_720.jpg

最后欢迎大家将我设置为你的见证人代理:

欢迎设置@oflyhigh 成为你的见证人代理!非常感谢!

如果你不习惯使用hivesigner,也可以访问:https://wallet.hive.blog/~witnesses 将页面拖拽到最底部,然后使用SET PROXY将我设置为你的见证人&提案投票代理人哦。

1722259479914.png
(图源 :pixabay)

快快行动起来吧。

相关链接

Sort:  

感谢O哥的分享,这投票是一年一次吧,时间到了可以提醒一下,我们继续投票。

棒棒哒O哥!辛苦啦!
@tipu curate 2

Loading...
Loading...