Skip to content

Commit e94ceb1

Browse files
author
Barnabas Ratki
committed
chore: Add extra test for program fee
1 parent 4612bcc commit e94ceb1

2 files changed

Lines changed: 55 additions & 1 deletion

File tree

contracts/svm/testing/src/express_relay/swap.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ pub struct SwapParamOverride {
3535
pub searcher_ta_mint_user: Option<Pubkey>,
3636
pub express_relay_fee_receiver_ata: Option<Pubkey>,
3737
pub relayer_fee_receiver_ata: Option<Pubkey>,
38+
pub token_program_fee: Option<Pubkey>,
3839
}
3940

4041
pub trait AnyVersionSwapArgs: Sized + Send + Sync {
@@ -96,6 +97,7 @@ pub fn create_swap_instruction(swap_params: SwapParams<impl AnyVersionSwapArgs>)
9697
mint_fee: mint_fee_override,
9798
express_relay_fee_receiver_ata,
9899
relayer_fee_receiver_ata,
100+
token_program_fee: token_program_fee_override,
99101
},
100102
} = swap_params;
101103
let express_relay_metadata = get_express_relay_metadata_key();
@@ -161,7 +163,7 @@ pub fn create_swap_instruction(swap_params: SwapParams<impl AnyVersionSwapArgs>)
161163
mint_fee,
162164
token_program_searcher,
163165
token_program_user,
164-
token_program_fee,
166+
token_program_fee: token_program_fee_override.unwrap_or(token_program_fee),
165167
express_relay_metadata,
166168
relayer_signer,
167169
}

contracts/svm/testing/tests/swap.rs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -846,6 +846,58 @@ fn test_swap_wrong_mint_fee() {
846846
);
847847
}
848848

849+
#[test]
850+
fn test_swap_wrong_token_program_fee() {
851+
let SwapSetupResult {
852+
mut svm,
853+
user,
854+
searcher,
855+
token_searcher,
856+
token_user,
857+
router_ta_mint_searcher,
858+
relayer_signer,
859+
..
860+
} = setup_swap(Default::default());
861+
862+
let express_relay_metadata = get_express_relay_metadata(&mut svm);
863+
864+
let swap_args = SwapArgs {
865+
deadline: svm.get_sysvar::<Clock>().unix_timestamp,
866+
amount_searcher: token_searcher.get_amount_with_decimals(1.),
867+
amount_user: token_user.get_amount_with_decimals(1.),
868+
referral_fee_bps: 1500,
869+
fee_token: FeeToken::User,
870+
};
871+
872+
let instructions = build_swap_instructions(SwapParams {
873+
searcher: searcher.pubkey(),
874+
user: user.pubkey(),
875+
router_fee_receiver_ta: router_ta_mint_searcher,
876+
fee_receiver_relayer: express_relay_metadata.fee_receiver_relayer,
877+
token_searcher: token_searcher.clone(),
878+
token_user: token_user.clone(),
879+
swap_args,
880+
overrides: SwapParamOverride {
881+
token_program_fee: Some(token_user.token_program), // wrong token program fee
882+
..Default::default()
883+
},
884+
relayer_signer: relayer_signer.pubkey(),
885+
});
886+
887+
let result = submit_transaction(
888+
&mut svm,
889+
&instructions,
890+
&searcher,
891+
&[&searcher, &user, &relayer_signer],
892+
)
893+
.unwrap_err();
894+
assert_custom_error(
895+
result.err,
896+
4,
897+
InstructionError::Custom(AnchorErrorCode::ConstraintTokenMint.into()),
898+
);
899+
}
900+
849901

850902
#[test]
851903
fn test_swap_fail_wrong_relayer_signer() {

0 commit comments

Comments
 (0)