UNPKG

@robertprp/intents-sdk

Version:

Shogun Network Intent-based cross-chain swaps SDK

79 lines (70 loc) 2.13 kB
import type { ExtraTransfer } from '../core/orders/common.js'; export type ChainOrderStatus = 'Auction' | 'NoBids' | 'Executing' | 'Fulfilled' | 'Cancelled' | 'Outdated'; export type ApiCrossChainOrder = { orderId: string; // Flattened fields from the API response user: string; srcChainId: number; tokenIn: string; minStablecoinsAmount: string; destChainId: number; tokenOut: string; amountOutMin: string; destinationAddress: string; extraTransfers?: ExtraTransfer[]; deadline: number; executionDetailsHash: string; amountIn: string; // Cross-chain specific fields executionDetails: string; orderCreationTime: number; orderStatus: ChainOrderStatus; tokensInWereSwappedToStablecoins: boolean; lockedStablecoins: string; nonce?: string; orderFulfillmentTimestamp?: number; transactionHash?: string; amountOut?: string; }; export type ApiSingleChainOrder = { orderId: string; // Flattened fields from the API response user: string; chainId: number; tokenIn: string; tokenOut: string; amountOutMin: string; destinationAddress: string; extraTransfers?: ExtraTransfer[]; deadline: number; amountIn: string; // Single-chain specific fields orderCreationTime: number; orderStatus: ChainOrderStatus; nonce?: string; orderFulfillmentTimestamp?: number; transactionHash?: string; amountOut?: string; }; export type ApiUserOrders = { singleChainLimitOrders: ApiSingleChainOrder[]; crossChainLimitOrders: ApiCrossChainOrder[]; }; export type ValidResponseData = ApiUserOrders | string | null; export type ApiResponse<T extends ValidResponseData = ValidResponseData> = { success: boolean; code: number; data?: T; error?: unknown; extra_error_data?: unknown; }; export function isSuccessApiResponse<T extends ValidResponseData>( response: ApiResponse<T>, ): response is ApiResponse<T> & { success: true; data: T } { return response.success; } export function isErrorApiResponse<T extends ValidResponseData>( response: ApiResponse<T>, ): response is ApiResponse<T> & { success: false; error: unknown } { return !response.success; }