@solsdk/tokenflow_sdk
Version:
A simple SDK for interacting with tokenflow
70 lines (67 loc) • 3.08 kB
JavaScript
import { struct, u64, bool, publicKey } from '@coral-xyz/borsh';
class GlobalAccount {
// public discriminator: bigint;
initialized = false;
authority;
feeRecipient;
initialVirtualTokenReserves;
initialVirtualSolReserves;
initialRealTokenReserves;
initialTokenSupply;
mintFee;
systemFeeBasisPoints;
creatorFeeBasisPoints;
constructor(
// discriminator: bigint,
initialized, authority, feeRecipient, initialVirtualTokenReserves, initialVirtualSolReserves, initialRealTokenReserves, initialTokenSupply, mintFee, systemFeeBasisPoints, creatorFeeBasisPoints) {
// this.discriminator = discriminator;
this.initialized = initialized;
this.authority = authority;
this.feeRecipient = feeRecipient;
this.initialVirtualTokenReserves = initialVirtualTokenReserves;
this.initialVirtualSolReserves = initialVirtualSolReserves;
this.initialRealTokenReserves = initialRealTokenReserves;
this.initialTokenSupply = initialTokenSupply;
this.mintFee = mintFee;
this.systemFeeBasisPoints = systemFeeBasisPoints;
this.creatorFeeBasisPoints = creatorFeeBasisPoints;
}
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 fromObject(obj) {
return new GlobalAccount(
// BigInt(obj.discriminator),
obj.initialized, obj.authority, obj.feeRecipient, BigInt(obj.initialVirtualTokenReserves), BigInt(obj.initialVirtualSolReserves), BigInt(obj.initialRealTokenReserves), BigInt(obj.initialTokenSupply), BigInt(obj.mintFee), BigInt(obj.systemFeeBasisPoints), BigInt(obj.creatorFeeBasisPoints));
}
static fromBuffer(buffer) {
const structure /*: Layout<GlobalAccount>*/ = struct([
u64("discriminator"),
bool("initialized"),
publicKey("authority"),
publicKey("feeRecipient"),
u64("initialVirtualTokenReserves"),
u64("initialVirtualSolReserves"),
u64("initialRealTokenReserves"),
u64("tokenTotalSupply"),
u64("mintFee"),
u64("systemFeeBasisPoints"),
u64("creatorFeeBasisPoints"),
]);
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.mintFee), BigInt(value.systemFeeBasisPoints), BigInt(value.creatorFeeBasisPoints));
}
}
export { GlobalAccount };
//# sourceMappingURL=globalAccount.mjs.map