UNPKG

goodrdotfun-sdk

Version:

SDK for interacting with goodr.fun and Sonic on Solana

34 lines (33 loc) 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GlobalAccount = void 0; const bignumber_js_1 = require("bignumber.js"); class GlobalAccount { constructor(initialized, authority, operatingWallet, initialVirtualTokenReserves, initialVirtualSolReserves, initialRealTokenReserves, tokenTotalSupply, operatingFeeBasisPoints, creatorFeeBasisPoints) { this.initialized = false; this.initialized = initialized; this.authority = authority; this.operatingWallet = operatingWallet; this.initialVirtualTokenReserves = initialVirtualTokenReserves; this.initialVirtualSolReserves = initialVirtualSolReserves; this.initialRealTokenReserves = initialRealTokenReserves; this.tokenTotalSupply = tokenTotalSupply; this.operatingFeeBasisPoints = operatingFeeBasisPoints; this.creatorFeeBasisPoints = creatorFeeBasisPoints; } getInitialBuyPrice(amount) { if (amount.isZero() || amount.isNegative()) { return new bignumber_js_1.BigNumber(0); } const n = this.initialVirtualSolReserves .multipliedBy(this.initialVirtualTokenReserves) .dividedBy(1); const i = this.initialVirtualSolReserves.plus(amount); const r = n.dividedBy(i).plus(1); const s = this.initialVirtualTokenReserves.minus(r); return s.lt(this.initialRealTokenReserves) ? s : this.initialRealTokenReserves; } } exports.GlobalAccount = GlobalAccount;