V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maiganne
V2EX  ›  区块链

以太坊钱包开发

  •  
  •   maiganne · 2018-10-20 22:39:28 +08:00 · 2931 次点击
    这是一个创建于 2251 天前的主题,其中的信息可能已经有所发展或是发生改变。

    求助

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

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

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

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

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

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

    9 条回复    2019-03-27 18:28:48 +08:00
    d5
        1
    d5  
       2018-10-20 23:12:12 +08:00
    这个……

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

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

    如果仅仅是查询某个地址的代币种类有多少种,每一种有多少个:
    https://etherscan.io/address/0x5deedea28dda0019ee30fde0a9a6763c1f1b0b75
    Misc:ERC-20 Tokens (种类数量)
    d5
        6
    d5  
       2018-10-22 11:47:08 +08:00
    maiganne
        7
    maiganne  
    OP
       2018-10-22 23:38:21 +08:00
    @d5 感谢你的相助,你这 ethscan 的接口我知道,我想不依赖这个接口,自己在后端实现这个功能
    over140
        8
    over140  
       2018-11-08 17:47:47 +08:00
    xilibi2003
        9
    xilibi2003  
       2019-03-27 18:28:48 +08:00
    这个 开源钱包完全满足你: https://github.com/xilibi2003/Upchain-wallet
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1068 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:50 · PVG 02:50 · LAX 10:50 · JFK 13:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.