From 95fd5eae6517c7db496421fb4679f1053754b974 Mon Sep 17 00:00:00 2001 From: Arrowana Date: Thu, 10 Jul 2025 21:30:03 +1000 Subject: [PATCH 1/2] Remove unnecessary transfer hook account info --- programs/whirlpool/src/util/v2/token.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/programs/whirlpool/src/util/v2/token.rs b/programs/whirlpool/src/util/v2/token.rs index 1de6acebd..7201d16e0 100644 --- a/programs/whirlpool/src/util/v2/token.rs +++ b/programs/whirlpool/src/util/v2/token.rs @@ -59,7 +59,6 @@ pub fn transfer_from_owner_to_vault_v2<'info>( )?; let mut account_infos = vec![ - token_program.to_account_info(), // owner to vault token_owner_account.to_account_info(), // from (owner account) token_mint.to_account_info(), // mint @@ -69,9 +68,9 @@ pub fn transfer_from_owner_to_vault_v2<'info>( // TransferHook extension if let Some(hook_program_id) = get_transfer_hook_program_id(token_mint)? { - if transfer_hook_accounts.is_none() { - return Err(ErrorCode::NoExtraAccountsForTransferHook.into()); - } + let transfer_hook_accounts = transfer_hook_accounts + .as_deref() + .ok_or(ErrorCode::NoExtraAccountsForTransferHook)?; spl_transfer_hook_interface::onchain::add_extra_accounts_for_execute_cpi( &mut instruction, @@ -83,7 +82,7 @@ pub fn transfer_from_owner_to_vault_v2<'info>( token_vault.to_account_info(), // to (vault account) authority.to_account_info(), // authority (owner) amount, - transfer_hook_accounts.as_ref().unwrap(), + transfer_hook_accounts, )?; } @@ -141,7 +140,6 @@ pub fn transfer_from_vault_to_owner_v2<'info>( )?; let mut account_infos = vec![ - token_program.to_account_info(), // vault to owner token_vault.to_account_info(), // from (vault account) token_mint.to_account_info(), // mint @@ -151,9 +149,9 @@ pub fn transfer_from_vault_to_owner_v2<'info>( // TransferHook extension if let Some(hook_program_id) = get_transfer_hook_program_id(token_mint)? { - if transfer_hook_accounts.is_none() { - return Err(ErrorCode::NoExtraAccountsForTransferHook.into()); - } + let transfer_hook_accounts = transfer_hook_accounts + .as_deref() + .ok_or(ErrorCode::NoExtraAccountsForTransferHook)?; spl_transfer_hook_interface::onchain::add_extra_accounts_for_execute_cpi( &mut instruction, @@ -165,7 +163,7 @@ pub fn transfer_from_vault_to_owner_v2<'info>( token_owner_account.to_account_info(), // to (owner account) whirlpool.to_account_info(), // authority (pool) amount, - transfer_hook_accounts.as_ref().unwrap(), + transfer_hook_accounts, )?; } From 128565abc0ed1344adb3a9800b21fca62baeef78 Mon Sep 17 00:00:00 2001 From: yugure <109891005+yugure-orca@users.noreply.github.com> Date: Tue, 15 Jul 2025 16:53:44 +0900 Subject: [PATCH 2/2] changeset --- .changeset/yellow-parks-show.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/yellow-parks-show.md diff --git a/.changeset/yellow-parks-show.md b/.changeset/yellow-parks-show.md new file mode 100644 index 000000000..f5b5aebe3 --- /dev/null +++ b/.changeset/yellow-parks-show.md @@ -0,0 +1,5 @@ +--- +"@orca-so/whirlpools-program": patch +--- + +Remove unnecessary transfer hook token program account info