@pump-fun/pump-swap-sdk
Version:
Official SDK for interacting with Pump Swap AMM protocol on Solana
32 lines (26 loc) • 894 B
text/typescript
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, {}),
);
}