2026-03-03 18:05:24 +08:00

2.8 KiB
Raw Blame History

pmset.ts

路径src/api/pmset.ts

功能用途

Polymarket 结算/提现相关 APIwithdrawByWallet 用于客户端钱包提现申请需钱包验签SIWE

核心能力

  • withdrawByWalletPOST /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 一致)

  1. 使用 eth_requestAccounts 获取钱包地址
  2. 使用 eth_chainId 获取链 ID
  3. 构建 SiweMessagescheme、domain、address、statement、uri、version、chainId、nonce
  4. personal_sign 签名消息
  5. 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

响应

dataPageResult<SettlementRequestItem>list 项含 amount、requestNo、chain、status、createdAt、reason、payoutError 等。

扩展方式

  • 新增其他 pmset 相关接口时,在 src/api/pmset.ts 中追加