UNPKG

orca-clmm-agent

Version:

Orca Whirlpool clmm library for automated position management

40 lines (39 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getJupiterSwapQuote = exports.getJupiterUSDPrice = void 0; const getJupiterUSDPrice = async (mints) => { if (mints.length === 0) return {}; if (mints.length > 100) throw new Error("[getJupiterUSDPrice] Too many mints"); const resp = await fetch(`https://lite-api.jup.ag/price/v3?ids=${mints.join(",")}`, { headers: { "Content-Type": "application/json", // no cache "Cache-Control": "no-cache, no-store, must-revalidate", }, method: "GET", }); if (!resp.ok) { if (resp.status === 429) console.error(`[getJupiterUSDPrice] Rate limit hit`); else console.error(`[getJupiterUSDPrice] Failed to get price`); return {}; } const data = (await resp.json()); // delete where value is null for (const [key, value] of Object.entries(data)) { if (!value) delete data[key]; } return data; }; exports.getJupiterUSDPrice = getJupiterUSDPrice; const getJupiterSwapQuote = async ({ fromTokenAddress, toTokenAddress, fromAmount, }) => { //https://lite-api.jup.ag/swap/v1/quote const resp = await fetch(`https://lite-api.jup.ag/swap/v1/quote?inputMint=${fromTokenAddress}&outputMint=${toTokenAddress}&amount=${fromAmount}`); const json = await resp.json(); return json; }; exports.getJupiterSwapQuote = getJupiterSwapQuote;