goodrdotfun-sdk
Version:
SDK for interacting with goodr.fun and Sonic on Solana
34 lines (33 loc) • 1.54 kB
JavaScript
"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;