как работают смарт конракты в криптовалютах?
всем привет! Я новичок в теме криптовалюты и сейчас у меня стоит задача получить баланс заданных аккаунтов. Я выяснил, что для взаимодействия с сетями нужны ноды этих сетей, которые можно запускать самому или воспользоваться услугами разных блокчейн эксплореров. В итоге я понял как получать баланс по адресу, но я не понимаю, как получить баланс адреса в разных валютах. Например в сети 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. Это платежный шлюз, позволяющий получать токены в качестве оплаты в смарт-контракте