@dzapio/sdk
Version:
A TypeScript/JavaScript SDK for interacting with the DZap protocol, providing utilities for DeFi operations including Swaps, Bridges, and Zaps.
1,014 lines (1,013 loc) • 37.1 kB
TypeScript
import { Signer } from 'ethers';
import { Prettify, TransactionReceipt, WalletClient } from 'viem';
import { ContractVersion, StatusCodes, TxnStatus } from '../enums';
import { ApprovalMode, AvailableDZapServices, CalculatePointsRequest, ChainData, EvmTxData, GaslessTradeBuildTxnResponse, GasSignatureParams, HexString, OtherAvailableAbis, PermitMode, SignPermitResponse, TokenInfo, TokenResponse, TradeBuildTxnRequest, TradeBuildTxnResponse, TradeQuotesRequest, TradeQuotesResponse, TradeStatusResponse } from '../types';
import { ZapBuildTxnRequest, ZapBuildTxnResponse, ZapChains, ZapPoolDetails, ZapPoolDetailsRequest, ZapPoolsRequest, ZapPoolsResponse, ZapPositionsRequest, ZapPositionsResponse, ZapProviders, ZapQuoteRequest, ZapQuoteResponse, ZapStatusRequest, ZapStatusResponse, ZapTransactionStep } from '../types/zap';
import { BatchCallParams } from '../utils/eip-5792';
declare class DZapClient {
private static instance;
private cancelTokenSource;
private static chainConfig;
private priceService;
private constructor();
static getInstance(apiKey?: string, rpcUrlsByChainId?: Record<number, string[]>): DZapClient;
static getChainConfig(): Promise<ChainData>;
static getDZapAbi(service: AvailableDZapServices, version: ContractVersion): import("viem").Abi;
static getOtherAbi: (name: OtherAvailableAbis) => readonly [{
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "deadline";
readonly type: "uint256";
}];
readonly name: "AllowanceExpired";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "ExcessiveInvalidation";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}];
readonly name: "InsufficientAllowance";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "maxAmount";
readonly type: "uint256";
}];
readonly name: "InvalidAmount";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "InvalidContractSignature";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "InvalidNonce";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "InvalidSignature";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "InvalidSignatureLength";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "InvalidSigner";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "LengthMismatch";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "signatureDeadline";
readonly type: "uint256";
}];
readonly name: "SignatureExpired";
readonly type: "error";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "spender";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint160";
readonly name: "amount";
readonly type: "uint160";
}, {
readonly indexed: false;
readonly internalType: "uint48";
readonly name: "expiration";
readonly type: "uint48";
}];
readonly name: "Approval";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "address";
readonly name: "spender";
readonly type: "address";
}];
readonly name: "Lockdown";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "spender";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint48";
readonly name: "newNonce";
readonly type: "uint48";
}, {
readonly indexed: false;
readonly internalType: "uint48";
readonly name: "oldNonce";
readonly type: "uint48";
}];
readonly name: "NonceInvalidation";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "spender";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint160";
readonly name: "amount";
readonly type: "uint160";
}, {
readonly indexed: false;
readonly internalType: "uint48";
readonly name: "expiration";
readonly type: "uint48";
}, {
readonly indexed: false;
readonly internalType: "uint48";
readonly name: "nonce";
readonly type: "uint48";
}];
readonly name: "Permit";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "word";
readonly type: "uint256";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "mask";
readonly type: "uint256";
}];
readonly name: "UnorderedNonceInvalidation";
readonly type: "event";
}, {
readonly inputs: readonly [];
readonly name: "DOMAIN_SEPARATOR";
readonly outputs: readonly [{
readonly internalType: "bytes32";
readonly name: "";
readonly type: "bytes32";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly name: "allowance";
readonly outputs: readonly [{
readonly internalType: "uint160";
readonly name: "amount";
readonly type: "uint160";
}, {
readonly internalType: "uint48";
readonly name: "expiration";
readonly type: "uint48";
}, {
readonly internalType: "uint48";
readonly name: "nonce";
readonly type: "uint48";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "spender";
readonly type: "address";
}, {
readonly internalType: "uint160";
readonly name: "amount";
readonly type: "uint160";
}, {
readonly internalType: "uint48";
readonly name: "expiration";
readonly type: "uint48";
}];
readonly name: "approve";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "spender";
readonly type: "address";
}, {
readonly internalType: "uint48";
readonly name: "newNonce";
readonly type: "uint48";
}];
readonly name: "invalidateNonces";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "wordPos";
readonly type: "uint256";
}, {
readonly internalType: "uint256";
readonly name: "mask";
readonly type: "uint256";
}];
readonly name: "invalidateUnorderedNonces";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "spender";
readonly type: "address";
}];
readonly internalType: "struct IAllowanceTransfer.TokenSpenderPair[]";
readonly name: "approvals";
readonly type: "tuple[]";
}];
readonly name: "lockdown";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly name: "nonceBitmap";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}, {
readonly components: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "uint160";
readonly name: "amount";
readonly type: "uint160";
}, {
readonly internalType: "uint48";
readonly name: "expiration";
readonly type: "uint48";
}, {
readonly internalType: "uint48";
readonly name: "nonce";
readonly type: "uint48";
}];
readonly internalType: "struct IAllowanceTransfer.PermitDetails[]";
readonly name: "details";
readonly type: "tuple[]";
}, {
readonly internalType: "address";
readonly name: "spender";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "sigDeadline";
readonly type: "uint256";
}];
readonly internalType: "struct IAllowanceTransfer.PermitBatch";
readonly name: "permitBatch";
readonly type: "tuple";
}, {
readonly internalType: "bytes";
readonly name: "signature";
readonly type: "bytes";
}];
readonly name: "permit";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}, {
readonly components: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "uint160";
readonly name: "amount";
readonly type: "uint160";
}, {
readonly internalType: "uint48";
readonly name: "expiration";
readonly type: "uint48";
}, {
readonly internalType: "uint48";
readonly name: "nonce";
readonly type: "uint48";
}];
readonly internalType: "struct IAllowanceTransfer.PermitDetails";
readonly name: "details";
readonly type: "tuple";
}, {
readonly internalType: "address";
readonly name: "spender";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "sigDeadline";
readonly type: "uint256";
}];
readonly internalType: "struct IAllowanceTransfer.PermitSingle";
readonly name: "permitSingle";
readonly type: "tuple";
}, {
readonly internalType: "bytes";
readonly name: "signature";
readonly type: "bytes";
}];
readonly name: "permit";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}];
readonly internalType: "struct ISignatureTransfer.TokenPermissions";
readonly name: "permitted";
readonly type: "tuple";
}, {
readonly internalType: "uint256";
readonly name: "nonce";
readonly type: "uint256";
}, {
readonly internalType: "uint256";
readonly name: "deadline";
readonly type: "uint256";
}];
readonly internalType: "struct ISignatureTransfer.PermitTransferFrom";
readonly name: "permit";
readonly type: "tuple";
}, {
readonly components: readonly [{
readonly internalType: "address";
readonly name: "to";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "requestedAmount";
readonly type: "uint256";
}];
readonly internalType: "struct ISignatureTransfer.SignatureTransferDetails";
readonly name: "transferDetails";
readonly type: "tuple";
}, {
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}, {
readonly internalType: "bytes";
readonly name: "signature";
readonly type: "bytes";
}];
readonly name: "permitTransferFrom";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}];
readonly internalType: "struct ISignatureTransfer.TokenPermissions[]";
readonly name: "permitted";
readonly type: "tuple[]";
}, {
readonly internalType: "uint256";
readonly name: "nonce";
readonly type: "uint256";
}, {
readonly internalType: "uint256";
readonly name: "deadline";
readonly type: "uint256";
}];
readonly internalType: "struct ISignatureTransfer.PermitBatchTransferFrom";
readonly name: "permit";
readonly type: "tuple";
}, {
readonly components: readonly [{
readonly internalType: "address";
readonly name: "to";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "requestedAmount";
readonly type: "uint256";
}];
readonly internalType: "struct ISignatureTransfer.SignatureTransferDetails[]";
readonly name: "transferDetails";
readonly type: "tuple[]";
}, {
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}, {
readonly internalType: "bytes";
readonly name: "signature";
readonly type: "bytes";
}];
readonly name: "permitTransferFrom";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}];
readonly internalType: "struct ISignatureTransfer.TokenPermissions";
readonly name: "permitted";
readonly type: "tuple";
}, {
readonly internalType: "uint256";
readonly name: "nonce";
readonly type: "uint256";
}, {
readonly internalType: "uint256";
readonly name: "deadline";
readonly type: "uint256";
}];
readonly internalType: "struct ISignatureTransfer.PermitTransferFrom";
readonly name: "permit";
readonly type: "tuple";
}, {
readonly components: readonly [{
readonly internalType: "address";
readonly name: "to";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "requestedAmount";
readonly type: "uint256";
}];
readonly internalType: "struct ISignatureTransfer.SignatureTransferDetails";
readonly name: "transferDetails";
readonly type: "tuple";
}, {
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}, {
readonly internalType: "bytes32";
readonly name: "witness";
readonly type: "bytes32";
}, {
readonly internalType: "string";
readonly name: "witnessTypeString";
readonly type: "string";
}, {
readonly internalType: "bytes";
readonly name: "signature";
readonly type: "bytes";
}];
readonly name: "permitWitnessTransferFrom";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}];
readonly internalType: "struct ISignatureTransfer.TokenPermissions[]";
readonly name: "permitted";
readonly type: "tuple[]";
}, {
readonly internalType: "uint256";
readonly name: "nonce";
readonly type: "uint256";
}, {
readonly internalType: "uint256";
readonly name: "deadline";
readonly type: "uint256";
}];
readonly internalType: "struct ISignatureTransfer.PermitBatchTransferFrom";
readonly name: "permit";
readonly type: "tuple";
}, {
readonly components: readonly [{
readonly internalType: "address";
readonly name: "to";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "requestedAmount";
readonly type: "uint256";
}];
readonly internalType: "struct ISignatureTransfer.SignatureTransferDetails[]";
readonly name: "transferDetails";
readonly type: "tuple[]";
}, {
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}, {
readonly internalType: "bytes32";
readonly name: "witness";
readonly type: "bytes32";
}, {
readonly internalType: "string";
readonly name: "witnessTypeString";
readonly type: "string";
}, {
readonly internalType: "bytes";
readonly name: "signature";
readonly type: "bytes";
}];
readonly name: "permitWitnessTransferFrom";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "from";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "to";
readonly type: "address";
}, {
readonly internalType: "uint160";
readonly name: "amount";
readonly type: "uint160";
}, {
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly internalType: "struct IAllowanceTransfer.AllowanceTransferDetails[]";
readonly name: "transferDetails";
readonly type: "tuple[]";
}];
readonly name: "transferFrom";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "from";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "to";
readonly type: "address";
}, {
readonly internalType: "uint160";
readonly name: "amount";
readonly type: "uint160";
}, {
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly name: "transferFrom";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}] | readonly [{
readonly constant: true;
readonly inputs: readonly [];
readonly name: "name";
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
}];
readonly payable: false;
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly constant: false;
readonly inputs: readonly [{
readonly name: "_spender";
readonly type: "address";
}, {
readonly name: "_value";
readonly type: "uint256";
}];
readonly name: "approve";
readonly outputs: readonly [];
readonly payable: false;
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly constant: true;
readonly inputs: readonly [];
readonly name: "totalSupply";
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
}];
readonly payable: false;
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly constant: false;
readonly inputs: readonly [{
readonly name: "_from";
readonly type: "address";
}, {
readonly name: "_to";
readonly type: "address";
}, {
readonly name: "_value";
readonly type: "uint256";
}];
readonly name: "transferFrom";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
}];
readonly payable: false;
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly constant: true;
readonly inputs: readonly [];
readonly name: "decimals";
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint8";
}];
readonly payable: false;
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly constant: true;
readonly inputs: readonly [{
readonly name: "_owner";
readonly type: "address";
}];
readonly name: "balanceOf";
readonly outputs: readonly [{
readonly name: "balance";
readonly type: "uint256";
}];
readonly payable: false;
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly constant: true;
readonly inputs: readonly [];
readonly name: "symbol";
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
}];
readonly payable: false;
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly constant: false;
readonly inputs: readonly [{
readonly name: "_to";
readonly type: "address";
}, {
readonly name: "_value";
readonly type: "uint256";
}];
readonly name: "transfer";
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
}];
readonly payable: false;
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly constant: true;
readonly inputs: readonly [{
readonly name: "_owner";
readonly type: "address";
}, {
readonly name: "_spender";
readonly type: "address";
}];
readonly name: "allowance";
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
}];
readonly payable: false;
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly payable: true;
readonly stateMutability: "payable";
readonly type: "fallback";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly name: "owner";
readonly type: "address";
}, {
readonly indexed: true;
readonly name: "spender";
readonly type: "address";
}, {
readonly indexed: false;
readonly name: "value";
readonly type: "uint256";
}];
readonly name: "Approval";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly name: "from";
readonly type: "address";
}, {
readonly indexed: true;
readonly name: "to";
readonly type: "address";
}, {
readonly indexed: false;
readonly name: "value";
readonly type: "uint256";
}];
readonly name: "Transfer";
readonly type: "event";
}];
getTradeQuotes(request: TradeQuotesRequest): Promise<TradeQuotesResponse>;
buildTradeTxn(request: TradeBuildTxnRequest): Promise<TradeBuildTxnResponse>;
getTradeTxnStatus({ txHash, txIds, chainId, }: {
txHash?: string;
txIds?: string;
chainId?: number;
}): Promise<TradeStatusResponse | Record<string, TradeStatusResponse>>;
getAllSupportedChains(): Promise<ChainData>;
getAllTokens(chainId: number, source?: string, account?: string): Promise<any>;
getTokenDetails(tokenAddress: string, chainId: number, account?: string, includeBalance?: boolean, includePrice?: boolean): Promise<TokenInfo>;
getTokensDetails(tokenAddresses: string[], chainId: number, account?: string, includeBalance?: boolean, includePrice?: boolean): Promise<Record<string, TokenInfo> | TokenInfo>;
getTokenPrices(tokenAddresses: string[], chainId: number): Promise<Record<string, string | null>>;
trade({ request, signer, txnData, batchTransaction, rpcUrls, }: {
request: TradeBuildTxnRequest;
signer: Signer | WalletClient;
txnData?: TradeBuildTxnResponse;
batchTransaction?: boolean;
rpcUrls?: string[];
}): Promise<import("../types").DZapTransactionResponse>;
tradeGasless({ request, signer, txnData, }: {
request: TradeBuildTxnRequest;
signer: Signer | WalletClient;
txnData?: GaslessTradeBuildTxnResponse;
}): Promise<import("../types").DZapTransactionResponse>;
sendTransaction({ chainId, signer, txnData }: {
chainId: number;
signer: Signer | WalletClient;
txnData: EvmTxData;
}): Promise<{
status: TxnStatus;
error: any;
errorMsg: any;
code: StatusCodes;
} | {
status: TxnStatus;
code: StatusCodes;
txnHash: HexString;
}>;
waitForBatchTransactionReceipt({ walletClient, batchHash }: {
walletClient: WalletClient;
batchHash: HexString;
}): Promise<import("../types/wallet").WalletCallReceipt>;
decodeTxnData({ data, service, chainId }: {
data: TransactionReceipt;
service: AvailableDZapServices;
chainId: number;
}): Promise<{
swapFailPairs: string[];
swapInfo: import("../types").SwapInfo | import("../types").SwapInfo[];
}>;
calculatePoints(request: CalculatePointsRequest): Promise<{
points: number;
}>;
getDZapContractAddress({ chainId, service }: {
chainId: number;
service: AvailableDZapServices;
}): Promise<string>;
getAllowance({ chainId, sender, tokens, service, rpcUrls, spender, mode, }: {
chainId: number;
sender: HexString;
tokens: {
address: HexString;
amount: string;
}[];
service: AvailableDZapServices;
rpcUrls?: string[];
spender?: HexString;
mode?: ApprovalMode;
}): Promise<{
status: TxnStatus;
code: StatusCodes;
data: {
[key: string]: {
allowance: bigint;
approvalNeeded: boolean;
signatureNeeded: boolean;
};
};
}>;
approve({ chainId, signer, tokens, approvalTxnCallback, service, mode, rpcUrls, spender, }: {
chainId: number;
signer: WalletClient | Signer;
tokens: {
address: HexString;
amount: string;
}[];
approvalTxnCallback?: ({ txnDetails, address, }: {
txnDetails: {
txnHash: string;
code: StatusCodes;
status: TxnStatus;
};
address: HexString;
}) => Promise<TxnStatus | null>;
service: AvailableDZapServices;
spender?: HexString;
rpcUrls?: string[];
mode?: ApprovalMode;
}): Promise<{
status: TxnStatus;
code: StatusCodes;
}>;
sign(params: Prettify<Omit<GasSignatureParams, 'spender' | 'permitType' | 'rpcUrls' | 'gasless' | 'contractVersion'> & {
spender?: HexString;
permitType?: PermitMode;
rpcUrls?: string[];
service: AvailableDZapServices;
}>): Promise<SignPermitResponse>;
zap({ request, steps, signer }: {
request: ZapBuildTxnRequest;
signer: WalletClient | Signer;
steps?: ZapTransactionStep[];
}): Promise<import("../types").DZapTransactionResponse | {
status: TxnStatus.success;
code: StatusCodes | number;
txnHash: HexString;
}>;
buildZapTxn(request: ZapBuildTxnRequest): Promise<ZapBuildTxnResponse>;
getZapQuote(request: ZapQuoteRequest): Promise<ZapQuoteResponse>;
getZapTxnStatus(request: ZapStatusRequest): Promise<ZapStatusResponse>;
getBalances(chainId: number, account: string): Promise<TokenResponse>;
sendBatchCalls({ walletClient, calls }: {
walletClient: WalletClient;
calls: BatchCallParams[];
}): Promise<{
id: string;
} | null>;
getZapPositions(request: ZapPositionsRequest): Promise<ZapPositionsResponse>;
getZapPools(request: ZapPoolsRequest): Promise<ZapPoolsResponse>;
getZapPoolDetails(request: ZapPoolDetailsRequest): Promise<ZapPoolDetails>;
getZapChains(): Promise<ZapChains>;
getZapProviders(): Promise<ZapProviders>;
}
export default DZapClient;