Baseでのサブグラフ構築
Reading time: 4 min
このガイドでは、Baseテストネットでのサブグラフの初期化、作成、デプロイの方法を素早く説明します.
必要なもの:
- Baseテストネットコントラクトアドレス
- 暗号ウォレット(例:MetaMaskまたはCoinbase Wallet)
The Graph CLI (>=v0.41.0) はJavaScriptで書かれており、使用するには npm
または yarn
のいずれかをインストールする必要があります。
# NPMnpm install -g @graphprotocol/graph-cli# Yarnyarn global add @graphprotocol/graph-cli
Subgraph Studio に移動し、クリプト ウォレットを接続します。
接続後「Create a Subgraph」をクリックし、サブグラフの名称を入力します。
インデックス付きブロックチェーンとして「Base (testnet)」を選択し、「Create Subgraph」をクリックします。
サブグラフに固有のコマンドは、Subgraph Studioで確認することができます。
Graph-cliが最新版(0.41.0以上)に更新されていることを確認します。
グラフ --バージョン
既存のコントラクトからサブグラフを初期化します。
graph init --studio <SUBGRAPH_SLUG>
サブグラフのスラッグは、サブグラフの識別子となるものです。CLIツールは、サブグラフを作成するためのステップを説明します。
- Protocol: ethereum
- Subgraph slug:
<SUBGRAPH_SLUG>
- Directory to create the subgraph in:
<SUBGRAPH_SLUG>
- Ethereum network: base-testnet _ Contract address:
<CONTRACT_ADDRESS>
- Start block (optional)
- Contract name:
<CONTRACT_NAME>
- イベントのインデックス作成について、[はい]/[いいえ] を選択します ([はい] は、サブグラフがスキーマ エンティティと発行されたイベントの単純なマッピングでブートストラップされることを意味します)。
排出されたイベントだけがインデックスになる場合は、追加の作業は必要なく、次のステップに進むことができます。
前のコマンドは、scaffold subgraphを作成し、これを出発点としてサブグラフを構築することができます。サブグラフに変更を加える場合、主に3つのファイルを操作することになります:
- マニフェスト (subgraph.yaml) - マニフェストは、サブグラフがインデックスするデータソースを定義します。サブグラフをBase testnetにデプロイするには、マニフェストファイルのネットワーク名として
base-testnet
を必ず追加してください。 - スキーマ (schema.graphql) - GraphQL スキーマは、サブグラフから取得したいデータを定義します。
- AssemblyScript Mappings (mapping.ts) - データソースからのデータを、スキーマで定義されたエンティティに変換するコードです。
追加のデータをインデックス化したい場合は、マニフェスト、スキーマ、マッピングの拡張が必要です。
サブグラフの書き方については、サブグラフの作成 をご覧ください。
サブグラフをデプロイする前に、Subgraph Studioで認証する必要があります。これは、以下のコマンドを実行することで可能です:
「スタジオでサブグラフを認証する」
graph auth --studio <DEPLOY_KEY>
次に、サブグラフのディレクトリを入力します。
cd <SUBGRAPH_DIRECTORY>
以下のコマンドでサブグラフを構築します:
```graph codegen && graph build```
最後に、このコマンドでサブグラフをデプロイすることができます:
```graph deploy --studio <SUBGRAPH_SLUG>```
サブグラフがデプロイされると、Subgraph StudioのDevelopment Query URL
を使用して、Dappからサブグラフをクエリすることができます。
注意:Studio APIは料金に制限があります。そのため、開発およびテストに使用することを推奨します。
サブグラフからデータをクエリする方法については、サブグラフのクエリのページを参照してください。