UNPKG

@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
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;