if params.create_output_mint_ata { instructions.extend( crate::common::fast_fn::create_associated_token_account_idempotent_fast_use_seed( ¶ms.payer.pubkey(), ¶ms.payer.pubkey(), ¶ms.output_mint, &crate::constants::TOKEN_PROGRAM, params.open_seed_optimize, ), ); }
In the above code, constant token program is used to create ATA. But should consider output mint if its token_2022 or not.
I think it should be like:
if params.create_output_mint_ata { instructions.extend( crate::common::fast_fn::create_associated_token_account_idempotent_fast_use_seed( ¶ms.payer.pubkey(), ¶ms.payer.pubkey(), ¶ms.output_mint, if is_a_in { &protocol_params.token_b_program } else { &protocol_params.token_a_program }, params.open_seed_optimize, ), ); }
if params.create_output_mint_ata { instructions.extend( crate::common::fast_fn::create_associated_token_account_idempotent_fast_use_seed( ¶ms.payer.pubkey(), ¶ms.payer.pubkey(), ¶ms.output_mint, &crate::constants::TOKEN_PROGRAM, params.open_seed_optimize, ), ); }In the above code, constant token program is used to create ATA. But should consider output mint if its token_2022 or not.
I think it should be like:
if params.create_output_mint_ata { instructions.extend( crate::common::fast_fn::create_associated_token_account_idempotent_fast_use_seed( ¶ms.payer.pubkey(), ¶ms.payer.pubkey(), ¶ms.output_mint, if is_a_in { &protocol_params.token_b_program } else { &protocol_params.token_a_program }, params.open_seed_optimize, ), ); }