как работают смарт конракты в криптовалютах?

всем привет! Я новичок в теме криптовалюты и сейчас у меня стоит задача получить баланс заданных аккаунтов. Я выяснил, что для взаимодействия с сетями нужны ноды этих сетей, которые можно запускать самому или воспользоваться услугами разных блокчейн эксплореров. В итоге я понял как получать баланс по адресу, но я не понимаю, как получить баланс адреса в разных валютах. Например в сети bep-20 на аккаунт переводили валюты USDT, USDС и другие. Используя web3 js я получаю лишь общий баланс. Что этот баланс отражает? количество bnb?то есть полученные валюты конвертируются в bnb? как получить баланс, например, именно USDT? в интернетах нашел примеры, где баланс получают используя адрес смарт контракта. Значит смарт контракт один и не создается для каждой транзакции?


Ответы (1 шт):

Автор решения: Трипольский Пётр

Что bep-20, что erc-20 это смарт контракты на solidity, реализующие следующий интерфейс. Баланс всех владельцев токена хранится в одном смарт-контракте в огромном mapping. Посмотреть баланс можно через метод balanceOf

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

Посмотрите этот репозиторий на GitHub. Это платежный шлюз, позволяющий получать токены в качестве оплаты в смарт-контракте

→ Ссылка