UNPKG

@paraswap/sdk

Version:
71 lines (62 loc) 2.45 kB
import type { OrderData } from './buildOrderData'; export type LimitOrderType = 'LIMIT' | 'P2P'; export type LimitOrder = LimitOrderFromApi; export type LimitOrderToSend = OrderData & { permitMakerAsset?: string; signature: string; }; export type LimitOrdersApiResponse = { limit: number; offset: number; total: number; hasMore: boolean; orders: LimitOrderFromApi[]; }; export type LimitOrderApiResponse = { order: LimitOrderFromApi; }; // display states such as EXPIRED and PARTIALLY_FILLLED derived on client side // returned by API but can be calculated too, EXPIRED == order.expiry < Date.now()/1000 // PARTIALLY_FILLED == order.fillableBalance < order.makerAmount && order.fillableBalance !== '0' // SUSPENDED status was introduced for Limit orders to indicate that orders where makers lacked sufficient funds // to fulfill them would no longer be tracked. This status is similar to CANCELLED, but it reduces any ambiguity that might // arise when debugging or when users view their CANCELLED orders. export type LimitOrderState = | 'DRAFT' | 'PENDING' | 'FULFILLED' | 'CANCELLED' | 'SUSPENDED' | 'EXPIRED'; export type LimitOrderEvent = ''; export type LimitOrderTransaction = { hash: string; event_type: 'OrderFilled' | 'OrderCancelled'; }; export type LimitOrderFromApi = { chainId: number; nonceAndMeta: string; // uiint expiry: number; // timestamp maker: string; // address taker: string; // address makerAsset: string; // address takerAsset: string; // address makerAmount: string; // wei takerAmount: string; // wei makerBalance: string; // min(fillableBalance, allowance(maker), balance(maker)] signature: string; // supplied by FE permitMakerAsset: null | string; // address orderHash: string; // hex string createdAt: number; // timestamp updatedAt: number; // timestamp state: LimitOrderState; /** @description transaction with the last event pertaining to the order: OrderFilled or OrderCancelled */ transactionHash: null | string; // not yet returned // transactions: LimitOrderTransaction[]; type: LimitOrderType; takerFromMeta: string; // the intended receiver, eg receiving address of p2p order where `taker` would be augustus fillableBalance: string; // amount that remains to be filled reservedBalance: string; // amount that is currently reserved in this order swappableBalance: string; // actual amount that can be filled at this time };