UNPKG

@pump-fun/pump-swap-sdk

Version:

Official SDK for interacting with Pump Swap AMM protocol on Solana

32 lines (26 loc) 894 B
import BN from "bn.js"; import { Connection } from "@solana/web3.js"; import { AnchorProvider, Program } from "@coral-xyz/anchor"; import pumpAmmIdl from "../idl/pump_amm.json"; import { PumpAmm } from "../types/pump_amm"; import { PUMP_AMM_PROGRAM_ID } from "./pda"; export function ceilDiv(a: BN, b: BN): BN { if (b.isZero()) { throw new Error("Cannot divide by zero."); } return a.add(b.subn(1)).div(b); } export function fee(amount: BN, basisPoints: BN): BN { return ceilDiv(amount.mul(basisPoints), new BN(10_000)); } export function getPumpAmmProgram( connection: Connection, programId: string = PUMP_AMM_PROGRAM_ID, ): Program<PumpAmm> { const pumpAmmIdlAddressOverride = { ...pumpAmmIdl }; pumpAmmIdlAddressOverride.address = programId; return new Program( pumpAmmIdlAddressOverride as PumpAmm, new AnchorProvider(connection, null as any, {}), ); }