Skip to content

Commit c7d7987

Browse files
authored
Drop the Config builtin (#5331)
1 parent 4ba308c commit c7d7987

File tree

34 files changed

+150
-1236
lines changed

34 files changed

+150
-1236
lines changed

Cargo.lock

Lines changed: 21 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ members = [
9494
"programs/bpf_loader/gen-syscall-list",
9595
"programs/compute-budget",
9696
"programs/compute-budget-bench",
97-
"programs/config",
9897
"programs/ed25519-tests",
9998
"programs/loader-v4",
10099
"programs/stake",
@@ -406,7 +405,7 @@ solana-compute-budget = { path = "compute-budget", version = "=2.3.0" }
406405
solana-compute-budget-instruction = { path = "compute-budget-instruction", version = "=2.3.0" }
407406
solana-compute-budget-interface = "2.2.1"
408407
solana-compute-budget-program = { path = "programs/compute-budget", version = "=2.3.0" }
409-
solana-config-program = { path = "programs/config", version = "=2.3.0" }
408+
solana-config-program-client = "0.0.2"
410409
solana-connection-cache = { path = "connection-cache", version = "=2.3.0", default-features = false }
411410
solana-core = { path = "core", version = "=2.3.0" }
412411
solana-cost-model = { path = "cost-model", version = "=2.3.0" }

account-decoder/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ serde_json = { workspace = true }
2222
solana-account = { workspace = true }
2323
solana-account-decoder-client-types = { workspace = true, features = ["zstd"] }
2424
solana-clock = { workspace = true }
25-
solana-config-program = { workspace = true }
25+
solana-config-program-client = { workspace = true, features = ["serde"] }
2626
solana-epoch-schedule = { workspace = true }
2727
solana-fee-calculator = { workspace = true }
2828
solana-instruction = { workspace = true }
@@ -45,6 +45,7 @@ zstd = { workspace = true }
4545

4646
[dev-dependencies]
4747
assert_matches = { workspace = true }
48+
solana-account = { workspace = true, features = ["bincode"] }
4849
solana-hash = { workspace = true }
4950
solana-program = { workspace = true, default-features = false }
5051
solana-pubkey = { workspace = true, features = ["rand"] }

account-decoder/src/parse_config.rs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use {
55
},
66
bincode::deserialize,
77
serde_json::Value,
8-
solana_config_program::{get_config_data, ConfigKeys},
8+
solana_config_program_client::{get_config_data, ConfigKeys},
99
solana_program::stake::config::{
1010
Config as StakeConfig, {self as stake_config},
1111
},
@@ -96,10 +96,29 @@ pub struct UiConfig<T> {
9696
#[cfg(test)]
9797
mod test {
9898
use {
99-
super::*, crate::validator_info::ValidatorInfo, serde_json::json,
100-
solana_account::ReadableAccount, solana_config_program::create_config_account,
99+
super::*,
100+
crate::validator_info::ValidatorInfo,
101+
bincode::serialize,
102+
serde_json::json,
103+
solana_account::{Account, AccountSharedData, ReadableAccount},
104+
solana_config_program_client::ConfigKeys,
101105
};
102106

107+
fn create_config_account<T: serde::Serialize>(
108+
keys: Vec<(Pubkey, bool)>,
109+
config_data: &T,
110+
lamports: u64,
111+
) -> AccountSharedData {
112+
let mut data = serialize(&ConfigKeys { keys }).unwrap();
113+
data.extend_from_slice(&serialize(config_data).unwrap());
114+
AccountSharedData::from(Account {
115+
lamports,
116+
data,
117+
owner: solana_sdk_ids::config::id(),
118+
..Account::default()
119+
})
120+
}
121+
103122
#[test]
104123
fn test_parse_config() {
105124
let stake_config = StakeConfig {

account-decoder/src/validator_info.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use solana_config_program::ConfigState;
1+
use solana_config_program_client::instructions_bincode::ConfigState;
22

33
pub const MAX_SHORT_FIELD_LENGTH: usize = 80;
44
pub const MAX_LONG_FIELD_LENGTH: usize = 300;

builtins-default-costs/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ log = { workspace = true }
1717
solana-address-lookup-table-program = { workspace = true }
1818
solana-bpf-loader-program = { workspace = true }
1919
solana-compute-budget-program = { workspace = true }
20-
solana-config-program = { workspace = true }
2120
solana-frozen-abi = { workspace = true, optional = true, features = [
2221
"frozen-abi",
2322
] }

builtins-default-costs/src/lib.rs

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ use {
77
solana_pubkey::Pubkey,
88
solana_sdk_ids::{
99
address_lookup_table, bpf_loader, bpf_loader_deprecated, bpf_loader_upgradeable,
10-
compute_budget, config, ed25519_program, loader_v4, secp256k1_program, stake,
11-
system_program, vote,
10+
compute_budget, ed25519_program, loader_v4, secp256k1_program, stake, system_program, vote,
1211
},
1312
};
1413

@@ -102,7 +101,7 @@ lazy_static! {
102101
/// correctly furnishing `core_bpf_migration_feature`.
103102
///
104103
#[allow(dead_code)]
105-
const TOTAL_COUNT_BUILTINS: usize = 12;
104+
const TOTAL_COUNT_BUILTINS: usize = 11;
106105
#[cfg(test)]
107106
static_assertions::const_assert_eq!(
108107
MIGRATING_BUILTINS_COSTS.len() + NON_MIGRATING_BUILTINS_COSTS.len(),
@@ -118,21 +117,13 @@ pub const MIGRATING_BUILTINS_COSTS: &[(Pubkey, BuiltinCost)] = &[
118117
position: 0,
119118
}),
120119
),
121-
(
122-
config::id(),
123-
BuiltinCost::Migrating(MigratingBuiltinCost {
124-
native_cost: solana_config_program::config_processor::DEFAULT_COMPUTE_UNITS,
125-
core_bpf_migration_feature: feature_set::migrate_config_program_to_core_bpf::id(),
126-
position: 1,
127-
}),
128-
),
129120
(
130121
address_lookup_table::id(),
131122
BuiltinCost::Migrating(MigratingBuiltinCost {
132123
native_cost: solana_address_lookup_table_program::processor::DEFAULT_COMPUTE_UNITS,
133124
core_bpf_migration_feature:
134125
feature_set::migrate_address_lookup_table_program_to_core_bpf::id(),
135-
position: 2,
126+
position: 1,
136127
}),
137128
),
138129
];
@@ -340,20 +331,6 @@ mod test {
340331
get_migration_feature_id(feature_index),
341332
&feature_set::migrate_stake_program_to_core_bpf::id()
342333
);
343-
let feature_index = get_builtin_migration_feature_index(&config::id());
344-
assert!(matches!(
345-
feature_index,
346-
BuiltinMigrationFeatureIndex::BuiltinWithMigrationFeature(_)
347-
));
348-
let BuiltinMigrationFeatureIndex::BuiltinWithMigrationFeature(feature_index) =
349-
feature_index
350-
else {
351-
panic!("expect migrating builtin")
352-
};
353-
assert_eq!(
354-
get_migration_feature_id(feature_index),
355-
&feature_set::migrate_config_program_to_core_bpf::id()
356-
);
357334
let feature_index = get_builtin_migration_feature_index(&address_lookup_table::id());
358335
assert!(matches!(
359336
feature_index,

builtins/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ agave-feature-set = { workspace = true }
1717
solana-address-lookup-table-program = { workspace = true }
1818
solana-bpf-loader-program = { workspace = true }
1919
solana-compute-budget-program = { workspace = true }
20-
solana-config-program = { workspace = true }
2120
solana-loader-v4-program = { workspace = true }
2221
solana-program-runtime = { workspace = true }
2322
solana-pubkey = { workspace = true }

builtins/src/lib.rs

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,6 @@ pub static BUILTINS: &[BuiltinPrototype] = &[
7777
program_id: solana_stake_program::id(),
7878
entrypoint: solana_stake_program::stake_instruction::Entrypoint::vm,
7979
},
80-
BuiltinPrototype {
81-
core_bpf_migration_config: Some(CoreBpfMigrationConfig {
82-
source_buffer_address: buffer_accounts::config_program::id(),
83-
upgrade_authority_address: None,
84-
feature_id: agave_feature_set::migrate_config_program_to_core_bpf::id(),
85-
migration_target: CoreBpfMigrationTargetType::Builtin,
86-
datapoint_name: "migrate_builtin_to_core_bpf_config_program",
87-
}),
88-
name: "config_program",
89-
enable_feature_id: None,
90-
program_id: solana_config_program::id(),
91-
entrypoint: solana_config_program::config_processor::Entrypoint::vm,
92-
},
9380
testable_prototype!(BuiltinPrototype {
9481
core_bpf_migration_config: None,
9582
name: solana_bpf_loader_deprecated_program,
@@ -161,9 +148,6 @@ mod buffer_accounts {
161148
pub mod address_lookup_table_program {
162149
solana_pubkey::declare_id!("AhXWrD9BBUYcKjtpA3zuiiZG4ysbo6C6wjHo1QhERk6A");
163150
}
164-
pub mod config_program {
165-
solana_pubkey::declare_id!("BuafH9fBv62u6XjzrzS4ZjAE8963ejqF5rt1f8Uga4Q3");
166-
}
167151
pub mod stake_program {
168152
solana_pubkey::declare_id!("8t3vv6v99tQA6Gp7fVdsBH66hQMaswH5qsJVqJqo8xvG");
169153
}
@@ -368,36 +352,34 @@ mod tests {
368352
);
369353
// Stake has a live migration config, so it has no test-only configs
370354
// to test here.
371-
// Config has a live migration config, so it has no test-only configs
372-
// to test here.
373355
assert_eq!(
374-
&super::BUILTINS[4].core_bpf_migration_config,
356+
&super::BUILTINS[3].core_bpf_migration_config,
375357
&Some(super::test_only::solana_bpf_loader_deprecated_program::CONFIG)
376358
);
377359
assert_eq!(
378-
&super::BUILTINS[5].core_bpf_migration_config,
360+
&super::BUILTINS[4].core_bpf_migration_config,
379361
&Some(super::test_only::solana_bpf_loader_program::CONFIG)
380362
);
381363
assert_eq!(
382-
&super::BUILTINS[6].core_bpf_migration_config,
364+
&super::BUILTINS[5].core_bpf_migration_config,
383365
&Some(super::test_only::solana_bpf_loader_upgradeable_program::CONFIG)
384366
);
385367
assert_eq!(
386-
&super::BUILTINS[7].core_bpf_migration_config,
368+
&super::BUILTINS[6].core_bpf_migration_config,
387369
&Some(super::test_only::compute_budget_program::CONFIG)
388370
);
389371
// Address Lookup Table has a live migration config, so it has no
390372
// test-only configs to test here.
391373
assert_eq!(
392-
&super::BUILTINS[9].core_bpf_migration_config,
374+
&super::BUILTINS[8].core_bpf_migration_config,
393375
&Some(super::test_only::zk_token_proof_program::CONFIG)
394376
);
395377
assert_eq!(
396-
&super::BUILTINS[10].core_bpf_migration_config,
378+
&super::BUILTINS[9].core_bpf_migration_config,
397379
&Some(super::test_only::loader_v4::CONFIG)
398380
);
399381
assert_eq!(
400-
&super::BUILTINS[11].core_bpf_migration_config,
382+
&super::BUILTINS[10].core_bpf_migration_config,
401383
&Some(super::test_only::zk_elgamal_proof_program::CONFIG)
402384
);
403385
}

cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ solana-cluster-type = "=2.2.1"
4242
solana-commitment-config = "=2.2.1"
4343
solana-compute-budget = { workspace = true }
4444
solana-compute-budget-interface = { version = "=2.2.1", features = ["borsh"] }
45-
solana-config-program = { workspace = true }
45+
solana-config-program-client = { workspace = true, features = ["serde"] }
4646
solana-connection-cache = { workspace = true }
4747
solana-decode-error = "=2.2.1"
4848
solana-epoch-schedule = "=2.2.1"

0 commit comments

Comments
 (0)