64 lines
1.6 KiB
Markdown
64 lines
1.6 KiB
Markdown
# market.ts
|
||
|
||
**路径**:`src/api/market.ts`
|
||
|
||
## 功能用途
|
||
|
||
交易与市场相关接口:下单、取消订单、Split(USDC 换 Yes+No)、Merge(Yes+No 换 USDC)。对接 CLOB Gateway 与 PmMarket 接口。
|
||
|
||
## 核心能力
|
||
|
||
- `pmOrderPlace`:下单(买入/卖出 Yes 或 No)
|
||
- `pmCancelOrder`:取消订单
|
||
- `pmMarketSplit`:用 USDC 兑换 Yes+No 份额
|
||
- `pmMarketMerge`:合并 Yes+No 份额得到 USDC
|
||
|
||
## 类型说明
|
||
|
||
| 类型 | 说明 |
|
||
|------|------|
|
||
| `ClobSubmitOrderRequest` | 下单请求体,含 tokenID、price、size、side 等 |
|
||
| `ClobCancelOrderRequest` | 取消订单请求体 |
|
||
| `PmMarketSplitRequest` | Split 请求体,marketID、usdcAmount |
|
||
| `PmMarketMergeRequest` | Merge 请求体,marketID、amount |
|
||
|
||
## 使用方式
|
||
|
||
```typescript
|
||
import {
|
||
pmOrderPlace,
|
||
pmCancelOrder,
|
||
pmMarketSplit,
|
||
pmMarketMerge,
|
||
} from '@/api/market'
|
||
import { useUserStore } from '@/stores/user'
|
||
|
||
const userStore = useUserStore()
|
||
const headers = userStore.getAuthHeaders()
|
||
if (!headers) return
|
||
|
||
// 下单
|
||
await pmOrderPlace(
|
||
{
|
||
tokenID: clobTokenId,
|
||
price: 3700, // 37¢ = 3700
|
||
size: 100,
|
||
side: Side.Buy,
|
||
// ... 其他字段
|
||
},
|
||
{ headers }
|
||
)
|
||
|
||
// Split
|
||
await pmMarketSplit({ marketID: '123', usdcAmount: '10' }, { headers })
|
||
|
||
// Merge
|
||
await pmMarketMerge({ marketID: '123', amount: '5' }, { headers })
|
||
```
|
||
|
||
## 扩展方式
|
||
|
||
1. **批量下单**:封装 `pmOrderPlace` 循环或对接批量接口
|
||
2. **订单状态查询**:新增 `getOpenOrders`、`getOrderHistory` 等接口
|
||
3. **价格/数量校验**:在调用前增加业务校验逻辑
|