| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 区块链数据分析1-如何查询token余额 -> 正文阅读 |
|
[区块链]区块链数据分析1-如何查询token余额 |
区块链数据分析1-如何查询token余额前文[1]中已经介绍了区块链的公开数据,今天分享一下如何查询 eth 和 token 的余额 公开数据集以我目前认知对数据集里个别表的理解:
ETH的余额 和 每日余额直接看大神开源的代码吧 (ps.上面是top用户的余额,要所有人的话,把最后的order和limit删掉即可) 比较绕的处理是: 交易的gas费只向转出方收取,而矿工的地址,则会奖励gas费,即对应代码中
这两段。 另外还需要特殊处理的,是链上的一些记账失败的记录,大神使用了下面的代码来处理,我没有细究:
这段代码就太神了,感兴趣的自己品吧 token的余额还是大神提供了开源代码 跳转到medium后,直接搜"Token balance for any address"就能找到。 代码逻辑很简单,就是用流进地址的token数量减去流出地址的token数量。然而事情并没有这么简单,我们也遇到了github issue上,别的同仁遇到的问题,即有个别的token,通过上述方式计算出来,数量为负。 我的理解,原因如下: token_transfers是大神们,通过event log筛选出Transfer函数的调用记录而已。所以没有通过Transfer函数记账的token流转操作,如Deposit或者Withdrawal,就被忽略了。 对这种特殊的case,上面的issue提供了两种解决方案 其中一种是针对该token,编写个性化的sql来查询余额,另一种则是大神提供的etl解决方案,单独把contract对应的event都洗出来,再基于event表来统计。 Event ETL如何对特定的合约event进行etl,这篇文章[2]有介绍,这里不再赘述。 我们测试了基于WETH的event表来进行token balance的统计,是正确的。 Web3最后,如果是开发dapp需要查询实时余额,不需要如上方法,直接起一个eth的节点,节点里实时存储了balance,使用Web3封装好的函数get_balance来获取即可。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:48:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |