pmarket-cli
Version:
CLI tool to trade on Polymarket
73 lines (72 loc) • 1.98 kB
TypeScript
import { ClobClient, ApiKeyCreds, Side } from "@polymarket/clob-client";
import { ethers } from "ethers";
import { ConfigService } from "./config.service.js";
interface Token {
token_id: string;
outcome: string;
price: number;
winner: boolean;
}
interface Rewards {
incentiveProgram: string;
totalRewardPool: string;
}
export interface Market {
condition_id: string;
question_id: string;
tokens: [Token, Token];
rewards: Rewards;
minimum_order_size: string;
minimum_tick_size: string;
description: string;
category: string;
end_date_iso: string;
game_start_time: string | null;
question: string;
market_slug: string;
min_incentive_size: string;
max_incentive_spread: string;
active: boolean;
closed: boolean;
seconds_delay: number;
icon: string;
fpmm: string;
}
export declare class PolymarketService {
clobClient: ClobClient | undefined;
signer: ethers.Wallet | undefined;
private configService;
private initialized;
constructor(configService: ConfigService);
private initializeWallet;
private ensureInitialized;
fetchAllMarkets(): Promise<Market[]>;
getMarketsAcceptingOrders(): Promise<Array<{
yes: Token;
no: Token;
question: string;
}>>;
marketOrder(tokenID: string, side: Side, size: number, price: number): Promise<unknown>;
getOrderBook(tokenId: string): Promise<unknown>;
cancelAll(): Promise<unknown>;
getApiKeys(): Promise<ApiKeyCreds>;
getPositions(): Promise<Position[]>;
getWalletAddress(): string | undefined;
}
export interface Position {
asset: string;
conditionId: string;
curPrice: number;
currentValue: number;
initialValue: number;
outcome: string;
percentPnl: number;
cashPnl: number;
price: number;
pricePerShare: number;
proxyWallet: string | null;
redeemable: boolean;
size: number;
title: string;
}
export {};