102 lines
2.5 KiB
TypeScript
102 lines
2.5 KiB
TypeScript
import { post } from './request'
|
||
import type { ApiResponse } from './types'
|
||
|
||
export type { ApiResponse }
|
||
|
||
/**
|
||
* 下单请求体(/clob/gateway/submitOrder)
|
||
* tokenID 来自 market.clobTokenIds,outcomeIndex 0=Yes 1=No
|
||
*/
|
||
export interface ClobSubmitOrderRequest {
|
||
expiration: number
|
||
feeRateBps: number
|
||
nonce: number
|
||
orderType: number
|
||
/** 价格(整数,已乘 10000) */
|
||
price: number
|
||
side: number
|
||
/** 数量(份额) */
|
||
size: number
|
||
taker: boolean
|
||
tokenID: string
|
||
userID: number
|
||
/** 市场 ID */
|
||
marketID: string
|
||
}
|
||
|
||
/**
|
||
* POST /clob/gateway/submitOrder
|
||
* 下单(买入/卖出 Yes 或 No),需鉴权
|
||
*/
|
||
export async function pmOrderPlace(
|
||
data: ClobSubmitOrderRequest,
|
||
config?: { headers?: Record<string, string> },
|
||
): Promise<ApiResponse> {
|
||
return post<ApiResponse>('/clob/gateway/submitOrder', data, config)
|
||
}
|
||
|
||
/**
|
||
* 取消订单请求体(/clob/gateway/cancelOrder)
|
||
*/
|
||
export interface ClobCancelOrderRequest {
|
||
orderID: number
|
||
tokenID: string
|
||
userID: number
|
||
}
|
||
|
||
/**
|
||
* POST /clob/gateway/cancelOrder
|
||
* 取消订单,需鉴权
|
||
*/
|
||
export async function pmCancelOrder(
|
||
data: ClobCancelOrderRequest,
|
||
config?: { headers?: Record<string, string> },
|
||
): Promise<ApiResponse> {
|
||
return post<ApiResponse>('/clob/gateway/cancelOrder', data, config)
|
||
}
|
||
|
||
/**
|
||
* Split 请求体(/PmMarket/split)
|
||
* 用 USDC 兑换该市场的 Yes+No 份额(1 USDC ≈ 1 Yes + 1 No)
|
||
*/
|
||
export interface PmMarketSplitRequest {
|
||
/** 市场 ID */
|
||
marketID: string
|
||
/** 要 split 的 USDC 金额(字符串) */
|
||
usdcAmount: string
|
||
}
|
||
|
||
/**
|
||
* Merge 请求体(/PmMarket/merge)
|
||
* 合并 Yes + No 份额得到 USDC(1 Yes + 1 No ≈ 1 USDC)
|
||
*/
|
||
export interface PmMarketMergeRequest {
|
||
/** 市场 ID */
|
||
marketID: string
|
||
/** 合并份额数量(字符串) */
|
||
amount: string
|
||
}
|
||
|
||
/**
|
||
* POST /PmMarket/merge
|
||
* 合并 Yes、No 份额为 USDC,需鉴权
|
||
*/
|
||
export async function pmMarketMerge(
|
||
data: PmMarketMergeRequest,
|
||
config?: { headers?: Record<string, string> },
|
||
): Promise<ApiResponse> {
|
||
return post<ApiResponse>('/PmMarket/merge', data, config)
|
||
}
|
||
|
||
/**
|
||
* 调用测试服务器 /PmMarket/split 接口
|
||
* - 需鉴权:请求头 x-token、x-user-id
|
||
* - 使用 VITE_API_BASE_URL 时可设为 http://192.168.3.21:8888 连接测试服
|
||
*/
|
||
export async function pmMarketSplit(
|
||
data: PmMarketSplitRequest,
|
||
config?: { headers?: Record<string, string> },
|
||
): Promise<ApiResponse> {
|
||
return post<ApiResponse>('/PmMarket/split', data, config)
|
||
}
|