diff --git a/consts.go b/consts.go index 31fbfd6..97adaf9 100644 --- a/consts.go +++ b/consts.go @@ -360,6 +360,7 @@ var entryContractAddresses = map[solana.PublicKey]string{ solana.MustPublicKeyFromBase58("B3111yJCeHBcA1bizdJjUFPALfhAfSRnAbJzGUtnt56A"): EntryContractBinanceWallet, solana.MustPublicKeyFromBase58("FLASHX8DrLbgeR8FcfNV1F5krxYcYMUdBkrP1EPBtxB9"): EntryContractAxiom, solana.MustPublicKeyFromBase58("F5tfvbLog9VdGUPqBDTT8rgXvTTcq7e5UiGnupL1zvBq"): EntryContractAxiom, + solana.MustPublicKeyFromBase58("Gz9VPiSLQYbvKyb3jZPjNfyA6n4T4qVFUuAukgL964nL"): EntryContractAxiom, solana.MustPublicKeyFromBase58("B3jytJa6Tzpn4Ly7GNnDm3dMGqUin5aMRm5aPsJGU5G7"): EntryContractTradewiz, solana.MustPublicKeyFromBase58("DBotWvSso9oD1ZB3aHx2LiD2ZoFpF8PbKjaT4uHKLLVs"): EntryContractDbot, solana.MustPublicKeyFromBase58("term9YPb9mzAsABaqN71A4xdbxHmpBNZavpBiQKZzN3"): EntryContractPadre, @@ -367,3 +368,5 @@ var entryContractAddresses = map[solana.PublicKey]string{ var okxDexRoutersV2 = solana.MustPublicKeyFromBase58("proVF4pMXVaYqmy4NjniPh4pqKNfMmsihgd4wdkCX3u") var okxAggregatorV2 = solana.MustPublicKeyFromBase58("6m2CDdhRgxpH4WjvdzxAYbGxwdGUz5MziiL5jek2kBma") + +var axiomOuterContract = solana.MustPublicKeyFromBase58("FLASHX8DrLbgeR8FcfNV1F5krxYcYMUdBkrP1EPBtxB9") diff --git a/pump.go b/pump.go index ccef571..ccf7501 100644 --- a/pump.go +++ b/pump.go @@ -344,11 +344,13 @@ func BuyOrSellParser(tx *Tx, instruction Instruction, innerInstructions InnerIns if err != nil { return nil, increaseOffset(offset), fmt.Errorf("pump create get inner instructions error: %v,offset, %d, %d", err, offset[0], offset[1]) } - if instruction.StackHeight != nil && *instruction.StackHeight > 2 { - for _, innerInstr := range innerInstructions.Instructions { - if innerInstr.StackHeight != nil && *innerInstr.StackHeight == *instruction.StackHeight-1 { - entryContract = result.accountList[innerInstr.ProgramIDIndex] - break + if !entryContract.Equals(axiomOuterContract) { + if instruction.StackHeight != nil && *instruction.StackHeight > 2 { + for _, innerInstr := range innerInstructions.Instructions { + if innerInstr.StackHeight != nil && *innerInstr.StackHeight == *instruction.StackHeight-1 { + entryContract = result.accountList[innerInstr.ProgramIDIndex] + break + } } } } diff --git a/pumpamm.go b/pumpamm.go index 7d3c61b..474a36d 100644 --- a/pumpamm.go +++ b/pumpamm.go @@ -512,11 +512,13 @@ func ammBuyParser(tx *Tx, instruction Instruction, innerInstructions InnerInstru if err != nil { return nil, increaseOffset(offset), fmt.Errorf("pumpamm create get inner instructions error: %v, offset: %d, %d", err, offset[0], prefixLen) } - if instruction.StackHeight != nil && *instruction.StackHeight > 2 { - for _, innerInstr := range innerInstructions.Instructions { - if innerInstr.StackHeight != nil && *innerInstr.StackHeight == *instruction.StackHeight-1 { - entryContract = result.accountList[innerInstr.ProgramIDIndex] - break + if !entryContract.Equals(axiomOuterContract) { + if instruction.StackHeight != nil && *instruction.StackHeight > 2 { + for _, innerInstr := range innerInstructions.Instructions { + if innerInstr.StackHeight != nil && *innerInstr.StackHeight == *instruction.StackHeight-1 { + entryContract = result.accountList[innerInstr.ProgramIDIndex] + break + } } } } @@ -633,11 +635,13 @@ func ammSellParser(tx *Tx, instruction Instruction, innerInstructions InnerInstr return nil, increaseOffset(offset), fmt.Errorf("pumpamm sell get inner instructions error: %v, offset: %d, %d", err, offset[0], prefixLen) } - if instruction.StackHeight != nil && *instruction.StackHeight > 2 { - for _, innerInstr := range innerInstructions.Instructions { - if innerInstr.StackHeight != nil && *innerInstr.StackHeight == *instruction.StackHeight-1 { - entryContract = result.accountList[innerInstr.ProgramIDIndex] - break + if !entryContract.Equals(axiomOuterContract) { + if instruction.StackHeight != nil && *instruction.StackHeight > 2 { + for _, innerInstr := range innerInstructions.Instructions { + if innerInstr.StackHeight != nil && *innerInstr.StackHeight == *instruction.StackHeight-1 { + entryContract = result.accountList[innerInstr.ProgramIDIndex] + break + } } } }