3 votes

Comment puis-je obtenir des informations telles que le symbole d'un jeton ERC20 sur RSK ?

J'aimerais interroger plusieurs tokens ERC20 sur le réseau RSK pour obtenir les champs suivants : symbol , name et decimals .

Comment puis-je faire cela en utilisant web3.js ?

1voto

bguiz Points 6226

Pour ce faire, il faut utiliser web3.js :

  • web3 : Avoir une instance web3 initialisée et connectée à un fournisseur web3
  • abiOfToken : L'objet ABI pour ce jeton particulier. Notez que si vous n'avez pas cet objet, vous pouvez l'obtenir en exécutant la commande solc par rapport au code du contrat original ; ou bien vous pouvez simplement utiliser un objet ABI "standard" pour les jetons ERC-20
  • addressOfToken : L'adresse du contrat intelligent déployé pour le jeton

Une fois que vous avez obtenu ce qui précède, vous pouvez effectuer les opérations suivantes à l'intérieur d'un fichier async fonction :

  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();

Le code ci-dessus les exécute l'un après l'autre, par souci de clarté. En pratique, puisque vous l'exécutez pour plusieurs jetons, vous pouvez envisager d'exécuter les requêtes en parallèle, et de les extraire dans une fonction séparée, comme suit :

  // 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 };
  }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X