Bladeren bron

v2.2: Migrate from solana-feature-set to agave-feature-set (backport of #5520) (#5537)

mergify[bot] 7 maanden geleden
bovenliggende
commit
cd76bf6b8d
100 gewijzigde bestanden met toevoegingen van 260 en 234 verwijderingen
  1. 46 43
      Cargo.lock
  2. 5 6
      Cargo.toml
  3. 1 1
      banks-server/Cargo.toml
  4. 1 1
      banks-server/src/banks_server.rs
  5. 1 1
      bench-tps/Cargo.toml
  6. 1 1
      bench-tps/src/bench.rs
  7. 1 1
      builtins-default-costs/Cargo.toml
  8. 1 1
      builtins-default-costs/benches/builtin_instruction_costs.rs
  9. 1 1
      builtins-default-costs/src/lib.rs
  10. 1 1
      builtins/Cargo.toml
  11. 5 5
      builtins/src/lib.rs
  12. 1 1
      cli/Cargo.toml
  13. 1 1
      cli/src/cluster_query.rs
  14. 1 1
      cli/src/feature.rs
  15. 3 3
      cli/src/program.rs
  16. 1 1
      cli/src/program_v4.rs
  17. 1 1
      cli/src/stake.rs
  18. 1 1
      cli/src/vote.rs
  19. 1 1
      cli/tests/program.rs
  20. 1 1
      compute-budget-instruction/Cargo.toml
  21. 1 1
      compute-budget-instruction/benches/process_compute_budget_instructions.rs
  22. 2 2
      compute-budget-instruction/src/builtin_programs_filter.rs
  23. 1 1
      compute-budget-instruction/src/compute_budget_instruction_details.rs
  24. 2 2
      compute-budget-instruction/src/instructions_processor.rs
  25. 1 1
      core/Cargo.toml
  26. 1 1
      core/src/banking_stage/consumer.rs
  27. 2 2
      core/src/banking_stage/forward_packet_batches_by_accounts.rs
  28. 1 1
      core/src/banking_stage/forwarder.rs
  29. 1 1
      core/src/banking_stage/immutable_deserialized_packet.rs
  30. 1 1
      core/src/banking_stage/latest_unprocessed_votes.rs
  31. 2 3
      core/src/banking_stage/packet_filter.rs
  32. 1 1
      core/src/banking_stage/qos_service.rs
  33. 1 1
      core/src/banking_stage/unprocessed_transaction_storage.rs
  34. 1 1
      core/src/consensus.rs
  35. 1 1
      core/src/repair/serve_repair.rs
  36. 1 1
      core/src/replay_stage.rs
  37. 1 1
      core/src/shred_fetch_stage.rs
  38. 1 1
      core/src/window_service.rs
  39. 1 1
      core/tests/epoch_accounts_hash.rs
  40. 1 1
      core/tests/scheduler_cost_adjustment.rs
  41. 1 1
      cost-model/Cargo.toml
  42. 1 1
      cost-model/benches/cost_model.rs
  43. 1 1
      cost-model/src/cost_model.rs
  44. 1 1
      cost-model/src/transaction_cost.rs
  45. 1 1
      fee/Cargo.toml
  46. 1 1
      fee/src/lib.rs
  47. 1 0
      genesis/Cargo.toml
  48. 1 1
      genesis/src/main.rs
  49. 1 1
      gossip/Cargo.toml
  50. 1 1
      ledger-tool/Cargo.toml
  51. 1 1
      ledger-tool/src/main.rs
  52. 1 1
      ledger/Cargo.toml
  53. 1 1
      ledger/benches/blockstore_processor.rs
  54. 1 1
      ledger/src/blockstore.rs
  55. 1 1
      ledger/src/blockstore_processor.rs
  56. 1 1
      precompiles/Cargo.toml
  57. 1 2
      precompiles/src/ed25519.rs
  58. 1 1
      precompiles/src/lib.rs
  59. 2 3
      precompiles/src/secp256k1.rs
  60. 1 2
      precompiles/src/secp256r1.rs
  61. 1 1
      program-runtime/Cargo.toml
  62. 5 5
      program-runtime/src/invoke_context.rs
  63. 1 1
      program-test/Cargo.toml
  64. 1 1
      program-test/src/lib.rs
  65. 9 7
      program-test/src/programs.rs
  66. 2 1
      program-test/tests/bpf.rs
  67. 1 1
      programs/address-lookup-table-tests/Cargo.toml
  68. 1 1
      programs/address-lookup-table/Cargo.toml
  69. 1 1
      programs/bpf_loader/Cargo.toml
  70. 6 6
      programs/bpf_loader/src/lib.rs
  71. 2 2
      programs/bpf_loader/src/syscalls/cpi.rs
  72. 3 3
      programs/bpf_loader/src/syscalls/mem_ops.rs
  73. 11 11
      programs/bpf_loader/src/syscalls/mod.rs
  74. 1 1
      programs/compute-budget-bench/Cargo.toml
  75. 1 1
      programs/compute-budget-bench/benches/compute_budget.rs
  76. 1 0
      programs/ed25519-tests/Cargo.toml
  77. 1 1
      programs/ed25519-tests/tests/process_transaction.rs
  78. 59 36
      programs/sbf/Cargo.lock
  79. 4 4
      programs/sbf/Cargo.toml
  80. 2 2
      programs/sbf/benches/bpf_loader.rs
  81. 3 3
      programs/sbf/tests/programs.rs
  82. 1 1
      programs/sbf/tests/sysvar.rs
  83. 1 1
      programs/stake-tests/Cargo.toml
  84. 1 1
      programs/stake-tests/tests/test_move_stake_and_lamports.rs
  85. 1 1
      programs/stake/Cargo.toml
  86. 1 1
      programs/stake/benches/stake.rs
  87. 1 1
      programs/stake/src/lib.rs
  88. 4 4
      programs/stake/src/stake_instruction.rs
  89. 1 1
      programs/stake/src/stake_state.rs
  90. 1 1
      programs/system/Cargo.toml
  91. 1 1
      programs/vote/Cargo.toml
  92. 1 1
      programs/vote/benches/process_vote.rs
  93. 1 1
      programs/vote/src/vote_processor.rs
  94. 1 1
      programs/vote/src/vote_state/mod.rs
  95. 1 1
      programs/zk-token-proof/Cargo.toml
  96. 1 1
      programs/zk-token-proof/src/lib.rs
  97. 1 1
      reserved-account-keys/Cargo.toml
  98. 3 3
      reserved-account-keys/src/lib.rs
  99. 1 1
      rpc/Cargo.toml
  100. 1 1
      rpc/src/rpc.rs

+ 46 - 43
Cargo.lock

@@ -204,6 +204,7 @@ dependencies = [
 name = "agave-ledger-tool"
 name = "agave-ledger-tool"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-reserved-account-keys",
  "agave-reserved-account-keys",
  "assert_cmd",
  "assert_cmd",
  "bs58",
  "bs58",
@@ -234,7 +235,6 @@ dependencies = [
  "solana-core",
  "solana-core",
  "solana-cost-model",
  "solana-cost-model",
  "solana-entry",
  "solana-entry",
- "solana-feature-set",
  "solana-geyser-plugin-manager",
  "solana-geyser-plugin-manager",
  "solana-gossip",
  "solana-gossip",
  "solana-ledger",
  "solana-ledger",
@@ -265,6 +265,7 @@ dependencies = [
 name = "agave-precompiles"
 name = "agave-precompiles"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "bincode",
  "bincode",
  "bytemuck",
  "bytemuck",
  "digest 0.10.7",
  "digest 0.10.7",
@@ -276,7 +277,6 @@ dependencies = [
  "rand 0.7.3",
  "rand 0.7.3",
  "sha3",
  "sha3",
  "solana-ed25519-program",
  "solana-ed25519-program",
- "solana-feature-set",
  "solana-instruction",
  "solana-instruction",
  "solana-keccak-hasher",
  "solana-keccak-hasher",
  "solana-logger",
  "solana-logger",
@@ -292,8 +292,8 @@ dependencies = [
 name = "agave-reserved-account-keys"
 name = "agave-reserved-account-keys"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "lazy_static",
  "lazy_static",
- "solana-feature-set",
  "solana-frozen-abi",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
  "solana-frozen-abi-macro",
  "solana-message",
  "solana-message",
@@ -3764,9 +3764,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 
 [[package]]
 [[package]]
 name = "libc"
 name = "libc"
-version = "0.2.169"
+version = "0.2.170"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
+checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828"
 
 
 [[package]]
 [[package]]
 name = "libloading"
 name = "libloading"
@@ -5760,9 +5760,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "serde_json"
 name = "serde_json"
-version = "1.0.138"
+version = "1.0.139"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949"
+checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6"
 dependencies = [
 dependencies = [
  "itoa",
  "itoa",
  "memchr",
  "memchr",
@@ -6319,6 +6319,7 @@ dependencies = [
 name = "solana-address-lookup-table-program"
 name = "solana-address-lookup-table-program"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "bincode",
  "bincode",
  "bytemuck",
  "bytemuck",
  "log",
  "log",
@@ -6327,7 +6328,6 @@ dependencies = [
  "solana-address-lookup-table-interface",
  "solana-address-lookup-table-interface",
  "solana-bincode",
  "solana-bincode",
  "solana-clock",
  "solana-clock",
- "solana-feature-set",
  "solana-instruction",
  "solana-instruction",
  "solana-log-collector",
  "solana-log-collector",
  "solana-packet",
  "solana-packet",
@@ -6342,12 +6342,12 @@ dependencies = [
 name = "solana-address-lookup-table-program-tests"
 name = "solana-address-lookup-table-program-tests"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "assert_matches",
  "assert_matches",
  "bincode",
  "bincode",
  "criterion",
  "criterion",
  "solana-account",
  "solana-account",
  "solana-address-lookup-table-program",
  "solana-address-lookup-table-program",
- "solana-feature-set",
  "solana-instruction",
  "solana-instruction",
  "solana-program-runtime",
  "solana-program-runtime",
  "solana-program-test",
  "solana-program-test",
@@ -6425,12 +6425,12 @@ dependencies = [
 name = "solana-banks-server"
 name = "solana-banks-server"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "bincode",
  "bincode",
  "crossbeam-channel",
  "crossbeam-channel",
  "futures 0.3.31",
  "futures 0.3.31",
  "solana-banks-interface",
  "solana-banks-interface",
  "solana-client",
  "solana-client",
- "solana-feature-set",
  "solana-runtime",
  "solana-runtime",
  "solana-runtime-transaction",
  "solana-runtime-transaction",
  "solana-sdk",
  "solana-sdk",
@@ -6456,6 +6456,7 @@ dependencies = [
 name = "solana-bench-tps"
 name = "solana-bench-tps"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "chrono",
  "chrono",
  "clap 2.33.3",
  "clap 2.33.3",
  "crossbeam-channel",
  "crossbeam-channel",
@@ -6473,7 +6474,6 @@ dependencies = [
  "solana-connection-cache",
  "solana-connection-cache",
  "solana-core",
  "solana-core",
  "solana-faucet",
  "solana-faucet",
- "solana-feature-set",
  "solana-genesis",
  "solana-genesis",
  "solana-gossip",
  "solana-gossip",
  "solana-local-cluster",
  "solana-local-cluster",
@@ -6600,6 +6600,7 @@ dependencies = [
 name = "solana-bpf-loader-program"
 name = "solana-bpf-loader-program"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-precompiles",
  "agave-precompiles",
  "assert_matches",
  "assert_matches",
  "bincode",
  "bincode",
@@ -6621,7 +6622,6 @@ dependencies = [
  "solana-curve25519",
  "solana-curve25519",
  "solana-epoch-rewards",
  "solana-epoch-rewards",
  "solana-epoch-schedule",
  "solana-epoch-schedule",
- "solana-feature-set",
  "solana-fee-calculator",
  "solana-fee-calculator",
  "solana-hash",
  "solana-hash",
  "solana-instruction",
  "solana-instruction",
@@ -6692,11 +6692,11 @@ dependencies = [
 name = "solana-builtins"
 name = "solana-builtins"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "solana-address-lookup-table-program",
  "solana-address-lookup-table-program",
  "solana-bpf-loader-program",
  "solana-bpf-loader-program",
  "solana-compute-budget-program",
  "solana-compute-budget-program",
  "solana-config-program",
  "solana-config-program",
- "solana-feature-set",
  "solana-loader-v4-program",
  "solana-loader-v4-program",
  "solana-program-runtime",
  "solana-program-runtime",
  "solana-pubkey",
  "solana-pubkey",
@@ -6712,6 +6712,7 @@ dependencies = [
 name = "solana-builtins-default-costs"
 name = "solana-builtins-default-costs"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "ahash 0.8.11",
  "ahash 0.8.11",
  "lazy_static",
  "lazy_static",
  "log",
  "log",
@@ -6722,7 +6723,6 @@ dependencies = [
  "solana-builtins-default-costs",
  "solana-builtins-default-costs",
  "solana-compute-budget-program",
  "solana-compute-budget-program",
  "solana-config-program",
  "solana-config-program",
- "solana-feature-set",
  "solana-frozen-abi",
  "solana-frozen-abi",
  "solana-loader-v4-program",
  "solana-loader-v4-program",
  "solana-pubkey",
  "solana-pubkey",
@@ -6832,6 +6832,7 @@ dependencies = [
 name = "solana-cli"
 name = "solana-cli"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "assert_matches",
  "assert_matches",
  "bincode",
  "bincode",
  "bs58",
  "bs58",
@@ -6871,7 +6872,6 @@ dependencies = [
  "solana-faucet",
  "solana-faucet",
  "solana-feature-gate-client",
  "solana-feature-gate-client",
  "solana-feature-gate-interface",
  "solana-feature-gate-interface",
- "solana-feature-set",
  "solana-hash",
  "solana-hash",
  "solana-instruction",
  "solana-instruction",
  "solana-keypair",
  "solana-keypair",
@@ -7129,6 +7129,7 @@ dependencies = [
 name = "solana-compute-budget-instruction"
 name = "solana-compute-budget-instruction"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "bincode",
  "bincode",
  "criterion",
  "criterion",
  "log",
  "log",
@@ -7137,7 +7138,6 @@ dependencies = [
  "solana-builtins-default-costs",
  "solana-builtins-default-costs",
  "solana-compute-budget",
  "solana-compute-budget",
  "solana-compute-budget-interface",
  "solana-compute-budget-interface",
- "solana-feature-set",
  "solana-hash",
  "solana-hash",
  "solana-instruction",
  "solana-instruction",
  "solana-keypair",
  "solana-keypair",
@@ -7179,12 +7179,12 @@ dependencies = [
 name = "solana-compute-budget-program-bench"
 name = "solana-compute-budget-program-bench"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "criterion",
  "criterion",
  "solana-compute-budget",
  "solana-compute-budget",
  "solana-compute-budget-instruction",
  "solana-compute-budget-instruction",
  "solana-compute-budget-interface",
  "solana-compute-budget-interface",
  "solana-compute-budget-program",
  "solana-compute-budget-program",
- "solana-feature-set",
  "solana-message",
  "solana-message",
  "solana-sdk-ids",
  "solana-sdk-ids",
  "solana-svm-transaction",
  "solana-svm-transaction",
@@ -7245,6 +7245,7 @@ name = "solana-core"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
  "agave-banking-stage-ingress-types",
  "agave-banking-stage-ingress-types",
+ "agave-feature-set",
  "agave-reserved-account-keys",
  "agave-reserved-account-keys",
  "agave-transaction-view",
  "agave-transaction-view",
  "ahash 0.8.11",
  "ahash 0.8.11",
@@ -7294,7 +7295,6 @@ dependencies = [
  "solana-core",
  "solana-core",
  "solana-cost-model",
  "solana-cost-model",
  "solana-entry",
  "solana-entry",
- "solana-feature-set",
  "solana-fee",
  "solana-fee",
  "solana-frozen-abi",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
  "solana-frozen-abi-macro",
@@ -7354,6 +7354,7 @@ dependencies = [
 name = "solana-cost-model"
 name = "solana-cost-model"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-reserved-account-keys",
  "agave-reserved-account-keys",
  "ahash 0.8.11",
  "ahash 0.8.11",
  "itertools 0.12.1",
  "itertools 0.12.1",
@@ -7369,7 +7370,6 @@ dependencies = [
  "solana-compute-budget-interface",
  "solana-compute-budget-interface",
  "solana-compute-budget-program",
  "solana-compute-budget-program",
  "solana-cost-model",
  "solana-cost-model",
- "solana-feature-set",
  "solana-fee-structure",
  "solana-fee-structure",
  "solana-frozen-abi",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
  "solana-frozen-abi-macro",
@@ -7511,6 +7511,7 @@ dependencies = [
 name = "solana-ed25519-program-tests"
 name = "solana-ed25519-program-tests"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "assert_matches",
  "assert_matches",
  "ed25519-dalek",
  "ed25519-dalek",
  "rand 0.8.5",
  "rand 0.8.5",
@@ -7718,7 +7719,7 @@ dependencies = [
 name = "solana-fee"
 name = "solana-fee"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
- "solana-feature-set",
+ "agave-feature-set",
  "solana-fee-structure",
  "solana-fee-structure",
  "solana-svm-transaction",
  "solana-svm-transaction",
 ]
 ]
@@ -7795,6 +7796,7 @@ dependencies = [
 name = "solana-genesis"
 name = "solana-genesis"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "base64 0.22.1",
  "base64 0.22.1",
  "bincode",
  "bincode",
  "clap 2.33.3",
  "clap 2.33.3",
@@ -7895,6 +7897,7 @@ dependencies = [
 name = "solana-gossip"
 name = "solana-gossip"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "assert_matches",
  "assert_matches",
  "bincode",
  "bincode",
  "bs58",
  "bs58",
@@ -7925,7 +7928,6 @@ dependencies = [
  "solana-client",
  "solana-client",
  "solana-connection-cache",
  "solana-connection-cache",
  "solana-entry",
  "solana-entry",
- "solana-feature-set",
  "solana-frozen-abi",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
  "solana-frozen-abi-macro",
  "solana-ledger",
  "solana-ledger",
@@ -8126,6 +8128,7 @@ dependencies = [
 name = "solana-ledger"
 name = "solana-ledger"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-reserved-account-keys",
  "agave-reserved-account-keys",
  "assert_matches",
  "assert_matches",
  "bincode",
  "bincode",
@@ -8166,7 +8169,6 @@ dependencies = [
  "solana-bpf-loader-program",
  "solana-bpf-loader-program",
  "solana-cost-model",
  "solana-cost-model",
  "solana-entry",
  "solana-entry",
- "solana-feature-set",
  "solana-frozen-abi",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
  "solana-frozen-abi-macro",
  "solana-logger",
  "solana-logger",
@@ -8340,13 +8342,15 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "solana-logger"
 name = "solana-logger"
-version = "2.2.1"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "593dbcb81439d37b02757e90bd9ab56364de63f378c55db92a6fbd6a2e47ab36"
+checksum = "db8e777ec1afd733939b532a42492d888ec7c88d8b4127a5d867eb45c6eb5cd5"
 dependencies = [
 dependencies = [
  "env_logger",
  "env_logger",
  "lazy_static",
  "lazy_static",
+ "libc",
  "log",
  "log",
+ "signal-hook",
 ]
 ]
 
 
 [[package]]
 [[package]]
@@ -8839,6 +8843,7 @@ dependencies = [
 name = "solana-program-runtime"
 name = "solana-program-runtime"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-precompiles",
  "agave-precompiles",
  "assert_matches",
  "assert_matches",
  "base64 0.22.1",
  "base64 0.22.1",
@@ -8854,7 +8859,6 @@ dependencies = [
  "solana-compute-budget",
  "solana-compute-budget",
  "solana-epoch-rewards",
  "solana-epoch-rewards",
  "solana-epoch-schedule",
  "solana-epoch-schedule",
- "solana-feature-set",
  "solana-frozen-abi",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
  "solana-frozen-abi-macro",
  "solana-hash",
  "solana-hash",
@@ -8882,6 +8886,7 @@ dependencies = [
 name = "solana-program-test"
 name = "solana-program-test"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "assert_matches",
  "assert_matches",
  "async-trait",
  "async-trait",
  "base64 0.22.1",
  "base64 0.22.1",
@@ -8896,7 +8901,6 @@ dependencies = [
  "solana-banks-server",
  "solana-banks-server",
  "solana-bpf-loader-program",
  "solana-bpf-loader-program",
  "solana-compute-budget",
  "solana-compute-budget",
- "solana-feature-set",
  "solana-inline-spl",
  "solana-inline-spl",
  "solana-instruction",
  "solana-instruction",
  "solana-log-collector",
  "solana-log-collector",
@@ -9117,6 +9121,7 @@ dependencies = [
 name = "solana-rpc"
 name = "solana-rpc"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-reserved-account-keys",
  "agave-reserved-account-keys",
  "base64 0.22.1",
  "base64 0.22.1",
  "bincode",
  "bincode",
@@ -9143,7 +9148,6 @@ dependencies = [
  "solana-client",
  "solana-client",
  "solana-entry",
  "solana-entry",
  "solana-faucet",
  "solana-faucet",
- "solana-feature-set",
  "solana-gossip",
  "solana-gossip",
  "solana-inline-spl",
  "solana-inline-spl",
  "solana-ledger",
  "solana-ledger",
@@ -9329,6 +9333,7 @@ dependencies = [
 name = "solana-runtime"
 name = "solana-runtime"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-precompiles",
  "agave-precompiles",
  "agave-reserved-account-keys",
  "agave-reserved-account-keys",
  "agave-transaction-view",
  "agave-transaction-view",
@@ -9383,7 +9388,6 @@ dependencies = [
  "solana-compute-budget-instruction",
  "solana-compute-budget-instruction",
  "solana-config-program",
  "solana-config-program",
  "solana-cost-model",
  "solana-cost-model",
- "solana-feature-set",
  "solana-fee",
  "solana-fee",
  "solana-frozen-abi",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
  "solana-frozen-abi-macro",
@@ -9431,6 +9435,7 @@ dependencies = [
 name = "solana-runtime-transaction"
 name = "solana-runtime-transaction"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-reserved-account-keys",
  "agave-reserved-account-keys",
  "agave-transaction-view",
  "agave-transaction-view",
  "bincode",
  "bincode",
@@ -9440,7 +9445,6 @@ dependencies = [
  "solana-compute-budget",
  "solana-compute-budget",
  "solana-compute-budget-instruction",
  "solana-compute-budget-instruction",
  "solana-compute-budget-interface",
  "solana-compute-budget-interface",
- "solana-feature-set",
  "solana-hash",
  "solana-hash",
  "solana-instruction",
  "solana-instruction",
  "solana-keypair",
  "solana-keypair",
@@ -9485,9 +9489,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "solana-sdk"
 name = "solana-sdk"
-version = "2.2.1"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4808e8d7f3c931657e615042d4176b423e66f64dc99e3dc3c735a197e512029b"
+checksum = "e8af90d2ce445440e0548fa4a5f96fe8b265c22041a68c942012ffadd029667d"
 dependencies = [
 dependencies = [
  "bincode",
  "bincode",
  "bs58",
  "bs58",
@@ -9832,6 +9836,7 @@ dependencies = [
 name = "solana-stake-program"
 name = "solana-stake-program"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "assert_matches",
  "assert_matches",
  "bincode",
  "bincode",
  "criterion",
  "criterion",
@@ -9844,7 +9849,6 @@ dependencies = [
  "solana-config-program",
  "solana-config-program",
  "solana-epoch-rewards",
  "solana-epoch-rewards",
  "solana-epoch-schedule",
  "solana-epoch-schedule",
- "solana-feature-set",
  "solana-genesis-config",
  "solana-genesis-config",
  "solana-instruction",
  "solana-instruction",
  "solana-log-collector",
  "solana-log-collector",
@@ -9869,9 +9873,9 @@ dependencies = [
 name = "solana-stake-program-tests"
 name = "solana-stake-program-tests"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "assert_matches",
  "assert_matches",
  "bincode",
  "bincode",
- "solana-feature-set",
  "solana-program-test",
  "solana-program-test",
  "solana-sdk",
  "solana-sdk",
  "solana-vote-program",
  "solana-vote-program",
@@ -9999,6 +10003,7 @@ dependencies = [
 name = "solana-svm"
 name = "solana-svm"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-precompiles",
  "agave-precompiles",
  "agave-reserved-account-keys",
  "agave-reserved-account-keys",
  "ahash 0.8.11",
  "ahash 0.8.11",
@@ -10026,7 +10031,6 @@ dependencies = [
  "solana-compute-budget-program",
  "solana-compute-budget-program",
  "solana-ed25519-program",
  "solana-ed25519-program",
  "solana-epoch-schedule",
  "solana-epoch-schedule",
- "solana-feature-set",
  "solana-fee-calculator",
  "solana-fee-calculator",
  "solana-fee-structure",
  "solana-fee-structure",
  "solana-frozen-abi",
  "solana-frozen-abi",
@@ -10123,6 +10127,7 @@ dependencies = [
 name = "solana-system-program"
 name = "solana-system-program"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "assert_matches",
  "assert_matches",
  "bincode",
  "bincode",
  "criterion",
  "criterion",
@@ -10132,7 +10137,6 @@ dependencies = [
  "solana-account",
  "solana-account",
  "solana-bincode",
  "solana-bincode",
  "solana-compute-budget",
  "solana-compute-budget",
- "solana-feature-set",
  "solana-hash",
  "solana-hash",
  "solana-instruction",
  "solana-instruction",
  "solana-log-collector",
  "solana-log-collector",
@@ -10220,6 +10224,7 @@ dependencies = [
 name = "solana-test-validator"
 name = "solana-test-validator"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "base64 0.22.1",
  "base64 0.22.1",
  "bincode",
  "bincode",
  "crossbeam-channel",
  "crossbeam-channel",
@@ -10230,7 +10235,6 @@ dependencies = [
  "solana-cli-output",
  "solana-cli-output",
  "solana-compute-budget",
  "solana-compute-budget",
  "solana-core",
  "solana-core",
- "solana-feature-set",
  "solana-geyser-plugin-manager",
  "solana-geyser-plugin-manager",
  "solana-gossip",
  "solana-gossip",
  "solana-ledger",
  "solana-ledger",
@@ -10434,9 +10438,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "solana-transaction"
 name = "solana-transaction"
-version = "2.2.1"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "753b3e9afed170e4cfc0ea1e87b5dfdc6d4a50270869414edd24c6ea1f529b29"
+checksum = "abec848d081beb15a324c633cd0e0ab33033318063230389895cae503ec9b544"
 dependencies = [
 dependencies = [
  "bincode",
  "bincode",
  "serde",
  "serde",
@@ -10452,7 +10456,6 @@ dependencies = [
  "solana-message",
  "solana-message",
  "solana-precompiles",
  "solana-precompiles",
  "solana-pubkey",
  "solana-pubkey",
- "solana-reserved-account-keys",
  "solana-sanitize",
  "solana-sanitize",
  "solana-sdk-ids",
  "solana-sdk-ids",
  "solana-short-vec",
  "solana-short-vec",
@@ -10605,6 +10608,7 @@ dependencies = [
 name = "solana-turbine"
 name = "solana-turbine"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "assert_matches",
  "assert_matches",
  "bincode",
  "bincode",
  "bs58",
  "bs58",
@@ -10621,7 +10625,6 @@ dependencies = [
  "rayon",
  "rayon",
  "rustls 0.23.22",
  "rustls 0.23.22",
  "solana-entry",
  "solana-entry",
- "solana-feature-set",
  "solana-geyser-plugin-manager",
  "solana-geyser-plugin-manager",
  "solana-gossip",
  "solana-gossip",
  "solana-ledger",
  "solana-ledger",
@@ -10738,10 +10741,10 @@ checksum = "7bbf6d7a3c0b28dd5335c52c0e9eae49d0ae489a8f324917faf0ded65a812c1d"
 name = "solana-version"
 name = "solana-version"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "semver 1.0.25",
  "semver 1.0.25",
  "serde",
  "serde",
  "serde_derive",
  "serde_derive",
- "solana-feature-set",
  "solana-frozen-abi",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
  "solana-frozen-abi-macro",
  "solana-sanitize",
  "solana-sanitize",
@@ -10851,6 +10854,7 @@ dependencies = [
 name = "solana-vote-program"
 name = "solana-vote-program"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "assert_matches",
  "assert_matches",
  "bincode",
  "bincode",
  "criterion",
  "criterion",
@@ -10863,7 +10867,6 @@ dependencies = [
  "solana-bincode",
  "solana-bincode",
  "solana-clock",
  "solana-clock",
  "solana-epoch-schedule",
  "solana-epoch-schedule",
- "solana-feature-set",
  "solana-frozen-abi",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
  "solana-frozen-abi-macro",
  "solana-hash",
  "solana-hash",
@@ -10996,12 +10999,12 @@ dependencies = [
 name = "solana-zk-token-proof-program"
 name = "solana-zk-token-proof-program"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "bytemuck",
  "bytemuck",
  "criterion",
  "criterion",
  "curve25519-dalek 4.1.3",
  "curve25519-dalek 4.1.3",
  "num-derive",
  "num-derive",
  "num-traits",
  "num-traits",
- "solana-feature-set",
  "solana-instruction",
  "solana-instruction",
  "solana-log-collector",
  "solana-log-collector",
  "solana-program-runtime",
  "solana-program-runtime",

+ 5 - 6
Cargo.toml

@@ -286,7 +286,7 @@ jsonrpc-ipc-server = "18.0.0"
 jsonrpc-pubsub = "18.0.0"
 jsonrpc-pubsub = "18.0.0"
 lazy-lru = "0.1.3"
 lazy-lru = "0.1.3"
 lazy_static = "1.5.0"
 lazy_static = "1.5.0"
-libc = "0.2.169"
+libc = "0.2.170"
 libloading = "0.7.4"
 libloading = "0.7.4"
 libsecp256k1 = { version = "0.6.0", default-features = false, features = [
 libsecp256k1 = { version = "0.6.0", default-features = false, features = [
     "std",
     "std",
@@ -347,7 +347,7 @@ serde = "1.0.217" # must match the serde_derive version, see https://github.com/
 serde-big-array = "0.5.1"
 serde-big-array = "0.5.1"
 serde_bytes = "0.11.15"
 serde_bytes = "0.11.15"
 serde_derive = "1.0.217" # must match the serde version, see https://github.com/serde-rs/serde/issues/2584#issuecomment-1685252251
 serde_derive = "1.0.217" # must match the serde version, see https://github.com/serde-rs/serde/issues/2584#issuecomment-1685252251
-serde_json = "1.0.138"
+serde_json = "1.0.139"
 serde_with = { version = "3.12.0", default-features = false }
 serde_with = { version = "3.12.0", default-features = false }
 serde_yaml = "0.9.34"
 serde_yaml = "0.9.34"
 serial_test = "2.0.0"
 serial_test = "2.0.0"
@@ -421,7 +421,6 @@ solana-example-mocks = "=2.2.1"
 solana-faucet = { path = "faucet", version = "=2.2.6" }
 solana-faucet = { path = "faucet", version = "=2.2.6" }
 solana-feature-gate-client = "0.0.2"
 solana-feature-gate-client = "0.0.2"
 solana-feature-gate-interface = "=2.2.1"
 solana-feature-gate-interface = "=2.2.1"
-solana-feature-set = "=2.2.4" # will be removed
 solana-fee-calculator = "=2.2.1"
 solana-fee-calculator = "=2.2.1"
 solana-fee = { path = "fee", version = "=2.2.6" }
 solana-fee = { path = "fee", version = "=2.2.6" }
 solana-fee-structure = "=2.2.1"
 solana-fee-structure = "=2.2.1"
@@ -452,7 +451,7 @@ solana-loader-v4-interface = "=2.2.1"
 solana-loader-v4-program = { path = "programs/loader-v4", version = "=2.2.6" }
 solana-loader-v4-program = { path = "programs/loader-v4", version = "=2.2.6" }
 solana-local-cluster = { path = "local-cluster", version = "=2.2.6" }
 solana-local-cluster = { path = "local-cluster", version = "=2.2.6" }
 solana-log-collector = { path = "log-collector", version = "=2.2.6" }
 solana-log-collector = { path = "log-collector", version = "=2.2.6" }
-solana-logger = "=2.2.1"
+solana-logger = "=2.3.1"
 solana-measure = { path = "measure", version = "=2.2.6" }
 solana-measure = { path = "measure", version = "=2.2.6" }
 solana-merkle-tree = { path = "merkle-tree", version = "=2.2.6" }
 solana-merkle-tree = { path = "merkle-tree", version = "=2.2.6" }
 solana-message = "=2.2.1"
 solana-message = "=2.2.1"
@@ -515,7 +514,7 @@ solana-rpc-client-nonce-utils = { path = "rpc-client-nonce-utils", version = "=2
 solana-runtime = { path = "runtime", version = "=2.2.6" }
 solana-runtime = { path = "runtime", version = "=2.2.6" }
 solana-runtime-transaction = { path = "runtime-transaction", version = "=2.2.6" }
 solana-runtime-transaction = { path = "runtime-transaction", version = "=2.2.6" }
 solana-sbpf = "=0.10.0"
 solana-sbpf = "=0.10.0"
-solana-sdk = "=2.2.1"
+solana-sdk = "=2.2.2"
 solana-sdk-ids = "=2.2.1"
 solana-sdk-ids = "=2.2.1"
 solana-sdk-macro = "=2.2.1"
 solana-sdk-macro = "=2.2.1"
 solana-secp256k1-program = "=2.2.1"
 solana-secp256k1-program = "=2.2.1"
@@ -540,7 +539,7 @@ solana-sysvar = "=2.2.1"
 solana-sysvar-id = "=2.2.1"
 solana-sysvar-id = "=2.2.1"
 solana-test-validator = { path = "test-validator", version = "=2.2.6" }
 solana-test-validator = { path = "test-validator", version = "=2.2.6" }
 solana-thin-client = { path = "thin-client", version = "=2.2.6" }
 solana-thin-client = { path = "thin-client", version = "=2.2.6" }
-solana-transaction = "=2.2.1"
+solana-transaction = "=2.2.2"
 solana-transaction-error = "=2.2.1"
 solana-transaction-error = "=2.2.1"
 solana-tpu-client = { path = "tpu-client", version = "=2.2.6", default-features = false }
 solana-tpu-client = { path = "tpu-client", version = "=2.2.6", default-features = false }
 solana-tpu-client-next = { path = "tpu-client-next", version = "=2.2.6" }
 solana-tpu-client-next = { path = "tpu-client-next", version = "=2.2.6" }

+ 1 - 1
banks-server/Cargo.toml

@@ -10,12 +10,12 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
 crossbeam-channel = { workspace = true }
 crossbeam-channel = { workspace = true }
 futures = { workspace = true }
 futures = { workspace = true }
 solana-banks-interface = { workspace = true }
 solana-banks-interface = { workspace = true }
 solana-client = { workspace = true }
 solana-client = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-runtime = { workspace = true }
 solana-runtime = { workspace = true }
 solana-runtime-transaction = { workspace = true }
 solana-runtime-transaction = { workspace = true }
 solana-sdk = { workspace = true }
 solana-sdk = { workspace = true }

+ 1 - 1
banks-server/src/banks_server.rs

@@ -1,4 +1,5 @@
 use {
 use {
+    agave_feature_set::{move_precompile_verification_to_svm, FeatureSet},
     bincode::{deserialize, serialize},
     bincode::{deserialize, serialize},
     crossbeam_channel::{unbounded, Receiver, Sender},
     crossbeam_channel::{unbounded, Receiver, Sender},
     futures::{future, prelude::stream::StreamExt},
     futures::{future, prelude::stream::StreamExt},
@@ -8,7 +9,6 @@ use {
         TransactionSimulationDetails, TransactionStatus,
         TransactionSimulationDetails, TransactionStatus,
     },
     },
     solana_client::connection_cache::ConnectionCache,
     solana_client::connection_cache::ConnectionCache,
-    solana_feature_set::{move_precompile_verification_to_svm, FeatureSet},
     solana_runtime::{
     solana_runtime::{
         bank::{Bank, TransactionSimulationResult},
         bank::{Bank, TransactionSimulationResult},
         bank_forks::BankForks,
         bank_forks::BankForks,

+ 1 - 1
bench-tps/Cargo.toml

@@ -47,8 +47,8 @@ spl-instruction-padding = { workspace = true }
 thiserror = { workspace = true }
 thiserror = { workspace = true }
 
 
 [dev-dependencies]
 [dev-dependencies]
+agave-feature-set = { workspace = true }
 serial_test = { workspace = true }
 serial_test = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-local-cluster = { workspace = true }
 solana-local-cluster = { workspace = true }
 solana-runtime = { workspace = true, features = ["dev-context-only-utils"] }
 solana-runtime = { workspace = true, features = ["dev-context-only-utils"] }
 solana-test-validator = { workspace = true }
 solana-test-validator = { workspace = true }

+ 1 - 1
bench-tps/src/bench.rs

@@ -1224,7 +1224,7 @@ pub fn fund_keypairs<T: 'static + TpsClient + Send + Sync + ?Sized>(
 mod tests {
 mod tests {
     use {
     use {
         super::*,
         super::*,
-        solana_feature_set::FeatureSet,
+        agave_feature_set::FeatureSet,
         solana_runtime::{bank::Bank, bank_client::BankClient, bank_forks::BankForks},
         solana_runtime::{bank::Bank, bank_client::BankClient, bank_forks::BankForks},
         solana_sdk::{
         solana_sdk::{
             commitment_config::CommitmentConfig,
             commitment_config::CommitmentConfig,

+ 1 - 1
builtins-default-costs/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 ahash = { workspace = true }
 ahash = { workspace = true }
 lazy_static = { workspace = true }
 lazy_static = { workspace = true }
 log = { workspace = true }
 log = { workspace = true }
@@ -18,7 +19,6 @@ solana-address-lookup-table-program = { workspace = true }
 solana-bpf-loader-program = { workspace = true, features = ["svm-internal"] }
 solana-bpf-loader-program = { workspace = true, features = ["svm-internal"] }
 solana-compute-budget-program = { workspace = true, features = ["svm-internal"] }
 solana-compute-budget-program = { workspace = true, features = ["svm-internal"] }
 solana-config-program = { workspace = true }
 solana-config-program = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-frozen-abi = { workspace = true, optional = true, features = [
 solana-frozen-abi = { workspace = true, optional = true, features = [
     "frozen-abi",
     "frozen-abi",
 ] }
 ] }

+ 1 - 1
builtins-default-costs/benches/builtin_instruction_costs.rs

@@ -1,9 +1,9 @@
 #![feature(test)]
 #![feature(test)]
 extern crate test;
 extern crate test;
 use {
 use {
+    agave_feature_set::FeatureSet,
     rand::Rng,
     rand::Rng,
     solana_builtins_default_costs::get_builtin_instruction_cost,
     solana_builtins_default_costs::get_builtin_instruction_cost,
-    solana_feature_set::FeatureSet,
     solana_pubkey::Pubkey,
     solana_pubkey::Pubkey,
     solana_sdk_ids::{
     solana_sdk_ids::{
         address_lookup_table, bpf_loader, bpf_loader_deprecated, bpf_loader_upgradeable,
         address_lookup_table, bpf_loader, bpf_loader_deprecated, bpf_loader_upgradeable,

+ 1 - 1
builtins-default-costs/src/lib.rs

@@ -3,9 +3,9 @@
 #[cfg(feature = "svm-internal")]
 #[cfg(feature = "svm-internal")]
 use qualifier_attr::qualifiers;
 use qualifier_attr::qualifiers;
 use {
 use {
+    agave_feature_set::{self as feature_set, FeatureSet},
     ahash::AHashMap,
     ahash::AHashMap,
     lazy_static::lazy_static,
     lazy_static::lazy_static,
-    solana_feature_set::{self as feature_set, FeatureSet},
     solana_pubkey::Pubkey,
     solana_pubkey::Pubkey,
     solana_sdk_ids::{
     solana_sdk_ids::{
         address_lookup_table, bpf_loader, bpf_loader_deprecated, bpf_loader_upgradeable,
         address_lookup_table, bpf_loader, bpf_loader_deprecated, bpf_loader_upgradeable,

+ 1 - 1
builtins/Cargo.toml

@@ -13,11 +13,11 @@ edition = { workspace = true }
 dev-context-only-utils = []
 dev-context-only-utils = []
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 solana-address-lookup-table-program = { workspace = true }
 solana-address-lookup-table-program = { workspace = true }
 solana-bpf-loader-program = { workspace = true }
 solana-bpf-loader-program = { workspace = true }
 solana-compute-budget-program = { workspace = true }
 solana-compute-budget-program = { workspace = true }
 solana-config-program = { workspace = true }
 solana-config-program = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-loader-v4-program = { workspace = true }
 solana-loader-v4-program = { workspace = true }
 solana-program-runtime = { workspace = true }
 solana-program-runtime = { workspace = true }
 solana-pubkey = { workspace = true }
 solana-pubkey = { workspace = true }

+ 5 - 5
builtins/src/lib.rs

@@ -17,7 +17,7 @@ use {
         core_bpf_migration::{CoreBpfMigrationConfig, CoreBpfMigrationTargetType},
         core_bpf_migration::{CoreBpfMigrationConfig, CoreBpfMigrationTargetType},
         prototype::{BuiltinPrototype, StatelessBuiltinPrototype},
         prototype::{BuiltinPrototype, StatelessBuiltinPrototype},
     },
     },
-    solana_feature_set as feature_set,
+    agave_feature_set as feature_set,
     solana_sdk_ids::{bpf_loader, bpf_loader_deprecated, bpf_loader_upgradeable},
     solana_sdk_ids::{bpf_loader, bpf_loader_deprecated, bpf_loader_upgradeable},
 };
 };
 
 
@@ -68,7 +68,7 @@ pub static BUILTINS: &[BuiltinPrototype] = &[
         core_bpf_migration_config: Some(CoreBpfMigrationConfig {
         core_bpf_migration_config: Some(CoreBpfMigrationConfig {
             source_buffer_address: buffer_accounts::stake_program::id(),
             source_buffer_address: buffer_accounts::stake_program::id(),
             upgrade_authority_address: None,
             upgrade_authority_address: None,
-            feature_id: solana_feature_set::migrate_stake_program_to_core_bpf::id(),
+            feature_id: agave_feature_set::migrate_stake_program_to_core_bpf::id(),
             migration_target: CoreBpfMigrationTargetType::Builtin,
             migration_target: CoreBpfMigrationTargetType::Builtin,
             datapoint_name: "migrate_builtin_to_core_bpf_stake_program",
             datapoint_name: "migrate_builtin_to_core_bpf_stake_program",
         }),
         }),
@@ -81,7 +81,7 @@ pub static BUILTINS: &[BuiltinPrototype] = &[
         core_bpf_migration_config: Some(CoreBpfMigrationConfig {
         core_bpf_migration_config: Some(CoreBpfMigrationConfig {
             source_buffer_address: buffer_accounts::config_program::id(),
             source_buffer_address: buffer_accounts::config_program::id(),
             upgrade_authority_address: None,
             upgrade_authority_address: None,
-            feature_id: solana_feature_set::migrate_config_program_to_core_bpf::id(),
+            feature_id: agave_feature_set::migrate_config_program_to_core_bpf::id(),
             migration_target: CoreBpfMigrationTargetType::Builtin,
             migration_target: CoreBpfMigrationTargetType::Builtin,
             datapoint_name: "migrate_builtin_to_core_bpf_config_program",
             datapoint_name: "migrate_builtin_to_core_bpf_config_program",
         }),
         }),
@@ -122,7 +122,7 @@ pub static BUILTINS: &[BuiltinPrototype] = &[
         core_bpf_migration_config: Some(CoreBpfMigrationConfig {
         core_bpf_migration_config: Some(CoreBpfMigrationConfig {
             source_buffer_address: buffer_accounts::address_lookup_table_program::id(),
             source_buffer_address: buffer_accounts::address_lookup_table_program::id(),
             upgrade_authority_address: None,
             upgrade_authority_address: None,
-            feature_id: solana_feature_set::migrate_address_lookup_table_program_to_core_bpf::id(),
+            feature_id: agave_feature_set::migrate_address_lookup_table_program_to_core_bpf::id(),
             migration_target: CoreBpfMigrationTargetType::Builtin,
             migration_target: CoreBpfMigrationTargetType::Builtin,
             datapoint_name: "migrate_builtin_to_core_bpf_address_lookup_table_program",
             datapoint_name: "migrate_builtin_to_core_bpf_address_lookup_table_program",
         }),
         }),
@@ -158,7 +158,7 @@ pub static STATELESS_BUILTINS: &[StatelessBuiltinPrototype] = &[StatelessBuiltin
     core_bpf_migration_config: Some(CoreBpfMigrationConfig {
     core_bpf_migration_config: Some(CoreBpfMigrationConfig {
         source_buffer_address: buffer_accounts::feature_gate_program::id(),
         source_buffer_address: buffer_accounts::feature_gate_program::id(),
         upgrade_authority_address: None,
         upgrade_authority_address: None,
-        feature_id: solana_feature_set::migrate_feature_gate_program_to_core_bpf::id(),
+        feature_id: agave_feature_set::migrate_feature_gate_program_to_core_bpf::id(),
         migration_target: CoreBpfMigrationTargetType::Stateless,
         migration_target: CoreBpfMigrationTargetType::Stateless,
         datapoint_name: "migrate_stateless_to_core_bpf_feature_gate_program",
         datapoint_name: "migrate_stateless_to_core_bpf_feature_gate_program",
     }),
     }),

+ 1 - 1
cli/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
 bs58 = { workspace = true }
 bs58 = { workspace = true }
 clap = { workspace = true }
 clap = { workspace = true }
@@ -47,7 +48,6 @@ solana-decode-error = { workspace = true }
 solana-epoch-schedule = { workspace = true }
 solana-epoch-schedule = { workspace = true }
 solana-feature-gate-client = { workspace = true }
 solana-feature-gate-client = { workspace = true }
 solana-feature-gate-interface = { workspace = true }
 solana-feature-gate-interface = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-hash = { workspace = true }
 solana-hash = { workspace = true }
 solana-instruction = { workspace = true }
 solana-instruction = { workspace = true }
 solana-keypair = { workspace = true }
 solana-keypair = { workspace = true }

+ 1 - 1
cli/src/cluster_query.rs

@@ -1897,7 +1897,7 @@ pub fn process_show_stakes(
     })?;
     })?;
     let new_rate_activation_epoch = get_feature_activation_epoch(
     let new_rate_activation_epoch = get_feature_activation_epoch(
         rpc_client,
         rpc_client,
-        &solana_feature_set::reduce_stake_warmup_cooldown::id(),
+        &agave_feature_set::reduce_stake_warmup_cooldown::id(),
     )?;
     )?;
     stake_account_progress_bar.finish_and_clear();
     stake_account_progress_bar.finish_and_clear();
 
 

+ 1 - 1
cli/src/feature.rs

@@ -6,6 +6,7 @@ use {
         },
         },
         spend_utils::{resolve_spend_tx_and_check_account_balance, SpendAmount},
         spend_utils::{resolve_spend_tx_and_check_account_balance, SpendAmount},
     },
     },
+    agave_feature_set::FEATURE_NAMES,
     clap::{value_t_or_exit, App, AppSettings, Arg, ArgMatches, SubCommand},
     clap::{value_t_or_exit, App, AppSettings, Arg, ArgMatches, SubCommand},
     console::style,
     console::style,
     serde::{Deserialize, Serialize},
     serde::{Deserialize, Serialize},
@@ -22,7 +23,6 @@ use {
         errors::SolanaFeatureGateError, instructions::RevokePendingActivation,
         errors::SolanaFeatureGateError, instructions::RevokePendingActivation,
     },
     },
     solana_feature_gate_interface::{activate_with_lamports, from_account, Feature},
     solana_feature_gate_interface::{activate_with_lamports, from_account, Feature},
-    solana_feature_set::FEATURE_NAMES,
     solana_message::Message,
     solana_message::Message,
     solana_pubkey::Pubkey,
     solana_pubkey::Pubkey,
     solana_remote_wallet::remote_wallet::RemoteWalletManager,
     solana_remote_wallet::remote_wallet::RemoteWalletManager,

+ 3 - 3
cli/src/program.rs

@@ -11,6 +11,7 @@ use {
         },
         },
         feature::{status_from_account, CliFeatureStatus},
         feature::{status_from_account, CliFeatureStatus},
     },
     },
+    agave_feature_set::{FeatureSet, FEATURE_NAMES},
     bip39::{Language, Mnemonic, MnemonicType, Seed},
     bip39::{Language, Mnemonic, MnemonicType, Seed},
     clap::{App, AppSettings, Arg, ArgMatches, SubCommand},
     clap::{App, AppSettings, Arg, ArgMatches, SubCommand},
     log::*,
     log::*,
@@ -42,7 +43,6 @@ use {
     },
     },
     solana_commitment_config::CommitmentConfig,
     solana_commitment_config::CommitmentConfig,
     solana_compute_budget::compute_budget::ComputeBudget,
     solana_compute_budget::compute_budget::ComputeBudget,
-    solana_feature_set::{FeatureSet, FEATURE_NAMES},
     solana_instruction::{error::InstructionError, Instruction},
     solana_instruction::{error::InstructionError, Instruction},
     solana_keypair::{keypair_from_seed, read_keypair_file, Keypair},
     solana_keypair::{keypair_from_seed, read_keypair_file, Keypair},
     solana_loader_v3_interface::{
     solana_loader_v3_interface::{
@@ -1387,11 +1387,11 @@ fn process_program_deploy(
     };
     };
 
 
     if !skip_feature_verification {
     if !skip_feature_verification {
-        if feature_set.is_active(&solana_feature_set::enable_loader_v4::id()) {
+        if feature_set.is_active(&agave_feature_set::enable_loader_v4::id()) {
             warn!("Loader-v4 is available now. Please migrate your program.");
             warn!("Loader-v4 is available now. Please migrate your program.");
         }
         }
         if do_initial_deploy
         if do_initial_deploy
-            && feature_set.is_active(&solana_feature_set::disable_new_loader_v3_deployments::id())
+            && 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());
             return Err("No new programs can be deployed on loader-v3. Please use the program-v4 subcommand instead.".into());
         }
         }

+ 1 - 1
cli/src/program_v4.rs

@@ -8,6 +8,7 @@ use {
         feature::{status_from_account, CliFeatureStatus},
         feature::{status_from_account, CliFeatureStatus},
         program::calculate_max_chunk_size,
         program::calculate_max_chunk_size,
     },
     },
+    agave_feature_set::{FeatureSet, FEATURE_NAMES},
     clap::{value_t, App, AppSettings, Arg, ArgMatches, SubCommand},
     clap::{value_t, App, AppSettings, Arg, ArgMatches, SubCommand},
     log::*,
     log::*,
     solana_account::Account,
     solana_account::Account,
@@ -30,7 +31,6 @@ use {
         tpu_client::{TpuClient, TpuClientConfig},
         tpu_client::{TpuClient, TpuClientConfig},
     },
     },
     solana_compute_budget::compute_budget::ComputeBudget,
     solana_compute_budget::compute_budget::ComputeBudget,
-    solana_feature_set::{FeatureSet, FEATURE_NAMES},
     solana_instruction::Instruction,
     solana_instruction::Instruction,
     solana_loader_v4_interface::{
     solana_loader_v4_interface::{
         instruction,
         instruction,

+ 1 - 1
cli/src/stake.rs

@@ -2642,7 +2642,7 @@ pub fn process_show_stake_account(
             })?;
             })?;
             let new_rate_activation_epoch = get_feature_activation_epoch(
             let new_rate_activation_epoch = get_feature_activation_epoch(
                 rpc_client,
                 rpc_client,
-                &solana_feature_set::reduce_stake_warmup_cooldown::id(),
+                &agave_feature_set::reduce_stake_warmup_cooldown::id(),
             )?;
             )?;
 
 
             let mut state = build_stake_state(
             let mut state = build_stake_state(

+ 1 - 1
cli/src/vote.rs

@@ -1298,7 +1298,7 @@ pub fn process_show_vote_account(
 
 
     let epoch_schedule = rpc_client.get_epoch_schedule()?;
     let epoch_schedule = rpc_client.get_epoch_schedule()?;
     let tvc_activation_slot =
     let tvc_activation_slot =
-        rpc_client.get_feature_activation_slot(&solana_feature_set::timely_vote_credits::id())?;
+        rpc_client.get_feature_activation_slot(&agave_feature_set::timely_vote_credits::id())?;
     let tvc_activation_epoch = tvc_activation_slot.map(|s| epoch_schedule.get_epoch(s));
     let tvc_activation_epoch = tvc_activation_slot.map(|s| epoch_schedule.get_epoch(s));
 
 
     let mut votes: Vec<CliLandedVote> = vec![];
     let mut votes: Vec<CliLandedVote> = vec![];

+ 1 - 1
cli/tests/program.rs

@@ -3,6 +3,7 @@
 #![allow(clippy::items_after_test_module)]
 #![allow(clippy::items_after_test_module)]
 
 
 use {
 use {
+    agave_feature_set::{disable_new_loader_v3_deployments, enable_alt_bn128_syscall},
     assert_matches::assert_matches,
     assert_matches::assert_matches,
     serde_json::Value,
     serde_json::Value,
     solana_cli::{
     solana_cli::{
@@ -15,7 +16,6 @@ use {
     solana_client::rpc_config::RpcSendTransactionConfig,
     solana_client::rpc_config::RpcSendTransactionConfig,
     solana_commitment_config::CommitmentConfig,
     solana_commitment_config::CommitmentConfig,
     solana_faucet::faucet::run_local_faucet,
     solana_faucet::faucet::run_local_faucet,
-    solana_feature_set::{disable_new_loader_v3_deployments, enable_alt_bn128_syscall},
     solana_message::Message,
     solana_message::Message,
     solana_rpc::rpc::JsonRpcConfig,
     solana_rpc::rpc::JsonRpcConfig,
     solana_rpc_client::rpc_client::{GetConfirmedSignaturesForAddress2Config, RpcClient},
     solana_rpc_client::rpc_client::{GetConfirmedSignaturesForAddress2Config, RpcClient},

+ 1 - 1
compute-budget-instruction/Cargo.toml

@@ -10,12 +10,12 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 log = { workspace = true }
 log = { workspace = true }
 solana-borsh = { workspace = true }
 solana-borsh = { workspace = true }
 solana-builtins-default-costs = { workspace = true, features = ["svm-internal"] }
 solana-builtins-default-costs = { workspace = true, features = ["svm-internal"] }
 solana-compute-budget = { workspace = true }
 solana-compute-budget = { workspace = true }
 solana-compute-budget-interface = { workspace = true, features = ["borsh"] }
 solana-compute-budget-interface = { workspace = true, features = ["borsh"] }
-solana-feature-set = { workspace = true }
 solana-instruction = { workspace = true }
 solana-instruction = { workspace = true }
 solana-packet = { workspace = true }
 solana-packet = { workspace = true }
 solana-pubkey = { workspace = true }
 solana-pubkey = { workspace = true }

+ 1 - 1
compute-budget-instruction/benches/process_compute_budget_instructions.rs

@@ -1,8 +1,8 @@
 use {
 use {
+    agave_feature_set::FeatureSet,
     criterion::{black_box, criterion_group, criterion_main, Criterion, Throughput},
     criterion::{black_box, criterion_group, criterion_main, Criterion, Throughput},
     solana_compute_budget_instruction::instructions_processor::process_compute_budget_instructions,
     solana_compute_budget_instruction::instructions_processor::process_compute_budget_instructions,
     solana_compute_budget_interface::ComputeBudgetInstruction,
     solana_compute_budget_interface::ComputeBudgetInstruction,
-    solana_feature_set::FeatureSet,
     solana_instruction::Instruction,
     solana_instruction::Instruction,
     solana_keypair::Keypair,
     solana_keypair::Keypair,
     solana_message::Message,
     solana_message::Message,

+ 2 - 2
compute-budget-instruction/src/builtin_programs_filter.rs

@@ -64,8 +64,8 @@ impl BuiltinProgramsFilter {
 #[cfg(test)]
 #[cfg(test)]
 mod test {
 mod test {
     use {
     use {
-        super::*, solana_builtins_default_costs::get_migration_feature_position,
-        solana_feature_set as feature_set,
+        super::*, agave_feature_set as feature_set,
+        solana_builtins_default_costs::get_migration_feature_position,
     };
     };
 
 
     const DUMMY_PROGRAM_ID: &str = "dummmy1111111111111111111111111111111111111";
     const DUMMY_PROGRAM_ID: &str = "dummmy1111111111111111111111111111111111111";

+ 1 - 1
compute-budget-instruction/src/compute_budget_instruction_details.rs

@@ -3,11 +3,11 @@ use {
         builtin_programs_filter::{BuiltinProgramsFilter, ProgramKind},
         builtin_programs_filter::{BuiltinProgramsFilter, ProgramKind},
         compute_budget_program_id_filter::ComputeBudgetProgramIdFilter,
         compute_budget_program_id_filter::ComputeBudgetProgramIdFilter,
     },
     },
+    agave_feature_set::{self as feature_set, FeatureSet},
     solana_borsh::v1::try_from_slice_unchecked,
     solana_borsh::v1::try_from_slice_unchecked,
     solana_builtins_default_costs::{get_migration_feature_id, MIGRATING_BUILTINS_COSTS},
     solana_builtins_default_costs::{get_migration_feature_id, MIGRATING_BUILTINS_COSTS},
     solana_compute_budget::compute_budget_limits::*,
     solana_compute_budget::compute_budget_limits::*,
     solana_compute_budget_interface::ComputeBudgetInstruction,
     solana_compute_budget_interface::ComputeBudgetInstruction,
-    solana_feature_set::{self as feature_set, FeatureSet},
     solana_instruction::error::InstructionError,
     solana_instruction::error::InstructionError,
     solana_pubkey::Pubkey,
     solana_pubkey::Pubkey,
     solana_svm_transaction::instruction::SVMInstruction,
     solana_svm_transaction::instruction::SVMInstruction,

+ 2 - 2
compute-budget-instruction/src/instructions_processor.rs

@@ -1,6 +1,6 @@
 use {
 use {
-    crate::compute_budget_instruction_details::*, solana_compute_budget::compute_budget_limits::*,
-    solana_feature_set::FeatureSet, solana_pubkey::Pubkey,
+    crate::compute_budget_instruction_details::*, agave_feature_set::FeatureSet,
+    solana_compute_budget::compute_budget_limits::*, solana_pubkey::Pubkey,
     solana_svm_transaction::instruction::SVMInstruction,
     solana_svm_transaction::instruction::SVMInstruction,
     solana_transaction_error::TransactionError,
     solana_transaction_error::TransactionError,
 };
 };

+ 1 - 1
core/Cargo.toml

@@ -15,6 +15,7 @@ codecov = { repository = "solana-labs/solana", branch = "master", service = "git
 
 
 [dependencies]
 [dependencies]
 agave-banking-stage-ingress-types = { workspace = true }
 agave-banking-stage-ingress-types = { workspace = true }
+agave-feature-set = { workspace = true }
 agave-transaction-view = { workspace = true }
 agave-transaction-view = { workspace = true }
 ahash = { workspace = true }
 ahash = { workspace = true }
 anyhow = { workspace = true }
 anyhow = { workspace = true }
@@ -57,7 +58,6 @@ solana-compute-budget-instruction = { workspace = true }
 solana-connection-cache = { workspace = true }
 solana-connection-cache = { workspace = true }
 solana-cost-model = { workspace = true }
 solana-cost-model = { workspace = true }
 solana-entry = { workspace = true }
 solana-entry = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-fee = { workspace = true }
 solana-fee = { workspace = true }
 solana-frozen-abi = { workspace = true, optional = true, features = [
 solana-frozen-abi = { workspace = true, optional = true, features = [
     "frozen-abi",
     "frozen-abi",

+ 1 - 1
core/src/banking_stage/consumer.rs

@@ -11,8 +11,8 @@ use {
         unprocessed_transaction_storage::{ConsumeScannerPayload, UnprocessedTransactionStorage},
         unprocessed_transaction_storage::{ConsumeScannerPayload, UnprocessedTransactionStorage},
         BankingStageStats,
         BankingStageStats,
     },
     },
+    agave_feature_set as feature_set,
     itertools::Itertools,
     itertools::Itertools,
-    solana_feature_set as feature_set,
     solana_fee::FeeFeatures,
     solana_fee::FeeFeatures,
     solana_ledger::token_balances::collect_token_balances,
     solana_ledger::token_balances::collect_token_balances,
     solana_measure::{measure::Measure, measure_us},
     solana_measure::{measure::Measure, measure_us},

+ 2 - 2
core/src/banking_stage/forward_packet_batches_by_accounts.rs

@@ -1,12 +1,12 @@
 use {
 use {
     super::immutable_deserialized_packet::ImmutableDeserializedPacket,
     super::immutable_deserialized_packet::ImmutableDeserializedPacket,
+    agave_feature_set::FeatureSet,
     core::num::NonZeroU64,
     core::num::NonZeroU64,
     solana_cost_model::{
     solana_cost_model::{
         block_cost_limits,
         block_cost_limits,
         cost_model::CostModel,
         cost_model::CostModel,
         cost_tracker::{CostTracker, UpdatedCosts},
         cost_tracker::{CostTracker, UpdatedCosts},
     },
     },
-    solana_feature_set::FeatureSet,
     solana_perf::packet::Packet,
     solana_perf::packet::Packet,
     solana_runtime_transaction::transaction_with_meta::TransactionWithMeta,
     solana_runtime_transaction::transaction_with_meta::TransactionWithMeta,
     std::sync::Arc,
     std::sync::Arc,
@@ -167,7 +167,7 @@ mod tests {
     use {
     use {
         super::*,
         super::*,
         crate::banking_stage::unprocessed_packet_batches::DeserializedPacket,
         crate::banking_stage::unprocessed_packet_batches::DeserializedPacket,
-        solana_feature_set::FeatureSet,
+        agave_feature_set::FeatureSet,
         solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
         solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
         solana_sdk::{
         solana_sdk::{
             compute_budget::ComputeBudgetInstruction,
             compute_budget::ComputeBudgetInstruction,

+ 1 - 1
core/src/banking_stage/forwarder.rs

@@ -11,9 +11,9 @@ use {
         },
         },
         next_leader::{next_leader, next_leader_tpu_vote},
         next_leader::{next_leader, next_leader_tpu_vote},
     },
     },
+    agave_feature_set::FeatureSet,
     solana_client::connection_cache::ConnectionCache,
     solana_client::connection_cache::ConnectionCache,
     solana_connection_cache::client_connection::ClientConnection as TpuConnection,
     solana_connection_cache::client_connection::ClientConnection as TpuConnection,
-    solana_feature_set::FeatureSet,
     solana_measure::measure_us,
     solana_measure::measure_us,
     solana_net_utils::bind_to_unspecified,
     solana_net_utils::bind_to_unspecified,
     solana_perf::{data_budget::DataBudget, packet::Packet},
     solana_perf::{data_budget::DataBudget, packet::Packet},

+ 1 - 1
core/src/banking_stage/immutable_deserialized_packet.rs

@@ -1,5 +1,6 @@
 use {
 use {
     super::packet_filter::PacketFilterFailure,
     super::packet_filter::PacketFilterFailure,
+    agave_feature_set::FeatureSet,
     solana_compute_budget::compute_budget_limits::ComputeBudgetLimits,
     solana_compute_budget::compute_budget_limits::ComputeBudgetLimits,
     solana_compute_budget_instruction::instructions_processor::process_compute_budget_instructions,
     solana_compute_budget_instruction::instructions_processor::process_compute_budget_instructions,
     solana_perf::packet::Packet,
     solana_perf::packet::Packet,
@@ -8,7 +9,6 @@ use {
     solana_sanitize::SanitizeError,
     solana_sanitize::SanitizeError,
     solana_sdk::{
     solana_sdk::{
         clock::Slot,
         clock::Slot,
-        feature_set::FeatureSet,
         hash::Hash,
         hash::Hash,
         message::{v0::LoadedAddresses, AddressLoaderError, Message, SimpleAddressLoader},
         message::{v0::LoadedAddresses, AddressLoaderError, Message, SimpleAddressLoader},
         pubkey::Pubkey,
         pubkey::Pubkey,

+ 1 - 1
core/src/banking_stage/latest_unprocessed_votes.rs

@@ -3,6 +3,7 @@ use {
         forward_packet_batches_by_accounts::ForwardPacketBatchesByAccounts,
         forward_packet_batches_by_accounts::ForwardPacketBatchesByAccounts,
         immutable_deserialized_packet::{DeserializedPacketError, ImmutableDeserializedPacket},
         immutable_deserialized_packet::{DeserializedPacketError, ImmutableDeserializedPacket},
     },
     },
+    agave_feature_set as feature_set,
     itertools::Itertools,
     itertools::Itertools,
     rand::{thread_rng, Rng},
     rand::{thread_rng, Rng},
     solana_perf::packet::Packet,
     solana_perf::packet::Packet,
@@ -10,7 +11,6 @@ use {
     solana_sdk::{
     solana_sdk::{
         account::from_account,
         account::from_account,
         clock::{Slot, UnixTimestamp},
         clock::{Slot, UnixTimestamp},
-        feature_set::{self},
         hash::Hash,
         hash::Hash,
         program_utils::limited_deserialize,
         program_utils::limited_deserialize,
         pubkey::Pubkey,
         pubkey::Pubkey,

+ 2 - 3
core/src/banking_stage/packet_filter.rs

@@ -1,10 +1,9 @@
 use {
 use {
     super::immutable_deserialized_packet::ImmutableDeserializedPacket,
     super::immutable_deserialized_packet::ImmutableDeserializedPacket,
+    agave_feature_set::FeatureSet,
     lazy_static::lazy_static,
     lazy_static::lazy_static,
     solana_builtins_default_costs::get_builtin_instruction_cost,
     solana_builtins_default_costs::get_builtin_instruction_cost,
-    solana_sdk::{
-        ed25519_program, feature_set::FeatureSet, saturating_add_assign, secp256k1_program,
-    },
+    solana_sdk::{ed25519_program, saturating_add_assign, secp256k1_program},
     solana_sdk_ids::secp256r1_program,
     solana_sdk_ids::secp256r1_program,
     thiserror::Error,
     thiserror::Error,
 };
 };

+ 1 - 1
core/src/banking_stage/qos_service.rs

@@ -5,10 +5,10 @@
 
 
 use {
 use {
     super::{committer::CommitTransactionDetails, BatchedTransactionDetails},
     super::{committer::CommitTransactionDetails, BatchedTransactionDetails},
+    agave_feature_set::FeatureSet,
     solana_cost_model::{
     solana_cost_model::{
         cost_model::CostModel, cost_tracker::UpdatedCosts, transaction_cost::TransactionCost,
         cost_model::CostModel, cost_tracker::UpdatedCosts, transaction_cost::TransactionCost,
     },
     },
-    solana_feature_set::FeatureSet,
     solana_measure::measure::Measure,
     solana_measure::measure::Measure,
     solana_runtime::bank::Bank,
     solana_runtime::bank::Bank,
     solana_runtime_transaction::transaction_with_meta::TransactionWithMeta,
     solana_runtime_transaction::transaction_with_meta::TransactionWithMeta,

+ 1 - 1
core/src/banking_stage/unprocessed_transaction_storage.rs

@@ -15,10 +15,10 @@ use {
         },
         },
         BankingStageStats, FilterForwardingResults, ForwardOption,
         BankingStageStats, FilterForwardingResults, ForwardOption,
     },
     },
+    agave_feature_set::FeatureSet,
     itertools::Itertools,
     itertools::Itertools,
     min_max_heap::MinMaxHeap,
     min_max_heap::MinMaxHeap,
     solana_accounts_db::account_locks::validate_account_locks,
     solana_accounts_db::account_locks::validate_account_locks,
-    solana_feature_set::FeatureSet,
     solana_measure::measure_us,
     solana_measure::measure_us,
     solana_runtime::bank::Bank,
     solana_runtime::bank::Bank,
     solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
     solana_runtime_transaction::runtime_transaction::RuntimeTransaction,

+ 1 - 1
core/src/consensus.rs

@@ -626,7 +626,7 @@ impl Tower {
             bank.slot(),
             bank.slot(),
             bank.hash(),
             bank.hash(),
             bank.feature_set
             bank.feature_set
-                .is_active(&solana_feature_set::enable_tower_sync_ix::id()),
+                .is_active(&agave_feature_set::enable_tower_sync_ix::id()),
             block_id,
             block_id,
         )
         )
     }
     }

+ 1 - 1
core/src/repair/serve_repair.rs

@@ -1449,7 +1449,7 @@ mod tests {
     use {
     use {
         super::*,
         super::*,
         crate::repair::repair_response,
         crate::repair::repair_response,
-        solana_feature_set::FeatureSet,
+        agave_feature_set::FeatureSet,
         solana_gossip::{contact_info::ContactInfo, socketaddr, socketaddr_any},
         solana_gossip::{contact_info::ContactInfo, socketaddr, socketaddr_any},
         solana_ledger::{
         solana_ledger::{
             blockstore::make_many_slot_entries,
             blockstore::make_many_slot_entries,

+ 1 - 1
core/src/replay_stage.rs

@@ -3719,7 +3719,7 @@ impl ReplayStage {
                 .get_hash(last_voted_slot)
                 .get_hash(last_voted_slot)
                 .expect("Must exist for us to have frozen descendant"),
                 .expect("Must exist for us to have frozen descendant"),
             bank.feature_set
             bank.feature_set
-                .is_active(&solana_feature_set::enable_tower_sync_ix::id()),
+                .is_active(&agave_feature_set::enable_tower_sync_ix::id()),
             block_id,
             block_id,
         );
         );
         // Since we are updating our tower we need to update associated caches for previously computed
         // Since we are updating our tower we need to update associated caches for previously computed

+ 1 - 1
core/src/shred_fetch_stage.rs

@@ -2,10 +2,10 @@
 
 
 use {
 use {
     crate::repair::{repair_service::OutstandingShredRepairs, serve_repair::ServeRepair},
     crate::repair::{repair_service::OutstandingShredRepairs, serve_repair::ServeRepair},
+    agave_feature_set::{self as feature_set, FeatureSet},
     bytes::Bytes,
     bytes::Bytes,
     crossbeam_channel::{unbounded, Receiver, RecvTimeoutError, Sender},
     crossbeam_channel::{unbounded, Receiver, RecvTimeoutError, Sender},
     itertools::Itertools,
     itertools::Itertools,
-    solana_feature_set::{self as feature_set, FeatureSet},
     solana_gossip::cluster_info::ClusterInfo,
     solana_gossip::cluster_info::ClusterInfo,
     solana_ledger::shred::{self, should_discard_shred, ShredFetchStats},
     solana_ledger::shred::{self, should_discard_shred, ShredFetchStats},
     solana_perf::packet::{
     solana_perf::packet::{

+ 1 - 1
core/src/window_service.rs

@@ -15,11 +15,11 @@ use {
         },
         },
         result::{Error, Result},
         result::{Error, Result},
     },
     },
+    agave_feature_set as feature_set,
     assert_matches::debug_assert_matches,
     assert_matches::debug_assert_matches,
     bytes::Bytes,
     bytes::Bytes,
     crossbeam_channel::{unbounded, Receiver, RecvTimeoutError, Sender},
     crossbeam_channel::{unbounded, Receiver, RecvTimeoutError, Sender},
     rayon::{prelude::*, ThreadPool},
     rayon::{prelude::*, ThreadPool},
-    solana_feature_set as feature_set,
     solana_gossip::cluster_info::ClusterInfo,
     solana_gossip::cluster_info::ClusterInfo,
     solana_ledger::{
     solana_ledger::{
         blockstore::{Blockstore, BlockstoreInsertionMetrics, PossibleDuplicateShred},
         blockstore::{Blockstore, BlockstoreInsertionMetrics, PossibleDuplicateShred},

+ 1 - 1
core/tests/epoch_accounts_hash.rs

@@ -3,6 +3,7 @@
 
 
 use {
 use {
     crate::snapshot_utils::create_tmp_accounts_dir_for_tests,
     crate::snapshot_utils::create_tmp_accounts_dir_for_tests,
+    agave_feature_set as feature_set,
     log::*,
     log::*,
     solana_accounts_db::{
     solana_accounts_db::{
         accounts_db::CalcAccountsHashDataSource, accounts_hash::CalcAccountsHashConfig,
         accounts_db::CalcAccountsHashDataSource, accounts_hash::CalcAccountsHashConfig,
@@ -30,7 +31,6 @@ use {
     solana_sdk::{
     solana_sdk::{
         clock::Slot,
         clock::Slot,
         epoch_schedule::EpochSchedule,
         epoch_schedule::EpochSchedule,
-        feature_set,
         native_token::LAMPORTS_PER_SOL,
         native_token::LAMPORTS_PER_SOL,
         pubkey::Pubkey,
         pubkey::Pubkey,
         signature::{Keypair, Signer},
         signature::{Keypair, Signer},

+ 1 - 1
core/tests/scheduler_cost_adjustment.rs

@@ -1,10 +1,10 @@
 #![cfg(test)]
 #![cfg(test)]
 use {
 use {
+    agave_feature_set as feature_set,
     solana_compute_budget::compute_budget_limits::{
     solana_compute_budget::compute_budget_limits::{
         DEFAULT_INSTRUCTION_COMPUTE_UNIT_LIMIT, MAX_BUILTIN_ALLOCATION_COMPUTE_UNIT_LIMIT,
         DEFAULT_INSTRUCTION_COMPUTE_UNIT_LIMIT, MAX_BUILTIN_ALLOCATION_COMPUTE_UNIT_LIMIT,
     },
     },
     solana_cost_model::cost_model::CostModel,
     solana_cost_model::cost_model::CostModel,
-    solana_feature_set::{self as feature_set},
     solana_runtime::{bank::Bank, bank_forks::BankForks},
     solana_runtime::{bank::Bank, bank_forks::BankForks},
     solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
     solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
     solana_sdk::{
     solana_sdk::{

+ 1 - 1
cost-model/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 ahash = { workspace = true }
 ahash = { workspace = true }
 lazy_static = { workspace = true }
 lazy_static = { workspace = true }
 log = { workspace = true }
 log = { workspace = true }
@@ -20,7 +21,6 @@ solana-clock = { workspace = true }
 solana-compute-budget = { workspace = true }
 solana-compute-budget = { workspace = true }
 solana-compute-budget-instruction = { workspace = true }
 solana-compute-budget-instruction = { workspace = true }
 solana-compute-budget-interface = { workspace = true }
 solana-compute-budget-interface = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-fee-structure = { workspace = true }
 solana-fee-structure = { workspace = true }
 solana-frozen-abi = { workspace = true, optional = true, features = [
 solana-frozen-abi = { workspace = true, optional = true, features = [
     "frozen-abi",
     "frozen-abi",

+ 1 - 1
cost-model/benches/cost_model.rs

@@ -1,8 +1,8 @@
 #![feature(test)]
 #![feature(test)]
 extern crate test;
 extern crate test;
 use {
 use {
+    agave_feature_set::FeatureSet,
     solana_cost_model::cost_model::CostModel,
     solana_cost_model::cost_model::CostModel,
-    solana_feature_set::FeatureSet,
     solana_hash::Hash,
     solana_hash::Hash,
     solana_keypair::Keypair,
     solana_keypair::Keypair,
     solana_message::Message,
     solana_message::Message,

+ 1 - 1
cost-model/src/cost_model.rs

@@ -7,6 +7,7 @@
 
 
 use {
 use {
     crate::{block_cost_limits::*, transaction_cost::*},
     crate::{block_cost_limits::*, transaction_cost::*},
+    agave_feature_set::{self as feature_set, FeatureSet},
     solana_bincode::limited_deserialize,
     solana_bincode::limited_deserialize,
     solana_borsh::v1::try_from_slice_unchecked,
     solana_borsh::v1::try_from_slice_unchecked,
     solana_builtins_default_costs::get_builtin_instruction_cost,
     solana_builtins_default_costs::get_builtin_instruction_cost,
@@ -14,7 +15,6 @@ use {
         DEFAULT_HEAP_COST, DEFAULT_INSTRUCTION_COMPUTE_UNIT_LIMIT, MAX_COMPUTE_UNIT_LIMIT,
         DEFAULT_HEAP_COST, DEFAULT_INSTRUCTION_COMPUTE_UNIT_LIMIT, MAX_COMPUTE_UNIT_LIMIT,
     },
     },
     solana_compute_budget_interface::ComputeBudgetInstruction,
     solana_compute_budget_interface::ComputeBudgetInstruction,
-    solana_feature_set::{self as feature_set, FeatureSet},
     solana_fee_structure::FeeStructure,
     solana_fee_structure::FeeStructure,
     solana_pubkey::Pubkey,
     solana_pubkey::Pubkey,
     solana_runtime_transaction::{
     solana_runtime_transaction::{

+ 1 - 1
cost-model/src/transaction_cost.rs

@@ -291,8 +291,8 @@ mod tests {
     use {
     use {
         super::*,
         super::*,
         crate::cost_model::CostModel,
         crate::cost_model::CostModel,
+        agave_feature_set::FeatureSet,
         agave_reserved_account_keys::ReservedAccountKeys,
         agave_reserved_account_keys::ReservedAccountKeys,
-        solana_feature_set::FeatureSet,
         solana_hash::Hash,
         solana_hash::Hash,
         solana_keypair::Keypair,
         solana_keypair::Keypair,
         solana_message::SimpleAddressLoader,
         solana_message::SimpleAddressLoader,

+ 1 - 1
fee/Cargo.toml

@@ -10,6 +10,6 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
-solana-feature-set = { workspace = true }
+agave-feature-set = { workspace = true }
 solana-fee-structure = { workspace = true }
 solana-fee-structure = { workspace = true }
 solana-svm-transaction = { workspace = true }
 solana-svm-transaction = { workspace = true }

+ 1 - 1
fee/src/lib.rs

@@ -1,5 +1,5 @@
 use {
 use {
-    solana_feature_set::{enable_secp256r1_precompile, FeatureSet},
+    agave_feature_set::{enable_secp256r1_precompile, FeatureSet},
     solana_fee_structure::FeeDetails,
     solana_fee_structure::FeeDetails,
     solana_svm_transaction::svm_message::SVMMessage,
     solana_svm_transaction::svm_message::SVMMessage,
 };
 };

+ 1 - 0
genesis/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 base64 = { workspace = true }
 base64 = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
 clap = { workspace = true }
 clap = { workspace = true }

+ 1 - 1
genesis/src/main.rs

@@ -2,6 +2,7 @@
 #![allow(clippy::arithmetic_side_effects)]
 #![allow(clippy::arithmetic_side_effects)]
 
 
 use {
 use {
+    agave_feature_set::FEATURE_NAMES,
     base64::{prelude::BASE64_STANDARD, Engine},
     base64::{prelude::BASE64_STANDARD, Engine},
     clap::{crate_description, crate_name, value_t, value_t_or_exit, App, Arg, ArgMatches},
     clap::{crate_description, crate_name, value_t, value_t_or_exit, App, Arg, ArgMatches},
     itertools::Itertools,
     itertools::Itertools,
@@ -30,7 +31,6 @@ use {
         commitment_config::CommitmentConfig,
         commitment_config::CommitmentConfig,
         epoch_schedule::EpochSchedule,
         epoch_schedule::EpochSchedule,
         feature,
         feature,
-        feature_set::FEATURE_NAMES,
         fee_calculator::FeeRateGovernor,
         fee_calculator::FeeRateGovernor,
         genesis_config::{ClusterType, GenesisConfig},
         genesis_config::{ClusterType, GenesisConfig},
         inflation::Inflation,
         inflation::Inflation,

+ 1 - 1
gossip/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 assert_matches = { workspace = true }
 assert_matches = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
 bv = { workspace = true, features = ["serde"] }
 bv = { workspace = true, features = ["serde"] }
@@ -34,7 +35,6 @@ solana-clap-utils = { workspace = true }
 solana-client = { workspace = true }
 solana-client = { workspace = true }
 solana-connection-cache = { workspace = true }
 solana-connection-cache = { workspace = true }
 solana-entry = { workspace = true }
 solana-entry = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-frozen-abi = { workspace = true, optional = true, features = [
 solana-frozen-abi = { workspace = true, optional = true, features = [
     "frozen-abi",
     "frozen-abi",
 ] }
 ] }

+ 1 - 1
ledger-tool/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 agave-reserved-account-keys = { workspace = true }
 agave-reserved-account-keys = { workspace = true }
 bs58 = { workspace = true }
 bs58 = { workspace = true }
 chrono = { workspace = true, features = ["default"] }
 chrono = { workspace = true, features = ["default"] }
@@ -37,7 +38,6 @@ solana-compute-budget = { workspace = true }
 solana-core = { workspace = true, features = ["dev-context-only-utils"] }
 solana-core = { workspace = true, features = ["dev-context-only-utils"] }
 solana-cost-model = { workspace = true }
 solana-cost-model = { workspace = true }
 solana-entry = { workspace = true }
 solana-entry = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-geyser-plugin-manager = { workspace = true }
 solana-geyser-plugin-manager = { workspace = true }
 solana-gossip = { workspace = true }
 solana-gossip = { workspace = true }
 solana-ledger = { workspace = true, features = ["dev-context-only-utils"] }
 solana-ledger = { workspace = true, features = ["dev-context-only-utils"] }

+ 1 - 1
ledger-tool/src/main.rs

@@ -12,6 +12,7 @@ use {
         },
         },
         program::*,
         program::*,
     },
     },
+    agave_feature_set::{self as feature_set, FeatureSet},
     agave_reserved_account_keys::ReservedAccountKeys,
     agave_reserved_account_keys::ReservedAccountKeys,
     clap::{
     clap::{
         crate_description, crate_name, value_t, value_t_or_exit, values_t_or_exit, App,
         crate_description, crate_name, value_t, value_t_or_exit, values_t_or_exit, App,
@@ -37,7 +38,6 @@ use {
         validator::{BlockProductionMethod, BlockVerificationMethod, TransactionStructure},
         validator::{BlockProductionMethod, BlockVerificationMethod, TransactionStructure},
     },
     },
     solana_cost_model::{cost_model::CostModel, cost_tracker::CostTracker},
     solana_cost_model::{cost_model::CostModel, cost_tracker::CostTracker},
-    solana_feature_set::{self as feature_set, FeatureSet},
     solana_ledger::{
     solana_ledger::{
         blockstore::{banking_trace_path, create_new_ledger, Blockstore},
         blockstore::{banking_trace_path, create_new_ledger, Blockstore},
         blockstore_options::{AccessType, LedgerColumnOptions},
         blockstore_options::{AccessType, LedgerColumnOptions},

+ 1 - 1
ledger/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 agave-reserved-account-keys = { workspace = true }
 agave-reserved-account-keys = { workspace = true }
 assert_matches = { workspace = true }
 assert_matches = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
@@ -47,7 +48,6 @@ solana-accounts-db = { workspace = true }
 solana-bpf-loader-program = { workspace = true }
 solana-bpf-loader-program = { workspace = true }
 solana-cost-model = { workspace = true }
 solana-cost-model = { workspace = true }
 solana-entry = { workspace = true }
 solana-entry = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-frozen-abi = { workspace = true, optional = true, features = [
 solana-frozen-abi = { workspace = true, optional = true, features = [
     "frozen-abi",
     "frozen-abi",
 ] }
 ] }

+ 1 - 1
ledger/benches/blockstore_processor.rs

@@ -2,11 +2,11 @@
 #![feature(test)]
 #![feature(test)]
 
 
 use {
 use {
+    agave_feature_set::apply_cost_tracker_during_replay,
     rayon::{
     rayon::{
         iter::IndexedParallelIterator,
         iter::IndexedParallelIterator,
         prelude::{IntoParallelIterator, IntoParallelRefIterator, ParallelIterator},
         prelude::{IntoParallelIterator, IntoParallelRefIterator, ParallelIterator},
     },
     },
-    solana_feature_set::apply_cost_tracker_during_replay,
     solana_ledger::{
     solana_ledger::{
         blockstore_processor::{execute_batch, TransactionBatchWithIndexes},
         blockstore_processor::{execute_batch, TransactionBatchWithIndexes},
         genesis_utils::{create_genesis_config, GenesisConfigInfo},
         genesis_utils::{create_genesis_config, GenesisConfigInfo},

+ 1 - 1
ledger/src/blockstore.rs

@@ -22,6 +22,7 @@ use {
         slot_stats::{ShredSource, SlotsStats},
         slot_stats::{ShredSource, SlotsStats},
         transaction_address_lookup_table_scanner::scan_transaction,
         transaction_address_lookup_table_scanner::scan_transaction,
     },
     },
+    agave_feature_set::FeatureSet,
     assert_matches::debug_assert_matches,
     assert_matches::debug_assert_matches,
     bincode::{deserialize, serialize},
     bincode::{deserialize, serialize},
     crossbeam_channel::{bounded, Receiver, Sender, TrySendError},
     crossbeam_channel::{bounded, Receiver, Sender, TrySendError},
@@ -43,7 +44,6 @@ use {
         account::ReadableAccount,
         account::ReadableAccount,
         address_lookup_table::state::AddressLookupTable,
         address_lookup_table::state::AddressLookupTable,
         clock::{Slot, UnixTimestamp, DEFAULT_TICKS_PER_SECOND},
         clock::{Slot, UnixTimestamp, DEFAULT_TICKS_PER_SECOND},
-        feature_set::FeatureSet,
         genesis_config::{GenesisConfig, DEFAULT_GENESIS_ARCHIVE, DEFAULT_GENESIS_FILE},
         genesis_config::{GenesisConfig, DEFAULT_GENESIS_ARCHIVE, DEFAULT_GENESIS_FILE},
         hash::Hash,
         hash::Hash,
         pubkey::Pubkey,
         pubkey::Pubkey,

+ 1 - 1
ledger/src/blockstore_processor.rs

@@ -317,7 +317,7 @@ fn check_block_cost_limits_if_enabled(
 ) -> Result<()> {
 ) -> Result<()> {
     let (check_block_cost_limits_result, check_block_cost_limits_us) = measure_us!(if bank
     let (check_block_cost_limits_result, check_block_cost_limits_us) = measure_us!(if bank
         .feature_set
         .feature_set
-        .is_active(&solana_feature_set::apply_cost_tracker_during_replay::id())
+        .is_active(&agave_feature_set::apply_cost_tracker_during_replay::id())
     {
     {
         check_block_cost_limits(bank, processing_results, batch.sanitized_transactions())
         check_block_cost_limits(bank, processing_results, batch.sanitized_transactions())
     } else {
     } else {

+ 1 - 1
precompiles/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
 bytemuck = { workspace = true }
 bytemuck = { workspace = true }
 digest = { workspace = true }
 digest = { workspace = true }
@@ -19,7 +20,6 @@ libsecp256k1 = { workspace = true }
 openssl = { workspace = true }
 openssl = { workspace = true }
 sha3 = { workspace = true }
 sha3 = { workspace = true }
 solana-ed25519-program = { workspace = true }
 solana-ed25519-program = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-message = { workspace = true }
 solana-message = { workspace = true }
 solana-precompile-error = { workspace = true }
 solana-precompile-error = { workspace = true }
 solana-pubkey = { workspace = true }
 solana-pubkey = { workspace = true }

+ 1 - 2
precompiles/src/ed25519.rs

@@ -1,10 +1,10 @@
 use {
 use {
+    agave_feature_set::{ed25519_precompile_verify_strict, FeatureSet},
     ed25519_dalek::{ed25519::signature::Signature, Verifier},
     ed25519_dalek::{ed25519::signature::Signature, Verifier},
     solana_ed25519_program::{
     solana_ed25519_program::{
         Ed25519SignatureOffsets, PUBKEY_SERIALIZED_SIZE, SIGNATURE_OFFSETS_SERIALIZED_SIZE,
         Ed25519SignatureOffsets, PUBKEY_SERIALIZED_SIZE, SIGNATURE_OFFSETS_SERIALIZED_SIZE,
         SIGNATURE_OFFSETS_START, SIGNATURE_SERIALIZED_SIZE,
         SIGNATURE_OFFSETS_START, SIGNATURE_SERIALIZED_SIZE,
     },
     },
-    solana_feature_set::{ed25519_precompile_verify_strict, FeatureSet},
     solana_precompile_error::PrecompileError,
     solana_precompile_error::PrecompileError,
 };
 };
 
 
@@ -120,7 +120,6 @@ pub mod tests {
         solana_ed25519_program::{
         solana_ed25519_program::{
             new_ed25519_instruction, offsets_to_ed25519_instruction, DATA_START,
             new_ed25519_instruction, offsets_to_ed25519_instruction, DATA_START,
         },
         },
-        solana_feature_set::FeatureSet,
         solana_instruction::Instruction,
         solana_instruction::Instruction,
     };
     };
 
 

+ 1 - 1
precompiles/src/lib.rs

@@ -1,7 +1,7 @@
 #![cfg_attr(docsrs, feature(doc_auto_cfg))]
 #![cfg_attr(docsrs, feature(doc_auto_cfg))]
 use {
 use {
+    agave_feature_set::{enable_secp256r1_precompile, FeatureSet},
     lazy_static::lazy_static,
     lazy_static::lazy_static,
-    solana_feature_set::{enable_secp256r1_precompile, FeatureSet},
     solana_message::compiled_instruction::CompiledInstruction,
     solana_message::compiled_instruction::CompiledInstruction,
     solana_precompile_error::PrecompileError,
     solana_precompile_error::PrecompileError,
     solana_pubkey::Pubkey,
     solana_pubkey::Pubkey,

+ 2 - 3
precompiles/src/secp256k1.rs

@@ -1,6 +1,6 @@
 use {
 use {
+    agave_feature_set::FeatureSet,
     digest::Digest,
     digest::Digest,
-    solana_feature_set::FeatureSet,
     solana_precompile_error::PrecompileError,
     solana_precompile_error::PrecompileError,
     solana_secp256k1_program::{
     solana_secp256k1_program::{
         construct_eth_pubkey, SecpSignatureOffsets, HASHED_PUBKEY_SERIALIZED_SIZE,
         construct_eth_pubkey, SecpSignatureOffsets, HASHED_PUBKEY_SERIALIZED_SIZE,
@@ -131,7 +131,6 @@ pub mod tests {
     use {
     use {
         super::*,
         super::*,
         rand0_7::{thread_rng, Rng},
         rand0_7::{thread_rng, Rng},
-        solana_feature_set::FeatureSet,
         solana_keccak_hasher as keccak,
         solana_keccak_hasher as keccak,
         solana_secp256k1_program::{new_secp256k1_instruction, DATA_START},
         solana_secp256k1_program::{new_secp256k1_instruction, DATA_START},
     };
     };
@@ -307,7 +306,7 @@ pub mod tests {
         let secp_privkey = libsecp256k1::SecretKey::random(&mut thread_rng());
         let secp_privkey = libsecp256k1::SecretKey::random(&mut thread_rng());
         let message_arr = b"hello";
         let message_arr = b"hello";
         let mut instruction = new_secp256k1_instruction(&secp_privkey, message_arr);
         let mut instruction = new_secp256k1_instruction(&secp_privkey, message_arr);
-        let feature_set = solana_feature_set::FeatureSet::all_enabled();
+        let feature_set = FeatureSet::all_enabled();
         assert!(verify(&instruction.data, &[&instruction.data], &feature_set).is_ok());
         assert!(verify(&instruction.data, &[&instruction.data], &feature_set).is_ok());
 
 
         let index = thread_rng().gen_range(0, instruction.data.len());
         let index = thread_rng().gen_range(0, instruction.data.len());

+ 1 - 2
precompiles/src/secp256r1.rs

@@ -1,4 +1,5 @@
 use {
 use {
+    agave_feature_set::FeatureSet,
     openssl::{
     openssl::{
         bn::{BigNum, BigNumContext},
         bn::{BigNum, BigNumContext},
         ec::{EcGroup, EcKey, EcPoint},
         ec::{EcGroup, EcKey, EcPoint},
@@ -6,7 +7,6 @@ use {
         pkey::PKey,
         pkey::PKey,
         sign::Verifier,
         sign::Verifier,
     },
     },
-    solana_feature_set::FeatureSet,
     solana_precompile_error::PrecompileError,
     solana_precompile_error::PrecompileError,
     solana_secp256r1_program::{
     solana_secp256r1_program::{
         Secp256r1SignatureOffsets, COMPRESSED_PUBKEY_SERIALIZED_SIZE, FIELD_SIZE,
         Secp256r1SignatureOffsets, COMPRESSED_PUBKEY_SERIALIZED_SIZE, FIELD_SIZE,
@@ -168,7 +168,6 @@ mod tests {
     use {
     use {
         super::*,
         super::*,
         bytemuck::bytes_of,
         bytemuck::bytes_of,
-        solana_feature_set::FeatureSet,
         solana_secp256r1_program::{new_secp256r1_instruction, DATA_START, SECP256R1_ORDER},
         solana_secp256r1_program::{new_secp256r1_instruction, DATA_START, SECP256R1_ORDER},
     };
     };
 
 

+ 1 - 1
program-runtime/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 agave-precompiles = { workspace = true }
 agave-precompiles = { workspace = true }
 base64 = { workspace = true }
 base64 = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
@@ -24,7 +25,6 @@ solana-clock = { workspace = true }
 solana-compute-budget = { workspace = true }
 solana-compute-budget = { workspace = true }
 solana-epoch-rewards = { workspace = true }
 solana-epoch-rewards = { workspace = true }
 solana-epoch-schedule = { workspace = true }
 solana-epoch-schedule = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-frozen-abi = { workspace = true, optional = true, features = [
 solana-frozen-abi = { workspace = true, optional = true, features = [
     "frozen-abi",
     "frozen-abi",
 ] }
 ] }

+ 5 - 5
program-runtime/src/invoke_context.rs

@@ -7,15 +7,15 @@ use {
         stable_log,
         stable_log,
         sysvar_cache::SysvarCache,
         sysvar_cache::SysvarCache,
     },
     },
+    agave_feature_set::{
+        lift_cpi_caller_restriction, move_precompile_verification_to_svm,
+        remove_accounts_executable_flag_checks, FeatureSet,
+    },
     agave_precompiles::Precompile,
     agave_precompiles::Precompile,
     solana_account::{create_account_shared_data_for_test, AccountSharedData},
     solana_account::{create_account_shared_data_for_test, AccountSharedData},
     solana_clock::Slot,
     solana_clock::Slot,
     solana_compute_budget::compute_budget::ComputeBudget,
     solana_compute_budget::compute_budget::ComputeBudget,
     solana_epoch_schedule::EpochSchedule,
     solana_epoch_schedule::EpochSchedule,
-    solana_feature_set::{
-        lift_cpi_caller_restriction, move_precompile_verification_to_svm,
-        remove_accounts_executable_flag_checks, FeatureSet,
-    },
     solana_hash::Hash,
     solana_hash::Hash,
     solana_instruction::{error::InstructionError, AccountMeta},
     solana_instruction::{error::InstructionError, AccountMeta},
     solana_log_collector::{ic_msg, LogCollector},
     solana_log_collector::{ic_msg, LogCollector},
@@ -716,8 +716,8 @@ macro_rules! with_mock_invoke_context {
         $transaction_accounts:expr $(,)?
         $transaction_accounts:expr $(,)?
     ) => {
     ) => {
         use {
         use {
+            agave_feature_set::FeatureSet,
             solana_compute_budget::compute_budget::ComputeBudget,
             solana_compute_budget::compute_budget::ComputeBudget,
-            solana_feature_set::FeatureSet,
             solana_log_collector::LogCollector,
             solana_log_collector::LogCollector,
             solana_type_overrides::sync::Arc,
             solana_type_overrides::sync::Arc,
             $crate::{
             $crate::{

+ 1 - 1
program-test/Cargo.toml

@@ -9,6 +9,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 assert_matches = { workspace = true }
 assert_matches = { workspace = true }
 async-trait = { workspace = true }
 async-trait = { workspace = true }
 base64 = { workspace = true }
 base64 = { workspace = true }
@@ -23,7 +24,6 @@ solana-banks-interface = { workspace = true }
 solana-banks-server = { workspace = true }
 solana-banks-server = { workspace = true }
 solana-bpf-loader-program = { workspace = true }
 solana-bpf-loader-program = { workspace = true }
 solana-compute-budget = { workspace = true }
 solana-compute-budget = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-inline-spl = { workspace = true }
 solana-inline-spl = { workspace = true }
 solana-instruction = { workspace = true }
 solana-instruction = { workspace = true }
 solana-log-collector = { workspace = true }
 solana-log-collector = { workspace = true }

+ 1 - 1
program-test/src/lib.rs

@@ -4,6 +4,7 @@
 // Export tokio for test clients
 // Export tokio for test clients
 pub use tokio;
 pub use tokio;
 use {
 use {
+    agave_feature_set::FEATURE_NAMES,
     async_trait::async_trait,
     async_trait::async_trait,
     base64::{prelude::BASE64_STANDARD, Engine},
     base64::{prelude::BASE64_STANDARD, Engine},
     chrono_humanize::{Accuracy, HumanTime, Tense},
     chrono_humanize::{Accuracy, HumanTime, Tense},
@@ -13,7 +14,6 @@ use {
     solana_banks_server::banks_server::start_local_server,
     solana_banks_server::banks_server::start_local_server,
     solana_bpf_loader_program::serialization::serialize_parameters,
     solana_bpf_loader_program::serialization::serialize_parameters,
     solana_compute_budget::compute_budget::ComputeBudget,
     solana_compute_budget::compute_budget::ComputeBudget,
-    solana_feature_set::FEATURE_NAMES,
     solana_instruction::{error::InstructionError, Instruction},
     solana_instruction::{error::InstructionError, Instruction},
     solana_log_collector::ic_msg,
     solana_log_collector::ic_msg,
     solana_program_runtime::{
     solana_program_runtime::{

+ 9 - 7
program-test/src/programs.rs

@@ -1,10 +1,12 @@
-use solana_sdk::{
-    account::{Account, AccountSharedData},
-    bpf_loader,
-    bpf_loader_upgradeable::{self, get_program_data_address, UpgradeableLoaderState},
-    feature_set,
-    pubkey::Pubkey,
-    rent::Rent,
+use {
+    agave_feature_set as feature_set,
+    solana_sdk::{
+        account::{Account, AccountSharedData},
+        bpf_loader,
+        bpf_loader_upgradeable::{self, get_program_data_address, UpgradeableLoaderState},
+        pubkey::Pubkey,
+        rent::Rent,
+    },
 };
 };
 
 
 mod spl_memo_1_0 {
 mod spl_memo_1_0 {

+ 2 - 1
program-test/tests/bpf.rs

@@ -1,7 +1,8 @@
 use {
 use {
+    agave_feature_set as feature_set,
     solana_program_test::ProgramTest,
     solana_program_test::ProgramTest,
     solana_sdk::{
     solana_sdk::{
-        bpf_loader, feature_set,
+        bpf_loader,
         instruction::{AccountMeta, Instruction},
         instruction::{AccountMeta, Instruction},
         pubkey::Pubkey,
         pubkey::Pubkey,
         signature::Signer,
         signature::Signer,

+ 1 - 1
programs/address-lookup-table-tests/Cargo.toml

@@ -12,12 +12,12 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dev-dependencies]
 [dev-dependencies]
+agave-feature-set = { workspace = true }
 assert_matches = { workspace = true }
 assert_matches = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
 criterion = { workspace = true }
 criterion = { workspace = true }
 solana-account = { workspace = true }
 solana-account = { workspace = true }
 solana-address-lookup-table-program = { workspace = true }
 solana-address-lookup-table-program = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-instruction = { workspace = true }
 solana-instruction = { workspace = true }
 solana-program-runtime = { workspace = true }
 solana-program-runtime = { workspace = true }
 solana-program-test = { workspace = true }
 solana-program-test = { workspace = true }

+ 1 - 1
programs/address-lookup-table/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
 bytemuck = { workspace = true }
 bytemuck = { workspace = true }
 log = { workspace = true }
 log = { workspace = true }
@@ -19,7 +20,6 @@ solana-address-lookup-table-interface = { workspace = true, features = [
     "bincode",
     "bincode",
     "bytemuck",
     "bytemuck",
 ] }
 ] }
-solana-feature-set = { workspace = true }
 thiserror = { workspace = true }
 thiserror = { workspace = true }
 
 
 [target.'cfg(not(target_os = "solana"))'.dependencies]
 [target.'cfg(not(target_os = "solana"))'.dependencies]

+ 1 - 1
programs/bpf_loader/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 agave-precompiles = { workspace = true }
 agave-precompiles = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
 libsecp256k1 = { workspace = true }
 libsecp256k1 = { workspace = true }
@@ -25,7 +26,6 @@ solana-clock = { workspace = true }
 solana-compute-budget = { workspace = true }
 solana-compute-budget = { workspace = true }
 solana-cpi = { workspace = true }
 solana-cpi = { workspace = true }
 solana-curve25519 = { workspace = true }
 solana-curve25519 = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-hash = { workspace = true }
 solana-hash = { workspace = true }
 solana-instruction = { workspace = true }
 solana-instruction = { workspace = true }
 solana-keccak-hasher = { workspace = true }
 solana-keccak-hasher = { workspace = true }

+ 6 - 6
programs/bpf_loader/src/lib.rs

@@ -7,15 +7,15 @@ pub mod syscalls;
 #[cfg(feature = "svm-internal")]
 #[cfg(feature = "svm-internal")]
 use qualifier_attr::qualifiers;
 use qualifier_attr::qualifiers;
 use {
 use {
-    solana_account::WritableAccount,
-    solana_bincode::limited_deserialize,
-    solana_clock::Slot,
-    solana_compute_budget::compute_budget::MAX_INSTRUCTION_STACK_DEPTH,
-    solana_feature_set::{
+    agave_feature_set::{
         bpf_account_data_direct_mapping, disable_new_loader_v3_deployments,
         bpf_account_data_direct_mapping, disable_new_loader_v3_deployments,
         enable_bpf_loader_set_authority_checked_ix, enable_loader_v4,
         enable_bpf_loader_set_authority_checked_ix, enable_loader_v4,
         remove_accounts_executable_flag_checks,
         remove_accounts_executable_flag_checks,
     },
     },
+    solana_account::WritableAccount,
+    solana_bincode::limited_deserialize,
+    solana_clock::Slot,
+    solana_compute_budget::compute_budget::MAX_INSTRUCTION_STACK_DEPTH,
     solana_instruction::{error::InstructionError, AccountMeta},
     solana_instruction::{error::InstructionError, AccountMeta},
     solana_loader_v3_interface::{
     solana_loader_v3_interface::{
         instruction::UpgradeableLoaderInstruction, state::UpgradeableLoaderState,
         instruction::UpgradeableLoaderInstruction, state::UpgradeableLoaderState,
@@ -1656,7 +1656,7 @@ fn execute<'a, 'b: 'a>(
             ProgramResult::Err(mut error) => {
             ProgramResult::Err(mut error) => {
                 if invoke_context
                 if invoke_context
                     .get_feature_set()
                     .get_feature_set()
-                    .is_active(&solana_feature_set::deplete_cu_meter_on_vm_failure::id())
+                    .is_active(&agave_feature_set::deplete_cu_meter_on_vm_failure::id())
                     && !matches!(error, EbpfError::SyscallError(_))
                     && !matches!(error, EbpfError::SyscallError(_))
                 {
                 {
                     // when an exception is thrown during the execution of a
                     // when an exception is thrown during the execution of a

+ 2 - 2
programs/bpf_loader/src/syscalls/cpi.rs

@@ -1,8 +1,8 @@
 use {
 use {
     super::*,
     super::*,
     crate::serialization::account_data_region_memory_state,
     crate::serialization::account_data_region_memory_state,
+    agave_feature_set::enable_bpf_loader_set_authority_checked_ix,
     scopeguard::defer,
     scopeguard::defer,
-    solana_feature_set::{self as feature_set, enable_bpf_loader_set_authority_checked_ix},
     solana_loader_v3_interface::instruction as bpf_loader_upgradeable,
     solana_loader_v3_interface::instruction as bpf_loader_upgradeable,
     solana_measure::measure::Measure,
     solana_measure::measure::Measure,
     solana_program_runtime::invoke_context::SerializedAccountMetadata,
     solana_program_runtime::invoke_context::SerializedAccountMetadata,
@@ -1615,10 +1615,10 @@ mod tests {
     use {
     use {
         super::*,
         super::*,
         crate::mock_create_vm,
         crate::mock_create_vm,
+        agave_feature_set::bpf_account_data_direct_mapping,
         assert_matches::assert_matches,
         assert_matches::assert_matches,
         solana_account::{Account, AccountSharedData, ReadableAccount},
         solana_account::{Account, AccountSharedData, ReadableAccount},
         solana_clock::Epoch,
         solana_clock::Epoch,
-        solana_feature_set::bpf_account_data_direct_mapping,
         solana_instruction::Instruction,
         solana_instruction::Instruction,
         solana_program_runtime::{
         solana_program_runtime::{
             invoke_context::SerializedAccountMetadata, with_mock_invoke_context,
             invoke_context::SerializedAccountMetadata, with_mock_invoke_context,

+ 3 - 3
programs/bpf_loader/src/syscalls/mem_ops.rs

@@ -71,7 +71,7 @@ declare_builtin_function!(
 
 
         if invoke_context
         if invoke_context
             .get_feature_set()
             .get_feature_set()
-            .is_active(&solana_feature_set::bpf_account_data_direct_mapping::id())
+            .is_active(&agave_feature_set::bpf_account_data_direct_mapping::id())
         {
         {
             let cmp_result = translate_type_mut::<i32>(
             let cmp_result = translate_type_mut::<i32>(
                 memory_mapping,
                 memory_mapping,
@@ -129,7 +129,7 @@ declare_builtin_function!(
 
 
         if invoke_context
         if invoke_context
             .get_feature_set()
             .get_feature_set()
-            .is_active(&solana_feature_set::bpf_account_data_direct_mapping::id())
+            .is_active(&agave_feature_set::bpf_account_data_direct_mapping::id())
         {
         {
             let syscall_context = invoke_context.get_syscall_context()?;
             let syscall_context = invoke_context.get_syscall_context()?;
 
 
@@ -156,7 +156,7 @@ fn memmove(
 ) -> Result<u64, Error> {
 ) -> Result<u64, Error> {
     if invoke_context
     if invoke_context
         .get_feature_set()
         .get_feature_set()
-        .is_active(&solana_feature_set::bpf_account_data_direct_mapping::id())
+        .is_active(&agave_feature_set::bpf_account_data_direct_mapping::id())
     {
     {
         let syscall_context = invoke_context.get_syscall_context()?;
         let syscall_context = invoke_context.get_syscall_context()?;
 
 

+ 11 - 11
programs/bpf_loader/src/syscalls/mod.rs

@@ -12,6 +12,17 @@ pub use self::{
 };
 };
 #[allow(deprecated)]
 #[allow(deprecated)]
 use {
 use {
+    agave_feature_set::{
+        self as feature_set, abort_on_invalid_curve, blake3_syscall_enabled,
+        bpf_account_data_direct_mapping, curve25519_syscall_enabled,
+        disable_deploy_of_alloc_free_syscall, disable_fees_sysvar, disable_sbpf_v0_execution,
+        enable_alt_bn128_compression_syscall, enable_alt_bn128_syscall, enable_big_mod_exp_syscall,
+        enable_get_epoch_stake_syscall, enable_poseidon_syscall,
+        enable_sbpf_v1_deployment_and_execution, enable_sbpf_v2_deployment_and_execution,
+        enable_sbpf_v3_deployment_and_execution, get_sysvar_syscall_enabled,
+        last_restart_slot_sysvar, reenable_sbpf_v0_execution,
+        remaining_compute_units_syscall_enabled, FeatureSet,
+    },
     agave_precompiles::is_precompile,
     agave_precompiles::is_precompile,
     solana_account_info::AccountInfo,
     solana_account_info::AccountInfo,
     solana_big_mod_exp::{big_mod_exp, BigModExpParams},
     solana_big_mod_exp::{big_mod_exp, BigModExpParams},
@@ -24,17 +35,6 @@ use {
     },
     },
     solana_compute_budget::compute_budget::ComputeBudget,
     solana_compute_budget::compute_budget::ComputeBudget,
     solana_cpi::MAX_RETURN_DATA,
     solana_cpi::MAX_RETURN_DATA,
-    solana_feature_set::{
-        self as feature_set, abort_on_invalid_curve, blake3_syscall_enabled,
-        bpf_account_data_direct_mapping, curve25519_syscall_enabled,
-        disable_deploy_of_alloc_free_syscall, disable_fees_sysvar, disable_sbpf_v0_execution,
-        enable_alt_bn128_compression_syscall, enable_alt_bn128_syscall, enable_big_mod_exp_syscall,
-        enable_get_epoch_stake_syscall, enable_poseidon_syscall,
-        enable_sbpf_v1_deployment_and_execution, enable_sbpf_v2_deployment_and_execution,
-        enable_sbpf_v3_deployment_and_execution, get_sysvar_syscall_enabled,
-        last_restart_slot_sysvar, reenable_sbpf_v0_execution,
-        remaining_compute_units_syscall_enabled, FeatureSet,
-    },
     solana_hash::Hash,
     solana_hash::Hash,
     solana_instruction::{error::InstructionError, AccountMeta, ProcessedSiblingInstruction},
     solana_instruction::{error::InstructionError, AccountMeta, ProcessedSiblingInstruction},
     solana_keccak_hasher as keccak,
     solana_keccak_hasher as keccak,

+ 1 - 1
programs/compute-budget-bench/Cargo.toml

@@ -9,12 +9,12 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 criterion = { workspace = true }
 criterion = { workspace = true }
 solana-compute-budget = { workspace = true }
 solana-compute-budget = { workspace = true }
 solana-compute-budget-instruction = { workspace = true }
 solana-compute-budget-instruction = { workspace = true }
 solana-compute-budget-interface = { workspace = true }
 solana-compute-budget-interface = { workspace = true }
 solana-compute-budget-program = { workspace = true }
 solana-compute-budget-program = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-message = { workspace = true }
 solana-message = { workspace = true }
 solana-sdk-ids = { workspace = true }
 solana-sdk-ids = { workspace = true }
 solana-svm-transaction = { workspace = true }
 solana-svm-transaction = { workspace = true }

+ 1 - 1
programs/compute-budget-bench/benches/compute_budget.rs

@@ -1,9 +1,9 @@
 use {
 use {
+    agave_feature_set::FeatureSet,
     criterion::{black_box, criterion_group, criterion_main, Criterion},
     criterion::{black_box, criterion_group, criterion_main, Criterion},
     solana_compute_budget::compute_budget_limits::ComputeBudgetLimits,
     solana_compute_budget::compute_budget_limits::ComputeBudgetLimits,
     solana_compute_budget_instruction::instructions_processor::process_compute_budget_instructions,
     solana_compute_budget_instruction::instructions_processor::process_compute_budget_instructions,
     solana_compute_budget_interface::ComputeBudgetInstruction,
     solana_compute_budget_interface::ComputeBudgetInstruction,
-    solana_feature_set::FeatureSet,
     solana_message::compiled_instruction::CompiledInstruction,
     solana_message::compiled_instruction::CompiledInstruction,
     solana_svm_transaction::instruction::SVMInstruction,
     solana_svm_transaction::instruction::SVMInstruction,
     std::num::NonZero,
     std::num::NonZero,

+ 1 - 0
programs/ed25519-tests/Cargo.toml

@@ -9,6 +9,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dev-dependencies]
 [dev-dependencies]
+agave-feature-set = { workspace = true }
 assert_matches = { workspace = true }
 assert_matches = { workspace = true }
 ed25519-dalek = { workspace = true }
 ed25519-dalek = { workspace = true }
 rand = { workspace = true }
 rand = { workspace = true }

+ 1 - 1
programs/ed25519-tests/tests/process_transaction.rs

@@ -1,9 +1,9 @@
 use {
 use {
+    agave_feature_set as feature_set,
     assert_matches::assert_matches,
     assert_matches::assert_matches,
     solana_program_test::*,
     solana_program_test::*,
     solana_sdk::{
     solana_sdk::{
         ed25519_instruction::new_ed25519_instruction,
         ed25519_instruction::new_ed25519_instruction,
-        feature_set,
         instruction::InstructionError,
         instruction::InstructionError,
         precompiles::PrecompileError,
         precompiles::PrecompileError,
         signature::Signer,
         signature::Signer,

+ 59 - 36
programs/sbf/Cargo.lock

@@ -71,6 +71,18 @@ dependencies = [
  "solana-perf",
  "solana-perf",
 ]
 ]
 
 
+[[package]]
+name = "agave-feature-set"
+version = "2.2.6"
+dependencies = [
+ "ahash 0.8.11",
+ "solana-epoch-schedule",
+ "solana-feature-set-interface",
+ "solana-hash",
+ "solana-pubkey",
+ "solana-sha256-hasher",
+]
+
 [[package]]
 [[package]]
 name = "agave-geyser-plugin-interface"
 name = "agave-geyser-plugin-interface"
 version = "2.2.6"
 version = "2.2.6"
@@ -87,6 +99,7 @@ dependencies = [
 name = "agave-precompiles"
 name = "agave-precompiles"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "bincode",
  "bincode",
  "bytemuck",
  "bytemuck",
  "digest 0.10.7",
  "digest 0.10.7",
@@ -96,7 +109,6 @@ dependencies = [
  "openssl",
  "openssl",
  "sha3",
  "sha3",
  "solana-ed25519-program",
  "solana-ed25519-program",
- "solana-feature-set",
  "solana-message",
  "solana-message",
  "solana-precompile-error",
  "solana-precompile-error",
  "solana-pubkey",
  "solana-pubkey",
@@ -109,8 +121,8 @@ dependencies = [
 name = "agave-reserved-account-keys"
 name = "agave-reserved-account-keys"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "lazy_static",
  "lazy_static",
- "solana-feature-set",
  "solana-pubkey",
  "solana-pubkey",
  "solana-sdk-ids",
  "solana-sdk-ids",
 ]
 ]
@@ -2932,9 +2944,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 
 [[package]]
 [[package]]
 name = "libc"
 name = "libc"
-version = "0.2.169"
+version = "0.2.171"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
+checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6"
 
 
 [[package]]
 [[package]]
 name = "libloading"
 name = "libloading"
@@ -4790,9 +4802,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "serde_json"
 name = "serde_json"
-version = "1.0.138"
+version = "1.0.140"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949"
+checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373"
 dependencies = [
 dependencies = [
  "itoa",
  "itoa",
  "memchr",
  "memchr",
@@ -5182,6 +5194,7 @@ dependencies = [
 name = "solana-address-lookup-table-program"
 name = "solana-address-lookup-table-program"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "bincode",
  "bincode",
  "bytemuck",
  "bytemuck",
  "log",
  "log",
@@ -5190,7 +5203,6 @@ dependencies = [
  "solana-address-lookup-table-interface",
  "solana-address-lookup-table-interface",
  "solana-bincode",
  "solana-bincode",
  "solana-clock",
  "solana-clock",
- "solana-feature-set",
  "solana-instruction",
  "solana-instruction",
  "solana-log-collector",
  "solana-log-collector",
  "solana-packet",
  "solana-packet",
@@ -5241,12 +5253,12 @@ dependencies = [
 name = "solana-banks-server"
 name = "solana-banks-server"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "bincode",
  "bincode",
  "crossbeam-channel",
  "crossbeam-channel",
  "futures 0.3.31",
  "futures 0.3.31",
  "solana-banks-interface",
  "solana-banks-interface",
  "solana-client",
  "solana-client",
- "solana-feature-set",
  "solana-runtime",
  "solana-runtime",
  "solana-runtime-transaction",
  "solana-runtime-transaction",
  "solana-sdk",
  "solana-sdk",
@@ -5334,6 +5346,7 @@ dependencies = [
 name = "solana-bpf-loader-program"
 name = "solana-bpf-loader-program"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-precompiles",
  "agave-precompiles",
  "bincode",
  "bincode",
  "libsecp256k1 0.6.0",
  "libsecp256k1 0.6.0",
@@ -5349,7 +5362,6 @@ dependencies = [
  "solana-compute-budget",
  "solana-compute-budget",
  "solana-cpi",
  "solana-cpi",
  "solana-curve25519",
  "solana-curve25519",
- "solana-feature-set",
  "solana-hash",
  "solana-hash",
  "solana-instruction",
  "solana-instruction",
  "solana-keccak-hasher",
  "solana-keccak-hasher",
@@ -5399,11 +5411,11 @@ dependencies = [
 name = "solana-builtins"
 name = "solana-builtins"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "solana-address-lookup-table-program",
  "solana-address-lookup-table-program",
  "solana-bpf-loader-program",
  "solana-bpf-loader-program",
  "solana-compute-budget-program",
  "solana-compute-budget-program",
  "solana-config-program",
  "solana-config-program",
- "solana-feature-set",
  "solana-loader-v4-program",
  "solana-loader-v4-program",
  "solana-program-runtime",
  "solana-program-runtime",
  "solana-pubkey",
  "solana-pubkey",
@@ -5419,6 +5431,7 @@ dependencies = [
 name = "solana-builtins-default-costs"
 name = "solana-builtins-default-costs"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "ahash 0.8.11",
  "ahash 0.8.11",
  "lazy_static",
  "lazy_static",
  "log",
  "log",
@@ -5427,7 +5440,6 @@ dependencies = [
  "solana-bpf-loader-program",
  "solana-bpf-loader-program",
  "solana-compute-budget-program",
  "solana-compute-budget-program",
  "solana-config-program",
  "solana-config-program",
- "solana-feature-set",
  "solana-loader-v4-program",
  "solana-loader-v4-program",
  "solana-pubkey",
  "solana-pubkey",
  "solana-sdk-ids",
  "solana-sdk-ids",
@@ -5629,12 +5641,12 @@ dependencies = [
 name = "solana-compute-budget-instruction"
 name = "solana-compute-budget-instruction"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "log",
  "log",
  "solana-borsh",
  "solana-borsh",
  "solana-builtins-default-costs",
  "solana-builtins-default-costs",
  "solana-compute-budget",
  "solana-compute-budget",
  "solana-compute-budget-interface",
  "solana-compute-budget-interface",
- "solana-feature-set",
  "solana-instruction",
  "solana-instruction",
  "solana-packet",
  "solana-packet",
  "solana-pubkey",
  "solana-pubkey",
@@ -5714,6 +5726,7 @@ name = "solana-core"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
  "agave-banking-stage-ingress-types",
  "agave-banking-stage-ingress-types",
+ "agave-feature-set",
  "agave-transaction-view",
  "agave-transaction-view",
  "ahash 0.8.11",
  "ahash 0.8.11",
  "anyhow",
  "anyhow",
@@ -5756,7 +5769,6 @@ dependencies = [
  "solana-connection-cache",
  "solana-connection-cache",
  "solana-cost-model",
  "solana-cost-model",
  "solana-entry",
  "solana-entry",
- "solana-feature-set",
  "solana-fee",
  "solana-fee",
  "solana-geyser-plugin-manager",
  "solana-geyser-plugin-manager",
  "solana-gossip",
  "solana-gossip",
@@ -5805,6 +5817,7 @@ dependencies = [
 name = "solana-cost-model"
 name = "solana-cost-model"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "ahash 0.8.11",
  "ahash 0.8.11",
  "lazy_static",
  "lazy_static",
  "log",
  "log",
@@ -5815,7 +5828,6 @@ dependencies = [
  "solana-compute-budget",
  "solana-compute-budget",
  "solana-compute-budget-instruction",
  "solana-compute-budget-instruction",
  "solana-compute-budget-interface",
  "solana-compute-budget-interface",
- "solana-feature-set",
  "solana-fee-structure",
  "solana-fee-structure",
  "solana-metrics",
  "solana-metrics",
  "solana-packet",
  "solana-packet",
@@ -6064,11 +6076,21 @@ dependencies = [
  "solana-sha256-hasher",
  "solana-sha256-hasher",
 ]
 ]
 
 
+[[package]]
+name = "solana-feature-set-interface"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02007757246e40f10aa936dae4fa27efbf8dbd6a59575a12ccc802c1aea6e708"
+dependencies = [
+ "ahash 0.8.11",
+ "solana-pubkey",
+]
+
 [[package]]
 [[package]]
 name = "solana-fee"
 name = "solana-fee"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
- "solana-feature-set",
+ "agave-feature-set",
  "solana-fee-structure",
  "solana-fee-structure",
  "solana-svm-transaction",
  "solana-svm-transaction",
 ]
 ]
@@ -6183,6 +6205,7 @@ dependencies = [
 name = "solana-gossip"
 name = "solana-gossip"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "assert_matches",
  "assert_matches",
  "bincode",
  "bincode",
  "bv",
  "bv",
@@ -6207,7 +6230,6 @@ dependencies = [
  "solana-client",
  "solana-client",
  "solana-connection-cache",
  "solana-connection-cache",
  "solana-entry",
  "solana-entry",
- "solana-feature-set",
  "solana-ledger",
  "solana-ledger",
  "solana-logger",
  "solana-logger",
  "solana-measure",
  "solana-measure",
@@ -6370,6 +6392,7 @@ dependencies = [
 name = "solana-ledger"
 name = "solana-ledger"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-reserved-account-keys",
  "agave-reserved-account-keys",
  "assert_matches",
  "assert_matches",
  "bincode",
  "bincode",
@@ -6408,7 +6431,6 @@ dependencies = [
  "solana-bpf-loader-program",
  "solana-bpf-loader-program",
  "solana-cost-model",
  "solana-cost-model",
  "solana-entry",
  "solana-entry",
- "solana-feature-set",
  "solana-measure",
  "solana-measure",
  "solana-metrics",
  "solana-metrics",
  "solana-perf",
  "solana-perf",
@@ -6518,13 +6540,15 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "solana-logger"
 name = "solana-logger"
-version = "2.2.1"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "593dbcb81439d37b02757e90bd9ab56364de63f378c55db92a6fbd6a2e47ab36"
+checksum = "db8e777ec1afd733939b532a42492d888ec7c88d8b4127a5d867eb45c6eb5cd5"
 dependencies = [
 dependencies = [
  "env_logger",
  "env_logger",
  "lazy_static",
  "lazy_static",
+ "libc",
  "log",
  "log",
+ "signal-hook",
 ]
 ]
 
 
 [[package]]
 [[package]]
@@ -6922,6 +6946,7 @@ dependencies = [
 name = "solana-program-runtime"
 name = "solana-program-runtime"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-precompiles",
  "agave-precompiles",
  "base64 0.22.1",
  "base64 0.22.1",
  "bincode",
  "bincode",
@@ -6936,7 +6961,6 @@ dependencies = [
  "solana-compute-budget",
  "solana-compute-budget",
  "solana-epoch-rewards",
  "solana-epoch-rewards",
  "solana-epoch-schedule",
  "solana-epoch-schedule",
- "solana-feature-set",
  "solana-hash",
  "solana-hash",
  "solana-instruction",
  "solana-instruction",
  "solana-last-restart-slot",
  "solana-last-restart-slot",
@@ -6961,6 +6985,7 @@ dependencies = [
 name = "solana-program-test"
 name = "solana-program-test"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "assert_matches",
  "assert_matches",
  "async-trait",
  "async-trait",
  "base64 0.22.1",
  "base64 0.22.1",
@@ -6975,7 +7000,6 @@ dependencies = [
  "solana-banks-server",
  "solana-banks-server",
  "solana-bpf-loader-program",
  "solana-bpf-loader-program",
  "solana-compute-budget",
  "solana-compute-budget",
- "solana-feature-set",
  "solana-inline-spl",
  "solana-inline-spl",
  "solana-instruction",
  "solana-instruction",
  "solana-log-collector",
  "solana-log-collector",
@@ -7179,6 +7203,7 @@ dependencies = [
 name = "solana-rpc"
 name = "solana-rpc"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "base64 0.22.1",
  "base64 0.22.1",
  "bincode",
  "bincode",
  "bs58",
  "bs58",
@@ -7203,7 +7228,6 @@ dependencies = [
  "solana-client",
  "solana-client",
  "solana-entry",
  "solana-entry",
  "solana-faucet",
  "solana-faucet",
- "solana-feature-set",
  "solana-gossip",
  "solana-gossip",
  "solana-inline-spl",
  "solana-inline-spl",
  "solana-ledger",
  "solana-ledger",
@@ -7320,6 +7344,7 @@ dependencies = [
 name = "solana-runtime"
 name = "solana-runtime"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-precompiles",
  "agave-precompiles",
  "agave-reserved-account-keys",
  "agave-reserved-account-keys",
  "ahash 0.8.11",
  "ahash 0.8.11",
@@ -7367,7 +7392,6 @@ dependencies = [
  "solana-compute-budget-instruction",
  "solana-compute-budget-instruction",
  "solana-config-program",
  "solana-config-program",
  "solana-cost-model",
  "solana-cost-model",
- "solana-feature-set",
  "solana-fee",
  "solana-fee",
  "solana-inline-spl",
  "solana-inline-spl",
  "solana-lattice-hash",
  "solana-lattice-hash",
@@ -7433,6 +7457,7 @@ checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf"
 name = "solana-sbf-programs"
 name = "solana-sbf-programs"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-reserved-account-keys",
  "agave-reserved-account-keys",
  "agave-validator",
  "agave-validator",
  "bincode",
  "bincode",
@@ -7449,7 +7474,6 @@ dependencies = [
  "solana-cli-output",
  "solana-cli-output",
  "solana-compute-budget",
  "solana-compute-budget",
  "solana-compute-budget-instruction",
  "solana-compute-budget-instruction",
- "solana-feature-set",
  "solana-fee",
  "solana-fee",
  "solana-ledger",
  "solana-ledger",
  "solana-log-collector",
  "solana-log-collector",
@@ -7949,9 +7973,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "solana-sdk"
 name = "solana-sdk"
-version = "2.2.1"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4808e8d7f3c931657e615042d4176b423e66f64dc99e3dc3c735a197e512029b"
+checksum = "e8af90d2ce445440e0548fa4a5f96fe8b265c22041a68c942012ffadd029667d"
 dependencies = [
 dependencies = [
  "bincode",
  "bincode",
  "bs58",
  "bs58",
@@ -8273,13 +8297,13 @@ dependencies = [
 name = "solana-stake-program"
 name = "solana-stake-program"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "bincode",
  "bincode",
  "log",
  "log",
  "solana-account",
  "solana-account",
  "solana-bincode",
  "solana-bincode",
  "solana-clock",
  "solana-clock",
  "solana-config-program",
  "solana-config-program",
- "solana-feature-set",
  "solana-genesis-config",
  "solana-genesis-config",
  "solana-instruction",
  "solana-instruction",
  "solana-log-collector",
  "solana-log-collector",
@@ -8408,6 +8432,7 @@ dependencies = [
 name = "solana-svm"
 name = "solana-svm"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "agave-precompiles",
  "agave-precompiles",
  "ahash 0.8.11",
  "ahash 0.8.11",
  "itertools 0.12.1",
  "itertools 0.12.1",
@@ -8421,7 +8446,6 @@ dependencies = [
  "solana-clock",
  "solana-clock",
  "solana-compute-budget",
  "solana-compute-budget",
  "solana-compute-budget-instruction",
  "solana-compute-budget-instruction",
- "solana-feature-set",
  "solana-fee-structure",
  "solana-fee-structure",
  "solana-hash",
  "solana-hash",
  "solana-instruction",
  "solana-instruction",
@@ -8574,6 +8598,7 @@ dependencies = [
 name = "solana-test-validator"
 name = "solana-test-validator"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "base64 0.22.1",
  "base64 0.22.1",
  "bincode",
  "bincode",
  "crossbeam-channel",
  "crossbeam-channel",
@@ -8584,7 +8609,6 @@ dependencies = [
  "solana-cli-output",
  "solana-cli-output",
  "solana-compute-budget",
  "solana-compute-budget",
  "solana-core",
  "solana-core",
- "solana-feature-set",
  "solana-geyser-plugin-manager",
  "solana-geyser-plugin-manager",
  "solana-gossip",
  "solana-gossip",
  "solana-ledger",
  "solana-ledger",
@@ -8688,9 +8712,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "solana-transaction"
 name = "solana-transaction"
-version = "2.2.1"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "753b3e9afed170e4cfc0ea1e87b5dfdc6d4a50270869414edd24c6ea1f529b29"
+checksum = "abec848d081beb15a324c633cd0e0ab33033318063230389895cae503ec9b544"
 dependencies = [
 dependencies = [
  "bincode",
  "bincode",
  "serde",
  "serde",
@@ -8703,7 +8727,6 @@ dependencies = [
  "solana-message",
  "solana-message",
  "solana-precompiles",
  "solana-precompiles",
  "solana-pubkey",
  "solana-pubkey",
- "solana-reserved-account-keys",
  "solana-sanitize",
  "solana-sanitize",
  "solana-sdk-ids",
  "solana-sdk-ids",
  "solana-short-vec",
  "solana-short-vec",
@@ -8821,6 +8844,7 @@ dependencies = [
 name = "solana-turbine"
 name = "solana-turbine"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "bincode",
  "bincode",
  "bytes",
  "bytes",
  "crossbeam-channel",
  "crossbeam-channel",
@@ -8835,7 +8859,6 @@ dependencies = [
  "rayon",
  "rayon",
  "rustls 0.23.22",
  "rustls 0.23.22",
  "solana-entry",
  "solana-entry",
- "solana-feature-set",
  "solana-geyser-plugin-manager",
  "solana-geyser-plugin-manager",
  "solana-gossip",
  "solana-gossip",
  "solana-ledger",
  "solana-ledger",
@@ -8929,10 +8952,10 @@ checksum = "7bbf6d7a3c0b28dd5335c52c0e9eae49d0ae489a8f324917faf0ded65a812c1d"
 name = "solana-version"
 name = "solana-version"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "semver",
  "semver",
  "serde",
  "serde",
  "serde_derive",
  "serde_derive",
- "solana-feature-set",
  "solana-sanitize",
  "solana-sanitize",
  "solana-serde-varint",
  "solana-serde-varint",
 ]
 ]
@@ -8988,6 +9011,7 @@ dependencies = [
 name = "solana-vote-program"
 name = "solana-vote-program"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "bincode",
  "bincode",
  "log",
  "log",
  "num-derive",
  "num-derive",
@@ -8998,7 +9022,6 @@ dependencies = [
  "solana-bincode",
  "solana-bincode",
  "solana-clock",
  "solana-clock",
  "solana-epoch-schedule",
  "solana-epoch-schedule",
- "solana-feature-set",
  "solana-hash",
  "solana-hash",
  "solana-instruction",
  "solana-instruction",
  "solana-keypair",
  "solana-keypair",
@@ -9094,10 +9117,10 @@ dependencies = [
 name = "solana-zk-token-proof-program"
 name = "solana-zk-token-proof-program"
 version = "2.2.6"
 version = "2.2.6"
 dependencies = [
 dependencies = [
+ "agave-feature-set",
  "bytemuck",
  "bytemuck",
  "num-derive",
  "num-derive",
  "num-traits",
  "num-traits",
- "solana-feature-set",
  "solana-instruction",
  "solana-instruction",
  "solana-log-collector",
  "solana-log-collector",
  "solana-program-runtime",
  "solana-program-runtime",

+ 4 - 4
programs/sbf/Cargo.toml

@@ -15,6 +15,7 @@ check-cfg = [
 ]
 ]
 
 
 [workspace.dependencies]
 [workspace.dependencies]
+agave-feature-set = { path = "../../feature-set", version = "=2.2.6" }
 agave-reserved-account-keys = { path = "../../reserved-account-keys", version = "=2.2.6" }
 agave-reserved-account-keys = { path = "../../reserved-account-keys", version = "=2.2.6" }
 array-bytes = "=1.4.1"
 array-bytes = "=1.4.1"
 bincode = { version = "1.1.4", default-features = false }
 bincode = { version = "1.1.4", default-features = false }
@@ -43,11 +44,10 @@ solana-compute-budget = { path = "../../compute-budget", version = "=2.2.6" }
 solana-compute-budget-instruction = { path = "../../compute-budget-instruction", version = "=2.2.6" }
 solana-compute-budget-instruction = { path = "../../compute-budget-instruction", version = "=2.2.6" }
 solana-curve25519 = { path = "../../curves/curve25519", version = "=2.2.6" }
 solana-curve25519 = { path = "../../curves/curve25519", version = "=2.2.6" }
 solana-decode-error = "=2.2.1"
 solana-decode-error = "=2.2.1"
-solana-feature-set = "=2.2.4" # will be removed
 solana-fee = { path = "../../fee", version = "=2.2.6" }
 solana-fee = { path = "../../fee", version = "=2.2.6" }
 solana-ledger = { path = "../../ledger", version = "=2.2.6" }
 solana-ledger = { path = "../../ledger", version = "=2.2.6" }
 solana-log-collector = { path = "../../log-collector", version = "=2.2.6" }
 solana-log-collector = { path = "../../log-collector", version = "=2.2.6" }
-solana-logger = "=2.2.1"
+solana-logger = "=2.3.1"
 solana-measure = { path = "../../measure", version = "=2.2.6" }
 solana-measure = { path = "../../measure", version = "=2.2.6" }
 solana-poseidon = { path = "../../poseidon/", version = "=2.2.6" }
 solana-poseidon = { path = "../../poseidon/", version = "=2.2.6" }
 solana-program = "=2.2.1"
 solana-program = "=2.2.1"
@@ -62,7 +62,7 @@ solana-sbf-rust-mem-dep = { path = "rust/mem_dep", version = "=2.2.6" }
 solana-sbf-rust-param-passing-dep = { path = "rust/param_passing_dep", version = "=2.2.6" }
 solana-sbf-rust-param-passing-dep = { path = "rust/param_passing_dep", version = "=2.2.6" }
 solana-sbf-rust-realloc-dep = { path = "rust/realloc_dep", version = "=2.2.6" }
 solana-sbf-rust-realloc-dep = { path = "rust/realloc_dep", version = "=2.2.6" }
 solana-sbf-rust-realloc-invoke-dep = { path = "rust/realloc_invoke_dep", version = "=2.2.6" }
 solana-sbf-rust-realloc-invoke-dep = { path = "rust/realloc_invoke_dep", version = "=2.2.6" }
-solana-sdk = "=2.2.1"
+solana-sdk = "=2.2.2"
 solana-sbpf = "=0.10.0"
 solana-sbpf = "=0.10.0"
 solana-secp256k1-recover = "=2.2.1"
 solana-secp256k1-recover = "=2.2.1"
 solana-svm = { path = "../../svm", version = "=2.2.6" }
 solana-svm = { path = "../../svm", version = "=2.2.6" }
@@ -103,6 +103,7 @@ dummy-for-ci-check = ["sbf_c", "sbf_rust"]
 frozen-abi = []
 frozen-abi = []
 
 
 [dev-dependencies]
 [dev-dependencies]
+agave-feature-set = { workspace = true }
 agave-reserved-account-keys = { workspace = true }
 agave-reserved-account-keys = { workspace = true }
 agave-validator = { workspace = true }
 agave-validator = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
@@ -121,7 +122,6 @@ solana-compute-budget = { workspace = true }
 solana-compute-budget-instruction = { workspace = true, features = [
 solana-compute-budget-instruction = { workspace = true, features = [
     "dev-context-only-utils",
     "dev-context-only-utils",
 ] }
 ] }
-solana-feature-set = { workspace = true }
 solana-fee = { workspace = true }
 solana-fee = { workspace = true }
 solana-ledger = { workspace = true }
 solana-ledger = { workspace = true }
 solana-log-collector = { workspace = true }
 solana-log-collector = { workspace = true }

+ 2 - 2
programs/sbf/benches/bpf_loader.rs

@@ -8,20 +8,20 @@
 )]
 )]
 
 
 use {
 use {
-    solana_feature_set::bpf_account_data_direct_mapping, solana_sbpf::memory_region::MemoryState,
+    agave_feature_set::bpf_account_data_direct_mapping, solana_sbpf::memory_region::MemoryState,
     solana_sdk::signer::keypair::Keypair, std::slice,
     solana_sdk::signer::keypair::Keypair, std::slice,
 };
 };
 
 
 extern crate test;
 extern crate test;
 
 
 use {
 use {
+    agave_feature_set::FeatureSet,
     byteorder::{ByteOrder, LittleEndian, WriteBytesExt},
     byteorder::{ByteOrder, LittleEndian, WriteBytesExt},
     solana_bpf_loader_program::{
     solana_bpf_loader_program::{
         create_vm, serialization::serialize_parameters,
         create_vm, serialization::serialize_parameters,
         syscalls::create_program_runtime_environment_v1,
         syscalls::create_program_runtime_environment_v1,
     },
     },
     solana_compute_budget::compute_budget::ComputeBudget,
     solana_compute_budget::compute_budget::ComputeBudget,
-    solana_feature_set::FeatureSet,
     solana_measure::measure::Measure,
     solana_measure::measure::Measure,
     solana_program_runtime::invoke_context::InvokeContext,
     solana_program_runtime::invoke_context::InvokeContext,
     solana_runtime::{
     solana_runtime::{

+ 3 - 3
programs/sbf/tests/programs.rs

@@ -9,11 +9,11 @@
 
 
 #[cfg(feature = "sbf_rust")]
 #[cfg(feature = "sbf_rust")]
 use {
 use {
+    agave_feature_set::{self as feature_set, FeatureSet},
     agave_reserved_account_keys::ReservedAccountKeys,
     agave_reserved_account_keys::ReservedAccountKeys,
     borsh::{from_slice, to_vec, BorshDeserialize, BorshSerialize},
     borsh::{from_slice, to_vec, BorshDeserialize, BorshSerialize},
     solana_compute_budget::compute_budget::ComputeBudget,
     solana_compute_budget::compute_budget::ComputeBudget,
     solana_compute_budget_instruction::instructions_processor::process_compute_budget_instructions,
     solana_compute_budget_instruction::instructions_processor::process_compute_budget_instructions,
-    solana_feature_set::{self as feature_set, FeatureSet},
     solana_program_runtime::invoke_context::mock_process_instruction,
     solana_program_runtime::invoke_context::mock_process_instruction,
     solana_runtime::{
     solana_runtime::{
         bank::Bank,
         bank::Bank,
@@ -231,7 +231,7 @@ fn test_program_sbf_loader_deprecated() {
         } = create_genesis_config(50);
         } = create_genesis_config(50);
         genesis_config
         genesis_config
             .accounts
             .accounts
-            .remove(&solana_feature_set::disable_deploy_of_alloc_free_syscall::id())
+            .remove(&agave_feature_set::disable_deploy_of_alloc_free_syscall::id())
             .unwrap();
             .unwrap();
         let (bank, bank_forks) = Bank::new_with_bank_forks_for_tests(&genesis_config);
         let (bank, bank_forks) = Bank::new_with_bank_forks_for_tests(&genesis_config);
         let program_id = create_program(&bank, &bpf_loader_deprecated::id(), program);
         let program_id = create_program(&bank, &bpf_loader_deprecated::id(), program);
@@ -1908,7 +1908,7 @@ fn test_program_sbf_disguised_as_sbf_loader() {
             ..
             ..
         } = create_genesis_config(50);
         } = create_genesis_config(50);
         let mut bank = Bank::new_for_tests(&genesis_config);
         let mut bank = Bank::new_for_tests(&genesis_config);
-        bank.deactivate_feature(&solana_feature_set::remove_bpf_loader_incorrect_program_id::id());
+        bank.deactivate_feature(&agave_feature_set::remove_bpf_loader_incorrect_program_id::id());
         let (bank, bank_forks) = bank.wrap_with_bank_forks_for_tests();
         let (bank, bank_forks) = bank.wrap_with_bank_forks_for_tests();
         let mut bank_client = BankClient::new_shared(bank);
         let mut bank_client = BankClient::new_shared(bank);
         let authority_keypair = Keypair::new();
         let authority_keypair = Keypair::new();

+ 1 - 1
programs/sbf/tests/sysvar.rs

@@ -1,7 +1,7 @@
 #![cfg(feature = "sbf_rust")]
 #![cfg(feature = "sbf_rust")]
 
 
 use {
 use {
-    solana_feature_set::disable_fees_sysvar,
+    agave_feature_set::disable_fees_sysvar,
     solana_runtime::{
     solana_runtime::{
         bank::Bank,
         bank::Bank,
         bank_client::BankClient,
         bank_client::BankClient,

+ 1 - 1
programs/stake-tests/Cargo.toml

@@ -12,9 +12,9 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dev-dependencies]
 [dev-dependencies]
+agave-feature-set = { workspace = true }
 assert_matches = { workspace = true }
 assert_matches = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-program-test = { workspace = true }
 solana-program-test = { workspace = true }
 solana-sdk = { workspace = true }
 solana-sdk = { workspace = true }
 solana-vote-program = { workspace = true }
 solana-vote-program = { workspace = true }

+ 1 - 1
programs/stake-tests/tests/test_move_stake_and_lamports.rs

@@ -6,7 +6,7 @@
 // in other words the utility functions in this file should not be broken out into modules or used elsewhere
 // in other words the utility functions in this file should not be broken out into modules or used elsewhere
 
 
 use {
 use {
-    solana_feature_set::{
+    agave_feature_set::{
         move_stake_and_move_lamports_ixs, stake_raise_minimum_delegation_to_1_sol,
         move_stake_and_move_lamports_ixs, stake_raise_minimum_delegation_to_1_sol,
     },
     },
     solana_program_test::*,
     solana_program_test::*,

+ 1 - 1
programs/stake/Cargo.toml

@@ -10,13 +10,13 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
 log = { workspace = true }
 log = { workspace = true }
 solana-account = { workspace = true }
 solana-account = { workspace = true }
 solana-bincode = { workspace = true }
 solana-bincode = { workspace = true }
 solana-clock = { workspace = true }
 solana-clock = { workspace = true }
 solana-config-program = { workspace = true }
 solana-config-program = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-genesis-config = { workspace = true }
 solana-genesis-config = { workspace = true }
 solana-instruction = { workspace = true }
 solana-instruction = { workspace = true }
 solana-log-collector = { workspace = true }
 solana-log-collector = { workspace = true }

+ 1 - 1
programs/stake/benches/stake.rs

@@ -1,9 +1,9 @@
 use {
 use {
+    agave_feature_set::FeatureSet,
     bincode::serialize,
     bincode::serialize,
     criterion::{black_box, criterion_group, criterion_main, Criterion},
     criterion::{black_box, criterion_group, criterion_main, Criterion},
     solana_account::{create_account_shared_data_for_test, AccountSharedData, WritableAccount},
     solana_account::{create_account_shared_data_for_test, AccountSharedData, WritableAccount},
     solana_clock::{Clock, Epoch},
     solana_clock::{Clock, Epoch},
-    solana_feature_set::FeatureSet,
     solana_instruction::AccountMeta,
     solana_instruction::AccountMeta,
     solana_program_runtime::invoke_context::mock_process_instruction,
     solana_program_runtime::invoke_context::mock_process_instruction,
     solana_pubkey::Pubkey,
     solana_pubkey::Pubkey,

+ 1 - 1
programs/stake/src/lib.rs

@@ -6,7 +6,7 @@
 )]
 )]
 pub use solana_sdk_ids::stake::{check_id, id};
 pub use solana_sdk_ids::stake::{check_id, id};
 use {
 use {
-    solana_feature_set::{self as feature_set, FeatureSet},
+    agave_feature_set::{self as feature_set, FeatureSet},
     solana_genesis_config::GenesisConfig,
     solana_genesis_config::GenesisConfig,
     solana_native_token::LAMPORTS_PER_SOL,
     solana_native_token::LAMPORTS_PER_SOL,
 };
 };

+ 4 - 4
programs/stake/src/stake_instruction.rs

@@ -339,7 +339,7 @@ declare_process_instruction!(Entrypoint, DEFAULT_COMPUTE_UNITS, |invoke_context|
         StakeInstruction::MoveStake(lamports) => {
         StakeInstruction::MoveStake(lamports) => {
             if invoke_context
             if invoke_context
                 .get_feature_set()
                 .get_feature_set()
-                .is_active(&solana_feature_set::move_stake_and_move_lamports_ixs::id())
+                .is_active(&agave_feature_set::move_stake_and_move_lamports_ixs::id())
             {
             {
                 instruction_context.check_number_of_instruction_accounts(3)?;
                 instruction_context.check_number_of_instruction_accounts(3)?;
                 move_stake(
                 move_stake(
@@ -358,7 +358,7 @@ declare_process_instruction!(Entrypoint, DEFAULT_COMPUTE_UNITS, |invoke_context|
         StakeInstruction::MoveLamports(lamports) => {
         StakeInstruction::MoveLamports(lamports) => {
             if invoke_context
             if invoke_context
                 .get_feature_set()
                 .get_feature_set()
-                .is_active(&solana_feature_set::move_stake_and_move_lamports_ixs::id())
+                .is_active(&agave_feature_set::move_stake_and_move_lamports_ixs::id())
             {
             {
                 instruction_context.check_number_of_instruction_accounts(3)?;
                 instruction_context.check_number_of_instruction_accounts(3)?;
                 move_lamports(
                 move_lamports(
@@ -388,6 +388,7 @@ mod tests {
                 stake_from, Delegation, Meta, Stake, StakeStateV2,
                 stake_from, Delegation, Meta, Stake, StakeStateV2,
             },
             },
         },
         },
+        agave_feature_set::FeatureSet,
         assert_matches::assert_matches,
         assert_matches::assert_matches,
         bincode::serialize,
         bincode::serialize,
         solana_account::{
         solana_account::{
@@ -397,7 +398,6 @@ mod tests {
         solana_clock::{Clock, Epoch, UnixTimestamp},
         solana_clock::{Clock, Epoch, UnixTimestamp},
         solana_epoch_rewards::EpochRewards,
         solana_epoch_rewards::EpochRewards,
         solana_epoch_schedule::EpochSchedule,
         solana_epoch_schedule::EpochSchedule,
-        solana_feature_set::FeatureSet,
         solana_instruction::{AccountMeta, Instruction},
         solana_instruction::{AccountMeta, Instruction},
         solana_program_runtime::invoke_context::mock_process_instruction,
         solana_program_runtime::invoke_context::mock_process_instruction,
         solana_pubkey::Pubkey,
         solana_pubkey::Pubkey,
@@ -437,7 +437,7 @@ mod tests {
         let mut feature_set = feature_set_all_enabled();
         let mut feature_set = feature_set_all_enabled();
         Arc::get_mut(&mut feature_set)
         Arc::get_mut(&mut feature_set)
             .unwrap()
             .unwrap()
-            .deactivate(&solana_feature_set::stake_raise_minimum_delegation_to_1_sol::id());
+            .deactivate(&agave_feature_set::stake_raise_minimum_delegation_to_1_sol::id());
         feature_set
         feature_set
     }
     }
 
 

+ 1 - 1
programs/stake/src/stake_state.rs

@@ -9,9 +9,9 @@
 )]
 )]
 pub use solana_stake_interface::state::*;
 pub use solana_stake_interface::state::*;
 use {
 use {
+    agave_feature_set::FeatureSet,
     solana_account::{state_traits::StateMut, AccountSharedData, ReadableAccount},
     solana_account::{state_traits::StateMut, AccountSharedData, ReadableAccount},
     solana_clock::{Clock, Epoch},
     solana_clock::{Clock, Epoch},
-    solana_feature_set::FeatureSet,
     solana_instruction::error::InstructionError,
     solana_instruction::error::InstructionError,
     solana_log_collector::ic_msg,
     solana_log_collector::ic_msg,
     solana_program_runtime::invoke_context::InvokeContext,
     solana_program_runtime::invoke_context::InvokeContext,

+ 1 - 1
programs/system/Cargo.toml

@@ -30,10 +30,10 @@ solana-transaction-context = { workspace = true, features = ["bincode"] }
 solana-type-overrides = { workspace = true }
 solana-type-overrides = { workspace = true }
 
 
 [dev-dependencies]
 [dev-dependencies]
+agave-feature-set = { workspace = true }
 assert_matches = { workspace = true }
 assert_matches = { workspace = true }
 criterion = { workspace = true }
 criterion = { workspace = true }
 solana-compute-budget = { workspace = true }
 solana-compute-budget = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-hash = { workspace = true }
 solana-hash = { workspace = true }
 solana-logger = { workspace = true }
 solana-logger = { workspace = true }
 solana-nonce-account = { workspace = true }
 solana-nonce-account = { workspace = true }

+ 1 - 1
programs/vote/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
 log = { workspace = true }
 log = { workspace = true }
 num-derive = { workspace = true }
 num-derive = { workspace = true }
@@ -20,7 +21,6 @@ solana-account = { workspace = true }
 solana-bincode = { workspace = true }
 solana-bincode = { workspace = true }
 solana-clock = { workspace = true }
 solana-clock = { workspace = true }
 solana-epoch-schedule = { workspace = true }
 solana-epoch-schedule = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-frozen-abi = { workspace = true, optional = true, features = [
 solana-frozen-abi = { workspace = true, optional = true, features = [
     "frozen-abi",
     "frozen-abi",
 ] }
 ] }

+ 1 - 1
programs/vote/benches/process_vote.rs

@@ -3,9 +3,9 @@
 extern crate test;
 extern crate test;
 
 
 use {
 use {
+    agave_feature_set::{deprecate_legacy_vote_ixs, FeatureSet},
     solana_account::{create_account_for_test, Account, AccountSharedData},
     solana_account::{create_account_for_test, Account, AccountSharedData},
     solana_clock::{Clock, Slot},
     solana_clock::{Clock, Slot},
-    solana_feature_set::{deprecate_legacy_vote_ixs, FeatureSet},
     solana_hash::Hash,
     solana_hash::Hash,
     solana_instruction::AccountMeta,
     solana_instruction::AccountMeta,
     solana_program_runtime::invoke_context::mock_process_instruction,
     solana_program_runtime::invoke_context::mock_process_instruction,

+ 1 - 1
programs/vote/src/vote_processor.rs

@@ -2,9 +2,9 @@
 
 
 use {
 use {
     crate::vote_state,
     crate::vote_state,
+    agave_feature_set as feature_set,
     log::*,
     log::*,
     solana_bincode::limited_deserialize,
     solana_bincode::limited_deserialize,
-    solana_feature_set as feature_set,
     solana_instruction::error::InstructionError,
     solana_instruction::error::InstructionError,
     solana_program_runtime::{
     solana_program_runtime::{
         declare_process_instruction, invoke_context::InvokeContext,
         declare_process_instruction, invoke_context::InvokeContext,

+ 1 - 1
programs/vote/src/vote_state/mod.rs

@@ -2,12 +2,12 @@
 //! Receive and processes votes from validators
 //! Receive and processes votes from validators
 pub use solana_vote_interface::state::{vote_state_versions::*, *};
 pub use solana_vote_interface::state::{vote_state_versions::*, *};
 use {
 use {
+    agave_feature_set::{self as feature_set, FeatureSet},
     log::*,
     log::*,
     serde_derive::{Deserialize, Serialize},
     serde_derive::{Deserialize, Serialize},
     solana_account::{AccountSharedData, ReadableAccount, WritableAccount},
     solana_account::{AccountSharedData, ReadableAccount, WritableAccount},
     solana_clock::{Clock, Epoch, Slot, UnixTimestamp},
     solana_clock::{Clock, Epoch, Slot, UnixTimestamp},
     solana_epoch_schedule::EpochSchedule,
     solana_epoch_schedule::EpochSchedule,
-    solana_feature_set::{self as feature_set, FeatureSet},
     solana_hash::Hash,
     solana_hash::Hash,
     solana_instruction::error::InstructionError,
     solana_instruction::error::InstructionError,
     solana_pubkey::Pubkey,
     solana_pubkey::Pubkey,

+ 1 - 1
programs/zk-token-proof/Cargo.toml

@@ -9,10 +9,10 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 bytemuck = { workspace = true }
 bytemuck = { workspace = true }
 num-derive = { workspace = true }
 num-derive = { workspace = true }
 num-traits = { workspace = true }
 num-traits = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-instruction = { workspace = true }
 solana-instruction = { workspace = true }
 solana-log-collector = { workspace = true }
 solana-log-collector = { workspace = true }
 solana-program-runtime = { workspace = true }
 solana-program-runtime = { workspace = true }

+ 1 - 1
programs/zk-token-proof/src/lib.rs

@@ -1,8 +1,8 @@
 #![forbid(unsafe_code)]
 #![forbid(unsafe_code)]
 
 
 use {
 use {
+    agave_feature_set as feature_set,
     bytemuck::Pod,
     bytemuck::Pod,
-    solana_feature_set as feature_set,
     solana_instruction::{error::InstructionError, TRANSACTION_LEVEL_STACK_HEIGHT},
     solana_instruction::{error::InstructionError, TRANSACTION_LEVEL_STACK_HEIGHT},
     solana_log_collector::ic_msg,
     solana_log_collector::ic_msg,
     solana_program_runtime::{declare_process_instruction, invoke_context::InvokeContext},
     solana_program_runtime::{declare_process_instruction, invoke_context::InvokeContext},

+ 1 - 1
reserved-account-keys/Cargo.toml

@@ -10,8 +10,8 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 lazy_static = { workspace = true }
 lazy_static = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-frozen-abi = { workspace = true, optional = true, features = [
 solana-frozen-abi = { workspace = true, optional = true, features = [
     "frozen-abi",
     "frozen-abi",
 ] }
 ] }

+ 3 - 3
reserved-account-keys/src/lib.rs

@@ -4,8 +4,8 @@
 #![cfg_attr(feature = "frozen-abi", feature(min_specialization))]
 #![cfg_attr(feature = "frozen-abi", feature(min_specialization))]
 #![cfg_attr(docsrs, feature(doc_auto_cfg))]
 #![cfg_attr(docsrs, feature(doc_auto_cfg))]
 use {
 use {
+    agave_feature_set::{self as feature_set, FeatureSet},
     lazy_static::lazy_static,
     lazy_static::lazy_static,
-    solana_feature_set::{self as feature_set, FeatureSet},
     solana_pubkey::Pubkey,
     solana_pubkey::Pubkey,
     solana_sdk_ids::{
     solana_sdk_ids::{
         address_lookup_table, bpf_loader, bpf_loader_deprecated, bpf_loader_upgradeable,
         address_lookup_table, bpf_loader, bpf_loader_deprecated, bpf_loader_upgradeable,
@@ -230,7 +230,7 @@ mod tests {
 
 
         // Updating the active set with an activated feature should also activate
         // Updating the active set with an activated feature should also activate
         // the corresponding reserved key from inactive to active
         // the corresponding reserved key from inactive to active
-        feature_set.active.insert(feature_ids[0], 0);
+        feature_set.active_mut().insert(feature_ids[0], 0);
         reserved_account_keys.update_active_set(&feature_set);
         reserved_account_keys.update_active_set(&feature_set);
 
 
         assert!(reserved_account_keys.is_reserved(&active_reserved_key));
         assert!(reserved_account_keys.is_reserved(&active_reserved_key));
@@ -239,7 +239,7 @@ mod tests {
 
 
         // Update the active set again to ensure that the inactive map is
         // Update the active set again to ensure that the inactive map is
         // properly retained
         // properly retained
-        feature_set.active.insert(feature_ids[1], 0);
+        feature_set.active_mut().insert(feature_ids[1], 0);
         reserved_account_keys.update_active_set(&feature_set);
         reserved_account_keys.update_active_set(&feature_set);
 
 
         assert!(reserved_account_keys.is_reserved(&active_reserved_key));
         assert!(reserved_account_keys.is_reserved(&active_reserved_key));

+ 1 - 1
rpc/Cargo.toml

@@ -10,6 +10,7 @@ license = { workspace = true }
 edition = { workspace = true }
 edition = { workspace = true }
 
 
 [dependencies]
 [dependencies]
+agave-feature-set = { workspace = true }
 base64 = { workspace = true }
 base64 = { workspace = true }
 bincode = { workspace = true }
 bincode = { workspace = true }
 bs58 = { workspace = true }
 bs58 = { workspace = true }
@@ -34,7 +35,6 @@ solana-accounts-db = { workspace = true }
 solana-client = { workspace = true }
 solana-client = { workspace = true }
 solana-entry = { workspace = true }
 solana-entry = { workspace = true }
 solana-faucet = { workspace = true }
 solana-faucet = { workspace = true }
-solana-feature-set = { workspace = true }
 solana-gossip = { workspace = true }
 solana-gossip = { workspace = true }
 solana-inline-spl = { workspace = true }
 solana-inline-spl = { workspace = true }
 solana-ledger = { workspace = true }
 solana-ledger = { workspace = true }

+ 1 - 1
rpc/src/rpc.rs

@@ -7,6 +7,7 @@ use {
         optimistically_confirmed_bank_tracker::OptimisticallyConfirmedBank,
         optimistically_confirmed_bank_tracker::OptimisticallyConfirmedBank,
         parsed_token_accounts::*, rpc_cache::LargestAccountsCache, rpc_health::*,
         parsed_token_accounts::*, rpc_cache::LargestAccountsCache, rpc_health::*,
     },
     },
+    agave_feature_set as feature_set,
     base64::{prelude::BASE64_STANDARD, Engine},
     base64::{prelude::BASE64_STANDARD, Engine},
     bincode::{config::Options, serialize},
     bincode::{config::Options, serialize},
     crossbeam_channel::{unbounded, Receiver, Sender},
     crossbeam_channel::{unbounded, Receiver, Sender},
@@ -29,7 +30,6 @@ use {
     solana_client::connection_cache::Protocol,
     solana_client::connection_cache::Protocol,
     solana_entry::entry::Entry,
     solana_entry::entry::Entry,
     solana_faucet::faucet::request_airdrop_transaction,
     solana_faucet::faucet::request_airdrop_transaction,
-    solana_feature_set as feature_set,
     solana_gossip::cluster_info::ClusterInfo,
     solana_gossip::cluster_info::ClusterInfo,
     solana_inline_spl::{
     solana_inline_spl::{
         token::{SPL_TOKEN_ACCOUNT_MINT_OFFSET, SPL_TOKEN_ACCOUNT_OWNER_OFFSET},
         token::{SPL_TOKEN_ACCOUNT_MINT_OFFSET, SPL_TOKEN_ACCOUNT_OWNER_OFFSET},

Some files were not shown because too many files changed in this diff