From 09868599507a73c293ac646a6aaa5d7ced9c7bfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Mei=C3=9Fner?= Date: Tue, 28 Jan 2025 15:11:42 +0000 Subject: [PATCH] Adds feature gate disable_new_loader_v3_deployments. --- cli/tests/program.rs | 6 +++--- programs/bpf_loader/src/lib.rs | 8 ++++---- programs/sbf/tests/programs.rs | 2 +- runtime/src/bank/tests.rs | 2 +- sdk/feature-set/src/lib.rs | 5 +++++ 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/cli/tests/program.rs b/cli/tests/program.rs index b2d1a8e9e1f..52041a7c403 100644 --- a/cli/tests/program.rs +++ b/cli/tests/program.rs @@ -14,7 +14,7 @@ use { solana_client::rpc_config::RpcSendTransactionConfig, solana_commitment_config::CommitmentConfig, solana_faucet::faucet::run_local_faucet, - solana_feature_set::{enable_alt_bn128_syscall, enable_loader_v4}, + solana_feature_set::{disable_new_loader_v3_deployments, enable_alt_bn128_syscall}, solana_rpc::rpc::JsonRpcConfig, solana_rpc_client::rpc_client::{GetConfirmedSignaturesForAddress2Config, RpcClient}, solana_rpc_client_api::config::RpcTransactionConfig, @@ -55,7 +55,7 @@ fn test_validator_genesis(mint_keypair: Keypair) -> TestValidatorGenesis { ..Rent::default() }) .faucet_addr(Some(run_local_faucet(mint_keypair, None))) - .deactivate_features(&[enable_loader_v4::id()]); + .deactivate_features(&[disable_new_loader_v3_deployments::id()]); genesis } @@ -2847,7 +2847,7 @@ fn test_cli_program_deploy_with_args(compute_unit_price: Option, use_rpc: b exemption_threshold: 1.0, ..Rent::default() }) - .deactivate_features(&[enable_loader_v4::id()]) + .deactivate_features(&[disable_new_loader_v3_deployments::id()]) .rpc_config(JsonRpcConfig { enable_rpc_transaction_history: true, faucet_addr: Some(faucet_addr), diff --git a/programs/bpf_loader/src/lib.rs b/programs/bpf_loader/src/lib.rs index 1069238c6db..7de3c99e5a1 100644 --- a/programs/bpf_loader/src/lib.rs +++ b/programs/bpf_loader/src/lib.rs @@ -12,8 +12,8 @@ use { solana_clock::Slot, solana_compute_budget::compute_budget::MAX_INSTRUCTION_STACK_DEPTH, solana_feature_set::{ - bpf_account_data_direct_mapping, enable_bpf_loader_set_authority_checked_ix, - enable_loader_v4, remove_accounts_executable_flag_checks, + bpf_account_data_direct_mapping, disable_new_loader_v3_deployments, + enable_bpf_loader_set_authority_checked_ix, remove_accounts_executable_flag_checks, }, solana_instruction::{error::InstructionError, AccountMeta}, solana_log_collector::{ic_logger_msg, ic_msg, LogCollector}, @@ -564,7 +564,7 @@ fn process_loader_upgradeable_instruction( UpgradeableLoaderInstruction::DeployWithMaxDataLen { max_data_len } => { if invoke_context .get_feature_set() - .is_active(&enable_loader_v4::id()) + .is_active(&disable_new_loader_v3_deployments::id()) { ic_logger_msg!(log_collector, "Unsupported instruction"); return Err(InstructionError::InvalidInstructionData); @@ -1692,7 +1692,7 @@ mod tests { Entrypoint::vm, |invoke_context| { let mut feature_set = invoke_context.get_feature_set().clone(); - feature_set.deactivate(&enable_loader_v4::id()); + 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); }, diff --git a/programs/sbf/tests/programs.rs b/programs/sbf/tests/programs.rs index c54f05f0d82..52fb4efab07 100644 --- a/programs/sbf/tests/programs.rs +++ b/programs/sbf/tests/programs.rs @@ -1464,7 +1464,7 @@ fn test_program_sbf_invoke_stable_genesis_and_bank() { } = get_stable_genesis_config(); genesis_config .accounts - .remove(&feature_set::enable_loader_v4::id()); + .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 62261e5433e..026e3509a36 100644 --- a/runtime/src/bank/tests.rs +++ b/runtime/src/bank/tests.rs @@ -7248,7 +7248,7 @@ 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(&solana_feature_set::enable_loader_v4::id()); + bank.deactivate_feature(&solana_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()); diff --git a/sdk/feature-set/src/lib.rs b/sdk/feature-set/src/lib.rs index 27c9da24d2e..cc4239f608a 100644 --- a/sdk/feature-set/src/lib.rs +++ b/sdk/feature-set/src/lib.rs @@ -696,6 +696,10 @@ 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"); } @@ -1089,6 +1093,7 @@ lazy_static! { (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"),