graphprotocol / graphprotocol/graph-node

Subgraph failing on eth_call reverts despite handling reverts in mappings

オープン
#5,534 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

bug
主要言語
Rust
スター
3.2k
フォーク
1.1k
平均マージ
4日 1時間
マージ済み PR(30日)
1

説明

Bug report

This subgraph failed with the error below.

Handler skipped due to execution failure, transaction: 0x99dc…deec, address: 0x5200…2584, signature: Transfer(indexed address,indexed address,indexed uint256), error: transaction 99dcc8e858854ac580ad6a88b5cdefe0ae8d9e9dbef4d07b7f96418c5f17deec: error while executing at wasm backtrace: 0: 0x32b9 - <unknown>!~lib/@graphprotocol/graph-ts/chain/ethereum/ethereum.CallResult<~lib/array/Array<~lib/@graphprotocol/graph-ts/chain/ethereum/ethereum.Value>>#get:value 1: 0x3e17 - <unknown>!src/mapping/handleTransfer: Mapping aborted at ~lib/@graphprotocol/graph-ts/chain/ethereum.ts, line 714, column 7, with message: accessed value of a reverted call, please check the `reverted` field before accessing the `value` field, handler: handleTransfer

Relevant log output

{
    "jsonrpc": "2.0",
    "error": {
        "code": -32015,
        "message": "VM execution error.",
        "data": "revert"
    },
    "id": 2
}
{
    "jsonrpc": "2.0",
    "error": {
        "code": -32015,
        "message": "VM execution error.",
        "data": "Reverted ERC721: invalid token ID"
    },
    "id": 44
}
IPFS hash

No response

Subgraph name or link to explorer

No response

Some information to help us out
  • Tick this box if this bug is caused by a regression found in the latest release.
  • Tick this box if this bug is specific to the hosted service.
  • I have searched the issue tracker to make sure this issue is not a duplicate.
OS information

None

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

報告されている ethereum.ts の714行目から始め、handleTransfer 中に CallResult が revert された eth_call の結果をどのように処理するかを追跡します。提供された JSON-RPC エラーと WASM backtrace を使って失敗を再現します。revert を処理する mappings が、revert された call の値にアクセスすることで中断されなくなれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
rust, wasm
領域
backend, blockchain
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。