@ln-markets/sdk
Version:
TypeScript SDK for LNMarkets API v2
264 lines (263 loc) • 9.24 kB
TypeScript
export type RestClient = ReturnType<typeof createRestClient>;
export type RestFetcher = <T = void>(options: RequestOptions) => Promise<T>;
type RequestOptions = {
body?: Record<string, boolean | number | string>;
method: string;
path: string;
query?: Record<string, boolean | number | string>;
requireAuth?: boolean;
};
type RestOptions = {
headers?: Record<string, string>;
key?: string;
network?: 'mainnet' | 'testnet';
passphrase?: string;
secret?: string;
};
export declare const createRestClient: (options?: RestOptions) => {
futures: {
addMargin: (body: {
amount: number;
id: import("./index.js").UUID;
}) => Promise<import("./index.js").FuturesRunningTrade>;
cancelAllTrades: () => Promise<{
trades: import("./index.js").FuturesCanceledTrade[];
}>;
cancelTrade: (body: {
id: import("./index.js").UUID;
}) => Promise<import("./index.js").FuturesCanceledTrade>;
cashIn: (body: {
amount: number;
id: import("./index.js").UUID;
}) => Promise<import("./index.js").FuturesRunningTrade>;
closeAllTrades: () => Promise<{
trades: import("./index.js").FuturesClosedTrade[];
}>;
closeTrade: (query: {
id: import("./index.js").UUID;
}) => Promise<import("./index.js").FuturesClosedTrade>;
getCarryFeesHistory: (query: {
from: number;
limit?: number;
to: number;
}) => Promise<{
fee: number;
fixingId: import("./index.js").UUID;
id: import("./index.js").UUID;
ts: number;
}[]>;
getFixingHistory: (query?: {
from: number;
limit?: number;
to: number;
}) => Promise<{
feeRate: number;
id: import("./index.js").UUID;
price: number;
time: number;
}[]>;
getIndexHistory: (query?: {
from: number;
limit?: number;
to: number;
}) => Promise<{
time: number;
value: number;
}[]>;
getLeaderboard: () => Promise<import("./index.js").Leaderboard>;
getMarketDetails: () => Promise<import("./index.js").FuturesMarketDetails>;
getOHLCHistory: (query: {
from: number;
limit?: number;
range: import("./index.js").OHLCRange;
to: number;
}) => Promise<import("./index.js").OHLC[]>;
getPriceHistory: (query?: {
from: number;
limit?: number;
to: number;
}) => Promise<{
time: number;
value: number;
}[]>;
getTicker: () => Promise<import("./index.js").FuturesTicker>;
getTrade: (params: {
id: import("./index.js").UUID;
}) => Promise<import("./index.js").FuturesTrade>;
getTrades: (query: {
from?: number;
limit?: number;
to?: number;
type: import("./index.js").FuturesTradeStatus;
}) => Promise<import("./index.js").FuturesTrade[]>;
newTrade: (body: {
leverage: number;
margin?: number;
price?: number;
quantity?: number;
side: import("./index.js").FuturesTradeSide;
stoploss?: number;
takeprofit?: number;
type: import("./index.js").FuturesTradeType;
}) => Promise<import("./index.js").FuturesOpenOrRunningTrade>;
updateTrade: (body: {
id: import("./index.js").UUID;
type: "stoploss" | "takeprofit";
value: number;
}) => Promise<import("./index.js").FuturesOpenOrRunningTrade>;
};
notifications: {
getAll: () => Promise<import("./index.js").Notification[]>;
markAllAsRead: () => Promise<void>;
};
options: {
closeAllTrades: () => Promise<import("./index.js").OptionsTradeClosed[]>;
closeTrade: (query: {
id: import("./index.js").UUID;
}) => Promise<import("./index.js").OptionsTradeClosed>;
getInstrument: (body: {
instrumentName: string;
}) => Promise<import("./index.js").OptionsInstrument>;
getInstruments: () => Promise<{
instruments: string[];
}>;
getMarketDetails: () => Promise<import("./index.js").OptionsMarketDetails>;
getTrade: (params: {
id: import("./index.js").UUID;
}) => Promise<import("./index.js").OptionsTrade>;
getTrades: (query?: {
from: number;
limit?: number;
status: import("./index.js").OptionsTradeStatus;
to: number;
}) => Promise<import("./index.js").OptionsTrade[]>;
getVolatilityIndex: () => Promise<import("./index.js").OptionsVolatilityIndex>;
newTrade: (body: {
instrumentName: string;
quantity: number;
settlement: import("./index.js").OptionsSettlement;
side: import("./index.js").OptionsSide;
}) => Promise<import("./index.js").OptionsTradeRunning>;
updateTrade: (body: {
id: import("./index.js").UUID;
settlement: import("./index.js").OptionsSettlement;
}) => Promise<import("./index.js").OptionsTradeRunningWithDelta>;
};
oracle: {
getIndex: (query: {
from: number;
limit?: number;
to: number;
}) => Promise<{
index: number;
time: number;
}[]>;
getLastPrice: (query: {
from: number;
limit?: number;
to: number;
}) => Promise<{
lastPrice: number;
time: number;
}>;
};
swaps: {
getSwap: (params: {
swapId: import("./index.js").UUID;
}) => Promise<import("./index.js").Swap>;
getSwapBySourceId: (params: {
sourceId: import("./index.js").UUID;
}, query: {
source: import("./index.js").SwapSource;
}) => Promise<import("./index.js").Swap>;
getSwaps: (query?: {
from?: number;
limit?: number;
to?: number;
}) => Promise<import("./index.js").Swap[]>;
newSwap: (body: {
inAmount: number;
inAsset: import("./index.js").SwapAsset;
outAsset: import("./index.js").SwapAsset;
}) => Promise<import("./index.js").Swap>;
};
user: {
deposit: (body: {
amount: number;
}) => Promise<{
depositId: import("./index.js").UUID;
expiry: number;
paymentRequest: string;
}>;
depositSyntheticUsd: (body: {
amount: number;
currency: import("./index.js").Currency;
}) => Promise<{
depositId: import("./index.js").UUID;
expiry: number;
paymentRequest: string;
syntheticUsdAmount: number;
}>;
get: () => Promise<import("./index.js").User>;
getBitcoinAddresses: (query?: {
current: boolean;
}) => Promise<{
address: string;
creationTs: number;
isUsed: boolean;
}[]>;
getDeposit: (params: {
depositId: import("./index.js").UUID;
}) => Promise<import("./index.js").Deposit>;
getDeposits: (query?: {
type: import("./index.js").DepositType;
}) => Promise<import("./index.js").Deposit[]>;
getWithdrawal: (params: {
id: import("./index.js").UUID;
}) => Promise<import("./index.js").WithdrawalCondensed>;
getWithdrawals: () => Promise<import("./index.js").WithdrawalCondensed[]>;
newBitcoinAddress: (body: {
format: "p2tr" | "p2wpkh";
}) => Promise<{
address: string;
creationTs: number;
}>;
transfer: (body: {
amount: number;
toUsername: string;
}) => Promise<{
amount: number;
to: string;
}>;
update: (body: {
autoWithdrawEnabled?: boolean;
autoWithdrawLightningAddress?: boolean;
nostrPubkey?: string;
showLeaderboard?: boolean;
username?: string;
useTaprootAddresses?: boolean;
}) => Promise<import("./index.js").User>;
withdraw: (body: {
invoice: string;
quoteId?: import("./index.js").UUID;
}) => Promise<{
amount?: number;
fee?: number;
id: import("./index.js").UUID;
paymentHash?: string;
successTime?: number;
}>;
withdrawSyntheticUsd: (body: {
amount: number;
currency: import("./index.js").Currency;
}) => Promise<{
amount: number;
currency: import("./index.js").Currency;
feeReserve: number;
minBalanceAfter: number;
quoteId: import("./index.js").UUID;
validUntil: number;
}>;
};
};
export {};