🪐
Doppler Docs
  • Welcome
  • How it works
    • Explainer
    • Implementation
    • Airlock & modules
    • Fees & economics
    • Treasury & governance
  • Doppler-v3 SDK Reference
    • Factory
    • Token
    • Quoter
  • Doppler-v4 SDK Reference
    • Factory
    • Quoter
    • Lens
  • Featured users
    • Pure.st
    • Ohara
    • Zora
  • Resources
    • GitHub
    • V3 demo application
    • V4 demo application
    • Doppler Whitepaper
    • Multicurve Whitepaper
    • Security & bug bounties
    • Contract addresses
    • Protocol roadmap
Powered by GitBook
On this page
  • ReadQuoter
  • Contract ABIs
  • Example Usage
  1. Doppler-v3 SDK Reference

Quoter

Quoter Class Reference

The Quoter provides price quoting functionality for both Uniswap V3 and V2 swaps. It enables simulation of exact input/output swaps without executing transactions, with proper decimal handling for amounts.

ReadQuoter

export class ReadQuoter {
  constructor(
    quoteV2Address: Address,
    univ2RouterAddress: Address,
    drift: Drift<ReadAdapter> = createDrift()
  )

Methods:

  • quoteExactInputV3 - Get price quote for exact input swap (Uniswap V3)

async quoteExactInputV3(
  params: FunctionArgs<QuoterV2ABI, "quoteExactInputSingle">["params"]
): Promise<FunctionReturn<QuoterV2ABI, "quoteExactInputSingle">>
  • quoteExactOutputV3 - Get price quote for exact output swap (Uniswap V3)

async quoteExactOutputV3(
  params: FunctionArgs<QuoterV2ABI, "quoteExactOutputSingle">["params"]
): Promise<FunctionReturn<QuoterV2ABI, "quoteExactOutputSingle">>
  • quoteExactInputV2 - Get price quote for exact input swap (Uniswap V2)

async quoteExactInputV2(
  params: FunctionArgs<UniswapV2Router02ABI, "getAmountsOut">
): Promise<FunctionReturn<UniswapV2Router02ABI, "getAmountsOut">>
  • quoteExactOutputV2 - Get price quote for exact output swap (Uniswap V2)

async quoteExactOutputV2(
  params: FunctionArgs<UniswapV2Router02ABI, "getAmountsIn">
): Promise<FunctionReturn<UniswapV2Router02ABI, "getAmountsIn">>

Contract ABIs

export type QuoterV2ABI = typeof quoterV2Abi;
export type UniswapV2Router02ABI = typeof uniswapV2Router02Abi;

Example Usage

const quoter = new ReadQuoter("0xQuoterV2Address", "0xUniV2RouterAddress");

// V3 Exact Input Quote
const v3InputQuote = await quoter.quoteExactInputV3({
  tokenIn: "0x...",
  tokenOut: "0x...",
  amountIn: 1000000n,
  fee: 3000,
  sqrtPriceLimitX96: 0n,
});

// V2 Exact Output Quote
const v2OutputQuote = await quoter.quoteExactOutputV2({
  amountOut: 500000n,
  path: ["0x...", "0x..."],
  to: "0x...",
  deadline: Math.floor(Date.now() / 1000) + 300,
});
PreviousTokenNextFactory

Last updated 9 days ago