UNPKG

polynance_sdk

Version:

TypeScript SDK for prediction market aggregation supporting Polymarket, Limitless, and Truemarket

104 lines (103 loc) 3.97 kB
import { Protocol, PredictionMarketEvent, PredictionMarketComment, OrderBookSummary, FillEventData, PredictionMarket } from './types'; export interface PolynanceClientOptions { apiBaseUrl?: string; redisUrl?: string; sseBaseUrl?: string; } /** * SSE購読時に指定可能なハンドラーの型 */ export interface FillEventSSEHandlers { /** * SSE接続確立時のコールバック */ onOpen?: (ev: Event) => void; /** * SSEメッセージ受信時のコールバック(parse済み FillEventData が渡る) */ onMessage?: (data: FillEventData) => void; /** * SSE接続エラー時のコールバック */ onError?: (ev: Event) => void; } /** * SSE購読が返す購読インスタンスの型 */ export interface FillEventSubscription { /** * EventSource のインスタンス */ eventSource: EventSource; /** * SSE購読を終了(接続をClose)するためのメソッド */ close: () => void; /** * 直近の SSE メッセージ内容を取得するためのメソッド */ getLatestData: () => FillEventData | null; } /** * 予測市場のアグリゲータクライアント */ export declare class PolynanceClient { private apiClient; private sseBaseUrl; constructor(options?: PolynanceClientOptions); /** * 指定されたプロトコルとイベントIDに対応するイベント情報を取得 */ getEvent(protocol: Protocol, eventId: string): Promise<PredictionMarketEvent>; /** * 指定されたプロトコルとマーケットIDに対応するマーケット情報を取得 */ getMarket(protocol: Protocol, marketId: string): Promise<PredictionMarket>; /** * 指定されたプロトコルの進行中のイベント一覧を取得 */ getOngoingEvents(protocol: Protocol, page?: number, limit?: number): Promise<PredictionMarketEvent[]>; /** * 指定されたプロトコルとイベントIDに対応するコメント一覧を取得 */ getEventComments(protocol: Protocol, eventId: string): Promise<PredictionMarketComment[]>; /** * 指定されたプロトコルとマーケットIDに対応するオーダーブック情報を取得 */ getOrderbook(protocol: Protocol, marketId: string): Promise<Record<string, OrderBookSummary>>; /** * Retrieves the filled order events for position tokens in a market for the last month. * Returns price and timestamp data for each execution in the orderbook. * * The response is a 2D array where the index corresponds to the position tokens * in the same order as they appear in the market response's position_tokens array. * For binary options, index 0 corresponds to "Yes" tokens. * * @param protocol - The protocol identifier * @param marketId - The market identifier * @returns A 2D array of fill event data, organized by position token index */ getOrderBookFilledEvents(protocol: Protocol, marketId: string): Promise<FillEventData[][]>; /** * 指定されたプロトコルと ID(マーケットID等) に対応する Fill イベントを SSE で購読 * * @param protocol プロトコル名 * @param id マーケットID等 * @param handlers SSE購読時の各種コールバック (onOpen, onMessage, onError) * @returns SSE購読インスタンス (eventSource, close, getLatestData) */ subscribeFillEvents(protocol: Protocol, id: string, handlers?: FillEventSSEHandlers): FillEventSubscription; /** * エラーハンドリング */ private handleError; } export interface Candle { time: number; open: number; high: number; low: number; close: number; volume: number; } export declare function generateCandlestickData(fillEvents: FillEventData[], intervalMillis: number, fromTime: number, toTime: number): Candle[];