xtraderClient/src/api/market.ts
2026-03-02 11:47:34 +08:00

102 lines
2.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { post } from './request'
import type { ApiResponse } from './types'
export type { ApiResponse }
/**
* 下单请求体(/clob/gateway/submitOrder
* tokenID 来自 market.clobTokenIdsoutcomeIndex 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 份额得到 USDC1 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)
}