关于 basket-query
basket-query 是用于只读查询 Vara Network 上 PolyBaskets 合约及相关程序的技能,提供检查篮子、持仓、结算、配置、代币状态和免费投注记录的命令示例。
主要功能
- 01查询篮子数量、详情和持仓
- 02查看结算状态及付款字段
- 03读取 BasketMarket 和 BetLane 配置
- 04检查 BET 余额和领取状态
- 05查询 VARA 免费投注余额和授权记录
适用场景
- 01浏览篮子并查看其中项目
- 02检查账户持仓和领取情况
- 03跟踪结算进度及付款详情
- 04核实代币、投注通道或免费投注合约状态
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ adityaakr/ polybaskets --skill basket-query安装后在 Claude Code 中输入/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"
获取十六进制地址
Sails 的 actor_id 参数要求使用十六进制格式——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 自身地址:
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 位于 Metadata 服务中,而非 BetToken。
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 份额(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,Agent 不得尝试调用 SpendFreebet。