Библиотека Web3 JS (и метамаска), получение баланса токенов

Я хочу запросить баланс eth и все балансы токенов открытого ключа. Пока мне удалось загрузить web3 и вызвать метод getBalance.

Теперь я хочу увидеть баланс токенов ERC20, которые хранятся с тем же открытым ключом? Например. Я хочу увидеть баланс OMG токенов?

До сих пор я обнаружил, что каждый адрес контракта токена должен быть запрошен: https://ethereum.stackexchange.com/questions/15372/how-can-i-view-all-the-tokens-and-contracts-связанный-с-адресом-эфириума

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? Или мне нужно перекомпилировать каждый контракт?

Например. OMG: https://etherscan.io/token/OmiseGo


person Andi Giga    schedule 20.11.2017    source источник
comment
Вы также можете использовать rpc для получения баланса   -  person LF00    schedule 24.04.2018


Ответы (1)


Я мог найти abi нескольких токенов на https://etherscan.io/address/<token_address>#code, пока они используют один и тот же метод, общий для их abi. Я просто скопировал метод прямо в свой исходный код, не читая исходный файл abi. Например.

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