graphprotocol / graphprotocol/graph-node
[Feature] Internal native asset transfers
まだ誰も着手していません。
- 主要言語
- Rust
- スター
- 3.2k
- フォーク
- 1.1k
- 平均マージ
- 4日 1時間
- マージ済み PR(30日)
- 1
説明
Description
Currently, there is no way to track internal native asset (ex. ETH) transfers inside of an event handler.
This is because internal transactions are not tracked. This is problematic for figuring out the correct flow of assets during an event.
Specifically, we ran into this issue when creating the 0x community subgraphs. Since internal native asset transfers cannot be tracked, it is not possible to index and assemble full 0x trades in a subgraph using the graph-node without call handlers (which are not supported everywhere).
Ideally, there would be an array of internal transactions as part of the transaction class, where each one would at least have the native asset amount that was transferred. I.e can access these in an event handler like: event.transaction.internalTransfers
For example, you can see internal transactions for a transaction in etherscan:
Could use a feature flag to turn this on like the receipts flag is used today, so internal transactions are off by default speeding up indexing.
This was originally mentioned here (https://github.com/graphprotocol/graph-node/issues/297) in 2018, and was planned as part of "phase 2" but was never implemented.
Are you aware of any blockers that must be resolved before implementing this feature? If so, which? Link to any relevant GitHub issues.
No response
Some information to help us out
- Tick this box if you plan on implementing this feature yourself.
- I have searched the issue tracker to make sure this issue is not a duplicate.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、この issue で説明されているトランザクションクラスとイベントハンドラーへのアクセスを確認し、次に既存の receipts feature flag と issue #297 での以前の議論を調べます。内部転送をどのように表現して公開するか、インデックス作成をどのように有効化するか、そしてネイティブアセットのフローが完全であることを示すテストは何かを定義してください。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- rust
- 領域
- blockchain
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 25/100