Web3 JS库(& Metamask),获取令牌余额

时间:2017-11-20 20:28:50

标签: abi balance web3js

我想查询公钥的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吗?或者我可以使用标准化abi作为ERC20令牌,只要我想使用标准化方法吗?

2)我在哪里可以找到abi?或者我是否需要重新编译每份合同?

E.g。天啊:https://etherscan.io/token/OmiseGo

1 个答案:

答案 0 :(得分:3)

我可以在abi上找到几个令牌的https://etherscan.io/address/<token_address>#code个到目前为止,他们在abi中使用相同的方法。我只是将方法直接复制到我的源代码中,而没有阅读原始的abi。 E.g。

abi = [{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"}]