UNPKG

@solsdk/tokenflow_sdk

Version:

A simple SDK for interacting with tokenflow

72 lines (68 loc) 3.16 kB
'use strict'; var borsh = require('@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>*/ = borsh.struct([ borsh.u64("discriminator"), borsh.bool("initialized"), borsh.publicKey("authority"), borsh.publicKey("feeRecipient"), borsh.u64("initialVirtualTokenReserves"), borsh.u64("initialVirtualSolReserves"), borsh.u64("initialRealTokenReserves"), borsh.u64("tokenTotalSupply"), borsh.u64("mintFee"), borsh.u64("systemFeeBasisPoints"), borsh.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)); } } exports.GlobalAccount = GlobalAccount; //# sourceMappingURL=globalAccount.cjs.map