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

加密钱包怎么知道我一个以太坊账户地址有多个以太坊相关的币种呢

  •  
  •   Liuwilliam1 · 2022-09-20 11:17:22 +08:00 · 1573 次点击
    这是一个创建于 829 天前的主题,其中的信息可能已经有所发展或是发生改变。

    求教大佬们一个问题: 我在狐狸上面创建了一个以太坊账户,我就有一个账户地址,我收藏了一些关于支持 erc20 协议的代币,但是我只有一个账户地址怎么能够区分出来这个地址有多少种代币呢,比如 eth 或者其他的,我用 web3.eth.getBalance("0x537ab5ce1370..")查询,也只能查询到有多少个 eth ,而不能查询到其他币种,如果我要发行币的话,怎么能查询到这个这个账户地址拥有的所发行币的数量呢

    8 条回复    2022-09-20 18:58:08 +08:00
    huoshanhui
        1
    huoshanhui  
       2022-09-20 11:23:04 +08:00
    1. 只有 Token 合约才知道某个钱包有多少这个 Token 余额。
    2. 如果你想知道怎么查出来,目前比较全的有 zerio 和 debank 。
    3. 原理上是要自行维护数据然后存下来,这样才能做到查某个地址得到各种 Token 余额。
    Liuwilliam1
        2
    Liuwilliam1  
    OP
       2022-09-20 12:43:28 +08:00
    @huoshanhui 您的意思是,如果是以太坊钱包的话,需要不断更新 例如支持 erc20 协议的代币对吧;还有一个问题是,im 钱包和狐狸都知道我的这个账户下面的多个 erc20 代币的余额,意思是钱包只要知道代币的合约地址就能挨个查询到这个人所有的 erc20 代币对吧,即如果要转账的话就必须得知道该代币的合约地址,查询余额也是同理
    huoshanhui
        3
    huoshanhui  
       2022-09-20 13:49:33 +08:00
    @Liuwilliam1 #2

    Q: 即如果要转账的话就必须得知道该代币的合约地址,查询余额也是同理
    A: 对的。以太坊的设计里,Token 的数据是跟着合约走的。
    cxh116
        4
    cxh116  
       2022-09-20 14:27:31 +08:00
    调用合约的 balanceOf 方法应该是一种成本比较高的方法.
    合约调用 transfer 方法时,会产生事件 Transfer, 监听日志里的 Transfer 事件感觉成本低一点.但对一般的人来说成本太高了,建一个全节点,估计一个月几百美刀,服务器配置要求高.

    https://ethereum.org/zh/developers/docs/standards/tokens/erc-20/
    keepeye
        5
    keepeye  
       2022-09-20 14:42:15 +08:00
    每个币都是一个 ERC20 标准的合约,知道合约地址就可以调用合约方法查询你在这个合约内的余额
    那么问题就是怎么知道你有多少种币(合约),小狐狸需要手动添加合约(导入代币)才能显示在列表里,所以它是不能自动发现历史有哪些币种的,但是可能通过交易事件发现新的币种。
    imtoken ,猜测可能 app 官方有同步节点,遍历每个区块中的每一笔交易记录了,找出钱包地址和合约地址的映射关系,给 app 提供了查询接口吧。
    Liuwilliam1
        6
    Liuwilliam1  
    OP
       2022-09-20 18:53:48 +08:00
    @huoshanhui 学习了,感谢大佬!
    Liuwilliam1
        7
    Liuwilliam1  
    OP
       2022-09-20 18:55:55 +08:00
    @cxh116 这确实是很好的方法,谢谢大佬!
    Liuwilliam1
        8
    Liuwilliam1  
    OP
       2022-09-20 18:58:08 +08:00
    @keepeye 很有可能是这样的,感谢大佬!学习了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2789 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:38 · PVG 21:38 · LAX 05:38 · JFK 08:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.