import { Hex } from 'viem'; import { Address } from 'viem'; import { Side, TimeInForce } from '../../types/common'; import { CancelData } from '../../types'; export type OrderBy = 'timeClosed' | 'positionSize' | 'avgFixedApr' | 'avgUnderlyingApr' | 'pnl'; export type PlaceOrderParams = { marketAcc: Hex; marketId: number; side: Side; size: bigint; limitTick?: number; slippage?: number; tif: TimeInForce; nonces?: bigint[]; }; export type Orders = { tif: TimeInForce; sides: Side[]; sizes: bigint[]; limitTicks: number[]; }; export type BulkOrders = { tif: TimeInForce; side: Side; sizes: bigint[]; limitTicks: number[]; }; export type SingleOrderRequest = { marketAcc: Hex; marketId: number; side: Side; size: bigint; limitTick: number; tif: TimeInForce; ammId?: number; slippage?: number; }; export type BulkOrderRequest = { cross: boolean; bulks: { marketId: number; orders: BulkOrders; cancelData: CancelData; }[]; slippage?: number; }; export type BulkPlaceOrderV5Params = { orderRequests: (SingleOrderRequest | BulkOrderRequest)[]; nonces?: bigint[]; }; export type BulkPlaceOrderV4Params = { singleOrders?: { marketAcc: Hex; marketId: number; side: Side; size: bigint; limitTick: number; tif: TimeInForce; ammId?: number; slippage?: number; }[]; bulkOrders?: { cross: boolean; bulks: { marketId: number; orders: BulkOrders; cancelData: CancelData; }[]; slippage?: number; }[]; nonces?: bigint[]; }; export type BulkPlaceOrderV3Params = { cross: boolean; bulks: { marketId: number; orders: Orders; cancelData: CancelData; }[]; slippage?: number; }; export type BulkPlaceOrderParams = { marketAcc: Hex; marketId: number; cancels: CancelData; orders: Orders; }; export type BulkPlaceOrderV2Params = { marketAcc: Hex; marketId: number; sides: Side[]; sizes: bigint[]; limitTicks: number[]; tif: TimeInForce; ammId?: number; slippage?: number; nonces?: bigint[]; }; export type CancelOrdersParams = { marketAcc: Hex; marketId: number; cancelAll: boolean; orderIds: string[]; nonces?: bigint[]; }; export type PayTreasuryParams = { isCross: boolean; marketId: number; usdAmount: number; nonces?: bigint[]; }; export type DepositParams = { userAddress: Address; tokenId: number; tokenAddress?: Address; amount: bigint; accountId: number; marketId: number; }; export type WithdrawParams = { userAddress: Address; tokenId: number; amount: bigint; }; export type CashTransferParams = { marketId: number; isDeposit: boolean; amount: bigint; nonces?: bigint[]; }; export type CloseActivePositionsParams = { marketAcc: Hex; marketId: number; side: Side; size: bigint; limitTick: number; slippage?: number; tif: TimeInForce; nonces?: bigint[]; }; export type UpdateSettingsParams = { marketAcc: Hex; marketId: number; leverage: number; signature: Hex; agent: Hex; timestamp: number; }; export type GetMarketsParams = { skip?: number; limit?: number; isWhitelisted?: boolean; }; export type GetOrderBookParams = { marketId: number; tickSize: 0.00001 | 0.0001 | 0.001 | 0.01 | 0.1; }; export type GetPnlLimitOrdersParams = { userAddress?: Address; accountId?: number; tokenId: number; marketId: number; isActive?: boolean; orderBy?: OrderBy; skip?: number; limit?: number; fromContract?: boolean; };