Проверка баланса монет в долларах США с помощью Web3

Это прокси-контракт, что означает, что он делегирует фактическую работу другому контракту, возможно, этому: 0x0882477e7895bdc5cea7cb1552ed914ab157fe56, который, в свою очередь, совместим с ERC-20. Прокси-контракт позволяет своему администратору изменить адрес контракта, которому делегирована фактическая работа, эффективно изменяя логику смарт-контракта. Прокси-контракты, подобные этому, реализуются через опкод DELEGATECALL, который выполняет код другого контракта от имени этого контракта, т.е. вызываемый код имеет доступ к хранилищу и балансу вызывающего контракта.

async function getTokenBalance(address) {
    const contractABI = require(baseDir + '/bin/contracts/' +  config.CONTRACT_ABI_FILE_NAME.USDC);
    const web3 = new Web3(new Web3.providers.HttpProvider(config.INFURA_NETWORK_URL));

    const USDContractInstance = await new web3.eth.Contract(contractABI, config.CONTRACT_ADDRESS.PROXY);
    let balance = await USDContractInstance.methods.balanceOf(address).call();
    balance = web3.utils.hexToNumber(balance) / Math.pow(10, 6);
    return balance;
}

exports.getTokenBalance = getTokenBalance;

Это даст вам баланс токена адреса вашего кошелька, например 1000.
Надеюсь, это будет хорошим подспорьем для тех, кто находит способ.
Спасибо, что прочитали мой пост.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *