UNPKG

@robertprp/intents-sdk

Version:

Shogun Network Intent-based cross-chain swaps SDK

40 lines (32 loc) 1.04 kB
import { createJupiterApiClient, SwapApi, type QuoteResponse } from '@jup-ag/api'; export type JupiterQuoteParams = { amount: bigint; tokenIn: string; tokenOut: string; swapMode: 'ExactIn' | 'ExactOut'; slippageBps?: number; }; const NATIVE_SOL = 'So11111111111111111111111111111111111111111' const WRAPPED_SOL = 'So11111111111111111111111111111111111111112' export class JupiterQuoteProvider { public swapApi: SwapApi; constructor() { this.swapApi = createJupiterApiClient({ fetchApi: fetch }); } public async getQuote(params: JupiterQuoteParams): Promise<{ quote: QuoteResponse }> { if (params.tokenIn === NATIVE_SOL) { params.tokenIn = WRAPPED_SOL } if (params.tokenOut === NATIVE_SOL) { params.tokenOut = WRAPPED_SOL } const quote = await this.swapApi.quoteGet({ amount: Number(params.amount), inputMint: params.tokenIn, outputMint: params.tokenOut, swapMode: params.swapMode, slippageBps: params.slippageBps, }); return { quote }; } }