UNPKG

@mercurial-finance/dynamic-amm-sdk

Version:

Mercurial Vaults SDK is a typescript library that allows you to interact with Mercurial v2's AMM.

30 lines 1.59 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const web3_js_1 = require("@solana/web3.js"); const bn_js_1 = __importDefault(require("bn.js")); const anchor_1 = require("@coral-xyz/anchor"); const amm_1 = __importDefault(require("../amm")); const idl_1 = require("../amm/idl"); const constants_1 = require("../amm/constants"); const mainnetConnection = new web3_js_1.Connection('https://api.mainnet-beta.solana.com'); const mockWallet = new anchor_1.Wallet(new web3_js_1.Keypair()); const provider = new anchor_1.AnchorProvider(mainnetConnection, mockWallet, { commitment: 'confirmed', }); async function swapQuote(poolAddress, swapAmount, swapAtoB) { const ammProgram = new anchor_1.Program(idl_1.IDL, constants_1.PROGRAM_ID, provider); let poolState = await ammProgram.account.pool.fetch(poolAddress); const pool = await amm_1.default.create(provider.connection, poolAddress); let inTokenMint = swapAtoB ? poolState.tokenAMint : poolState.tokenBMint; let swapQuote = pool.getSwapQuote(inTokenMint, swapAmount, 100); console.log("🚀 ~ swapQuote:", swapQuote); console.log("SwapInAmount %s swapOutAmount %s", swapQuote.swapInAmount.toString(), swapQuote.swapOutAmount.toString()); } async function main() { await swapQuote(new web3_js_1.PublicKey("5yuefgbJJpmFNK2iiYbLSpv1aZXq7F9AUKkZKErTYCvs"), new bn_js_1.default(10_000_000_000), true); } main(); //# sourceMappingURL=swap_quote.js.map