Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fractionトークンの残高をウォレットアドレス単位で取得する方法を検討 #233

Open
yu23ki14 opened this issue Jan 4, 2025 · 11 comments
Assignees

Comments

@yu23ki14
Copy link
Member

yu23ki14 commented Jan 4, 2025

Issue

Description

フラクショントークン送信の際に、どのトークンを送るかを選ぶインターフェースをいれたい。それには現在の残高一覧を取得できると嬉しいので、そのやり方を検討

  • Option1: GoldskyをつかったToban用のSubgraphにBalanceのエンドポイントを追加する
  • Option2: Alchemyなどが提供しているERC1155のAPIを使う

Notes

Screenshots

If applicable, add screenshots to help explain your problem.

@ikmzkro
Copy link
Collaborator

ikmzkro commented Jan 6, 2025

フラクショントークンの残高をEOAに残したい

Ryoma->yarn
何種類かのFTを持っている可能性あり(掃除当番、猫餌やりなど)
自分がどの種類のFTをどのくらい所有持っているのかを機能として欲しい

op1: op2がなければエンドポイント追加する(Goldsky使うとsubgraphが自動でかける)
op2: alchemy, moralisの1155系で取得できれば最高

イベント:transferするたびに残高を増減させるような簡易な仕組みをgoldskyにデプロイして
フロントエンドからはgoldskyのエンドポイントを叩けばOK

EOA->1155に紐づい多情票をフロントからキャッチする。
0xd921517fdF141d97C289bDb9686f51A1375dCc69で発行しているトークン

@ikmzkro
Copy link
Collaborator

ikmzkro commented Jan 6, 2025

NAMESTONE
-> subdomain化を簡易化する。REST APIでtoban.ethからsubdomain作成可能で、resolverもいい感じにする。

@ikmzkro
Copy link
Collaborator

ikmzkro commented Jan 6, 2025

Goldsky使うとsubgraphが自動でかける
->コントラクトエンジニアが emit event Executed をGoldSkyに保存できるようにし、フロントエンドからのコールで必要な値を簡単に確認できるSaaSです。さらに、クエリの柔軟性が非常に高いのも特徴です。

@ikmzkro ikmzkro self-assigned this Jan 6, 2025
@ikmzkro
Copy link
Collaborator

ikmzkro commented Jan 6, 2025

Option2: Alchemyなどが提供しているERC1155のAPIを使う

  • 調査目的

    • 送金などのイベント時に、自分がどの種類のフラクショントークンをどのくらいの量所有しているのかを確認する。
  • 結果

@ikmzkro
Copy link
Collaborator

ikmzkro commented Jan 6, 2025

Option1: GoldskyをつかったToban用のSubgraphにBalanceのエンドポイントを追加する

Option1の方針になりそうです!
@yu23ki14

@yu23ki14
Copy link
Member Author

yu23ki14 commented Jan 7, 2025

@ikmzkro
了解です!

データの構造ですが以下でおねがいします。

[
  {
    "id": "{address}{tokenId}",
    "workspaceId": "698",
    "holderAddress": "0xabc...",
    "hatId": "1234...",
    "wearer" "0xopq...",
    "tokenId": "9876...",
    "balance": "1000",
    "updatedAt": "1735710540", //blocktimestamp
  }
]

スマコンからイベント発行されたものをキャッチして実行されるhookは /src/mapping.ts に書いていく感じになっています。

Goldskyへのデプロイ手順

  • これに従ってCLIをインストールして、使えるようにする
  • tobanのsubgraphディレクトリ配下で yarn install
  • yarn prepare:sepolia
  • yarn condegen
  • yarn build
  • yarn deploy:sepolia

一度デプロイしたやつを削除するコマンドは

goldsky subgraph delete toban-sepolia/1.0.0

@ikmzkro
Copy link
Collaborator

ikmzkro commented Jan 9, 2025

わーいログインできたあ

ikmz@KoichirizunoMBP toban % goldsky login

◇ Enter or paste in your Goldsky API token (you can create a new one at https://app.goldsky.com/dashboard/settings)
│ ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪

◇ Logged in to project 'Toban'. You can now run any authenticated commands on Goldsky from this computer

@ikmzkro
Copy link
Collaborator

ikmzkro commented Jan 9, 2025

一旦yamlファイルを生成する

ikmz@KoichirizunoMBP subgraph % yarn prepare:sepolia
yarn run v1.22.19
$ mustache config/sepolia.json subgraph.template.yaml > subgraph.yaml
✨  Done in 0.58s.

@ikmzkro
Copy link
Collaborator

ikmzkro commented Jan 9, 2025

subgraph.yamlのロード
スマートコントラクトのABIロード
型定義ファイルの生成
GraphQLスキーマの型定義
生成成功結果

subgraph % yarn codegen
yarn run v1.22.19
$ graph codegen
  Skip migration: Bump mapping apiVersion from 0.0.1 to 0.0.2
  Skip migration: Bump mapping apiVersion from 0.0.2 to 0.0.3
  Skip migration: Bump mapping apiVersion from 0.0.3 to 0.0.4
  Skip migration: Bump mapping apiVersion from 0.0.4 to 0.0.5
  Apply migration: Bump mapping apiVersion from 0.0.5 to 0.0.6
  Apply migration: Bump manifest specVersion from 0.0.1 to 0.0.2
  Apply migration: Bump manifest specVersion from 0.0.2 to 0.0.4
✔ Apply migrations
✔ Load subgraph from subgraph.yaml
  Load contract ABI from abis/BigBang.json
  Load contract ABI from abis/FractionToken.json
✔ Load contract ABIs
  Generate types for contract ABI: BigBang (abis/BigBang.json)
  Write types to generated/BigBang/BigBang.ts
  Generate types for contract ABI: FractionToken (abis/FractionToken.json)
  Write types to generated/FractionToken/FractionToken.ts
✔ Generate types for contract ABIs
✔ Generate types for data source templates
✔ Load data source template ABIs
✔ Generate types for data source template ABIs
✔ Load GraphQL schema from schema.graphql
  Write types to generated/schema.ts
✔ Generate types for GraphQL schema

Types generated successfully

✨  Done in 1.37s.

@ikmzkro
Copy link
Collaborator

ikmzkro commented Jan 9, 2025

ビルド生成

ikmz@KoichirizunoMBP subgraph % yarn build
yarn run v1.22.19
$ graph build
  Skip migration: Bump mapping apiVersion from 0.0.1 to 0.0.2
  Skip migration: Bump mapping apiVersion from 0.0.2 to 0.0.3
  Skip migration: Bump mapping apiVersion from 0.0.3 to 0.0.4
  Skip migration: Bump mapping apiVersion from 0.0.4 to 0.0.5
  Skip migration: Bump mapping apiVersion from 0.0.5 to 0.0.6
  Skip migration: Bump manifest specVersion from 0.0.1 to 0.0.2
  Skip migration: Bump manifest specVersion from 0.0.2 to 0.0.4
✔ Apply migrations
✔ Load subgraph from subgraph.yaml
  Compile data source: BigBang => build/BigBang/BigBang.wasm
  Compile data source: FractionToken => build/BigBang/BigBang.wasm (already compiled)
✔ Compile subgraph
  Copy schema file build/schema.graphql
  Write subgraph file build/BigBang/abis/BigBang.json
  Write subgraph file build/FractionToken/abis/FractionToken.json
  Write subgraph manifest build/subgraph.yaml
✔ Write compiled subgraph to build/

Build completed: build/subgraph.yaml

✨  Done in 2.67s.

@ikmzkro
Copy link
Collaborator

ikmzkro commented Jan 9, 2025

一旦デプロイする

ikmz@KoichirizunoMBP subgraph % yarn deploy:sepolia
yarn run v1.22.19
$ goldsky subgraph deploy toban-sepolia/1.0.0 --path .
Deploying Subgraph:
✔ Validating build path
✔ Packaging deployment bundle from build
✔ Deploying toban-sepolia/1.0.0 to Goldsky

Deployed subgraph API: https://api.goldsky.com/api/public/xx/subgraphs/toban-sepolia/1.0.0/gn
✨  Done in 4.44s.

これで消せたのでテスト終わり。

goldsky subgraph delete toban-sepolia/1.0.0
toban-sepolia/1.0.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants