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 ?
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 ?
Pour ce faire, il faut utiliser web3.js :
web3
: Avoir une instance web3 initialisée et connectée à un fournisseur web3abiOfToken
: 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-20addressOfToken
: L'adresse du contrat intelligent déployé pour le jetonUne 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 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.