サブストリームの有効活用:ERC-20 Balance Changes Substreams
The Graphの各コンテンツをフォローしてご参加ください!
ERC-20はEVM互換ブロックチェーンで最も人気のあるトークン標準です。USDT、USDC、BUSDなどのERC-20トークンは最も使用されているERC-20トークンの1つであるため、これらの種類のトークンを効率的に検索、追跡、変換する需要が最近高まっています。
ERC-20標準では、スマートコントラクトの “balanceOf(address) “メソッドを使用してこの値を取得することができます。しかし、残高の変化(USDTの入出金)の全履歴を取得したい場合、それを行う簡単な方法はありません。
サブストリームがこれを解決します!
StreamingFastチームは、残高変更の形ですべてのERC-20送金を抽出する、すぐに使えるサブストリームを作成しました。
コントラクトによって残高の保存方法が異なることは注目に値します。ERC-20 Balance Changes Substreamsは残高変更を発見するために2つの戦略を使用しますが、すべてのエッジケースをカバーするわけではありません。とはいえ、このサブストリームは残高変更の約97%を正常に検出することができます。この97%は主要なトークンをすべてカバーしており、ERC-20トークンの中には扱いにくいものもあります。
サブストリームの実行
ERC-20 Balance Changes Substreams のメインモジュールは “map_valid_balance_changes” モジュールで、erc20.types.v1.ValidBalanceChanges データを出力します:
{
"contract": "c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"owner": "6b75d8af000000e20b7a7ddf000ba900b4009a80",
"oldBalance": "62342581577012030851",
"newBalance": "61671907525910146435",
"transaction": "a278205118a242c87943b9ed83aacafe9906002627612ac3672d8ea224e38181"
}
前の残高の変化は次のように読めます: 「トークンc02a…6cc2の場合、アドレス6b75…9a80はトランザクションa278…8181で残高62.34から残高61.67になりました。」
このサブストリームパッケージを実行するには、Substreams GUIを使用します:
substreams gui https://github.com/streamingfast/substreams-erc20-balance-changes/releases/download/v0.0.5/erc20-balance-changes-v0.0.5.spkg map_valid_balance_changes -e mainnet.eth.streamingfast.io:443 -s 17000000 -t +10