package pump_parser import ( "github.com/gagliardetto/solana-go" ) var pumpProgram = solana.MustPublicKeyFromBase58("6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P") var pumpFeesProgram = solana.MustPublicKeyFromBase58("pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ") var pumpMigrationAccount = solana.MustPublicKeyFromBase58("39azUYFWPz3VHgKCf3VChUwbpURdCHRxjWVowf5jUJjg") var mayhemFeeAccounts = []solana.PublicKey{ solana.MustPublicKeyFromBase58("GesfTA3X2arioaHp8bbKdjG9vJtskViWACZoYvxp4twS"), solana.MustPublicKeyFromBase58("4budycTjhs9fD6xw62VBducVTNgMgJJ5BgtKq7mAZwn6"), solana.MustPublicKeyFromBase58("4UQeTP1T39KZ9Sfxzo3WR5skgsaP6NZa87BAkuazLEKH"), solana.MustPublicKeyFromBase58("8SBKzEQU4nLSzcwF4a74F2iaUDQyTfjGndn6qUWBnrpR"), solana.MustPublicKeyFromBase58("8sNeir4QsLsJdYpc9RZacohhK1Y5FLU3nC5LXgYB4aa6"), solana.MustPublicKeyFromBase58("Fh9HmeLNUMVCvejxCtCL2DbYaRyBFVJ5xrWkLnMH6fdk"), solana.MustPublicKeyFromBase58("463MEnMeGyJekNZFQSTUABBEbLnvMTALbT6ZmsxAbAdq"), solana.MustPublicKeyFromBase58("6AUH3WEHucYZyC61hqpqYUWVto5qA5hjHuNQ32GNnNxA"), } var pumpGetFeesDiscriminator = calculateDiscriminator("global:get_fees") var pumpBuyDiscriminator = calculateDiscriminator("global:buy") var pumpBuyV2Discriminator = calculateDiscriminator("global:buy_exact_sol_in") var pumpSellDiscriminator = calculateDiscriminator("global:sell") var pumpCreateDiscriminator = calculateDiscriminator("global:create") var pumpCreateV2Discriminator = calculateDiscriminator("global:create_v2") var pumpAdminSetCreatorDiscriminator = calculateDiscriminator("global:admin_set_creator") var pumpMigrateDiscriminator = calculateDiscriminator("global:migrate") var pumpEventDiscriminator = [8]byte{228, 69, 165, 46, 81, 203, 154, 29} var pumpTradeEventDiscriminator = [16]byte{228, 69, 165, 46, 81, 203, 154, 29, 189, 219, 127, 211, 78, 230, 97, 238} var pumpCreateEventDiscriminator = [8]byte{27, 114, 169, 77, 222, 235, 99, 118} var pumpCompleteEventDiscriminator = [8]byte{95, 114, 97, 156, 212, 46, 152, 8} var pumpMigrateEventDiscriminator = calculateDiscriminator("event:CompletePumpAmmMigrationEvent") var pumpBuyEventDiscriminator = [8]byte{189, 219, 127, 211, 78, 230, 97, 238} var ( pumpAmmProgram = solana.MustPublicKeyFromBase58("pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA") wSolMint = solana.MustPublicKeyFromBase58("So11111111111111111111111111111111111111112") usdcMint = solana.MustPublicKeyFromBase58("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v") usd1Mint = solana.MustPublicKeyFromBase58("USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB") meteoraDlmmProgram = solana.MustPublicKeyFromBase58("LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo") meteoraDammV2Program = solana.MustPublicKeyFromBase58("cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG") ) var ( pumpAmmBuyDiscriminator = calculateDiscriminator("global:buy") pumpAmmBuyV2Discriminator = calculateDiscriminator("global:buy_exact_quote_in") pumpAmmSellDiscriminator = calculateDiscriminator("global:sell") pumpAmmCreateDiscriminator = calculateDiscriminator("global:create_pool") pumpAmmWithdrawDiscriminator = calculateDiscriminator("global:withdraw") pumpAmmDepositDiscriminator = calculateDiscriminator("global:deposit") // UnParsedDiscriminator is the discriminator for unparsed data. pumpAmmCreateConfigDiscriminator = calculateDiscriminator("global:create_config") pumpAmmExtendAccountDiscriminator = calculateDiscriminator("global:extend_account") pumpAmmUpdateFeeConfigDiscriminator = calculateDiscriminator("global:update_fee_config") pumpAmmDisableDiscriminator = calculateDiscriminator("global:disable") pumpAmmEventDiscriminator = [8]byte{228, 69, 165, 46, 81, 203, 154, 29} pumpAmmBuyEventDiscriminator = calculateDiscriminator("event:BuyEvent") pumpAmmSellEventDiscriminator = calculateDiscriminator("event:SellEvent") pumpAmmCreateEventDiscriminator = calculateDiscriminator("event:CreatePoolEvent") pumpAmmWithdrawEventDiscriminator = calculateDiscriminator("event:WithdrawEvent") pumpAmmDepositEventDiscriminator = calculateDiscriminator("event:DepositEvent") ) var ( meteoraInitializeLbPairDiscriminator = calculateDiscriminator("global:initialize_lb_pair2") meteoraInitializeLbPairEventDiscriminator = calculateDiscriminator("event:LbPairCreate") meteoraDlmmSwapDiscriminator = calculateDiscriminator("global:swap") meteoraDlmmSwap2Discriminator = calculateDiscriminator("global:swap2") meteoraDlmmSwapExactOutDiscriminator = calculateDiscriminator("global:swap_exact_out") meteoraDlmmSwapExactOut2Discriminator = calculateDiscriminator("global:swap_exact_out2") meteoraDlmmSwapWithPriceImpactDiscriminator = calculateDiscriminator("global:swap_with_price_impact") meteoraDlmmSwapWithPriceImpact2Discriminator = calculateDiscriminator("global:swap_with_price_impact2") meteoraDlmmSwapEventDiscriminator = calculateDiscriminator("event:Swap") meteoraDlmmAddLiquidityDiscriminator = calculateDiscriminator("global:add_liquidity") meteoraDlmmAddLiquidity2Discriminator = calculateDiscriminator("global:add_liquidity2") meteoraDlmmAddLiquidityByStrategyDiscriminator = calculateDiscriminator("global:add_liquidity_by_strategy") meteoraDlmmAddLiquidityByStrategy2Discriminator = calculateDiscriminator("global:add_liquidity_by_strategy2") meteoraDlmmRemoveLiquidityDiscriminator = calculateDiscriminator("global:remove_liquidity") meteoraDlmmRemoveLiquidity2Discriminator = calculateDiscriminator("global:remove_liquidity2") meteoraDlmmRemoveLiquidityByRangeDiscriminator = calculateDiscriminator("global:remove_liquidity_by_range") meteoraDlmmRemoveLiquidityByRange2Discriminator = calculateDiscriminator("global:remove_liquidity_by_range2") meteoraDlmmAddLiquidityEventDiscriminator = calculateDiscriminator("event:AddLiquidity") meteoraDlmmRemoveLiquidityEventDiscriminator = calculateDiscriminator("event:RemoveLiquidity") ) var ( // metaora pool metaoraPoolProgramID = solana.MustPublicKeyFromBase58("Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB") metaoraPoolInitializePermissionedPoolDiscriminator = calculateDiscriminator("global:initialize_permissioned_pool") metaoraPoolInitializePermissionlessPoolDiscriminator = calculateDiscriminator("global:initialize_permissionless_pool") metaoraPoolInitializePermissionlessPoolWithFeeTierDiscriminator = calculateDiscriminator("global:initialize_permissionless_pool_with_fee_tier") metaoraPoolInitializePermissionlessConstantProductPoolWithConfigDiscriminator = calculateDiscriminator("global:initialize_permissionless_constant_product_pool_with_config") metaoraPoolInitializePermissionlessConstantProductPoolWithConfig2Discriminator = calculateDiscriminator("global:initialize_permissionless_constant_product_pool_with_config2") metaoraPoolInitializeCustomizablePermissionlessConstantProductPoolDiscriminator = calculateDiscriminator("global:initialize_customizable_permissionless_constant_product_pool") metaoraPoolSwapDiscriminator = calculateDiscriminator("global:swap") metaoraPoolAddImbalanceLiquidityDiscriminator = calculateDiscriminator("global:add_imbalance_liquidity") metaoraPoolAddBalanceLiquidityDiscriminator = calculateDiscriminator("global:add_balance_liquidity") metaoraPoolRemoveLiquiditySingleSideDiscriminator = calculateDiscriminator("global:remove_liquidity_single_side") metaoraPoolRemoveBalanceLiquidityDiscriminator = calculateDiscriminator("global:remove_balance_liquidity") metaoraPoolClaimFeeDiscriminator = calculateDiscriminator("global:claim_fee") metaoraPoolBootstrapLiquidityDiscriminator = calculateDiscriminator("global:bootstrap_liquidity") ) var ( metaoraBcProgramID = solana.MustPublicKeyFromBase58("dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN") metaoraBcInitializedPoolDiscriminator = calculateDiscriminator("global:initialize_virtual_pool_with_spl_token") metaoraBcInitialize2022PoolDiscriminator = calculateDiscriminator("global:initialize_virtual_pool_with_token2022") metaoraBcMigrateMeteoraDammDiscriminator = calculateDiscriminator("global:migrate_meteora_damm") metaoraBcMigrateMeteoraDammV2Discriminator = calculateDiscriminator("global:migration_damm_v2") metaoraBcSwapDiscriminator = calculateDiscriminator("global:swap") metaoraBcSwapV2Discriminator = calculateDiscriminator("global:swap2") metaoraBcEventInitializePoolDiscriminator = [8]byte{228, 50, 246, 85, 203, 66, 134, 37} metaoraBcEventSwapDiscriminator = [8]byte{27, 60, 21, 213, 138, 170, 187, 147} metaoraBcEventSwap2Discriminator = [8]byte{189, 66, 51, 168, 38, 80, 117, 153} metaoraBcEventCompleteDiscriminator = [8]byte{229, 231, 86, 84, 156, 134, 75, 24} ) var ( meteoraDammV2AddLiquidityDiscriminator = calculateDiscriminator("global:add_liquidity") meteoraDammV2RemoveLiquidityDiscriminator = calculateDiscriminator("global:remove_liquidity") meteoraDammV2RemoveAllLiquidityDiscriminator = calculateDiscriminator("global:remove_all_liquidity") meteoraDammV2SwapDiscriminator = calculateDiscriminator("global:swap") meteoraDammV2SwapV2Discriminator = calculateDiscriminator("global:swap2") meteoraDammV2InitializeCustomizablePoolDiscriminator = calculateDiscriminator("global:initialize_customizable_pool") meteoraDammV2InitializePoolWithDynamicConfig = calculateDiscriminator("global:initialize_pool_with_dynamic_config") meteoraDammV2InitializePoolDiscriminator = calculateDiscriminator("global:initialize_pool") ) var ( orcaProgramID = solana.MustPublicKeyFromBase58("whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc") orcaInitializePoolDiscriminator = calculateDiscriminator("global:initialize_pool") orcaInitializePoolV2Discriminator = calculateDiscriminator("global:initialize_pool_v2") orcaInitializePoolWithAdaptiveFeeDiscriminator = calculateDiscriminator("global:initialize_pool_with_adaptive_fee") orcaIncreaseLiquidityDiscriminator = calculateDiscriminator("global:increase_liquidity") orcaDecreaseLiquidityDiscriminator = calculateDiscriminator("global:decrease_liquidity") orcaDecreaseLiquidityV2Discriminator = calculateDiscriminator("global:decrease_liquidity_v2") orcaIncreaseLiquidityV2Discriminator = calculateDiscriminator("global:increase_liquidity_v2") orcaCollectFeesDiscriminator = calculateDiscriminator("global:collect_fees") orcaCollectProtocolFeesDiscriminator = calculateDiscriminator("global:collect_protocol_fees") orcaCollectFeesV2Discriminator = calculateDiscriminator("global:collect_fees_v2") orcaCollectProtocolFeesV2Discriminator = calculateDiscriminator("global:collect_protocol_fees_v2") orcaSwapDiscriminator = calculateDiscriminator("global:swap") orcaTwoHopSwapDiscriminator = calculateDiscriminator("global:two_hop_swap") orcaSwapV2Discriminator = calculateDiscriminator("global:swap_v2") orcaTwoHopSwapV2Discriminator = calculateDiscriminator("global:two_hop_swap_v2") ) var ( raydiumClmmProgramID solana.PublicKey = solana.MustPublicKeyFromBase58("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK") raydiumClmmCreatePoolDiscriminator = calculateDiscriminator("global:create_pool") raydiumClmmCollectProtocolFeeDiscriminator = calculateDiscriminator("global:collect_protocol_fee") raydiumClmmCollectFundFeeDiscriminator = calculateDiscriminator("global:collect_fund_fee") raydiumClmmOpenPositionDiscriminator = calculateDiscriminator("global:open_position") raydiumClmmOpenPositionV2Discriminator = calculateDiscriminator("global:open_position_v2") raydiumClmmOpenPositionWithToken22NftDiscriminator = calculateDiscriminator("global:open_position_with_token22_nft") raydiumClmmIncreaseLiquidityDiscriminator = calculateDiscriminator("global:increase_liquidity") raydiumClmmDecreaseLiquidityDiscriminator = calculateDiscriminator("global:decrease_liquidity") raydiumClmmIncreaseLiquidityV2Discriminator = calculateDiscriminator("global:increase_liquidity_v2") raydiumClmmDecreaseLiquidityV2Discriminator = calculateDiscriminator("global:decrease_liquidity_v2") raydiumClmmSwapDiscriminator = calculateDiscriminator("global:swap") raydiumClmmSwapV2Discriminator = calculateDiscriminator("global:swap_v2") ) var ( raydiumCPmmProgramID = solana.MustPublicKeyFromBase58("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C") raydiumCPmmSwapBaseInputDiscriminator = [8]byte{143, 190, 90, 218, 196, 30, 51, 222} raydiumCPmmSwapBaseOutputDiscriminator = [8]byte{55, 217, 98, 86, 163, 74, 180, 173} raydiumCPmmWithdrawDiscriminator = [8]byte{183, 18, 70, 156, 148, 109, 161, 34} raydiumCPmmDepositDiscriminator = [8]byte{242, 35, 198, 137, 82, 225, 242, 182} raydiumCPmmCollectProtocolFeeDiscriminator = [8]byte{136, 136, 252, 221, 194, 66, 126, 89} raydiumCPmmCollectFundFeeDiscriminator = [8]byte{167, 138, 78, 149, 223, 194, 6, 126} raydiumCPmmInitializeDiscriminator = [8]byte{175, 175, 109, 31, 13, 152, 155, 237} raydiumCPmmInitializeWithPermissionDiscriminator = calculateDiscriminator("global:initialize_with_permission") ) var ( raydiumV4Program = solana.MustPublicKeyFromBase58("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8") ) const ( raydiumV4InitializePoolDiscriminator = uint8(1) raydiumV4SwapBaseInDiscriminator = uint8(9) raydiumV4SwapBaseOutDiscriminator = uint8(11) raydiumV4SwapBaseInV2Discriminator = uint8(16) raydiumV4SwapBaseOutV2Discriminator = uint8(17) raydiumV4AddLiquidityDiscriminator = uint8(3) raydiumV4RemoveLiquidityDiscriminator = uint8(4) raydiumV4WithdrawPNLDiscriminator = uint8(7) ) var ( raydiumLaunchLabProgramID = solana.MustPublicKeyFromBase58("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj") bonkPlatformConfig = solana.MustPublicKeyFromBase58("FfYek5vEz23cMkWsdJwG2oa6EphsvXSHrGpdALN4g6W1") raydiumLaunchLabCreatePoolEvnet = [8]byte{151, 215, 226, 9, 118, 161, 115, 174} raydiumLaunchLabTradeEvnet = [8]byte{189, 219, 127, 211, 78, 230, 97, 238} raydiumLaunchLabInitializeV2PoolDiscriminator = [8]byte{67, 153, 175, 39, 218, 16, 38, 32} raydiumLaunchLabInitializeWithToken2022PoolDiscriminator = [8]byte{37, 190, 126, 222, 44, 154, 171, 17} raydiumLaunchLabSellExactInDiscriminator = [8]byte{0x95, 0x27, 0xde, 0x9b, 0xd3, 0x7c, 0x98, 0x1a} raydiumLaunchLabSellExactOutDiscriminator = [8]byte{0x5f, 0xc8, 0x47, 0x22, 0x08, 0x09, 0x0b, 0xa6} raydiumLaunchLabBuyExactInDiscriminator = [8]byte{0xfa, 0xea, 0x0d, 0x7b, 0xd5, 0x9c, 0x13, 0xec} raydiumLaunchLabBuyExactOutDiscriminator = [8]byte{0x18, 0xd3, 0x74, 0x28, 0x69, 0x03, 0x99, 0x38} raydiumLaunchLabMigrateToAmmDiscriminator = [8]byte{0xcf, 0x52, 0xc0, 0x91, 0xfe, 0xcf, 0x91, 0xdf} raydiumLaunchLabMigrateToCpmmDiscriminator = [8]byte{0x88, 0x5c, 0xc8, 0x67, 0x1c, 0xda, 0x90, 0x8c} ) // Program PumpAmm program ID var budgGetProgram = solana.MustPublicKeyFromBase58("ComputeBudget111111111111111111111111111111") var setComputeUnitLimitDiscriminator = uint8(2) var setComputeUnitPriceDiscriminator = uint8(3) var transferDiscriminator = uint32(2) var createAccountWithSeedDiscriminator = uint32(3) var systemProgram = solana.MustPublicKeyFromBase58("11111111111111111111111111111111") var momoProgram = solana.MustPublicKeyFromBase58("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr") var eventDiscriminator = [8]byte{228, 69, 165, 46, 81, 203, 154, 29}