Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
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,15 @@ 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,7 @@ 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,14 +288,26 @@ 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)
let delegate_ix = dlp::instruction_builder::delegate_ephemeral_balance(
payer.pubkey(),
payer.pubkey(),
dlp::args::DelegateEphemeralBalanceArgs {
index: 0,
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
Expand Down Expand Up @@ -335,7 +347,7 @@ 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 = "issue-602",
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