mcpField
B
basket-query

basket-query

github.com/adityaakrその他223 回インストール
リポジトリ

basket-query について

basket-queryは、Vara Network上のPolyBasketsコントラクトと関連プログラムを読み取り専用で照会するスキルです。バスケット、ポジション、決済、設定、トークン状態、フリーベット記録の確認例を提供します。

主な機能

  1. 01バスケット数、詳細、ポジションの照会
  2. 02決済状態と支払額フィールドの確認
  3. 03BasketMarketとBetLaneの設定取得
  4. 04BET残高と請求状態の確認
  5. 05VARAフリーベット残高と付与記録の照会

活用シーン

  1. 01バスケットとその項目の閲覧
  2. 02アカウントのポジションと請求状況の確認
  3. 03決済の進行状況と支払詳細の確認
  4. 04トークン、レーン、フリーベットの状態検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/adityaakr/polybaskets --skill basket-query

インストール後、Claude Code で/basket-queryを入力して読み込まれたか確認します。

詳細

Basket Query

すべてのクエリは読み取り専用で無料です。--account は必要ありません。

セットアップ

メインネットのみです。 何よりも先に vara-wallet config set network mainnet を実行してください。テストネットにはコントラクトがないため、絶対に切り替えないでください。

# Set network and variables (see ../references/program-ids.md)
vara-wallet config set network mainnet
BASKET_MARKET="0xea8373e8b4441ef6e95325c1044d23ebf615b43fdef60a48623836a15ca7a25a"
BET_TOKEN="0x186f6cda18fea13d9fc5969eec5a379220d6726f64c1d5f4b346e89271f917bc"
BET_LANE="0x35848dea0ab64f283497deaff93b12fe4d17649624b2cd5149f253ef372b29dc"
FREEBET_LEDGER="0x6b4ad81d13194f8e27f71f4046c6e489b2af2b0b1ce835f390899941034fd979"
_PB="${POLYBASKETS_SKILLS_DIR:-skills}"
IDL="$_PB/idl/polymarket-mirror.idl"
BET_TOKEN_IDL="$_PB/idl/bet_token_client.idl"
BET_LANE_IDL="$_PB/idl/bet_lane_client.idl"
FREEBET_LEDGER_IDL="$_PB/idl/freebet-ledger.idl"

16 進アドレスの取得

Sails の actor_id 引数には 16 進形式が必要です。SS58 アドレスは使用できません。

MY_ADDR=$(vara-wallet balance | jq -r .address)
echo $MY_ADDR  # 0xe008...

BasketMarket のクエリ

バスケット数の取得
vara-wallet call $BASKET_MARKET BasketMarket/GetBasketCount --args '[]' --idl $IDL

u64 を返します。作成されたバスケットの合計数です。バスケット ID は 0 から始まります。

バスケットの取得
vara-wallet call $BASKET_MARKET BasketMarket/GetBasket --args '[0]' --idl $IDL

応答は .result.ok の下にネストされています。jq で解析してください。

# ⚠ Use .result.ok — NOT .ok!
vara-wallet call $BASKET_MARKET BasketMarket/GetBasket --args '[0]' --idl $IDL | jq '.result.ok'

バスケットのフィールド:id、creator、name、description、items(BasketItem の配列)、created_at、status(Active/SettlementPending/Settled)、asset_kind(Vara/Bet)。

ユーザーのポジションの取得
vara-wallet call $BASKET_MARKET BasketMarket/GetPositions \
  --args '["'$MY_ADDR'"]' --idl $IDL

vec Position を返します。各ポジションには、basket_id、user、shares、claimed、index_at_creation_bps があります。

ネイティブ freebet ポジションの取得
vara-wallet call $BASKET_MARKET BasketMarket/GetFreebetPositions \
  --args '["'$MY_ADDR'"]' --idl $IDL

FreebetLedger/SpendFreebet に記録されたネイティブ VARA の freebet ポジションを返します。各ポジションの形式は、ネイティブ VARA ポジションと同じです:basket_id、user、shares、claimed、index_at_creation_bps。

BasketMarket が想定されているレジャーに接続されているか確認するには:

vara-wallet call $BASKET_MARKET BasketMarket/GetFreebetLedger \
  --args '[]' --idl $IDL

エージェント自身のアドレスを取得するには:

AGENT_ADDR=$(vara-wallet wallet list | jq -r '.[0].address')
決済の取得
vara-wallet call $BASKET_MARKET BasketMarket/GetSettlement --args '[0]' --idl $IDL

Result<Settlement, BasketMarketError> を返します。主なフィールド:status(Proposed/Finalized)、payout_per_share、challenge_deadline、finalized_at、item_resolutions。

設定の確認
vara-wallet call $BASKET_MARKET BasketMarket/GetConfig --args '[]' --idl $IDL

BasketMarketConfig を返します:admin_role、settler_role、liveness_ms、vara_enabled、min_items_per_basket。

VARA が有効か確認
vara-wallet call $BASKET_MARKET BasketMarket/IsVaraEnabled --args '[]' --idl $IDL

bool を返します。

BetToken のクエリ

BET 残高の確認
vara-wallet call $BET_TOKEN BetToken/BalanceOf \
  --args '["'$MY_ADDR'"]' --idl $BET_TOKEN_IDL
請求プレビューの確認
vara-wallet call $BET_TOKEN BetToken/GetClaimPreview \
  --args '["'$MY_ADDR'"]' --idl $BET_TOKEN_IDL

ClaimPreview を返します:amount、streak_days、next_claim_at、can_claim_now。

請求状態の確認
vara-wallet call $BET_TOKEN BetToken/GetClaimState \
  --args '["'$MY_ADDR'"]' --idl $BET_TOKEN_IDL
トークン情報の確認
vara-wallet call $BET_TOKEN Metadata/Name --args '[]' --idl $BET_TOKEN_IDL
vara-wallet call $BET_TOKEN Metadata/Symbol --args '[]' --idl $BET_TOKEN_IDL
vara-wallet call $BET_TOKEN Metadata/Decimals --args '[]' --idl $BET_TOKEN_IDL
vara-wallet call $BET_TOKEN BetToken/TotalSupply --args '[]' --idl $BET_TOKEN_IDL

注:Name、Symbol、Decimals は BetToken ではなく、Metadata サービスにあります。

BetLane のクエリ

BET レーンのポジションを取得
vara-wallet call $BET_LANE BetLane/GetPosition \
  --args '["0x<user_actor_id>", 0]' --idl $BET_LANE_IDL

Position を返します:shares(u256)、claimed、index_at_creation_bps。注:BetLane のポジションでは u256 の shares(BET トークン)を使用します。BasketMarket のポジションでは u128(VARA)を使用します。

ページネーション付きポジションの取得
vara-wallet call $BET_LANE BetLane/GetPositions \
  --args '["0x<user_actor_id>", 0, 10]' --idl $BET_LANE_IDL

引数:user、offset、limit。Result<vec UserPositionView, BetLaneError> を返します。

BetLane の設定を確認
vara-wallet call $BET_LANE BetLane/GetConfig --args '[]' --idl $BET_LANE_IDL

BetLaneConfig を返します:min_bet、max_bet、payouts_allowed_while_paused。

一時停止状態の確認
vara-wallet call $BET_LANE BetLane/IsPaused --args '[]' --idl $BET_LANE_IDL

FreebetLedger のクエリ

ネイティブ VARA の freebet 残高を確認
vara-wallet call $FREEBET_LEDGER FreebetLedger/BalanceOf \
  --args '["'$MY_ADDR'"]' --idl $FREEBET_LEDGER_IDL

生の VARA 単位で u128 を返します。1 VARA = 1000000000000 です。

ID で付与情報を確認
vara-wallet call $FREEBET_LEDGER FreebetLedger/GetGrant \
  --args '["<grant_id>"]' --idl $FREEBET_LEDGER_IDL
認可されたベットプログラムを確認
vara-wallet call $FREEBET_LEDGER FreebetLedger/IsBetProgramAuthorized \
  --args '["'$BASKET_MARKET'"]' --idl $FREEBET_LEDGER_IDL

これが false を返す場合、エージェントは SpendFreebet を実行してはいけません。

コメント