Skip to content

Commit 7dc5b17

Browse files
committed
address review feedback
1 parent 9f58db3 commit 7dc5b17

File tree

30 files changed

+298
-326
lines changed

30 files changed

+298
-326
lines changed

Cargo.lock

Lines changed: 11 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ members = [
124124
"svm",
125125
"svm-callback",
126126
"svm-conformance",
127+
"svm-feature-set",
127128
"svm-rent-collector",
128129
"svm-transaction",
129130
"test-validator",
@@ -545,6 +546,7 @@ solana-streamer = { path = "streamer", version = "=2.3.0" }
545546
solana-svm = { path = "svm", version = "=2.3.0" }
546547
solana-svm-callback = { path = "svm-callback", version = "=2.3.0" }
547548
solana-svm-conformance = { path = "svm-conformance", version = "=2.3.0" }
549+
solana-svm-feature-set = { path = "svm-feature-set", version = "=2.3.0" }
548550
solana-svm-rent-collector = { path = "svm-rent-collector", version = "=2.3.0" }
549551
solana-svm-transaction = { path = "svm-transaction", version = "=2.3.0" }
550552
solana-system-interface = "1.0"
@@ -558,7 +560,7 @@ solana-transaction = "2.2.2"
558560
solana-transaction-error = "2.2.1"
559561
solana-tpu-client = { path = "tpu-client", version = "=2.3.0", default-features = false }
560562
solana-tpu-client-next = { path = "tpu-client-next", version = "=2.3.0" }
561-
solana-transaction-context = { path = "transaction-context", version = "=2.3.0", features = [ "bincode", "debug-signature" ] }
563+
solana-transaction-context = { path = "transaction-context", version = "=2.3.0", features = ["bincode", "debug-signature"] }
562564
solana-transaction-status = { path = "transaction-status", version = "=2.3.0" }
563565
solana-transaction-status-client-types = { path = "transaction-status-client-types", version = "=2.3.0" }
564566
solana-transaction-metrics-tracker = { path = "transaction-metrics-tracker", version = "=2.3.0" }

feature-set/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ solana-frozen-abi-macro = { workspace = true, optional = true, features = [
1919
"frozen-abi",
2020
] }
2121
solana-hash = { workspace = true }
22-
solana-program-runtime = { workspace = true }
22+
solana-svm-feature-set = { workspace = true }
2323
solana-pubkey = { workspace = true, default-features = false }
2424
solana-sha256-hasher = { workspace = true }
2525

feature-set/src/lib.rs

Lines changed: 38 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ use {
44
ahash::{AHashMap, AHashSet},
55
solana_epoch_schedule::EpochSchedule,
66
solana_hash::Hash,
7-
solana_program_runtime::invoke_context::RuntimeFeatures,
87
solana_pubkey::Pubkey,
98
solana_sha256_hasher::Hasher,
9+
solana_svm_feature_set::SVMFeatureSet,
1010
std::sync::LazyLock,
1111
};
1212

@@ -100,62 +100,58 @@ impl FeatureSet {
100100
.map(|slot| epoch_schedule.get_epoch(slot))
101101
}
102102

103-
pub fn runtime_features(&self) -> RuntimeFeatures {
104-
RuntimeFeatures {
105-
lift_cpi_caller_restriction: self.activated_slot(&lift_cpi_caller_restriction::id()),
103+
pub fn runtime_features(&self) -> SVMFeatureSet {
104+
SVMFeatureSet {
105+
lift_cpi_caller_restriction: self.is_active(&lift_cpi_caller_restriction::id()),
106106
move_precompile_verification_to_svm: self
107-
.activated_slot(&move_precompile_verification_to_svm::id()),
107+
.is_active(&move_precompile_verification_to_svm::id()),
108108
remove_accounts_executable_flag_checks: self
109-
.activated_slot(&remove_accounts_executable_flag_checks::id()),
110-
bpf_account_data_direct_mapping: self
111-
.activated_slot(&bpf_account_data_direct_mapping::id()),
109+
.is_active(&remove_accounts_executable_flag_checks::id()),
110+
bpf_account_data_direct_mapping: self.is_active(&bpf_account_data_direct_mapping::id()),
112111
enable_bpf_loader_set_authority_checked_ix: self
113-
.activated_slot(&enable_bpf_loader_set_authority_checked_ix::id()),
114-
enable_loader_v4: self.activated_slot(&enable_loader_v4::id()),
115-
deplete_cu_meter_on_vm_failure: self
116-
.activated_slot(&deplete_cu_meter_on_vm_failure::id()),
117-
abort_on_invalid_curve: self.activated_slot(&abort_on_invalid_curve::id()),
118-
blake3_syscall_enabled: self.activated_slot(&blake3_syscall_enabled::id()),
119-
curve25519_syscall_enabled: self.activated_slot(&curve25519_syscall_enabled::id()),
112+
.is_active(&enable_bpf_loader_set_authority_checked_ix::id()),
113+
enable_loader_v4: self.is_active(&enable_loader_v4::id()),
114+
deplete_cu_meter_on_vm_failure: self.is_active(&deplete_cu_meter_on_vm_failure::id()),
115+
abort_on_invalid_curve: self.is_active(&abort_on_invalid_curve::id()),
116+
blake3_syscall_enabled: self.is_active(&blake3_syscall_enabled::id()),
117+
curve25519_syscall_enabled: self.is_active(&curve25519_syscall_enabled::id()),
120118
disable_deploy_of_alloc_free_syscall: self
121-
.activated_slot(&disable_deploy_of_alloc_free_syscall::id()),
122-
disable_fees_sysvar: self.activated_slot(&disable_fees_sysvar::id()),
123-
disable_sbpf_v0_execution: self.activated_slot(&disable_sbpf_v0_execution::id()),
119+
.is_active(&disable_deploy_of_alloc_free_syscall::id()),
120+
disable_fees_sysvar: self.is_active(&disable_fees_sysvar::id()),
121+
disable_sbpf_v0_execution: self.is_active(&disable_sbpf_v0_execution::id()),
124122
enable_alt_bn128_compression_syscall: self
125-
.activated_slot(&enable_alt_bn128_compression_syscall::id()),
126-
enable_alt_bn128_syscall: self.activated_slot(&enable_alt_bn128_syscall::id()),
127-
enable_big_mod_exp_syscall: self.activated_slot(&enable_big_mod_exp_syscall::id()),
128-
enable_get_epoch_stake_syscall: self
129-
.activated_slot(&enable_get_epoch_stake_syscall::id()),
130-
enable_poseidon_syscall: self.activated_slot(&enable_poseidon_syscall::id()),
123+
.is_active(&enable_alt_bn128_compression_syscall::id()),
124+
enable_alt_bn128_syscall: self.is_active(&enable_alt_bn128_syscall::id()),
125+
enable_big_mod_exp_syscall: self.is_active(&enable_big_mod_exp_syscall::id()),
126+
enable_get_epoch_stake_syscall: self.is_active(&enable_get_epoch_stake_syscall::id()),
127+
enable_poseidon_syscall: self.is_active(&enable_poseidon_syscall::id()),
131128
enable_sbpf_v1_deployment_and_execution: self
132-
.activated_slot(&enable_sbpf_v1_deployment_and_execution::id()),
129+
.is_active(&enable_sbpf_v1_deployment_and_execution::id()),
133130
enable_sbpf_v2_deployment_and_execution: self
134-
.activated_slot(&enable_sbpf_v2_deployment_and_execution::id()),
131+
.is_active(&enable_sbpf_v2_deployment_and_execution::id()),
135132
enable_sbpf_v3_deployment_and_execution: self
136-
.activated_slot(&enable_sbpf_v3_deployment_and_execution::id()),
137-
get_sysvar_syscall_enabled: self.activated_slot(&get_sysvar_syscall_enabled::id()),
138-
last_restart_slot_sysvar: self.activated_slot(&last_restart_slot_sysvar::id()),
139-
reenable_sbpf_v0_execution: self.activated_slot(&reenable_sbpf_v0_execution::id()),
133+
.is_active(&enable_sbpf_v3_deployment_and_execution::id()),
134+
get_sysvar_syscall_enabled: self.is_active(&get_sysvar_syscall_enabled::id()),
135+
last_restart_slot_sysvar: self.is_active(&last_restart_slot_sysvar::id()),
136+
reenable_sbpf_v0_execution: self.is_active(&reenable_sbpf_v0_execution::id()),
140137
remaining_compute_units_syscall_enabled: self
141-
.activated_slot(&remaining_compute_units_syscall_enabled::id()),
138+
.is_active(&remaining_compute_units_syscall_enabled::id()),
142139
remove_bpf_loader_incorrect_program_id: self
143-
.activated_slot(&remove_bpf_loader_incorrect_program_id::id()),
140+
.is_active(&remove_bpf_loader_incorrect_program_id::id()),
144141
move_stake_and_move_lamports_ixs: self
145-
.activated_slot(&move_stake_and_move_lamports_ixs::id()),
142+
.is_active(&move_stake_and_move_lamports_ixs::id()),
146143
stake_raise_minimum_delegation_to_1_sol: self
147-
.activated_slot(&stake_raise_minimum_delegation_to_1_sol::id()),
148-
deprecate_legacy_vote_ixs: self.activated_slot(&deprecate_legacy_vote_ixs::id()),
144+
.is_active(&stake_raise_minimum_delegation_to_1_sol::id()),
145+
deprecate_legacy_vote_ixs: self.is_active(&deprecate_legacy_vote_ixs::id()),
149146
mask_out_rent_epoch_in_vm_serialization: self
150-
.activated_slot(&mask_out_rent_epoch_in_vm_serialization::id()),
147+
.is_active(&mask_out_rent_epoch_in_vm_serialization::id()),
151148
simplify_alt_bn128_syscall_error_codes: self
152-
.activated_slot(&simplify_alt_bn128_syscall_error_codes::id()),
149+
.is_active(&simplify_alt_bn128_syscall_error_codes::id()),
153150
fix_alt_bn128_multiplication_input_length: self
154-
.activated_slot(&fix_alt_bn128_multiplication_input_length::id()),
155-
loosen_cpi_size_restriction: self.activated_slot(&loosen_cpi_size_restriction::id()),
156-
increase_tx_account_lock_limit: self
157-
.activated_slot(&increase_tx_account_lock_limit::id()),
158-
disable_rent_fees_collection: self.activated_slot(&disable_rent_fees_collection::id()),
151+
.is_active(&fix_alt_bn128_multiplication_input_length::id()),
152+
loosen_cpi_size_restriction: self.is_active(&loosen_cpi_size_restriction::id()),
153+
increase_tx_account_lock_limit: self.is_active(&increase_tx_account_lock_limit::id()),
154+
disable_rent_fees_collection: self.is_active(&disable_rent_fees_collection::id()),
159155
}
160156
}
161157
}

ledger-tool/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ solana-stake-program = { workspace = true }
5555
solana-storage-bigtable = { workspace = true }
5656
solana-streamer = { workspace = true }
5757
solana-svm-callback = { workspace = true }
58+
solana-svm-feature-set = { workspace = true }
5859
solana-transaction-context = { workspace = true }
5960
solana-transaction-status = { workspace = true }
6061
solana-type-overrides = { workspace = true }

program-runtime/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ solana-sdk-ids = { workspace = true }
4343
solana-slot-hashes = { workspace = true }
4444
solana-stable-layout = { workspace = true }
4545
solana-svm-callback = { workspace = true }
46+
solana-svm-feature-set = { workspace = true }
4647
solana-system-interface = { workspace = true }
4748
solana-sysvar = { workspace = true }
4849
solana-sysvar-id = { workspace = true }

0 commit comments

Comments
 (0)