跳到主要内容

账户模型(PDA 体系)

所有市场资产由程序 PDA 派生并托管,market PDA 是金库与 mint 的唯一权限方。

每个市场围绕 market 主账户派生出一组 PDA:YES / NO 两个 mint、三个资金金库(YES / NO / USDC)、保证金托管账户,以及争议流程用的 dispute 账户、投票记录和 DAO 提案账户;全局层面另有 trader_info(跨市场用户统计)、dao_config(DAO 配置)与 log_authority(审计日志签名)。

备注

order_book 不是 PDA 订单簿是客户端创建的独立 keypair 账户并绑定到市场,存储订单簿数据。

订单簿规格与预计 SOL 用量

规格容量(bids / asks / seats)账户大小预计租金
Small512 / 512 / 128≈ 215 KB≈ 1.50 SOL
Medium1024 / 1024 / 128≈ 412 KB≈ 2.87 SOL
Large2048 / 2048 / 128≈ 805 KB≈ 5.61 SOL
XL4096 / 4096 / 128≈ 1.59 MB≈ 11.08 SOL

以上是前端提供的四个预设。程序层面共支持 12 种合法组合 :

容量(bids / asks / seats)账户大小预计租金
512 / 512 / 128≈ 215 KB≈ 1.50 SOL
512 / 512 / 1025≈ 345 KB≈ 2.40 SOL
512 / 512 / 1153≈ 363 KB≈ 2.53 SOL
1024 / 1024 / 128≈ 412 KB≈ 2.87 SOL
1024 / 1024 / 2049≈ 689 KB≈ 4.79 SOL
1024 / 1024 / 2177≈ 707 KB≈ 4.92 SOL
2048 / 2048 / 128≈ 805 KB≈ 5.61 SOL
2048 / 2048 / 4097≈ 1.38 MB≈ 9.58 SOL
2048 / 2048 / 4225≈ 1.40 MB≈ 9.71 SOL
4096 / 4096 / 128≈ 1.59 MB≈ 11.08 SOL
4096 / 4096 / 8193≈ 2.75 MB≈ 19.16 SOL
4096 / 4096 / 8321≈ 2.77 MB≈ 19.29 SOL

租金由创建者支付,市场结算清空后并关闭市场后全额退还

Market Account

关键字段:

字段说明
name[64] / url[256]市场名与 IPFS 元数据链接
market_size_params订单簿容量参数
order_book_key订单簿账户地址
authority创建者
ipfs_hash / market_type元数据哈希 / 10 种分类
expiry_date到期时间
vault_value_usdc金库记账值
security_deposit_usdc创建者保证金
timestamp_recorder各阶段时间戳(结果提交时间等)
status / has_dispute / result状态机字段
feed_id锁定的预言机数据源标识

Trader Info

全局 PDA,跨市场

  • total_order_counttotal_volume_usdcactive_order_countmarket_count;
  • markets[18]:最近 18 个市场,每市场保留最近 20 个订单 ID 的循环历史。

初始化trader info 后,时可记录交易数据。

资金流向速查

用户钱包 ──MintPair──► usdc_vault(金库)──RedeemPair──► 用户钱包
用户钱包 ──NewOrder(锁定)──► 订单簿座位 ──ClaimFunds──► 用户钱包
创建者 ──CreateMarket──► market_usdc_account(保证金)──CloseMarket/ClaimDisputeReward──► 创建者或质疑者
质疑者/投票者 ──StartDispute/Vote──► dispute vault ──ClaimVoteReward/ClaimDisputeReward──► 胜方

所有向外转账均由 market PDA 或 dispute PDA 签名。