pumpdotfun-sdk-repumped
Version:
Pumpfun SDK — create, buy, sell tokens with support for Jito bundles and multiple relayer integrations. Rebuilt and fixed pumpdotfun-sdk.
55 lines (52 loc) • 2.25 kB
JavaScript
import { struct, u64, bool, publicKey } from '@coral-xyz/borsh';
class GlobalAccount {
discriminator;
initialized = false;
authority;
feeRecipient;
initialVirtualTokenReserves;
initialVirtualSolReserves;
initialRealTokenReserves;
tokenTotalSupply;
feeBasisPoints;
constructor(discriminator, initialized, authority, feeRecipient, initialVirtualTokenReserves, initialVirtualSolReserves, initialRealTokenReserves, tokenTotalSupply, feeBasisPoints) {
this.discriminator = discriminator;
this.initialized = initialized;
this.authority = authority;
this.feeRecipient = feeRecipient;
this.initialVirtualTokenReserves = initialVirtualTokenReserves;
this.initialVirtualSolReserves = initialVirtualSolReserves;
this.initialRealTokenReserves = initialRealTokenReserves;
this.tokenTotalSupply = tokenTotalSupply;
this.feeBasisPoints = feeBasisPoints;
}
getInitialBuyPrice(amount) {
if (amount <= 0n) {
return 0n;
}
let n = this.initialVirtualSolReserves * this.initialVirtualTokenReserves;
let i = this.initialVirtualSolReserves + amount;
let r = n / i + 1n;
let s = this.initialVirtualTokenReserves - r;
return s < this.initialRealTokenReserves
? s
: this.initialRealTokenReserves;
}
static fromBuffer(buffer) {
const structure = struct([
u64("discriminator"),
bool("initialized"),
publicKey("authority"),
publicKey("feeRecipient"),
u64("initialVirtualTokenReserves"),
u64("initialVirtualSolReserves"),
u64("initialRealTokenReserves"),
u64("tokenTotalSupply"),
u64("feeBasisPoints"),
]);
let value = structure.decode(buffer);
return new GlobalAccount(BigInt(value.discriminator), value.initialized, value.authority, value.feeRecipient, BigInt(value.initialVirtualTokenReserves), BigInt(value.initialVirtualSolReserves), BigInt(value.initialRealTokenReserves), BigInt(value.tokenTotalSupply), BigInt(value.feeBasisPoints));
}
}
export { GlobalAccount };
//# sourceMappingURL=globalAccount.mjs.map