Web3 JS 库(& Metamask),获取代币余额
Posted
技术标签:
【中文标题】Web3 JS 库(& Metamask),获取代币余额【英文标题】:Web3 JS Library (& Metamask), Get Token Balance 【发布时间】:2018-05-04 04:08:47 【问题描述】:我想查询一个公钥的 eth 余额和所有代币余额。到目前为止,我设法加载了web3
并调用了getBalance
方法。
现在,我想查看使用相同公钥存储的 ERC20 代币的余额?例如。我想查看OMG
代币的余额?
到目前为止,我发现每个代币合约地址都需要查询: https://ethereum.stackexchange.com/questions/15372/how-can-i-view-all-the-tokens-and-contracts-associated-with-an-ethereum-address
omgContractAddress = "0xd26114cd6EE289AccF82350c8d8487fedB8A0C07"
OmgContract = web3.eth.contract(abi)
omgContract = OmgContract.at(omgContractAddress)
someUsersAddress = "0x75087d9faa28d653750f3e4c86e7dcf6aff0a916"
omgContract.balanceOf someUsersAddress, (err, balance)-> #some owner
console.error err
console.info balance.toNumber()
问题:
1) 我需要每个令牌的abi
吗?或者,只要我只想使用标准化方法,我可以为 ERC20 代币使用标准化的abi
?
2) 我在哪里可以找到abi
?还是我需要重新编译每个合约?
例如我的天:https://etherscan.io/token/OmiseGo
【问题讨论】:
你也可以use rpc to get the balance 【参考方案1】:到目前为止,我可以在https://etherscan.io/address/<token_address>#code
上找到几个令牌的abi
s,它们在abi
中使用相同的方法。我只是将方法直接复制到我的源代码中,而没有阅读原始的abi
。例如
abi = ["constant":true,"inputs":["name":"_owner","type":"address"],"name":"balanceOf","outputs":["name":"","type":"uint256"],"payable":false,"type":"function"]
【讨论】:
以上是关于Web3 JS 库(& Metamask),获取代币余额的主要内容,如果未能解决你的问题,请参考以下文章
如何将 MetaMask 与 Web3.js 版本 1.2.6 连接?
如何使用 Web3.js 将 Metamask 连接到 Angular App?