solana_tx_decoding/instruction/raydium/
is_raydium_ammv4_swap_instruction.rs1use solana_central::Instruction;
2use solana_central::constants::RAYDIUM_CONSTANTS;
3
4pub fn is_raydium_ammv4_swap_instruction(instruction: &Instruction) -> bool {
8 if instruction.data.len() < 17 {
9 return false;
10 }
11 if instruction.accounts.len() < 17 {
13 return false;
14 }
15 if instruction.tx_account_keys[instruction.program_id_index as usize]
16 != RAYDIUM_CONSTANTS.amm_program
17 {
18 return false;
19 }
20 if !(instruction.data[0] == RAYDIUM_CONSTANTS.ammv4_swap_discriminators[0]
22 || instruction.data[0] == RAYDIUM_CONSTANTS.ammv4_swap_discriminators[1])
23 {
24 return false;
25 }
26 true
27}