From 3f256185700e63ff613c917b98b4f9cc7a82899f Mon Sep 17 00:00:00 2001 From: taco-paco Date: Wed, 11 Feb 2026 15:57:59 +0800 Subject: [PATCH 1/8] feat: call handler v2 --- src/discriminator.rs | 2 + src/lib.rs | 3 + src/processor/call_handler_v2.rs | 132 +++++++++++++++++++++++++++++++ src/processor/mod.rs | 2 + 4 files changed, 139 insertions(+) create mode 100644 src/processor/call_handler_v2.rs diff --git a/src/discriminator.rs b/src/discriminator.rs index 224e4163..a3a4d242 100644 --- a/src/discriminator.rs +++ b/src/discriminator.rs @@ -43,6 +43,8 @@ pub enum DlpDiscriminator { UndelegateConfinedAccount = 18, /// See [crate::processor::process_delegate_with_any_validator] for docs. DelegateWithAnyValidator = 19, + /// See [crate::processor::process_call_handler_v2] for docs + CallHandlerV2 = 20, } impl DlpDiscriminator { diff --git a/src/lib.rs b/src/lib.rs index 50d54afe..7dd7d8de 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -173,6 +173,9 @@ pub fn slow_process_instruction( DlpDiscriminator::CallHandler => { processor::process_call_handler(program_id, accounts, data)? } + DlpDiscriminator::CallHandlerV2 => { + processor::process_call_handler_v2(program_id, accounts, data)? + } _ => { #[cfg(feature = "logging")] msg!("PANIC: Instruction must be processed by fast_process_instruction"); diff --git a/src/processor/call_handler_v2.rs b/src/processor/call_handler_v2.rs new file mode 100644 index 00000000..b6ff0fe2 --- /dev/null +++ b/src/processor/call_handler_v2.rs @@ -0,0 +1,132 @@ +use crate::args::CallHandlerArgs; +use crate::ephemeral_balance_seeds_from_payer; +use crate::processor::utils::loaders::{ + load_initialized_validator_fees_vault, load_owned_pda, load_pda, load_signer, +}; + +use borsh::BorshDeserialize; +use solana_program::account_info::AccountInfo; +use solana_program::entrypoint::ProgramResult; +use solana_program::instruction::{AccountMeta, Instruction}; +use solana_program::program::invoke_signed; +use solana_program::program_error::ProgramError; +use solana_program::pubkey::Pubkey; +use solana_program::{msg, system_program}; + +pub const INVALID_ESCROW_PDA: &str = "invalid escrow pda in CallHandler"; +pub const INVALID_ESCROW_OWNER: &str = "escrow can not be delegated in CallHandler"; + +/// Calls a handler on user specified program +/// +/// Accounts: +/// 0: `[signer]` validator +/// 1: `[]` validator fee vault to verify its registration +/// 2: `[]` destination program of an action +/// 3. `[]` source program of an action +/// 3: `[]` escrow authority account which created escrow account +/// 4: `[writable]` non delegated escrow pda created from 3 +/// 5: `[readonly/writable]` other accounts needed for action +/// 6: `[readonly/writable]` other accounts needed for action +/// 7: ... +/// +/// Requirements: +/// +/// - escrow account initialized +/// - escrow account not delegated +/// - validator as a caller +/// +/// Steps: +/// 1. Verify that signer is a valid registered validator +/// 2. Verify escrow pda exists and not delegated +/// 3. Invoke signed on behalf of escrow pda user specified action +/// +/// Usage: +/// +/// This instruction is meant to be called via CPI with the owning program signing for the +/// delegated account. +pub fn process_call_handler_v2( + _program_id: &Pubkey, + accounts: &[AccountInfo], + data: &[u8], +) -> ProgramResult { + const OTHER_ACCOUNTS_OFFSET: usize = 5; + + if accounts.len() < OTHER_ACCOUNTS_OFFSET { + return Err(ProgramError::NotEnoughAccountKeys); + } + + let ( + [validator, validator_fees_vault, destination_program, source_program, escrow_authority_account, escrow_account], + other_accounts, + ) = accounts.split_at(OTHER_ACCOUNTS_OFFSET) + else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + let args = CallHandlerArgs::try_from_slice(data)?; + + // verify account is a signer + load_signer(validator, "validator")?; + // verify signer is a registered validator + load_initialized_validator_fees_vault(validator, validator_fees_vault, true)?; + // Check if destination program is executable + if !destination_program.executable { + msg!( + "{} program is not executable: destination program", + destination_program.key + ); + return Err(ProgramError::InvalidAccountData); + } + // Check if source program is executable + if !source_program.executable { + msg!( + "{} program is not executable: source program", + destination_program.key + ); + return Err(ProgramError::InvalidAccountData); + } + + // verify passed escrow_account derived from escrow authority + let escrow_seeds: &[&[u8]] = + ephemeral_balance_seeds_from_payer!(escrow_authority_account.key, args.escrow_index); + let escrow_bump = load_pda( + escrow_account, + escrow_seeds, + &crate::id(), + true, + INVALID_ESCROW_PDA, + )?; + load_owned_pda(escrow_account, &system_program::id(), INVALID_ESCROW_OWNER)?; + + // deduce necessary accounts for CPI + let (accounts_meta, handler_accounts): (Vec, Vec) = other_accounts + .iter() + .chain([source_program, escrow_authority_account, escrow_account]) + .filter(|account| account.key != validator.key) + .map(|account| { + ( + // We enable only escrow to be a signer + AccountMeta { + pubkey: *account.key, + is_writable: account.is_writable, + is_signer: account.key == escrow_account.key, + }, + account.clone(), + ) + }) + .collect(); + + let handler_instruction = Instruction { + program_id: *destination_program.key, + data: args.data, + accounts: accounts_meta, + }; + let bump_slice = &[escrow_bump]; + let escrow_signer_seeds = [escrow_seeds, &[bump_slice]].concat(); + + invoke_signed( + &handler_instruction, + &handler_accounts, + &[&escrow_signer_seeds], + ) +} diff --git a/src/processor/mod.rs b/src/processor/mod.rs index 46dc4df1..08be1d70 100644 --- a/src/processor/mod.rs +++ b/src/processor/mod.rs @@ -1,4 +1,5 @@ mod call_handler; +mod call_handler_v2; mod close_ephemeral_balance; mod close_validator_fees_vault; mod delegate_ephemeral_balance; @@ -13,6 +14,7 @@ mod whitelist_validator_for_program; pub mod fast; pub use call_handler::*; +pub use call_handler_v2::*; pub use close_ephemeral_balance::*; pub use close_validator_fees_vault::*; pub use delegate_ephemeral_balance::*; From b1306e7080ce8aff429b61ce7038434e2ca6c327 Mon Sep 17 00:00:00 2001 From: taco-paco Date: Wed, 11 Feb 2026 16:12:58 +0800 Subject: [PATCH 2/8] fix: bug --- src/processor/call_handler_v2.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/processor/call_handler_v2.rs b/src/processor/call_handler_v2.rs index b6ff0fe2..bfc0ae45 100644 --- a/src/processor/call_handler_v2.rs +++ b/src/processor/call_handler_v2.rs @@ -49,7 +49,7 @@ pub fn process_call_handler_v2( accounts: &[AccountInfo], data: &[u8], ) -> ProgramResult { - const OTHER_ACCOUNTS_OFFSET: usize = 5; + const OTHER_ACCOUNTS_OFFSET: usize = 6; if accounts.len() < OTHER_ACCOUNTS_OFFSET { return Err(ProgramError::NotEnoughAccountKeys); From 2cb491032f372faa4cfdb55e3f05cefd7e07351d Mon Sep 17 00:00:00 2001 From: taco-paco Date: Wed, 11 Feb 2026 16:13:51 +0800 Subject: [PATCH 3/8] feat: instruction builder --- src/instruction_builder/call_handler_v2.rs | 64 ++++++++++++++++++++++ src/instruction_builder/mod.rs | 2 + 2 files changed, 66 insertions(+) create mode 100644 src/instruction_builder/call_handler_v2.rs diff --git a/src/instruction_builder/call_handler_v2.rs b/src/instruction_builder/call_handler_v2.rs new file mode 100644 index 00000000..e11e112e --- /dev/null +++ b/src/instruction_builder/call_handler_v2.rs @@ -0,0 +1,64 @@ +use crate::args::CallHandlerArgs; +use crate::discriminator::DlpDiscriminator; +use crate::pda::{ephemeral_balance_pda_from_payer, validator_fees_vault_pda_from_validator}; +use crate::{total_size_budget, AccountSizeClass, DLP_PROGRAM_DATA_SIZE_CLASS}; +use borsh::to_vec; +use solana_program::instruction::Instruction; +use solana_program::{instruction::AccountMeta, pubkey::Pubkey}; + +/// Builds a call handler v2 instruction. +/// See [crate::processor::call_handler_v2] for docs. +pub fn call_handler_v2( + validator: Pubkey, + destination_program: Pubkey, + source_program: Pubkey, + escrow_authority: Pubkey, + other_accounts: Vec, + args: CallHandlerArgs, +) -> Instruction { + let validator_fees_vault_pda = validator_fees_vault_pda_from_validator(&validator); + + // handler accounts + let escrow_account = ephemeral_balance_pda_from_payer(&escrow_authority, args.escrow_index); + let mut accounts = vec![ + AccountMeta::new(validator, true), + AccountMeta::new(validator_fees_vault_pda, false), + AccountMeta::new_readonly(destination_program, false), + AccountMeta::new_readonly(source_program, false), + AccountMeta::new(escrow_authority, false), + AccountMeta::new(escrow_account, false), + ]; + // append other accounts at the end + accounts.extend(other_accounts); + + Instruction { + program_id: crate::id(), + accounts, + data: [ + DlpDiscriminator::CallHandlerV2.to_vec(), + to_vec(&args).unwrap(), + ] + .concat(), + } +} + +/// +/// Returns accounts-data-size budget for call_handler_v2 instruction. +/// +/// This value can be used with ComputeBudgetInstruction::SetLoadedAccountsDataSizeLimit +/// +pub fn call_handler_v2_size_budget( + destination_program: AccountSizeClass, + source_program: AccountSizeClass, + other_accounts: u32, +) -> u32 { + total_size_budget(&[ + DLP_PROGRAM_DATA_SIZE_CLASS, + AccountSizeClass::Tiny, // validator + AccountSizeClass::Tiny, // validator_fees_vault_pda + destination_program, + source_program, + AccountSizeClass::Tiny, // escrow_authority + AccountSizeClass::Tiny, // escrow_account + ]) + other_accounts +} diff --git a/src/instruction_builder/mod.rs b/src/instruction_builder/mod.rs index 2ef70507..5e9025c6 100644 --- a/src/instruction_builder/mod.rs +++ b/src/instruction_builder/mod.rs @@ -1,4 +1,5 @@ mod call_handler; +mod call_handler_v2; mod close_ephemeral_balance; mod close_validator_fees_vault; mod commit_diff; @@ -18,6 +19,7 @@ mod validator_claim_fees; mod whitelist_validator_for_program; pub use call_handler::*; +pub use call_handler_v2::*; pub use close_ephemeral_balance::*; pub use close_validator_fees_vault::*; pub use commit_diff::*; From d310023a592b0d83aa606643f506fbf6826ae015 Mon Sep 17 00:00:00 2001 From: taco-paco Date: Thu, 12 Feb 2026 16:12:43 +0800 Subject: [PATCH 4/8] fix: unit tests --- src/instruction_builder/call_handler.rs | 1 + tests/buffers/test_delegation.so | Bin 292392 -> 323928 bytes tests/test_call_handler_v2.rs | 485 ++++++++++++++++++++++++ 3 files changed, 486 insertions(+) create mode 100644 tests/test_call_handler_v2.rs diff --git a/src/instruction_builder/call_handler.rs b/src/instruction_builder/call_handler.rs index 81cffd1c..cf6eb336 100644 --- a/src/instruction_builder/call_handler.rs +++ b/src/instruction_builder/call_handler.rs @@ -8,6 +8,7 @@ use solana_program::{instruction::AccountMeta, pubkey::Pubkey}; /// Builds a call handler instruction. /// See [crate::processor::call_handler] for docs. +#[deprecated(since = "1.1.4", note = "Use `call_handler_v2` instead")] pub fn call_handler( validator: Pubkey, destination_program: Pubkey, diff --git a/tests/buffers/test_delegation.so b/tests/buffers/test_delegation.so index 352b3c1a973ba5976707bc64ce145ca511b66e6b..7c40a34b106c052c32c550891092f253b7440301 100755 GIT binary patch literal 323928 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

hqNEW z^T9m@etZs7U)u5e3h|#tyszKMdk#_ikdMnzCi879%=dR2zUc*g|77ud3-ALLzpw!R z5sTkci2ty~KUu)@A&VbVfd3nd-%yBu+~OZE;Ms2Ra|`f)Y4HaN@Q+#issj8Y7QdnZ zzuDsZ3i0nnynhe8cB#q3oK@29{vK#;hT0q1M3s}+j@d+gBq_By_ews>-OdkC4`{fCcf^RN3QL^M$C3DZdy5Nl zJ01Ps=N&1|gV2!=bpCF^gyXfI*;d6L-u*QDB74aC<-OVt*}Jr#^*r1zczQNg#P7Y+ z{9cW(EmgQ0z6V2ByHfGg=1CCz)_PGdvAwtsFFyEy<~>+#`o8kh+Btj7TZ@OQl=hjEsCeJA*u+IKE!KXd@Z*B=94%`WhFEtv1~ZK%gRPYGSM zd-kYr?`t`q-F~W%3(8mjo_css*!Mqd-OcBjS {-@WZIKKgf0Hfw#zH<%r`@3~6o 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

XHo)U#PfKiBL7diUVw%^}qZal& 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 FzXACWynp}z literal 292392 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 UPV4{0E5yBk9>**m`aib+-wrScB>(^b diff --git a/tests/test_call_handler_v2.rs b/tests/test_call_handler_v2.rs new file mode 100644 index 00000000..caeb414c --- /dev/null +++ b/tests/test_call_handler_v2.rs @@ -0,0 +1,485 @@ +use crate::fixtures::{ + create_delegation_metadata_data, create_delegation_record_data, get_commit_record_account_data, + get_delegation_metadata_data, get_delegation_record_data, DELEGATED_PDA_ID, + DELEGATED_PDA_OWNER_ID, TEST_AUTHORITY, +}; +use borsh::{to_vec, BorshDeserialize, BorshSerialize}; +use dlp::args::CallHandlerArgs; +use dlp::ephemeral_balance_seeds_from_payer; +use dlp::pda::{ + commit_record_pda_from_delegated_account, commit_state_pda_from_delegated_account, + delegation_metadata_pda_from_delegated_account, delegation_record_pda_from_delegated_account, + ephemeral_balance_pda_from_payer, fees_vault_pda, validator_fees_vault_pda_from_validator, +}; +use solana_program::instruction::AccountMeta; +use solana_program::rent::Rent; +use solana_program::{hash::Hash, native_token::LAMPORTS_PER_SOL, system_program}; +use solana_program_test::{read_file, BanksClient, ProgramTest}; +use solana_sdk::pubkey::Pubkey; +use solana_sdk::{ + account::Account, + signature::{Keypair, Signer}, + transaction::Transaction, +}; + +mod fixtures; + +const COMMIT_HANDLER_V2_DISCRIMINATOR: [u8; 4] = [1, 0, 3, 0]; +const UNDELEGATE_HANDLER_V2_DISCRIMINATOR: [u8; 4] = [1, 0, 4, 0]; + +// Mimic counter from test_delegation program +#[derive(BorshSerialize, BorshDeserialize)] +pub struct Counter { + pub count: u64, +} + +async fn setup_delegated_pda(program_test: &mut ProgramTest, authority_pubkey: &Pubkey) { + let state = to_vec(&Counter { count: 100 }).unwrap(); + // Setup a delegated PDA + program_test.add_account( + DELEGATED_PDA_ID, + Account { + lamports: LAMPORTS_PER_SOL, + data: state, + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); + + // Setup the delegation record PDA + let delegation_record_data = get_delegation_record_data(*authority_pubkey, None); + program_test.add_account( + delegation_record_pda_from_delegated_account(&DELEGATED_PDA_ID), + Account { + lamports: Rent::default().minimum_balance(delegation_record_data.len()), + data: delegation_record_data.clone(), + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); + + // Setup the delegated account metadata PDA + let delegation_metadata_data = get_delegation_metadata_data(*authority_pubkey, Some(true)); + program_test.add_account( + delegation_metadata_pda_from_delegated_account(&DELEGATED_PDA_ID), + Account { + lamports: Rent::default().minimum_balance(delegation_metadata_data.len()), + data: delegation_metadata_data, + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); +} + +async fn setup_commit_state(program_test: &mut ProgramTest, authority_pubkey: &Pubkey) { + // Setup the commit state PDA + let commit_state = to_vec(&Counter { count: 101 }).unwrap(); + program_test.add_account( + commit_state_pda_from_delegated_account(&DELEGATED_PDA_ID), + Account { + lamports: LAMPORTS_PER_SOL, + data: commit_state, + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); + + let commit_record_data = get_commit_record_account_data(*authority_pubkey); + program_test.add_account( + commit_record_pda_from_delegated_account(&DELEGATED_PDA_ID), + Account { + lamports: Rent::default().minimum_balance(commit_record_data.len()), + data: commit_record_data, + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); +} + +async fn setup_invalid_escrow_account(program_test: &mut ProgramTest, authority_pubkey: &Pubkey) { + let ephemeral_balance_pda = ephemeral_balance_pda_from_payer(&DELEGATED_PDA_ID, 0); + + // Setup the delegated account PDA + program_test.add_account( + ephemeral_balance_pda, + Account { + lamports: LAMPORTS_PER_SOL, + data: vec![], + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); + + // Setup the delegated record PDA + let delegation_record_data = + create_delegation_record_data(*authority_pubkey, dlp::id(), Some(LAMPORTS_PER_SOL)); + program_test.add_account( + delegation_record_pda_from_delegated_account(&ephemeral_balance_pda), + Account { + lamports: Rent::default().minimum_balance(delegation_record_data.len()), + data: delegation_record_data, + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); + + // Setup the delegated account metadata PDA + let delegation_metadata_data = create_delegation_metadata_data( + *authority_pubkey, + ephemeral_balance_seeds_from_payer!(DELEGATED_PDA_ID, 0), + true, + ); + program_test.add_account( + delegation_metadata_pda_from_delegated_account(&ephemeral_balance_pda), + Account { + lamports: Rent::default().minimum_balance(delegation_metadata_data.len()), + data: delegation_metadata_data, + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); +} + +async fn setup_delegated_ephemeral_balance( + program_test: &mut ProgramTest, + validator: &Keypair, + payer: &Keypair, +) { + let ephemeral_balance_pda = ephemeral_balance_pda_from_payer(&payer.pubkey(), 1); + + // Setup the delegated account PDA + program_test.add_account( + ephemeral_balance_pda, + Account { + lamports: LAMPORTS_PER_SOL, + data: vec![], + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); + + // Setup the delegated record PDA + let delegation_record_data = create_delegation_record_data( + validator.pubkey(), + system_program::id(), + Some(LAMPORTS_PER_SOL), + ); + program_test.add_account( + delegation_record_pda_from_delegated_account(&ephemeral_balance_pda), + Account { + lamports: Rent::default().minimum_balance(delegation_record_data.len()), + data: delegation_record_data, + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); + + // Setup the delegated account metadata PDA + let delegation_metadata_data = create_delegation_metadata_data( + validator.pubkey(), + ephemeral_balance_seeds_from_payer!(payer.pubkey(), 0), + true, + ); + program_test.add_account( + delegation_metadata_pda_from_delegated_account(&ephemeral_balance_pda), + Account { + lamports: Rent::default().minimum_balance(delegation_metadata_data.len()), + data: delegation_metadata_data, + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); +} + +async fn setup_ephemeral_balance(program_test: &mut ProgramTest, payer: &Keypair) { + let ephemeral_balance_pda = ephemeral_balance_pda_from_payer(&payer.pubkey(), 2); + + // Setup the delegated account PDA + program_test.add_account( + ephemeral_balance_pda, + Account { + lamports: LAMPORTS_PER_SOL, + data: vec![], + owner: system_program::id(), + executable: false, + rent_epoch: 0, + }, + ); +} + +async fn setup_program_test_env() -> (BanksClient, Keypair, Keypair, Hash) { + let mut program_test = ProgramTest::new("dlp", dlp::ID, None); + program_test.prefer_bpf(true); + + let payer = Keypair::new(); + let validator = Keypair::from_bytes(&TEST_AUTHORITY).unwrap(); + + // Setup authority + program_test.add_account( + validator.pubkey(), + Account { + lamports: LAMPORTS_PER_SOL, + data: vec![], + owner: system_program::id(), + executable: false, + rent_epoch: 0, + }, + ); + + // Setup necessary accounts + setup_delegated_pda(&mut program_test, &validator.pubkey()).await; + setup_commit_state(&mut program_test, &validator.pubkey()).await; + setup_invalid_escrow_account(&mut program_test, &validator.pubkey()).await; + setup_delegated_ephemeral_balance(&mut program_test, &validator, &payer).await; + setup_ephemeral_balance(&mut program_test, &payer).await; + + // Setup the protocol fees vault + program_test.add_account( + fees_vault_pda(), + Account { + lamports: Rent::default().minimum_balance(0), + data: vec![], + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); + // Setup the validator fees vault + program_test.add_account( + validator_fees_vault_pda_from_validator(&validator.pubkey()), + Account { + lamports: LAMPORTS_PER_SOL, + data: vec![], + owner: dlp::id(), + executable: false, + rent_epoch: 0, + }, + ); + + // Setup program to test delegation + let data = read_file("tests/buffers/test_delegation.so"); + program_test.add_account( + DELEGATED_PDA_OWNER_ID, + Account { + lamports: Rent::default().minimum_balance(data.len()).max(1), + data, + owner: solana_sdk::bpf_loader::id(), + executable: true, + rent_epoch: 0, + }, + ); + + let (banks, _, blockhash) = program_test.start().await; + (banks, payer, validator, blockhash) +} + +/// Test call_handler_v2 in finalize context +#[tokio::test] +async fn test_finalize_call_handler_v2() { + const PRIZE: u64 = LAMPORTS_PER_SOL / 1000; + + let (banks, payer, validator, blockhash) = setup_program_test_env().await; + + let transfer_destination = Keypair::new(); + let finalize_ix = dlp::instruction_builder::finalize(validator.pubkey(), DELEGATED_PDA_ID); + let call_handler_v2_ix = dlp::instruction_builder::call_handler_v2( + validator.pubkey(), + DELEGATED_PDA_OWNER_ID, // destination program + DELEGATED_PDA_OWNER_ID, // source program + payer.pubkey(), // escrow authority + vec![ + AccountMeta::new(transfer_destination.pubkey(), false), + AccountMeta::new_readonly(system_program::id(), false), + ], + CallHandlerArgs { + escrow_index: 2, // undelegated escrow index + data: [ + COMMIT_HANDLER_V2_DISCRIMINATOR.to_vec(), + to_vec(&PRIZE).unwrap(), + ] + .concat(), + }, + ); + + let tx = Transaction::new_signed_with_payer( + &[finalize_ix, call_handler_v2_ix], + Some(&validator.pubkey()), + &[&validator], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + // Prize transferred + let transfer_destination = banks + .get_account(transfer_destination.pubkey()) + .await + .unwrap() + .unwrap(); + assert_eq!(transfer_destination.lamports, PRIZE); +} + +/// Test call_handler_v2 in undelegate context +#[tokio::test] +async fn test_undelegate_call_handler_v2() { + const PRIZE: u64 = LAMPORTS_PER_SOL / 1000; + + let (banks, payer, validator, blockhash) = setup_program_test_env().await; + + let transfer_destination = Keypair::new(); + let finalize_ix = dlp::instruction_builder::finalize(validator.pubkey(), DELEGATED_PDA_ID); + let undelegate_ix = dlp::instruction_builder::undelegate( + validator.pubkey(), + DELEGATED_PDA_ID, + DELEGATED_PDA_OWNER_ID, + validator.pubkey(), + ); + let call_handler_v2_ix = dlp::instruction_builder::call_handler_v2( + validator.pubkey(), + DELEGATED_PDA_OWNER_ID, // destination program + DELEGATED_PDA_OWNER_ID, // source program + payer.pubkey(), // escrow authority + vec![ + AccountMeta::new(transfer_destination.pubkey(), false), + AccountMeta::new(DELEGATED_PDA_ID, false), + AccountMeta::new_readonly(system_program::id(), false), + ], + CallHandlerArgs { + escrow_index: 2, // undelegated escrow index + data: [ + UNDELEGATE_HANDLER_V2_DISCRIMINATOR.to_vec(), + to_vec(&PRIZE).unwrap(), + ] + .concat(), + }, + ); + + let tx = Transaction::new_signed_with_payer( + &[finalize_ix, undelegate_ix, call_handler_v2_ix], + Some(&validator.pubkey()), + &[&validator], + blockhash, + ); + + let counter_before = banks.get_account(DELEGATED_PDA_ID).await.unwrap().unwrap(); + let counter_before = Counter::try_from_slice(&counter_before.data).unwrap(); + let res = banks.process_transaction(tx).await; + assert!(res.is_ok()); + + // Prize transferred + let transfer_destination = banks + .get_account(transfer_destination.pubkey()) + .await + .unwrap() + .unwrap(); + assert_eq!(transfer_destination.lamports, PRIZE); + + let counter_after = banks.get_account(DELEGATED_PDA_ID).await.unwrap().unwrap(); + let counter_after = Counter::try_from_slice(&counter_after.data).unwrap(); + // Committing state from count 100 to 101, and then increasing in handler on 1 + assert_eq!(counter_before.count + 2, counter_after.count); +} + +/// Testing call_handler_v2 in finalize context with invalid escrow +#[tokio::test] +async fn test_finalize_invalid_escrow_call_handler_v2() { + // Setup + let (banks, _, authority, blockhash) = setup_program_test_env().await; + + // Submit the finalize with handler tx + let transfer_destination = Keypair::new(); + let finalize_ix = dlp::instruction_builder::finalize(authority.pubkey(), DELEGATED_PDA_ID); + let call_handler_v2_ix = dlp::instruction_builder::call_handler_v2( + authority.pubkey(), + DELEGATED_PDA_OWNER_ID, // destination program + DELEGATED_PDA_OWNER_ID, // source program + DELEGATED_PDA_ID, + vec![AccountMeta::new(transfer_destination.pubkey(), false)], + CallHandlerArgs { + escrow_index: 0, + data: COMMIT_HANDLER_V2_DISCRIMINATOR.to_vec(), + }, + ); + let tx = Transaction::new_signed_with_payer( + &[finalize_ix, call_handler_v2_ix], + Some(&authority.pubkey()), + &[&authority], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res + .unwrap_err() + .to_string() + .contains("Invalid account owner")); +} + +#[tokio::test] +async fn test_undelegate_invalid_escrow_call_handler_v2() { + const PRIZE: u64 = LAMPORTS_PER_SOL / 1000; + + let (banks, _, authority, blockhash) = setup_program_test_env().await; + + // Submit the finalize with handler tx + let destination = Keypair::new(); + let finalize_ix = dlp::instruction_builder::finalize(authority.pubkey(), DELEGATED_PDA_ID); + let finalize_call_handler_v2_ix = dlp::instruction_builder::call_handler_v2( + authority.pubkey(), + DELEGATED_PDA_OWNER_ID, // handler program + DELEGATED_PDA_OWNER_ID, // source program + DELEGATED_PDA_ID, + vec![AccountMeta::new(destination.pubkey(), false)], + CallHandlerArgs { + escrow_index: 0, + data: UNDELEGATE_HANDLER_V2_DISCRIMINATOR.to_vec(), + }, + ); + + let undelegate_ix = dlp::instruction_builder::undelegate( + authority.pubkey(), + DELEGATED_PDA_ID, + DELEGATED_PDA_OWNER_ID, + authority.pubkey(), + ); + let undelegate_call_handler_v2_ix = dlp::instruction_builder::call_handler_v2( + authority.pubkey(), + DELEGATED_PDA_OWNER_ID, // handler program + DELEGATED_PDA_OWNER_ID, // source program + DELEGATED_PDA_ID, + vec![AccountMeta::new(destination.pubkey(), false)], + CallHandlerArgs { + escrow_index: 0, + data: [ + UNDELEGATE_HANDLER_V2_DISCRIMINATOR.to_vec(), + to_vec(&PRIZE).unwrap(), + ] + .concat(), + }, + ); + let tx = Transaction::new_signed_with_payer( + &[ + finalize_ix, + finalize_call_handler_v2_ix, + undelegate_ix, + undelegate_call_handler_v2_ix, + ], + Some(&authority.pubkey()), + &[&authority], + blockhash, + ); + let res = banks.process_transaction(tx).await; + assert!(res + .unwrap_err() + .to_string() + .contains("Invalid account owner")); +} From 1c314175296d8c4c0c9e7f51c09ba263880abf84 Mon Sep 17 00:00:00 2001 From: taco-paco Date: Thu, 12 Feb 2026 18:31:55 +0800 Subject: [PATCH 5/8] feat: add integration tests --- .../programs/test-delegation/src/lib.rs | 70 +++++++++ tests/integration/tests/test-delegation.ts | 134 ++++++++++++++++++ 2 files changed, 204 insertions(+) diff --git a/tests/integration/programs/test-delegation/src/lib.rs b/tests/integration/programs/test-delegation/src/lib.rs index db02c7ba..4f2efe6e 100644 --- a/tests/integration/programs/test-delegation/src/lib.rs +++ b/tests/integration/programs/test-delegation/src/lib.rs @@ -117,6 +117,48 @@ pub mod test_delegation { Ok(()) } + + /// Delegation program call handler v2 (commit variant) + #[instruction(discriminator = [1, 0, 3, 0])] + pub fn commit_base_action_handler_v2( + ctx: Context, + amount: u64, + ) -> Result<()> { + msg!("commit_base_action_handler_v2!"); + let transfer_ctx = CpiContext::new( + ctx.accounts.system_program.to_account_info(), + Transfer { + from: ctx.accounts.escrow_account.to_account_info(), + to: ctx.accounts.destination_account.to_account_info(), + }, + ); + + transfer(transfer_ctx, amount) + } + + /// Delegation program call handler v2 (undelegate variant) + #[instruction(discriminator = [1, 0, 4, 0])] + pub fn undelegate_base_action_handler_v2( + ctx: Context, + amount: u64, + ) -> Result<()> { + msg!("undelegate_base_action_handler_v2"); + let transfer_ctx = CpiContext::new( + ctx.accounts.system_program.to_account_info(), + Transfer { + from: ctx.accounts.escrow_account.to_account_info(), + to: ctx.accounts.destination_account.to_account_info(), + }, + ); + transfer(transfer_ctx, amount)?; + + let counter_data = &mut ctx.accounts.counter.try_borrow_mut_data()?; + let mut counter = Counter::try_from_slice(&counter_data)?; + counter.count += 1; + counter_data.copy_from_slice(&counter.try_to_vec()?); + + Ok(()) + } } pub fn transfer_from_undelegated( @@ -210,6 +252,34 @@ pub struct UndelegateBaseActionHandler<'info> { pub escrow_account: Signer<'info>, } +#[derive(Accounts)] +pub struct CommitBaseActionHandlerV2<'info> { + /// CHECK: The destination account to transfer lamports to + #[account(mut)] + pub destination_account: AccountInfo<'info>, + pub system_program: Program<'info, System>, + /// CHECK: The source program passed through by call_handler_v2 + pub source_program: UncheckedAccount<'info>, + /// CHECK: The authority that owns the escrow account + pub escrow_authority: UncheckedAccount<'info>, + pub escrow_account: Signer<'info>, +} + +#[derive(Accounts)] +pub struct UndelegateBaseActionHandlerV2<'info> { + /// CHECK: The destination account to transfer lamports to + #[account(mut)] + pub destination_account: AccountInfo<'info>, + /// CHECK: fails in finalize stage due to ownership by dlp + pub counter: UncheckedAccount<'info>, + pub system_program: Program<'info, System>, + /// CHECK: The source program passed through by call_handler_v2 + pub source_program: UncheckedAccount<'info>, + /// CHECK: The authority that owns the escrow account + pub escrow_authority: UncheckedAccount<'info>, + pub escrow_account: Signer<'info>, +} + #[account] pub struct Counter { pub count: u64, diff --git a/tests/integration/tests/test-delegation.ts b/tests/integration/tests/test-delegation.ts index c27f1bfd..cf7a7e19 100644 --- a/tests/integration/tests/test-delegation.ts +++ b/tests/integration/tests/test-delegation.ts @@ -241,6 +241,21 @@ describe("TestDelegation", () => { ); }); + // Use a separate escrow authority so it doesn't collide with validator + // (the v2 processor filters out accounts matching the validator key) + const escrowAuthority = web3.Keypair.generate(); + + it("Top up ephemeral balance for call handler v2", async () => { + const ix = createTopUpEphemeralBalanceInstruction( + payer, + escrowAuthority.publicKey, + 100_000_000, // 0.1 SOL + 255 + ); + const txId = await processInstruction(ix); + console.log("Top up ephemeral balance tx:", txId); + }); + it("Finalize account state", async () => { const ix = createFinalizeInstruction(validator, pda); const txId = await processInstruction(ix); @@ -259,6 +274,47 @@ describe("TestDelegation", () => { ); }); + it("Call handler v2 after finalize", async () => { + const destination = web3.Keypair.generate(); + const transferAmount = 1_000_000; // 0.001 SOL + + const callHandlerV2Ix = createCallHandlerV2Instruction( + validator, + ownerProgram, + ownerProgram, + escrowAuthority.publicKey, + 255, + [ + { pubkey: destination.publicKey, isSigner: false, isWritable: true }, + { + pubkey: web3.SystemProgram.programId, + isSigner: false, + isWritable: false, + }, + ], + // handler data: commit_base_action_handler_v2 discriminator + amount + Buffer.concat([ + Buffer.from([1, 0, 3, 0]), + Buffer.from( + new Uint8Array(new BigUint64Array([BigInt(transferAmount)]).buffer) + ), + ]) + ); + + const txId = await processInstruction(callHandlerV2Ix); + console.log("Call handler v2 tx:", txId); + + const destAccount = await provider.connection.getAccountInfo( + destination.publicKey + ); + assert.isNotNull(destAccount, "destination account should exist"); + assert.strictEqual( + destAccount.lamports, + transferAmount, + "destination should have received the transfer amount" + ); + }); + it("Commit a new state to the PDA", async () => { let account = await provider.connection.getAccountInfo(pda); let new_data = account.data; @@ -571,6 +627,74 @@ describe("TestDelegation", () => { return ix; } + function createTopUpEphemeralBalanceInstruction( + funder: web3.PublicKey, + authority: web3.PublicKey, + amount: number, + index: number + ) { + const ephemeralBalancePda = ephemeralBalancePdaFromPayer(authority, index); + const keys = [ + { pubkey: funder, isSigner: true, isWritable: true }, + { pubkey: authority, isSigner: false, isWritable: false }, + { pubkey: ephemeralBalancePda, isSigner: false, isWritable: true }, + { + pubkey: web3.SystemProgram.programId, + isSigner: false, + isWritable: false, + }, + ]; + // discriminator(8) + amount(u64) + index(u8) + const data = Buffer.alloc(8 + 8 + 1); + data.writeUint8(9, 0); // TopUpEphemeralBalance discriminator = 9 + data.writeBigUInt64LE(BigInt(amount), 8); + data.writeUint8(index, 16); + const ix = new web3.TransactionInstruction({ + programId: new web3.PublicKey(DELEGATION_PROGRAM_ID), + keys, + data, + }); + return ix; + } + + function createCallHandlerV2Instruction( + validator: web3.PublicKey, + destinationProgram: web3.PublicKey, + sourceProgram: web3.PublicKey, + escrowAuthority: web3.PublicKey, + escrowIndex: number, + otherAccounts: web3.AccountMeta[], + handlerData: Buffer + ) { + const validatorFeesVault = validatorFeesVaultPdaFromValidator(validator); + const escrowAccount = ephemeralBalancePdaFromPayer( + escrowAuthority, + escrowIndex + ); + const keys = [ + { pubkey: validator, isSigner: true, isWritable: true }, + { pubkey: validatorFeesVault, isSigner: false, isWritable: true }, + { pubkey: destinationProgram, isSigner: false, isWritable: false }, + { pubkey: sourceProgram, isSigner: false, isWritable: false }, + { pubkey: escrowAuthority, isSigner: false, isWritable: true }, + { pubkey: escrowAccount, isSigner: false, isWritable: true }, + ...otherAccounts, + ]; + // discriminator(8) + escrow_index(u8) + data_len(u32 LE) + data + const dataLen = handlerData.length; + const data = Buffer.alloc(8 + 1 + 4 + dataLen); + data.writeUint8(20, 0); // CallHandlerV2 discriminator = 20 + data.writeUint8(escrowIndex, 8); + data.writeUint32LE(dataLen, 9); + handlerData.copy(data, 13); + const ix = new web3.TransactionInstruction({ + programId: new web3.PublicKey(DELEGATION_PROGRAM_ID), + keys, + data, + }); + return ix; + } + function createWhitelistValidatorForProgramInstruction( admin: web3.PublicKey, validator: web3.PublicKey, @@ -643,3 +767,13 @@ function programConfigPdaFromProgramId(programId: web3.PublicKey) { new web3.PublicKey(DELEGATION_PROGRAM_ID) )[0]; } + +function ephemeralBalancePdaFromPayer( + payer: web3.PublicKey, + index: number +) { + return web3.PublicKey.findProgramAddressSync( + [Buffer.from("balance"), payer.toBuffer(), Buffer.from([index])], + new web3.PublicKey(DELEGATION_PROGRAM_ID) + )[0]; +} From f5f7bdc0b798f55b689c0bd5352c64f380cc6fb9 Mon Sep 17 00:00:00 2001 From: taco-paco Date: Thu, 12 Feb 2026 18:40:01 +0800 Subject: [PATCH 6/8] fix: coderabbit --- src/discriminator.rs | 2 +- src/processor/call_handler_v2.rs | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/discriminator.rs b/src/discriminator.rs index a3a4d242..e2025aa1 100644 --- a/src/discriminator.rs +++ b/src/discriminator.rs @@ -43,7 +43,7 @@ pub enum DlpDiscriminator { UndelegateConfinedAccount = 18, /// See [crate::processor::process_delegate_with_any_validator] for docs. DelegateWithAnyValidator = 19, - /// See [crate::processor::process_call_handler_v2] for docs + /// See [crate::processor::process_call_handler_v2] for docs. CallHandlerV2 = 20, } diff --git a/src/processor/call_handler_v2.rs b/src/processor/call_handler_v2.rs index bfc0ae45..c973712d 100644 --- a/src/processor/call_handler_v2.rs +++ b/src/processor/call_handler_v2.rs @@ -22,12 +22,12 @@ pub const INVALID_ESCROW_OWNER: &str = "escrow can not be delegated in CallHandl /// 0: `[signer]` validator /// 1: `[]` validator fee vault to verify its registration /// 2: `[]` destination program of an action -/// 3. `[]` source program of an action -/// 3: `[]` escrow authority account which created escrow account -/// 4: `[writable]` non delegated escrow pda created from 3 -/// 5: `[readonly/writable]` other accounts needed for action +/// 3: `[]` source program of an action +/// 4: `[]` escrow authority account which created escrow account +/// 5: `[writable]` non delegated escrow PDA created from escrow_authority (index 4) /// 6: `[readonly/writable]` other accounts needed for action -/// 7: ... +/// 7: `[readonly/writable]` other accounts needed for action +/// 8: ... /// /// Requirements: /// @@ -81,7 +81,7 @@ pub fn process_call_handler_v2( if !source_program.executable { msg!( "{} program is not executable: source program", - destination_program.key + source_program.key ); return Err(ProgramError::InvalidAccountData); } From 1cbb24b6ed91f5d02d923aaadf8d9842181578a2 Mon Sep 17 00:00:00 2001 From: taco-paco Date: Fri, 13 Feb 2026 15:51:06 +0800 Subject: [PATCH 7/8] fix: comments --- src/error.rs | 3 +++ src/processor/call_handler.rs | 18 ++---------------- src/processor/call_handler_v2.rs | 16 +--------------- 3 files changed, 6 insertions(+), 31 deletions(-) diff --git a/src/error.rs b/src/error.rs index 4b4e6027..72361dd0 100644 --- a/src/error.rs +++ b/src/error.rs @@ -2,6 +2,9 @@ use num_enum::IntoPrimitive; use solana_program::program_error::ProgramError; use thiserror::Error; +pub const INVALID_ESCROW_PDA: &str = "invalid escrow pda in CallHandler"; +pub const INVALID_ESCROW_OWNER: &str = "escrow can not be delegated in CallHandler"; + #[derive(Debug, Error, Clone, Copy, PartialEq, Eq, IntoPrimitive)] #[repr(u32)] pub enum DlpError { diff --git a/src/processor/call_handler.rs b/src/processor/call_handler.rs index 5ddd66de..8c21a829 100644 --- a/src/processor/call_handler.rs +++ b/src/processor/call_handler.rs @@ -1,5 +1,6 @@ use crate::args::CallHandlerArgs; use crate::ephemeral_balance_seeds_from_payer; +use crate::error::{INVALID_ESCROW_OWNER, INVALID_ESCROW_PDA}; use crate::processor::utils::loaders::{ load_initialized_validator_fees_vault, load_owned_pda, load_pda, load_signer, }; @@ -11,10 +12,7 @@ use solana_program::instruction::{AccountMeta, Instruction}; use solana_program::program::invoke_signed; use solana_program::program_error::ProgramError; use solana_program::pubkey::Pubkey; -use solana_program::{msg, system_program}; - -pub const INVALID_ESCROW_PDA: &str = "invalid escrow pda in CallHandler"; -pub const INVALID_ESCROW_OWNER: &str = "escrow can not be delegated in CallHandler"; +use solana_program::system_program; /// Calls a handler on user specified program /// @@ -50,10 +48,6 @@ pub fn process_call_handler( ) -> ProgramResult { const OTHER_ACCOUNTS_OFFSET: usize = 5; - if accounts.len() < OTHER_ACCOUNTS_OFFSET { - return Err(ProgramError::NotEnoughAccountKeys); - } - let ( [validator, validator_fees_vault, destination_program, escrow_authority_account, escrow_account], other_accounts, @@ -68,14 +62,6 @@ pub fn process_call_handler( load_signer(validator, "validator")?; // verify signer is a registered validator load_initialized_validator_fees_vault(validator, validator_fees_vault, true)?; - // Check if destination program is executable - if !destination_program.executable { - msg!( - "{} program is not executable: destination program", - destination_program.key - ); - return Err(ProgramError::InvalidAccountData); - } // verify passed escrow_account derived from escrow authority let escrow_seeds: &[&[u8]] = diff --git a/src/processor/call_handler_v2.rs b/src/processor/call_handler_v2.rs index c973712d..31327211 100644 --- a/src/processor/call_handler_v2.rs +++ b/src/processor/call_handler_v2.rs @@ -1,5 +1,6 @@ use crate::args::CallHandlerArgs; use crate::ephemeral_balance_seeds_from_payer; +use crate::error::{INVALID_ESCROW_OWNER, INVALID_ESCROW_PDA}; use crate::processor::utils::loaders::{ load_initialized_validator_fees_vault, load_owned_pda, load_pda, load_signer, }; @@ -13,9 +14,6 @@ use solana_program::program_error::ProgramError; use solana_program::pubkey::Pubkey; use solana_program::{msg, system_program}; -pub const INVALID_ESCROW_PDA: &str = "invalid escrow pda in CallHandler"; -pub const INVALID_ESCROW_OWNER: &str = "escrow can not be delegated in CallHandler"; - /// Calls a handler on user specified program /// /// Accounts: @@ -51,10 +49,6 @@ pub fn process_call_handler_v2( ) -> ProgramResult { const OTHER_ACCOUNTS_OFFSET: usize = 6; - if accounts.len() < OTHER_ACCOUNTS_OFFSET { - return Err(ProgramError::NotEnoughAccountKeys); - } - let ( [validator, validator_fees_vault, destination_program, source_program, escrow_authority_account, escrow_account], other_accounts, @@ -69,14 +63,6 @@ pub fn process_call_handler_v2( load_signer(validator, "validator")?; // verify signer is a registered validator load_initialized_validator_fees_vault(validator, validator_fees_vault, true)?; - // Check if destination program is executable - if !destination_program.executable { - msg!( - "{} program is not executable: destination program", - destination_program.key - ); - return Err(ProgramError::InvalidAccountData); - } // Check if source program is executable if !source_program.executable { msg!( From 887a1b0fcd0ae7eba579cba2945cbb68f112aa97 Mon Sep 17 00:00:00 2001 From: taco-paco Date: Wed, 18 Feb 2026 13:30:19 +0800 Subject: [PATCH 8/8] refactor: remove extra check --- src/processor/call_handler_v2.rs | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/processor/call_handler_v2.rs b/src/processor/call_handler_v2.rs index 31327211..4c6cac24 100644 --- a/src/processor/call_handler_v2.rs +++ b/src/processor/call_handler_v2.rs @@ -12,7 +12,7 @@ use solana_program::instruction::{AccountMeta, Instruction}; use solana_program::program::invoke_signed; use solana_program::program_error::ProgramError; use solana_program::pubkey::Pubkey; -use solana_program::{msg, system_program}; +use solana_program::system_program; /// Calls a handler on user specified program /// @@ -63,14 +63,6 @@ pub fn process_call_handler_v2( load_signer(validator, "validator")?; // verify signer is a registered validator load_initialized_validator_fees_vault(validator, validator_fees_vault, true)?; - // Check if source program is executable - if !source_program.executable { - msg!( - "{} program is not executable: source program", - source_program.key - ); - return Err(ProgramError::InvalidAccountData); - } // verify passed escrow_account derived from escrow authority let escrow_seeds: &[&[u8]] =