graphprotocol / graphprotocol/graph-node
[Feature] Display the full JSON-RPC call in the logs that failed
Nessuno ha ancora preso questa issue.
- Lingua principale
- Rust
- Stelle
- 3.2k
- Fork
- 1.1k
- Merge medio
- 4g 1h
- PR unite (30g)
- 1
Descrizione
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.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia individuando il percorso di logging degli errori JSON-RPC in graph-node e riproduci l’errore di esempio dell’issue. Traccia l’operazione eth-call o di decodifica non riuscita per determinare dove sono disponibili i dettagli della relativa richiesta; il lavoro è completato quando la chiamata JSON-RPC esatta è inclusa nei log per errori comparabili e rimane utile per riprodurre l’errore sottostante.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- backend-api-design, observability
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100