UNPKG

@velora-dex/sdk

Version:
177 lines 7.45 kB
import type { Prettify } from 'ts-essentials'; import type { Address } from '../../types'; import type { TypedDataField } from '../common/orders/buildOrderData'; import type { Bridge, DeltaOrderType, DeltaOrderUnion, OnChainOrderMap, OnChainOrderType } from './helpers/types'; /** @description Response from POST /v2/delta/orders/build — EIP-712 typed data ready to sign. */ export type BuiltDeltaOrder<T extends DeltaOrderUnion = DeltaOrderUnion> = { toSign: { domain: { name: string; version: string; chainId: number; verifyingContract: string; }; /** EIP-712 type definitions keyed by type name. */ types: Record<string, TypedDataField[]>; /** The on-chain order struct value to sign. */ value: T; }; /** EIP-712 order hash. */ orderHash: string; }; /** @description Token identity used across v2 endpoints. */ export type DeltaPriceToken = { chainId: number; address: Address; }; /** @description A token amount with its USD value, used uniformly for inputs, outputs, and fees. */ export type DeltaTokenAmount = { token: DeltaPriceToken; /** @description Amount in wei. */ amount: string; /** @description USD value of the amount. */ amountUSD: string; }; /** @description Bridge tag used to mark routes as recommended / fastest / best-return. */ export type BridgeTag = 'recommended' | 'fastest' | 'best-return'; /** @description Subset of the on-chain Bridge struct returned in v2 price responses. * (the full `route` object is passed to the server when building an order). */ export type DeltaRouteBridgeContractParams = Omit<Bridge, 'destinationChainId'>; /** @description Bridge details on a route. Same-chain routes carry `null` for `route.bridge`. */ export type DeltaRouteBridge = { /** @description Bridge protocol identifier (e.g. "Across", "Relay", "Mayan"). */ protocol: string; /** @description Estimated bridging time in milliseconds. */ estimatedTimeMs: number; /** @description Tags for this route ("recommended", "fastest", "best-return"). May be empty. */ tags: BridgeTag[]; /** @description Bridge contract parameters as returned by the server. */ contractParams: DeltaRouteBridgeContractParams; }; /** @description A single step of a route (origin chain or destination chain). */ export type DeltaRouteStep = { /** @description The token amount entering this step (before any per-step swap). */ input: DeltaTokenAmount; /** @description The token amount exiting this step (after any per-step swap). */ output: DeltaTokenAmount; }; /** @description A route describes how the swap flows from origin chain to destination chain. */ export type DeltaRoute = { /** @description Source-chain step. The on-chain Delta order's amounts come from `origin.input` and `origin.output`. */ origin: DeltaRouteStep; /** @description Destination-chain step. For same-chain routes this mirrors `origin`. */ destination: DeltaRouteStep; /** @description Bridge details. `null` for same-chain routes. */ bridge: DeltaRouteBridge | null; /** @description Fee breakdown for this route. */ fees: { /** @description Gas fee (single DeltaTokenAmount on the source chain). */ gas: DeltaTokenAmount; /** @description Bridge fees (empty array for same-chain). */ bridge: DeltaTokenAmount[]; }; }; /** @description v2 price response: route-based, cross-chain first. */ export type DeltaPrice = { /** @description Unique request ID for tracing. */ id: string; /** @description Order side. */ side: 'SELL' | 'BUY'; /** @description Token the user trades (identity only — amounts live in route.origin.input). */ inputToken: DeltaPriceToken; /** @description Token the user receives (identity only — amounts live in route.destination.output). */ outputToken: DeltaPriceToken; /** @description Recommended route with full amounts and bridge details. */ route: DeltaRoute; /** @description Partner info attached to this price. */ partner: { name: string; /** @description Partner fee in percent (e.g. 0.12 = 0.12%). */ feePercent: number; }; /** @description Address to approve for spending the input token. */ spender: Address; /** @description Alternative routes (other bridges). Each is a full DeltaRoute. */ alternatives: DeltaRoute[]; }; /** @description * A flat bridge-routes entry returned by GET /v2/delta/prices/bridge-routes (better version of v1 prices/bridge-info). * Can be used to populate bridge selection UIs and to validate that bridge is possible for a given src/dest pair before calling GET /v2/delta/prices. * */ export type BridgeRoute = { srcChainId: number; destChainId: number; /** @description Output tokens supported on the dest chain for this src→dest pair. */ tokens: Address[]; }; /** @description Integrator-facing order status returned by v2 order endpoints. */ declare const DeltaOrderStatusMap: { readonly Pending: "PENDING"; readonly AwaitingSignature: "AWAITING_SIGNATURE"; readonly Active: "ACTIVE"; readonly Suspended: "SUSPENDED"; readonly Cancelling: "CANCELLING"; readonly Bridging: "BRIDGING"; readonly Completed: "COMPLETED"; readonly Failed: "FAILED"; readonly Expired: "EXPIRED"; readonly Cancelled: "CANCELLED"; readonly Refunded: "REFUNDED"; readonly Refunding: "REFUNDING"; }; export type DeltaOrderStatus = (typeof DeltaOrderStatusMap)[keyof typeof DeltaOrderStatusMap]; /** @description Token side on an order. SELL provides an explicit `amount`; BUY provides expected/executed amounts. */ export type DeltaTokenSide = { chainId: number; token: Address; amount: string; } | { chainId: number; token: Address; expectedAmount: string | null; executedAmount: string | null; }; /** @description A single transaction entry on a v2 order. */ export type DeltaTransaction = { originTx: string; destinationTx: string | null; /** @description Filled percent of the slice (0–100). */ filledPercent: number; spentAmount: string | null; receivedAmount: string | null; }; export type BridgeRefundMetadata = { tx: string; chainId: number; token: Address; amount: string; }; type DeltaAuctionBase = { id: string; status: DeltaOrderStatus; side: 'SELL' | 'BUY'; type: DeltaOrderType; input: DeltaTokenSide; output: DeltaTokenSide; owner: Address; beneficiary: Address; orderHash: string; partner: string; transactions: DeltaTransaction[]; refunds: BridgeRefundMetadata[]; /** @description ISO datetime string. */ createdAt: string; /** @description ISO datetime string. */ updatedAt: string; /** @description ISO datetime string. */ expiresAt: string; }; /** @description Order shape returned by GET /v2/orders, /v2/orders/:id, /v2/orders/hash/:hash. * Generic over `onChainOrderType` like v1's `DeltaAuction`: the type distributes over the * union so that `order` narrows to the matching family (`OnChainOrderMap[T]`). */ export type DeltaAuction<T extends OnChainOrderType = OnChainOrderType> = T extends T ? Prettify<DeltaAuctionBase & { onChainOrderType: T; order: OnChainOrderMap[T]; }> : never; export {}; //# sourceMappingURL=types.d.ts.map