Проверка баланса монет в долларах США с помощью 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.
Надеюсь, это будет хорошим подспорьем для тех, кто находит способ.
Спасибо, что прочитали мой пост.