как я могу получить все адреса ERC20 в домовом для использования во внешнем интерфейсе

Я хочу создать приложение, такое как uniswap, с использованием Brownie и реагировать, как я могу получить доступ ко всем адресам токенов и abi для моего проекта и использовать его во внешнем интерфейсе. Как я могу реализовать это наилучшим образом?

1 ответ

Решение

Что вы хотите сделать, так это взять информацию из токена, например uniswap.

uniswap не сохранил все существующие токены, это невозможно сделать

каждый раз, когда вы пишете адрес токена на uniswap, он делает запросы к смарт-контракту, вызывая существующие функции благодаря стандарту ERC-20

вызываемые функции

      totalSupply() // to get the total supply

decimals() // to get the number of decimals

name() // to get the name of the token (e.g. Bitcoin)

symbol() // to get the symbol of the token (e.g. BTC)

чтобы получить эти данные, вы должны позвонить через web3, который вернет запрашиваемые вами данные.

      // initialize web3
const Web3 = require("web3");

// save only the ABI of the standard, so you can re-use them for all the tokens
// in this ABI you can find only the function totalSupply ()
const ABI = [
     {
         "type": "function",
         "name": "totalSupply",
         "inputs": [],
         "outputs": [{"name": "", "type": "uint256"}],
         "stateMutability": "view",
         "payable": false,
         "constant": true // for backward-compatibility
     }
];

// run the JS function
async function run() {
     const web3 = new Web3(<YourNodeUrl>);
// create the web3 contract
     const contract = new web3.eth.Contract(ABI, <TokenAddress>);
// call the function and get the totalSupply
     const totalSupply = await contract.methods.totalSupply().call();
     console.log(totalSupply);
}
Другие вопросы по тегам