账户模型(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) | 账户大小 | 预计租金 |
|---|---|---|---|
| Small | 512 / 512 / 128 | ≈ 215 KB | ≈ 1.50 SOL |
| Medium | 1024 / 1024 / 128 | ≈ 412 KB | ≈ 2.87 SOL |
| Large | 2048 / 2048 / 128 | ≈ 805 KB | ≈ 5.61 SOL |
| XL | 4096 / 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_count、total_volume_usdc、active_order_count、market_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 签名。