Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions test-integration/programs/flexi-counter/src/instruction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,13 @@ pub fn create_delegate_ix(payer: Pubkey) -> Instruction {
)
}

pub fn create_delegate_ix_with_validator(
payer: Pubkey,
_validator: Option<Pubkey>,
) -> Instruction {
create_delegate_ix(payer)
}

pub fn create_add_and_schedule_commit_ix(
payer: Pubkey,
count: u8,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ pub fn process_undelegate_action_handler(
#[allow(dead_code)]
fn process_redelegation_call_handler<'a, 'b>(
accounts: &[AccountInfo],
validator: Option<solana_program::pubkey::Pubkey>,
) -> ProgramResult
where
'a: 'b,
Expand Down Expand Up @@ -128,7 +129,7 @@ where
// Could be passed in CallHandlerArgs::data
DelegateConfig {
commit_frequency_ms: 1000,
validator: None,
validator,
},
)?;

Expand Down
9 changes: 8 additions & 1 deletion test-integration/programs/schedulecommit/src/api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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<Pubkey>,
) -> [Instruction; 2] {
let top_up_ix = dlp::instruction_builder::top_up_ephemeral_balance(
payer,
payer,
Expand All @@ -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,
},
},
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -196,7 +196,12 @@ impl ScheduleCommitTestContext {
}

pub fn escrow_lamports_for_payer(&self) -> Result<Signature> {
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(
Expand Down
Binary file modified test-integration/schedulecommit/elfs/dlp.so
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 2 additions & 0 deletions test-integration/test-config/tests/auto_airdrop_feepayer.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![allow(deprecated)]

use integration_test_tools::{
expect, loaded_accounts::LoadedAccounts,
validator::start_magicblock_validator_with_config_struct,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![allow(deprecated)]

use std::{path::Path, process::Child};

use cleanass::assert_eq;
Expand Down
2 changes: 2 additions & 0 deletions test-integration/test-magicblock-api/tests/test_claim_fees.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![allow(deprecated)]

use std::{thread::sleep, time::Duration};

use dlp::instruction_builder::validator_claim_fees;
Expand Down
2 changes: 2 additions & 0 deletions test-integration/test-runner/bin/run_tests.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![allow(deprecated)]

use std::{
error::Error,
io,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
};
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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();

Expand Down
2 changes: 2 additions & 0 deletions test-integration/test-task-scheduler/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![allow(deprecated)]

use std::process::Child;

use integration_test_tools::{
Expand Down
15 changes: 9 additions & 6 deletions test-integration/test-tools/src/loaded_accounts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
Loading