2.8 KiB
2.8 KiB
pmset.ts
路径:src/api/pmset.ts
功能用途
Polymarket 结算/提现相关 API:withdrawByWallet 用于客户端钱包提现申请,需钱包验签(SIWE)。
核心能力
withdrawByWallet:POST /pmset/withdrawByWallet,提交提现申请,需钱包 personal_sign 验签usdcToAmount:将 USDC 显示金额转为 API 所需整数(6 位小数)getSettlementRequestsList:分页获取提现/结算请求列表(管理端),支持 status 筛选getSettlementRequestsListClient:客户端分页获取提现记录列表,支持 status 筛选(pending/success/rejected/failed)
POST /pmset/withdrawByWallet
请求体(request.PmSettlementWithdrawByWallet)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| amount | number | 是 | 提现金额,6 位小数(1000000 = 1 USDC) |
| chain | string | 是 | 链标识,如 polygon、ethereum、arbitrum、optimism |
| message | string | 是 | SIWE 签名消息 |
| nonce | string | 是 | 随机 nonce |
| signature | string | 是 | 钱包签名 |
| tokenAddress | string | 是 | 出金地址(用户接收资金的地址) |
| tokenSymbol | string | 是 | 代币符号,默认 USDC |
| walletAddress | string | 是 | 钱包地址,取用户信息的 externalWalletAddress |
响应
{ code, data, msg },data 为 { idempotencyKey?, requestNo? }。
验签流程(与 Login.vue 一致)
- 使用
eth_requestAccounts获取钱包地址 - 使用
eth_chainId获取链 ID - 构建 SiweMessage(scheme、domain、address、statement、uri、version、chainId、nonce)
personal_sign签名消息- POST 请求体包含 message、nonce、signature、walletAddress、amount、chain
使用方式
import { withdrawByWallet, usdcToAmount } from '@/api/pmset'
const amount = usdcToAmount(1.5) // 1500000
const res = await withdrawByWallet(
{ amount, chain: 'polygon', message, nonce, signature, walletAddress },
{ headers: authHeaders },
)
GET /pmset/getPmSettlementRequestsListClient
客户端分页获取提现记录列表,需鉴权。钱包页面提现记录使用此接口。
响应 data 结构
{ list, total, page, pageSize },list 项含:ID、CreatedAt、UpdatedAt、chain、amount、fee、status、reason、requestNo、tokenAddress。
GET /pmset/getPmSettlementRequestsList
分页获取提现/结算请求列表(管理端),需鉴权。
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
| page | number | 页码 |
| pageSize | number | 每页数量 |
| status | string | 状态筛选:pending、success、rejected、failed |
响应
data 为 PageResult<SettlementRequestItem>,list 项含 amount、requestNo、chain、status、createdAt、reason、payoutError 等。
扩展方式
- 新增其他 pmset 相关接口时,在
src/api/pmset.ts中追加