pumpdotfun-sdk-sp
Version:
A simple SDK for interacting with pumpdotfun
1 lines • 4.4 kB
Source Map (JSON)
{"version":3,"file":"globalAccount.mjs","sources":["../../../src/globalAccount.ts"],"sourcesContent":["import { PublicKey } from \"@solana/web3.js\";\nimport { struct, bool, u64, publicKey, Layout } from \"@coral-xyz/borsh\";\n\nexport class GlobalAccount {\n public discriminator: bigint;\n public initialized: boolean = false;\n public authority: PublicKey;\n public feeRecipient: PublicKey;\n public initialVirtualTokenReserves: bigint;\n public initialVirtualSolReserves: bigint;\n public initialRealTokenReserves: bigint;\n public tokenTotalSupply: bigint;\n public feeBasisPoints: bigint;\n\n constructor(\n discriminator: bigint,\n initialized: boolean,\n authority: PublicKey,\n feeRecipient: PublicKey,\n initialVirtualTokenReserves: bigint,\n initialVirtualSolReserves: bigint,\n initialRealTokenReserves: bigint,\n tokenTotalSupply: bigint,\n feeBasisPoints: bigint\n ) {\n this.discriminator = discriminator;\n this.initialized = initialized;\n this.authority = authority;\n this.feeRecipient = feeRecipient;\n this.initialVirtualTokenReserves = initialVirtualTokenReserves;\n this.initialVirtualSolReserves = initialVirtualSolReserves;\n this.initialRealTokenReserves = initialRealTokenReserves;\n this.tokenTotalSupply = tokenTotalSupply;\n this.feeBasisPoints = feeBasisPoints;\n }\n\n getInitialBuyPrice(amount: bigint): bigint {\n if (amount <= 0n) {\n return 0n;\n }\n\n let n = this.initialVirtualSolReserves * this.initialVirtualTokenReserves;\n let i = this.initialVirtualSolReserves + amount;\n let r = n / i + 1n;\n let s = this.initialVirtualTokenReserves - r;\n return s < this.initialRealTokenReserves\n ? s\n : this.initialRealTokenReserves;\n }\n\n public static fromBuffer(buffer: Buffer): GlobalAccount {\n const structure: Layout<GlobalAccount> = struct([\n u64(\"discriminator\"),\n bool(\"initialized\"),\n publicKey(\"authority\"),\n publicKey(\"feeRecipient\"),\n u64(\"initialVirtualTokenReserves\"),\n u64(\"initialVirtualSolReserves\"),\n u64(\"initialRealTokenReserves\"),\n u64(\"tokenTotalSupply\"),\n u64(\"feeBasisPoints\"),\n ]);\n\n let value = structure.decode(buffer);\n return new GlobalAccount(\n BigInt(value.discriminator),\n value.initialized,\n value.authority,\n value.feeRecipient,\n BigInt(value.initialVirtualTokenReserves),\n BigInt(value.initialVirtualSolReserves),\n BigInt(value.initialRealTokenReserves),\n BigInt(value.tokenTotalSupply),\n BigInt(value.feeBasisPoints)\n );\n }\n}\n"],"names":[],"mappings":";;MAGa,aAAa,CAAA;AACjB,IAAA,aAAa;IACb,WAAW,GAAY,KAAK;AAC5B,IAAA,SAAS;AACT,IAAA,YAAY;AACZ,IAAA,2BAA2B;AAC3B,IAAA,yBAAyB;AACzB,IAAA,wBAAwB;AACxB,IAAA,gBAAgB;AAChB,IAAA,cAAc;AAErB,IAAA,WAAA,CACE,aAAqB,EACrB,WAAoB,EACpB,SAAoB,EACpB,YAAuB,EACvB,2BAAmC,EACnC,yBAAiC,EACjC,wBAAgC,EAChC,gBAAwB,EACxB,cAAsB,EAAA;AAEtB,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,2BAA2B,GAAG,2BAA2B;AAC9D,QAAA,IAAI,CAAC,yBAAyB,GAAG,yBAAyB;AAC1D,QAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB;AACxD,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;AACxC,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;;AAGtC,IAAA,kBAAkB,CAAC,MAAc,EAAA;AAC/B,QAAA,IAAI,MAAM,IAAI,EAAE,EAAE;AAChB,YAAA,OAAO,EAAE;;QAGX,IAAI,CAAC,GAAG,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,2BAA2B;AACzE,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,yBAAyB,GAAG,MAAM;AAC/C,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;AAClB,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,2BAA2B,GAAG,CAAC;AAC5C,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC;AACd,cAAE;AACF,cAAE,IAAI,CAAC,wBAAwB;;IAG5B,OAAO,UAAU,CAAC,MAAc,EAAA;QACrC,MAAM,SAAS,GAA0B,MAAM,CAAC;YAC9C,GAAG,CAAC,eAAe,CAAC;YACpB,IAAI,CAAC,aAAa,CAAC;YACnB,SAAS,CAAC,WAAW,CAAC;YACtB,SAAS,CAAC,cAAc,CAAC;YACzB,GAAG,CAAC,6BAA6B,CAAC;YAClC,GAAG,CAAC,2BAA2B,CAAC;YAChC,GAAG,CAAC,0BAA0B,CAAC;YAC/B,GAAG,CAAC,kBAAkB,CAAC;YACvB,GAAG,CAAC,gBAAgB,CAAC;AACtB,SAAA,CAAC;QAEF,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QACpC,OAAO,IAAI,aAAa,CACtB,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAC3B,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,YAAY,EAClB,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,EACzC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,EACvC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,EACtC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAC9B,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAC7B;;AAEJ;;;;"}