polynance_sdk
Version:
TypeScript SDK for prediction market aggregation supporting Polymarket, Limitless, and Truemarket
104 lines (103 loc) • 3.97 kB
TypeScript
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[];