UNPKG

doppler-v3-sdk

Version:
79 lines 4.02 kB
import { ReadContract, ReadAdapter, Drift, FunctionReturn, FunctionArgs } from "@delvtech/drift"; import { Address } from "viem"; import { quoterV2Abi, uniswapV2Router02Abi } from "../../abis"; /** * Type alias for QuoterV2 contract ABI */ export type QuoterV2ABI = typeof quoterV2Abi; export type UniswapV2Router02ABI = typeof uniswapV2Router02Abi; /** * A read-only interface to the Uniswap V3 QuoterV2 contract that provides: * - Price quotes for exact input and output swaps * - Formatted amounts with proper decimal handling * - Simulation of swap outcomes without executing transactions * * @example * ```typescript * const quoter = new ReadQuoter("0x..."); * const quote = await quoter.quoteExactInput({ * tokenIn: "0x...", * tokenOut: "0x...", * amountIn: 1000000n, * fee: 3000, * sqrtPriceLimitX96: 0n * }); * ``` */ export declare class ReadQuoter { /** Underlying QuoterV2 contract instance */ quoter: ReadContract<QuoterV2ABI>; univ2Router: ReadContract<UniswapV2Router02ABI>; /** * Create a ReadQuoter instance * @param quoteV2Address - Contract address of the QuoterV2 * @param univ2RouterAddress - Contract address of the Uniswap V2 Router * @param drift - Drift instance for blockchain interaction (defaults to new instance) */ constructor(quoteV2Address: Address, univ2RouterAddress: Address, drift?: Drift<ReadAdapter>); /** * Get a price quote for swapping an exact amount of input tokens * @param params - Arguments for the quoteExactInputSingle contract method * @param options - Formatting options for the output amount, defaults to 18 decimals * @returns Promise resolving to: * - Raw contract return values */ quoteExactInputV3(params: FunctionArgs<QuoterV2ABI, "quoteExactInputSingle">["params"]): Promise<FunctionReturn<QuoterV2ABI, "quoteExactInputSingle">>; /** * Get a price quote for receiving an exact amount of output tokens * @param params - Arguments for the quoteExactOutputSingle contract method * @param options - Formatting options for the input amount, defaults to 18 decimals * @returns Promise resolving to: * - Raw contract return values */ quoteExactOutputV3(params: FunctionArgs<QuoterV2ABI, "quoteExactOutputSingle">["params"]): Promise<FunctionReturn<QuoterV2ABI, "quoteExactOutputSingle">>; /** * Get a price quote for swapping an exact amount of input tokens using Uniswap V2 * @param params - Arguments for the swapExactTokensForTokens contract method containing: * - amountIn: Exact amount of input tokens to swap * - amountOutMin: Minimum amount of output tokens to receive * - path: Array of token addresses representing swap path * - to: Recipient address of output tokens * - deadline: Unix timestamp deadline for transaction validity * @returns Promise resolving to raw contract return values including: * - amounts: Array of input/output amounts at each swap step */ quoteExactInputV2(params: FunctionArgs<UniswapV2Router02ABI, "getAmountsOut">): Promise<FunctionReturn<UniswapV2Router02ABI, "getAmountsOut">>; /** * Get a price quote for receiving an exact amount of output tokens using Uniswap V2 * @param params - Arguments for the swapExactTokensForTokens contract method containing: * - amountOut: Exact amount of output tokens to receive * - amountInMax: Maximum amount of input tokens to spend * - path: Array of token addresses representing swap path * - to: Recipient address of output tokens * - deadline: Unix timestamp deadline for transaction validity * @returns Promise resolving to raw contract return values including: * - amounts: Array of input/output amounts at each swap step */ quoteExactOutputV2(params: FunctionArgs<UniswapV2Router02ABI, "getAmountsIn">): Promise<FunctionReturn<UniswapV2Router02ABI, "getAmountsIn">>; } //# sourceMappingURL=ReadQuoter.d.ts.map