diff --git a/cli/src/program.rs b/cli/src/program.rs index 48e2bff4bec..aa5a2141e0e 100644 --- a/cli/src/program.rs +++ b/cli/src/program.rs @@ -1386,15 +1386,10 @@ fn process_program_deploy( fetch_feature_set(&rpc_client)? }; - if !skip_feature_verification { - if feature_set.is_active(&agave_feature_set::enable_loader_v4::id()) { - warn!("Loader-v4 is available now. Please migrate your program."); - } - if do_initial_deploy - && feature_set.is_active(&agave_feature_set::disable_new_loader_v3_deployments::id()) - { - return Err("No new programs can be deployed on loader-v3. Please use the program-v4 subcommand instead.".into()); - } + if !skip_feature_verification + && feature_set.is_active(&agave_feature_set::enable_loader_v4::id()) + { + warn!("Loader-v4 is available now. Please migrate your program."); } let (program_data, program_len, buffer_program_data) = diff --git a/cli/tests/program.rs b/cli/tests/program.rs index ca60230171e..a66866c146d 100644 --- a/cli/tests/program.rs +++ b/cli/tests/program.rs @@ -3,7 +3,7 @@ #![allow(clippy::items_after_test_module)] use { - agave_feature_set::{disable_new_loader_v3_deployments, enable_alt_bn128_syscall}, + agave_feature_set::enable_alt_bn128_syscall, assert_matches::assert_matches, serde_json::Value, solana_cli::{ @@ -57,8 +57,7 @@ fn test_validator_genesis(mint_keypair: Keypair) -> TestValidatorGenesis { exemption_threshold: 1.0, ..Rent::default() }) - .faucet_addr(Some(run_local_faucet(mint_keypair, None))) - .deactivate_features(&[disable_new_loader_v3_deployments::id()]); + .faucet_addr(Some(run_local_faucet(mint_keypair, None))); genesis } @@ -2929,7 +2928,6 @@ fn test_cli_program_deploy_with_args(compute_unit_price: Option, use_rpc: b exemption_threshold: 1.0, ..Rent::default() }) - .deactivate_features(&[disable_new_loader_v3_deployments::id()]) .rpc_config(JsonRpcConfig { enable_rpc_transaction_history: true, faucet_addr: Some(faucet_addr), diff --git a/feature-set/src/lib.rs b/feature-set/src/lib.rs index f9e2f719632..dd24d185bd6 100644 --- a/feature-set/src/lib.rs +++ b/feature-set/src/lib.rs @@ -772,10 +772,6 @@ pub mod enable_loader_v4 { solana_pubkey::declare_id!("8Cb77yHjPWe9wuWUfXeh6iszFGCDGNCoFk3tprViYHNm"); } -pub mod disable_new_loader_v3_deployments { - solana_pubkey::declare_id!("EmhbpdVtZ2hWRGFWBDjn2i3SJD8Z36z4mpMcZJEnebnP"); -} - pub mod require_rent_exempt_split_destination { solana_pubkey::declare_id!("D2aip4BBr8NPWtU9vLrwrBvbuaQ8w1zV38zFLxx4pfBV"); } @@ -1176,7 +1172,6 @@ pub static FEATURE_NAMES: LazyLock> = LazyLock::n (timely_vote_credits::id(), "use timeliness of votes in determining credits to award"), (remaining_compute_units_syscall_enabled::id(), "enable the remaining_compute_units syscall"), (enable_loader_v4::id(), "Enable Loader-v4 SIMD-0167"), - (disable_new_loader_v3_deployments::id(), "Disable new loader-v3 deployments SIMD-0167"), (require_rent_exempt_split_destination::id(), "Require stake split destination account to be rent exempt"), (better_error_codes_for_tx_lamport_check::id(), "better error codes for tx lamport check #33353"), (enable_alt_bn128_compression_syscall::id(), "add alt_bn128 compression syscalls"), diff --git a/programs/bpf_loader/src/lib.rs b/programs/bpf_loader/src/lib.rs index 988a711a187..de65319f67a 100644 --- a/programs/bpf_loader/src/lib.rs +++ b/programs/bpf_loader/src/lib.rs @@ -8,9 +8,8 @@ pub mod syscalls; use qualifier_attr::qualifiers; use { agave_feature_set::{ - bpf_account_data_direct_mapping, disable_new_loader_v3_deployments, - enable_bpf_loader_set_authority_checked_ix, enable_loader_v4, - remove_accounts_executable_flag_checks, + bpf_account_data_direct_mapping, enable_bpf_loader_set_authority_checked_ix, + enable_loader_v4, remove_accounts_executable_flag_checks, }, solana_account::WritableAccount, solana_bincode::limited_deserialize, @@ -569,14 +568,6 @@ fn process_loader_upgradeable_instruction( )?; } UpgradeableLoaderInstruction::DeployWithMaxDataLen { max_data_len } => { - if invoke_context - .get_feature_set() - .is_active(&disable_new_loader_v3_deployments::id()) - { - ic_logger_msg!(log_collector, "Unsupported instruction"); - return Err(InstructionError::InvalidInstructionData); - } - instruction_context.check_number_of_instruction_accounts(4)?; let payer_key = *transaction_context.get_key_of_account_at_index( instruction_context.get_index_of_instruction_account_in_transaction(0)?, @@ -1868,9 +1859,6 @@ mod tests { expected_result, Entrypoint::vm, |invoke_context| { - let mut feature_set = invoke_context.get_feature_set().clone(); - feature_set.deactivate(&disable_new_loader_v3_deployments::id()); - invoke_context.mock_set_feature_set(Arc::new(feature_set)); test_utils::load_all_invoked_programs(invoke_context); }, |_invoke_context| {}, diff --git a/programs/sbf/tests/programs.rs b/programs/sbf/tests/programs.rs index 86b3f32a1a4..5dfc2157bde 100644 --- a/programs/sbf/tests/programs.rs +++ b/programs/sbf/tests/programs.rs @@ -1458,13 +1458,10 @@ fn test_program_sbf_invoke_stable_genesis_and_bank() { solana_logger::setup(); let GenesisConfigInfo { - mut genesis_config, + genesis_config, mint_keypair, .. } = get_stable_genesis_config(); - genesis_config - .accounts - .remove(&feature_set::disable_new_loader_v3_deployments::id()); let bank = Bank::new_for_tests(&genesis_config); let bank = Arc::new(bank); let bank_client = BankClient::new_shared(bank.clone()); diff --git a/runtime/src/bank/tests.rs b/runtime/src/bank/tests.rs index 9d2e5e4aa42..08716e06163 100644 --- a/runtime/src/bank/tests.rs +++ b/runtime/src/bank/tests.rs @@ -7253,7 +7253,6 @@ fn test_bpf_loader_upgradeable_deploy_with_max_len() { let (genesis_config, mint_keypair) = create_genesis_config_no_tx_fee(1_000_000_000); let mut bank = Bank::new_for_tests(&genesis_config); bank.feature_set = Arc::new(FeatureSet::all_enabled()); - bank.deactivate_feature(&agave_feature_set::disable_new_loader_v3_deployments::id()); let (bank, bank_forks) = bank.wrap_with_bank_forks_for_tests(); let mut bank_client = BankClient::new_shared(bank.clone());