@dzapio/sdk
Version:
A TypeScript/JavaScript SDK for interacting with the DZap protocol, providing utilities for DeFi operations including Swaps, Bridges, and Zaps.
66 lines (65 loc) • 1.71 kB
TypeScript
import { HexString, ProviderDetails } from 'src/types';
import { ZapPath, ZapPathAsset } from './path';
import { ZapStep } from './step';
export type ZapBuildTxnResponse = {
amountOut: string;
approvalData: {
callTo: HexString;
approveTo: HexString;
amount: string;
} | null;
steps: ZapStep[];
path: ZapPath[];
};
export type ZapQuoteResponse = Omit<ZapBuildTxnResponse, 'steps'>;
export type ZapBuildTxnRequest = {
srcToken: HexString;
srcChainId: number;
destToken: HexString;
destChainId: number;
recipient: HexString;
refundee: HexString;
slippage: number;
account: HexString;
permitData?: HexString;
amount?: string;
estimateGas?: boolean;
positionDetails?: ZapRouteRequestPositionDetails;
poolDetails?: ZapRouteRequestPoolDetails;
allowedBridges?: string[];
allowedDexes?: string[];
};
export type ZapQuoteRequest = ZapBuildTxnRequest;
export type ZapRouteRequestPositionDetails = {
nftId: string;
};
export type ZapRouteRequestPoolDetails = {
lowerTick: number;
upperTick: number;
metadata?: unknown;
};
export type ZapStatus = 'PENDING' | 'COMPLETED' | 'FAILED';
export type ZapStatusAsset = {
asset: ZapPathAsset;
amount: string;
amountUSD: string;
};
export type ZapStatusStep = {
chainId: number;
hash?: string;
status: ZapStatus;
action: string;
protocol: ProviderDetails;
input: ZapStatusAsset[];
output: ZapStatusAsset[];
};
export type ZapStatusResponse = {
status: ZapStatus;
steps: ZapStatusStep[];
};
export type ZapStatusRequest = {
chainId: number;
txnHash: string;
};
export * from './path';
export * from './step';