以太坊钱包开发

2018-10-20 22:39:28 +08:00
 maiganne

求助

我打算开发一个类似 imtoken 的以太坊钱包,要实现这样一个功能:把一个地址导入到钱包,导入成功后,展示出该地址下所有的资产余额(eth,erc20 和 erc721)。

我现在的做法是后台通过遍历所有的合约 transfer 事件,从每一条 transfer 记录计算出每个地址每种资产的余额。

但是现在遇到的问题是,在计算时有些地址出现了负数。

原因是这些地址转入的代币少于转出的代币。

我的猜想是这些地址是在合约中直接记了一笔余额,并没有调用 transfer 函数。

那么我的做法行不通了,有没有哥们能指点一下?

2944 次点击
所在节点    区块链
9 条回复
d5
2018-10-20 23:12:12 +08:00
这个……

web3 或者主流以太坊浏览器的接口不都是直接可以查询到代币信息和数量的吗,为什么要一条条记录累积计算?

建议不要急着开始一件事,理清思路,保证准确性的情况下用相对简单快速的办法做出来。
maiganne
2018-10-20 23:18:59 +08:00
@d5 嗯,你说的是在知道某个地址有某种代币的情况下,可以通过 web3 查询,如果要想知道该地址所有的以太系的资产余额呢?
eric6356
2018-10-21 00:37:54 +08:00
https://etherscan.io/tokens
etherscan 现在记录了 131426 种 erc20 token,猜测他们应该是遍历扫出来的,你也要这么做么?
maiganne
2018-10-21 10:11:21 +08:00
@eric6356 是的,目前我想到的也是遍历,不知道也没有其它的办法
d5
2018-10-22 11:45:11 +08:00
@maiganne 抱歉,那我理解错了!可以先调用 etherscan 的接口,显示一部分,然后后端队列遍历,把 etherscan.io 都没能展示的代币展示出来?

如果仅仅是查询某个地址的代币种类有多少种,每一种有多少个:
https://etherscan.io/address/0x5deedea28dda0019ee30fde0a9a6763c1f1b0b75
Misc:ERC-20 Tokens (种类数量)
d5
2018-10-22 11:47:08 +08:00
maiganne
2018-10-22 23:38:21 +08:00
@d5 感谢你的相助,你这 ethscan 的接口我知道,我想不依赖这个接口,自己在后端实现这个功能
over140
2018-11-08 17:47:47 +08:00
xilibi2003
2019-03-27 18:28:48 +08:00
这个 开源钱包完全满足你: https://github.com/xilibi2003/Upchain-wallet

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/499513

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX