diff --git a/test-integration/programs/flexi-counter/src/instruction.rs b/test-integration/programs/flexi-counter/src/instruction.rs index 1389f7641..e181a5ef1 100644 --- a/test-integration/programs/flexi-counter/src/instruction.rs +++ b/test-integration/programs/flexi-counter/src/instruction.rs @@ -300,6 +300,13 @@ pub fn create_delegate_ix(payer: Pubkey) -> Instruction { ) } +pub fn create_delegate_ix_with_validator( + payer: Pubkey, + _validator: Option, +) -> Instruction { + create_delegate_ix(payer) +} + pub fn create_add_and_schedule_commit_ix( payer: Pubkey, count: u8, diff --git a/test-integration/programs/flexi-counter/src/processor/call_handler.rs b/test-integration/programs/flexi-counter/src/processor/call_handler.rs index 9e655ee9c..cbee175d3 100644 --- a/test-integration/programs/flexi-counter/src/processor/call_handler.rs +++ b/test-integration/programs/flexi-counter/src/processor/call_handler.rs @@ -99,6 +99,7 @@ pub fn process_undelegate_action_handler( #[allow(dead_code)] fn process_redelegation_call_handler<'a, 'b>( accounts: &[AccountInfo], + validator: Option, ) -> ProgramResult where 'a: 'b, @@ -128,7 +129,7 @@ where // Could be passed in CallHandlerArgs::data DelegateConfig { commit_frequency_ms: 1000, - validator: None, + validator, }, )?; diff --git a/test-integration/programs/schedulecommit/src/api.rs b/test-integration/programs/schedulecommit/src/api.rs index 57475abed..b23d1d2a5 100644 --- a/test-integration/programs/schedulecommit/src/api.rs +++ b/test-integration/programs/schedulecommit/src/api.rs @@ -33,6 +33,13 @@ pub fn init_account_instruction( } pub fn init_payer_escrow(payer: Pubkey) -> [Instruction; 2] { + init_payer_escrow_with_validator(payer, None) +} + +pub fn init_payer_escrow_with_validator( + payer: Pubkey, + validator: Option, +) -> [Instruction; 2] { let top_up_ix = dlp::instruction_builder::top_up_ephemeral_balance( payer, payer, @@ -47,7 +54,7 @@ pub fn init_payer_escrow(payer: Pubkey) -> [Instruction; 2] { delegate_args: DelegateArgs { commit_frequency_ms: 0, seeds: vec![], - validator: None, + validator, }, }, ); diff --git a/test-integration/schedulecommit/client/src/schedule_commit_context.rs b/test-integration/schedulecommit/client/src/schedule_commit_context.rs index de5383e8b..6b933aaa0 100644 --- a/test-integration/schedulecommit/client/src/schedule_commit_context.rs +++ b/test-integration/schedulecommit/client/src/schedule_commit_context.rs @@ -5,7 +5,7 @@ use integration_test_tools::IntegrationTestContext; use log::*; use program_schedulecommit::api::{ delegate_account_cpi_instruction, init_account_instruction, - init_payer_escrow, pda_and_bump, + init_payer_escrow_with_validator, pda_and_bump, }; use solana_rpc_client::rpc_client::{RpcClient, SerializableTransaction}; use solana_rpc_client_api::config::RpcSendTransactionConfig; @@ -196,7 +196,12 @@ impl ScheduleCommitTestContext { } pub fn escrow_lamports_for_payer(&self) -> Result { - let ixs = init_payer_escrow(self.payer_ephem.pubkey()); + let validator_identity = + self.common_ctx.ephem_validator_identity.as_ref().copied(); + let ixs = init_payer_escrow_with_validator( + self.payer_ephem.pubkey(), + validator_identity, + ); // The init tx for all payers is funded by the first payer for simplicity let tx = Transaction::new_signed_with_payer( diff --git a/test-integration/schedulecommit/elfs/dlp.so b/test-integration/schedulecommit/elfs/dlp.so index f07df31f3..442b5493c 100755 Binary files a/test-integration/schedulecommit/elfs/dlp.so and b/test-integration/schedulecommit/elfs/dlp.so differ diff --git a/test-integration/schedulecommit/test-scenarios/tests/02_commit_and_undelegate.rs b/test-integration/schedulecommit/test-scenarios/tests/02_commit_and_undelegate.rs index 120650a70..e6b86d31e 100644 --- a/test-integration/schedulecommit/test-scenarios/tests/02_commit_and_undelegate.rs +++ b/test-integration/schedulecommit/test-scenarios/tests/02_commit_and_undelegate.rs @@ -245,6 +245,11 @@ fn assert_cannot_increase_committee_count( ); let (tx_result_err, tx_err) = extract_transaction_error(tx_res); if let Some(tx_err) = tx_err { + use solana_sdk::transaction::TransactionError; + if matches!(tx_err, TransactionError::InvalidWritableAccount) { + return; + } + assert_is_one_of_instruction_errors( tx_err, &tx_result_err, diff --git a/test-integration/test-config/tests/auto_airdrop_feepayer.rs b/test-integration/test-config/tests/auto_airdrop_feepayer.rs index 9bf018840..16aca5f26 100644 --- a/test-integration/test-config/tests/auto_airdrop_feepayer.rs +++ b/test-integration/test-config/tests/auto_airdrop_feepayer.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use integration_test_tools::{ expect, loaded_accounts::LoadedAccounts, validator::start_magicblock_validator_with_config_struct, diff --git a/test-integration/test-ledger-restore/tests/06_delegated_account.rs b/test-integration/test-ledger-restore/tests/06_delegated_account.rs index 35dc79b3c..3c73a19c2 100644 --- a/test-integration/test-ledger-restore/tests/06_delegated_account.rs +++ b/test-integration/test-ledger-restore/tests/06_delegated_account.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use std::{path::Path, process::Child}; use cleanass::assert_eq; diff --git a/test-integration/test-magicblock-api/tests/test_claim_fees.rs b/test-integration/test-magicblock-api/tests/test_claim_fees.rs index 5b7ffc8a9..65fab3ce5 100644 --- a/test-integration/test-magicblock-api/tests/test_claim_fees.rs +++ b/test-integration/test-magicblock-api/tests/test_claim_fees.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use std::{thread::sleep, time::Duration}; use dlp::instruction_builder::validator_claim_fees; diff --git a/test-integration/test-runner/bin/run_tests.rs b/test-integration/test-runner/bin/run_tests.rs index a810ab832..0ae6b0685 100644 --- a/test-integration/test-runner/bin/run_tests.rs +++ b/test-integration/test-runner/bin/run_tests.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use std::{ error::Error, io, diff --git a/test-integration/test-schedule-intent/tests/test_schedule_intents.rs b/test-integration/test-schedule-intent/tests/test_schedule_intents.rs index d100658c4..a817533a7 100644 --- a/test-integration/test-schedule-intent/tests/test_schedule_intents.rs +++ b/test-integration/test-schedule-intent/tests/test_schedule_intents.rs @@ -4,7 +4,8 @@ use log::*; use program_flexi_counter::{ delegation_program_id, instruction::{ - create_add_ix, create_delegate_ix, create_init_ix, create_intent_ix, + create_add_ix, create_delegate_ix_with_validator, create_init_ix, + create_intent_ix, }, state::FlexiCounter, }; @@ -288,15 +289,30 @@ fn setup_payer(ctx: &IntegrationTestContext) -> Keypair { ctx.airdrop_chain(&payer.pubkey(), LAMPORTS_PER_SOL) .unwrap(); - // Create actor escrow - let ix = dlp::instruction_builder::top_up_ephemeral_balance( + // Create actor escrow with delegation + let top_up_ix = dlp::instruction_builder::top_up_ephemeral_balance( payer.pubkey(), payer.pubkey(), Some(LAMPORTS_PER_SOL / 2), Some(1), ); - ctx.send_and_confirm_instructions_with_payer_chain(&[ix], &payer) - .unwrap(); + let delegate_ix = dlp::instruction_builder::delegate_ephemeral_balance( + payer.pubkey(), + payer.pubkey(), + dlp::args::DelegateEphemeralBalanceArgs { + index: 1, + delegate_args: dlp::args::DelegateArgs { + commit_frequency_ms: 0, + seeds: vec![], + validator: ctx.ephem_validator_identity, + }, + }, + ); + ctx.send_and_confirm_instructions_with_payer_chain( + &[top_up_ix, delegate_ix], + &payer, + ) + .unwrap(); // Confirm actor escrow let escrow_pda = ephemeral_balance_pda_from_payer(&payer.pubkey(), 1); @@ -335,7 +351,10 @@ fn delegate_counter(ctx: &IntegrationTestContext, payer: &Keypair) { ctx.wait_for_next_slot_ephem().unwrap(); let counter_pda = FlexiCounter::pda(&payer.pubkey()).0; - let ix = create_delegate_ix(payer.pubkey()); + let ix = create_delegate_ix_with_validator( + payer.pubkey(), + ctx.ephem_validator_identity, + ); ctx.send_and_confirm_instructions_with_payer_chain(&[ix], payer) .unwrap(); diff --git a/test-integration/test-task-scheduler/src/lib.rs b/test-integration/test-task-scheduler/src/lib.rs index 36db600ea..ff15d2573 100644 --- a/test-integration/test-task-scheduler/src/lib.rs +++ b/test-integration/test-task-scheduler/src/lib.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use std::process::Child; use integration_test_tools::{ diff --git a/test-integration/test-tools/src/loaded_accounts.rs b/test-integration/test-tools/src/loaded_accounts.rs index b1e998f80..5ba15deae 100644 --- a/test-integration/test-tools/src/loaded_accounts.rs +++ b/test-integration/test-tools/src/loaded_accounts.rs @@ -49,12 +49,15 @@ impl LoadedAccounts { } } - /// This use the test authority used in the delegation program as the validator - /// authority. - /// https://github.com/magicblock-labs/delegation-program/blob/7fc0ae9a59e48bea5b046b173ea0e34fd433c3c7/tests/fixtures/accounts.rs#L46 - /// It is compiled in as the authority for the validator vault when we build - /// the delegation program via: - /// `cargo build-sbf --features=unit_test_config` + /// DEPRECATED: This function was used when dlp was built with unit_test_config. + /// With production dlp (without unit_test_config), this hardcoded authority + /// is no longer baked into the delegation program. + /// Use `new_with_new_validator_authority()` instead for new tests. + /// Keep this only for backward compatibility with existing test infrastructure. + #[deprecated( + since = "0.0.0", + note = "DLP now uses production build without unit_test_config. Use new_with_new_validator_authority() instead." + )] pub fn with_delegation_program_test_authority() -> Self { Self { validator_authority_kp: Keypair::from_bytes(