graphprotocol / graphprotocol/graph-node

[Feature] Display the full JSON-RPC call in the logs that failed

Ouverte
#3,404 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

area/json-rpc developer experience error-handling good first issue
Langage dominant
Rust
Étoiles
3.2k
Forks
1.1k
Merge moyen
4 j 1 h
PR mergées (30 j)
1

Description

Currently if something goes wrong with a JSON RPC call (eth-calls, decoding, etc) there is just a message like this displayed:

failed to process trigger: block #21041413 (0x0000…b378), transaction a44fa1857fa5448419ff94682de1ffeccaa74eb0d6dc9d0de8fe37c6c2a90746: Decoding function outputs for the call Function { name: "withdraw", inputs: [], outputs: [Param { name: "", kind: Uint(256), internal_type: None }], constant: None, state_mutability: NonPayable } failed, raw output: : Invalid name: please ensure the contract and method you're calling exist! failed to decode empty bytes. if you're using jsonrpc this is likely due to jsonrpc returning 0x in case contract or method don't exist

(From this example subgraph: https://thegraph.com/hosted-service/subgraph/bsamuels453/yearn-fantom-validation?selected=logs, deployment id: QmNhTkng5LLvdCXbK6JSoeU8tSW18wo3tPpm5mMM3Sd4FY)

This alone does not provide enough information to reproduce.

What is the expected behavior?

It would be great to have the exact JSON RPC call written in the logs so we can reproduce and troubleshoot the underlying issue.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par localiser le chemin de journalisation des échecs JSON-RPC dans graph-node et reproduisez l’échec d’exemple de l’issue. Suivez l’opération eth-call ou de décodage qui a échoué afin de déterminer où les détails de sa requête sont disponibles ; le travail est considéré comme terminé lorsque l’appel JSON-RPC exact est inclus dans les logs pour les échecs comparables et reste utile pour reproduire l’erreur sous-jacente.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
rust
Domaine
backend-api-design, observability
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.