{"version":3,"sources":["../../../src/raydium/launchpad/util.ts"],"sourcesContent":["import { TOKEN_2022_PROGRAM_ID, TOKEN_PROGRAM_ID } from \"@solana/spl-token\";\nimport { PublicKey } from \"@solana/web3.js\";\n\n/**\n * Bit positions inside a launchpad pool's `mintProgramFlag`.\n *\n * The field is a bitfield, not a boolean: bit0 describes mintA and bit1 describes mintB, each\n * holding 0 for the legacy SPL Token program and 1 for Token-2022. Quote mints were legacy only\n * until token2022 quote support landed, so bit1 used to be constant 0.\n */\nexport enum LaunchpadMintProgramBit {\n  MintA = 0,\n  MintB = 1,\n}\n\nexport function getLaunchpadPoolMintProgram(mintProgramFlag: number, bit: LaunchpadMintProgramBit): PublicKey {\n  return (mintProgramFlag >> bit) & 1 ? TOKEN_2022_PROGRAM_ID : TOKEN_PROGRAM_ID;\n}\n\nexport function getLaunchpadPoolMintAProgram(mintProgramFlag: number): PublicKey {\n  return getLaunchpadPoolMintProgram(mintProgramFlag, LaunchpadMintProgramBit.MintA);\n}\n\nexport function getLaunchpadPoolMintBProgram(mintProgramFlag: number): PublicKey {\n  return getLaunchpadPoolMintProgram(mintProgramFlag, LaunchpadMintProgramBit.MintB);\n}\n\n/** The reverse, for pool info the sdk predicts locally instead of reading from chain */\nexport function toLaunchpadMintProgramFlag({\n  mintAProgram,\n  mintBProgram,\n}: {\n  mintAProgram: PublicKey;\n  mintBProgram: PublicKey;\n}): number {\n  return (\n    (mintAProgram.equals(TOKEN_2022_PROGRAM_ID) ? 1 << LaunchpadMintProgramBit.MintA : 0) |\n    (mintBProgram.equals(TOKEN_2022_PROGRAM_ID) ? 1 << LaunchpadMintProgramBit.MintB : 0)\n  );\n}\n"],"mappings":"AAAA,gFAUO,GAAK,GAAL,CAAK,GACV,WAAQ,GAAR,QACA,UAAQ,GAAR,QAFU,WAKL,WAAqC,EAAyB,EAAyC,CAC5G,MAAQ,IAAmB,EAAO,EAAI,EAAwB,CAChE,CAEO,WAAsC,EAAoC,CAC/E,MAAO,GAA4B,EAAiB,CAA6B,CACnF,CAEO,WAAsC,EAAoC,CAC/E,MAAO,GAA4B,EAAiB,CAA6B,CACnF,CAGO,WAAoC,CACzC,eACA,gBAIS,CACT,MACG,GAAa,OAAO,CAAqB,EAAI,GAAK,EAAgC,GAClF,GAAa,OAAO,CAAqB,EAAI,GAAK,EAAgC,EAEvF","names":[]}