mcpField
B
basket-claim

basket-claim

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

basket-claim について

basket-claimは、vara-walletで決済済みのPolyBasketsから払い戻しを請求するコマンドラインスキルです。決済とポジションの状態確認、VARAまたはBETの請求、結果の検証を案内します。

主な機能

  1. 01決済完了状態の確認
  2. 02ポジションと請求状態の確認
  3. 03VARAレーンの払い戻し請求
  4. 04BETトークンの払い戻し請求
  5. 05金額の事前確認と請求後の検証

活用シーン

  1. 01決済済みVARAバスケットの払い戻し請求
  2. 02決済済みBETレーンポジションの請求
  3. 03請求実行前のポジション確認

インストール

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

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

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

詳細

Basket の配当請求

vara-wallet を使って、決済済みの PolyBaskets バスケットから配当を請求します。

セットアップ

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

vara-wallet config set network mainnet
BASKET_MARKET="0xea8373e8b4441ef6e95325c1044d23ebf615b43fdef60a48623836a15ca7a25a"
BET_LANE="0x35848dea0ab64f283497deaff93b12fe4d17649624b2cd5149f253ef372b29dc"
FREEBET_LEDGER="0x6b4ad81d13194f8e27f71f4046c6e489b2af2b0b1ce835f390899941034fd979"
_PB="${POLYBASKETS_SKILLS_DIR:-skills}"
IDL="$_PB/idl/polymarket-mirror.idl"
BET_LANE_IDL="$_PB/idl/bet_lane_client.idl"
FREEBET_LEDGER_IDL="$_PB/idl/freebet-ledger.idl"

事前確認ワークフロー

1. 決済が確定済みであることを確認する
vara-wallet call $BASKET_MARKET BasketMarket/GetSettlement \
  --args '[<basket_id>]' --idl $IDL

結果を確認します。

  • status: "Finalized" — 請求できます
  • status: "Proposed" — チャレンジ期間がまだ終了していないか、まだ誰も確定していません。challenge_deadline の後であれば誰でも FinalizeSettlement を呼び出せます。それまではお待ちください。
  • エラー SettlementNotFound — まだ決済されていません
# Parse settlement status
vara-wallet call $BASKET_MARKET BasketMarket/GetSettlement \
  --args '[<basket_id>]' --idl $IDL | jq '.result.ok.status'

まず 16 進アドレスを取得します(actor_id 引数では SS58 は機能しません)。

MY_ADDR=$(vara-wallet balance | jq -r .address)
2. ポジションが存在し、未請求であることを確認する
# VARA lane
vara-wallet call $BASKET_MARKET BasketMarket/GetPositions \
  --args '["'$MY_ADDR'"]' --idl $IDL | jq '.result[] | select(.basket_id == <basket_id>)'

# native VARA freebet lane
vara-wallet call $BASKET_MARKET BasketMarket/GetFreebetPositions \
  --args '["'$MY_ADDR'"]' --idl $IDL | jq '.result[] | select(.basket_id == <basket_id>)'

# BET lane
vara-wallet call $BET_LANE BetLane/GetPosition \
  --args '["'$MY_ADDR'", <basket_id>]' --idl $BET_LANE_IDL

claimed: false を確認します。

請求(VARA レーン)

asset_kind: "Vara" のバスケットの場合:

vara-wallet --account agent call $BASKET_MARKET BasketMarket/Claim --voucher $VOUCHER_ID \
  --args '[<basket_id>]' --idl $IDL

u128 を返します。最小単位での VARA 配当額です(VARA に換算するには 10^12 で割ります)。

ネイティブ VARA のフリーベットポジションでは、同じ BasketMarket/Claim メソッドを使用します。コントラクトはフリーベットの元本を FreebetLedger に返し、元の賭け金を超える利益のみをユーザーのウォレットに送金します。

例
# Claim from basket 0
PAYOUT=$(vara-wallet --account agent call $BASKET_MARKET BasketMarket/Claim --voucher $VOUCHER_ID \
  --args '[0]' --idl $IDL)
echo "Payout: $PAYOUT"

請求(BET トークンレーン)

asset_kind: "Bet" のバスケットの場合:

vara-wallet --account agent call $BET_LANE BetLane/Claim --voucher $VOUCHER_ID \
  --args '[<basket_id>]' --idl $BET_LANE_IDL

u256 を返します。BET トークン単位での配当額です。

例
# Claim from basket 1 via BET lane
vara-wallet --account agent call $BET_LANE BetLane/Claim --voucher $VOUCHER_ID \
  --args '[1]' --idl $BET_LANE_IDL

配当の計算

payout = shares * (settlement_index / entry_index)

payout_per_share は、提案時に Settlement 構造体内で事前計算されます。請求前に、予想配当額を確認できます。

# Get settlement payout_per_share
SETTLEMENT=$(vara-wallet call $BASKET_MARKET BasketMarket/GetSettlement \
  --args '[<basket_id>]' --idl $IDL)
echo $SETTLEMENT | jq '.result.ok.payout_per_share'

詳しい計算式と例については、../references/index-math.md を参照してください。

請求後の確認

# Check position is now claimed
vara-wallet call $BASKET_MARKET BasketMarket/GetPositions \
  --args '["'$MY_ADDR'"]' --idl $IDL | jq '.result[] | select(.basket_id == <basket_id>) | .claimed'

# Check native freebet position is now claimed, when applicable
vara-wallet call $BASKET_MARKET BasketMarket/GetFreebetPositions \
  --args '["'$MY_ADDR'"]' --idl $IDL | jq '.result[] | select(.basket_id == <basket_id>) | .claimed'

# Check freebet principal was returned to ledger, when applicable
vara-wallet call $FREEBET_LEDGER FreebetLedger/BalanceOf \
  --args '["'$MY_ADDR'"]' --idl $FREEBET_LEDGER_IDL

# Check VARA balance increased
vara-wallet balance

よくあるエラー

エラー原因対処方法
SettlementNotFinalized決済がまだ確定していません確定されるまでお待ちください
AlreadyClaimedこのバスケットの配当はすでに請求済みです対応は不要です
NothingToClaimこのバスケットにポジションがありませんポジションが存在することを確認してください
SettlementNotFound決済が提案されていません決済提案者が提案するまでお待ちください
TransferFailedVARA の送金に失敗しましたコントラクト残高を確認し、再試行してください

コメント