Как я могу получить такую ​​информацию, как символ токена ERC20 в RSK?

Я хотел бы запросить несколько токенов ERC20 в сети RSK, чтобы получить следующие поля: symbol, name, а также decimals.

Как это сделать с помощью web3.js?

1 ответ

Для этого с помощью web3.js:

  • web3: Инициализировать экземпляр web3 и подключить его к провайдеру web3.
  • abiOfToken: Объект ABI для этого конкретного токена. Обратите внимание: если у вас его нет, вы можете получить его, запустив solcпротив исходного кода контракта; или, в качестве альтернативы, вы можете просто использовать "стандартный" объект ABI для токенов ERC-20
  • addressOfToken: Развернутый адрес смарт-контракта для токена.

Как только у вас будет указанное выше, вы можете сделать следующее в пределах async функция:

        const tokenContract = new web3.eth.Contract(
    abiOfToken, addressOfToken);
  const symbol = await tokenContract.methods.symbol().call();
  const decimals = await tokenContract.methods.decimals().call();
  const name = await tkenContract.methods.name().call();

Приведенный выше код запускает их последовательно и для ясности. На практике, поскольку вы запускаете это для нескольких токенов, вы можете рассмотреть возможность параллельного выполнения запросов и их извлечения в отдельную функцию, например:

        // run this just once, as part of initialisation
  const tokenContract = new web3.eth.Contract(abiOfToken, addressOfToken);

  // run this multiple times by putting in its own function
  async function getTokenInfo(tokenContract) {
    const [decimals, name, symbol] = await Promise.all([
      tokenContract.methods.symbol().call(),
      tokenContract.methods.decimals().call(),
      tokenContract.methods.name().call(),
    ]);
    return { decimals, name, symbol };
  }
Другие вопросы по тегам