Un hash de transaction signifie-t-il que l’opération a réussi ? Pour automatiser les opérations on-chain, commencez par comprendre ces trois états
Résumé : le hash d’une transaction, son reçu d’exécution et sa confirmation finale sont trois choses différentes. Pour mettre en place des notifications Web3, une comptabilité automatisée ou la surveillance de contrats, commencez par interpréter correctement les valeurs renvoyées afin de réduire les fausses alertes et les opérations répétées. Le fait qu’un portefeuille affiche un hash de transaction ne signifie pas que l’opération a réussi sur la chaîne. Un processus de surveillance fiable peut commencer par les trois étapes ci-dessous. Cet article porte sur la couche d’exécution d’Ethereum ; pour les autres réseaux, vérifiez leurs règles respectives. 1. Vérifiez d’abord sur quelle chaîne vous effectuez la recherche Utilisez un nœud RPC du bon réseau et vérifiez l’identifiant de la chaîne avec eth_chainId. Le réseau principal Ethereum renvoie 0x1 ; ne pas trouver un hash sur un autre réseau ne prouve pas que la transaction d’origine a échoué. La consultation d’un reçu de transaction public ne nécessite ni clé privée de portefeuille, ni phrase de récupération, ni signature. Le fournisseur RPC peut toutefois exiger ses propres identifiants d’accès.
Pourquoi un solde ERC-20 est-il un si grand nombre entier ? Convertir correctement le montant des jetons
Résumé : les montants ERC-20 lus sur la blockchain sont exprimés en unités minimales. Lors de leur enregistrement, conservez l’entier brut et l’identifiant du jeton. Pour afficher un montant ou traiter une saisie utilisateur, convertissez-le à l’aide du nombre de décimales vérifié afin d’éviter les erreurs liées à une mauvaise interprétation des décimales. Une fois le solde 1250000 lu dans le contrat, combien de jetons le portefeuille doit-il afficher ? Cela dépend de la valeur de decimals dans le contrat du jeton. Pour créer un tableau de bord des soldes, rapprocher les historiques de transactions ou remplir un formulaire de transfert, commencez par déterminer l’unité utilisée pour le montant, puis décidez comment afficher et traiter cette valeur. I. Conversion selon le nombre de décimales La fonction balanceOf d’ERC-20 renvoie un solde entier. Supposons que decimals soit égal à 6 : divisez la valeur brute 1250000 par 10 puissance 6 pour obtenir 1,25 jeton à l’affichage. Pour un autre jeton dont decimals est égal à 18, la même valeur brute correspond à 0,00000000000125 jeton après conversion. Ces chiffres servent uniquement à illustrer la conversion. Pour construire les paramètres d’un transfert, le calcul s’effectue dans l’autre sens : par exemple, avec une précision de 6 décimales, les 1,25 jetons saisis par l’utilisateur correspondent à l’entier 1250000.