Skip to content

スコアリングシステムを作る

miti edited this page Feb 10, 2023 · 7 revisions

SubQuery実装

  • 作業ディレクトリはlepus-subql
  • 環境構築
  • 開発手順
    • 重要なファイル
      • project.yml
      • schema.graphql
      • src/mappings/mappingHandlers.ts
    • schema.graphqlに欲しいデータ構造を定義する
    • schema.graphqlをもとに必要なコードを生成する
      • yarn codegen
    • データの保存するためのコードを実装
      • src/mappings/mappingHandlers.ts
    • yarn build
    • 各種機能を立ち上げる
      • docker compose up -d
    • ログを確認してエラーになっていないことを確認
      • docker compose logs -f
      • ずっとログが流れ続けるので1分ぐらいエラーなければ多分大丈夫
    • http://localhost:3001/ にアクセスしてテスト
    • 各種機能を消す(後片付け)
      • docker compose down
  • 雛形は簡単なデータ取得しかないので、必要に応じてドキュメントをみて実装する

※ 現状、balances.transferイベントをとることになっているので必要に応じて設定を変える必要がある https://github.com/lepus-shinagawa/lepus/blob/main/lepus-subql/project.yaml#L39-L41

※ コントラクトのデータにアクセスする方法を調べる。コントラクトがwasmで実装されている場合、対応するバイナリコードが必要そう。


uiの実装

The Graph実装例(デプロイまで)

  • 概要:

    • chaiというmatic上のERC20のトークンを取得するthe graphをデプロイするまでのサンプルです。
    • 下記がサンプル例のコントラクトアドレス
    • 0x4491D1c47bBdE6746F878400090ba6935A91Dab6
  • 作業ディレクトリはlepus-the-graph

  • the graphにgitアカウントを用いて登録  - https://thegraph.com/

  • 環境構築:Subgraph nameは<GITHUB_USERNAME>/<SUBGRAPH_NAME>とする

    • npm install -g @graphprotocol/graph-cli
    • graph init
    • 設定例
    • ✔ Protocol · ethereum
    • ✔ Product for which to initialize · hosted-service
    • ✔ Subgraph name · sunagi/chai
    • ✔ Directory to create the subgraph in · chai
    • ✔ Ethereum network · matic
    • ✔ Contract address · 0x4491D1c47bBdE6746F878400090ba6935A91Dab6
    • ✔ Fetching ABI from Etherscan
    • ✔ Start Block · 25452696
    • ✔ Contract Name · ERC20
    • ✔ Index contract events as entities (Y/n) · true
    • lepus-the-graph/にchaiが生成されるので、このディレクトリに移動
  • 開発手順