diff --git a/Cargo.lock b/Cargo.lock index 4151377f526..cecc146ce11 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -244,7 +244,7 @@ dependencies = [ "solana-inflation", "solana-keypair", "solana-ledger", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-log-collector", "solana-logger", "solana-measure", @@ -2595,7 +2595,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5881,7 +5881,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.9.2", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5968,7 +5968,7 @@ dependencies = [ "security-framework 3.2.0", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -6573,7 +6573,7 @@ dependencies = [ "solana-fee-calculator", "solana-hash", "solana-instruction", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-nonce", "solana-program-option", "solana-program-pack", @@ -7110,7 +7110,7 @@ dependencies = [ "solana-instruction", "solana-keccak-hasher", "solana-last-restart-slot", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-log-collector", "solana-measure", @@ -7150,7 +7150,7 @@ dependencies = [ "solana-bpf-loader-program", "solana-instruction", "solana-keypair", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-program-test", "solana-pubkey", "solana-sdk-ids", @@ -7800,7 +7800,7 @@ dependencies = [ "solana-instruction", "solana-keypair", "solana-ledger", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-logger", "solana-measure", "solana-message", @@ -8349,7 +8349,7 @@ dependencies = [ "solana-inflation", "solana-keypair", "solana-ledger", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-logger", "solana-native-token", "solana-poh-config", @@ -8832,6 +8832,21 @@ dependencies = [ "solana-system-interface", ] +[[package]] +name = "solana-loader-v3-interface" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction", + "solana-pubkey", + "solana-sdk-ids", + "solana-system-interface", +] + [[package]] name = "solana-loader-v4-interface" version = "2.2.1" @@ -8859,7 +8874,7 @@ dependencies = [ "solana-bpf-loader-program", "solana-clock", "solana-instruction", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-log-collector", "solana-measure", @@ -9523,7 +9538,7 @@ dependencies = [ "solana-hash", "solana-instruction", "solana-keypair", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-log-collector", "solana-logger", "solana-message", @@ -10105,7 +10120,7 @@ dependencies = [ "solana-instruction", "solana-keypair", "solana-lattice-hash", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-logger", "solana-measure", @@ -10820,7 +10835,7 @@ dependencies = [ "solana-instruction", "solana-instructions-sysvar", "solana-keypair", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-loader-v4-program", "solana-log-collector", @@ -11062,7 +11077,7 @@ dependencies = [ "solana-instruction", "solana-keypair", "solana-ledger", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-logger", "solana-message", "solana-native-token", @@ -11435,7 +11450,7 @@ dependencies = [ "solana-hash", "solana-instruction", "solana-loader-v2-interface", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-message", "solana-program-option", "solana-pubkey", @@ -12649,7 +12664,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix 1.0.2", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index e8adb835d3d..26565500ed2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -462,7 +462,7 @@ solana-last-restart-slot = "2.2.1" solana-lattice-hash = { path = "lattice-hash", version = "=2.3.0" } solana-ledger = { path = "ledger", version = "=2.3.0" } solana-loader-v2-interface = "2.2.1" -solana-loader-v3-interface = "4.0.1" +solana-loader-v3-interface = "5.0.0" solana-loader-v4-interface = "2.2.1" solana-loader-v4-program = { path = "programs/loader-v4", version = "=2.3.0" } solana-local-cluster = { path = "local-cluster", version = "=2.3.0" } diff --git a/feature-set/src/lib.rs b/feature-set/src/lib.rs index ffb965c48ba..bb0b5cc72de 100644 --- a/feature-set/src/lib.rs +++ b/feature-set/src/lib.rs @@ -1092,7 +1092,7 @@ pub mod enshrine_slashing_program { } pub mod enable_extend_program_checked { - solana_pubkey::declare_id!("97QCmR4QtfeQsAti9srfHFk5uMRFP95CvXG8EGr615HM"); + solana_pubkey::declare_id!("2oMRZEDWT2tqtYMofhmmfQ8SsjqUFzT6sYXppQDavxwz"); } pub static FEATURE_NAMES: LazyLock> = LazyLock::new(|| { diff --git a/genesis/Cargo.toml b/genesis/Cargo.toml index 1ca9bcde1b7..147f10b90aa 100644 --- a/genesis/Cargo.toml +++ b/genesis/Cargo.toml @@ -32,7 +32,7 @@ solana-genesis-config = "=2.2.1" solana-inflation = "=2.2.1" solana-keypair = "=2.2.1" solana-ledger = { workspace = true } -solana-loader-v3-interface = "=4.0.1" +solana-loader-v3-interface = "5.0.0" solana-logger = "=2.3.1" solana-native-token = "=2.2.2" solana-poh-config = "=2.2.1" diff --git a/programs/bpf_loader/src/syscalls/cpi.rs b/programs/bpf_loader/src/syscalls/cpi.rs index 4bd6b0d665e..b4d689604f4 100644 --- a/programs/bpf_loader/src/syscalls/cpi.rs +++ b/programs/bpf_loader/src/syscalls/cpi.rs @@ -1042,6 +1042,12 @@ fn check_authorized_program( && bpf_loader_upgradeable::is_set_authority_checked_instruction( instruction_data, )) + || (invoke_context + .get_feature_set() + .enable_extend_program_checked + && bpf_loader_upgradeable::is_extend_program_checked_instruction( + instruction_data, + )) || bpf_loader_upgradeable::is_close_instruction(instruction_data))) || invoke_context.is_precompile(program_id) { diff --git a/programs/sbf/Cargo.lock b/programs/sbf/Cargo.lock index 901703525ef..e9d3f33d7e7 100644 --- a/programs/sbf/Cargo.lock +++ b/programs/sbf/Cargo.lock @@ -5343,7 +5343,7 @@ dependencies = [ "solana-epoch-schedule", "solana-fee-calculator", "solana-instruction", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-nonce", "solana-program-option", "solana-program-pack", @@ -5639,7 +5639,7 @@ dependencies = [ "solana-hash", "solana-instruction", "solana-keccak-hasher", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-log-collector", "solana-measure", @@ -6046,7 +6046,7 @@ dependencies = [ "solana-instruction", "solana-keypair", "solana-ledger", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-measure", "solana-message", "solana-metrics", @@ -6810,9 +6810,9 @@ dependencies = [ [[package]] name = "solana-loader-v3-interface" -version = "4.0.1" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5539bcadd5c3b306045563e9d102bbaa42b3643f335ae02bc9b5260a70ad9742" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" dependencies = [ "serde", "serde_bytes", @@ -6848,7 +6848,7 @@ dependencies = [ "solana-bincode", "solana-bpf-loader-program", "solana-instruction", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-log-collector", "solana-measure", @@ -7343,7 +7343,7 @@ dependencies = [ "solana-hash", "solana-instruction", "solana-keypair", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-log-collector", "solana-logger", "solana-message", @@ -7814,7 +7814,7 @@ dependencies = [ "solana-instruction", "solana-keypair", "solana-lattice-hash", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-measure", "solana-message", @@ -7939,7 +7939,7 @@ dependencies = [ "solana-instruction", "solana-keypair", "solana-ledger", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-log-collector", "solana-logger", @@ -8933,7 +8933,7 @@ dependencies = [ "solana-hash", "solana-instruction", "solana-instructions-sysvar", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-loader-v4-program", "solana-log-collector", @@ -9133,7 +9133,7 @@ dependencies = [ "solana-instruction", "solana-keypair", "solana-ledger", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-logger", "solana-message", "solana-native-token", @@ -9369,7 +9369,7 @@ dependencies = [ "solana-hash", "solana-instruction", "solana-loader-v2-interface", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-message", "solana-program-option", "solana-pubkey", diff --git a/programs/sbf/Cargo.toml b/programs/sbf/Cargo.toml index 48096db57d5..4b151d105f4 100644 --- a/programs/sbf/Cargo.toml +++ b/programs/sbf/Cargo.toml @@ -137,7 +137,7 @@ solana-hash = "2.2.1" solana-instruction = "2.2.1" solana-keypair = "2.2.1" solana-ledger = { workspace = true } -solana-loader-v3-interface = "4.0.1" +solana-loader-v3-interface = "5.0.0" solana-loader-v4-interface = "2.2.1" solana-log-collector = { workspace = true } solana-logger = { workspace = true } diff --git a/svm/examples/Cargo.lock b/svm/examples/Cargo.lock index 2e1bc0e0c41..a50158aac98 100644 --- a/svm/examples/Cargo.lock +++ b/svm/examples/Cargo.lock @@ -5189,7 +5189,7 @@ dependencies = [ "solana-epoch-schedule", "solana-fee-calculator", "solana-instruction", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-nonce", "solana-program-option", "solana-program-pack", @@ -5485,7 +5485,7 @@ dependencies = [ "solana-hash", "solana-instruction", "solana-keccak-hasher", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-log-collector", "solana-measure", @@ -5892,7 +5892,7 @@ dependencies = [ "solana-instruction", "solana-keypair", "solana-ledger", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-measure", "solana-message", "solana-metrics", @@ -6621,9 +6621,9 @@ dependencies = [ [[package]] name = "solana-loader-v3-interface" -version = "4.0.1" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5539bcadd5c3b306045563e9d102bbaa42b3643f335ae02bc9b5260a70ad9742" +checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" dependencies = [ "serde", "serde_bytes", @@ -6659,7 +6659,7 @@ dependencies = [ "solana-bincode", "solana-bpf-loader-program", "solana-instruction", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-log-collector", "solana-measure", @@ -7154,7 +7154,7 @@ dependencies = [ "solana-hash", "solana-instruction", "solana-keypair", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-log-collector", "solana-logger", "solana-message", @@ -7625,7 +7625,7 @@ dependencies = [ "solana-instruction", "solana-keypair", "solana-lattice-hash", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-measure", "solana-message", @@ -8214,7 +8214,7 @@ dependencies = [ "solana-hash", "solana-instruction", "solana-instructions-sysvar", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-loader-v4-program", "solana-log-collector", @@ -8450,7 +8450,7 @@ dependencies = [ "solana-instruction", "solana-keypair", "solana-ledger", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-logger", "solana-message", "solana-native-token", @@ -8686,7 +8686,7 @@ dependencies = [ "solana-hash", "solana-instruction", "solana-loader-v2-interface", - "solana-loader-v3-interface 4.0.1", + "solana-loader-v3-interface 5.0.0", "solana-message", "solana-program-option", "solana-pubkey",