n8n-nodes-dex
Version:
n8n node module for dYdX v4 trading and account access
134 lines (133 loc) • 2.97 kB
TypeScript
import { OrderType, OrderSide, OrderTimeInForce } from '@dydxprotocol/v4-client-js';
export interface DydxOrderParams {
market: string;
type: OrderType;
side: OrderSide;
timeInForce?: OrderTimeInForce;
timeInForceSeconds?: number;
postOnly?: boolean;
price: number;
size: number;
}
export interface SubaccountTransferParams {
fromId: number;
toId: number;
amount: number;
}
export interface DydxSetPosition {
market: string;
size: number;
}
export interface DydxCancelOrderParams {
clientId: number;
market: string;
}
export interface DydxOrder {
price: number;
size: number;
}
export interface DydxOrderbook {
bids: DydxOrder[];
asks: DydxOrder[];
}
export interface PerpetualPosition {
market: string;
status: string;
side: string;
size: string;
maxSize: string;
entryPrice: string;
exitPrice: string;
realizedPnl: string;
unrealizedPnl: string;
createdAt: string;
createdAtHeight: string;
closedAt: string | null;
sumOpen: string;
sumClose: string;
netFunding: string;
subaccountNumber: number;
}
export interface AssetPosition {
size: string;
symbol: string;
side: string;
assetId: string;
subaccountNumber: number;
}
export interface DydxSubaccount {
address: string;
subaccountNumber: number;
equity: string;
freeCollateral: string;
openPerpetualPositions: {
[key: string]: PerpetualPosition;
};
assetPositions: {
[key: string]: AssetPosition;
};
marginEnabled: boolean;
updatedAtHeight: string;
latestProcessedBlockHeight: string;
}
export interface MarketSpread {
bestBid: {
price: number;
size: number;
};
bestAsk: {
price: number;
size: number;
};
}
export interface PerpetualMarket {
clobPairId: string;
ticker: string;
status: string;
oraclePrice: string;
priceChange24H: string;
volume24H: string;
trades24H: string;
nextFundingRate: string;
initialMarginFraction: string;
maintenanceMarginFraction: string;
basePositionNotional: string;
openInterest: string;
atomicResolution: string;
quantumConversionExponent: string;
tickSize: string;
stepSize: string;
stepBaseQuantums: string;
subticksPerTick: string;
}
export interface MarketTrade {
id: string;
side: string;
size: string;
price: string;
createdAt: string;
type: string;
}
export interface Candle {
startedAt: string;
ticker: string;
resolution: string;
low: string;
high: string;
open: string;
close: string;
baseTokenVolume: string;
usdVolume: string;
trades: string;
}
export interface FundingRate {
ticker: string;
rate: string;
effectiveAt: string;
effectiveAtHeight: string;
}
export interface Sparkline {
ticker: string;
prices: string[];
times: string[];
}