* Allow feature builtins to overwrite existing builtins (#13403)
* Allow feature builtins to overwrite existing builtins
* Add feature_builtin ActivationType
* Correctly retain idempotent for replacing case
* Fix test
Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
(cherry picked from commit bc62313c66)
# Conflicts:
# ledger/src/builtins.rs
# runtime/src/bank.rs
* Fix conflicts
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
This commit is contained in:
@@ -30,8 +30,14 @@ fn genesis_builtins() -> Vec<Builtin> {
|
||||
]
|
||||
}
|
||||
|
||||
#[derive(AbiExample, Debug, Clone)]
|
||||
pub enum ActivationType {
|
||||
NewProgram,
|
||||
NewVersion,
|
||||
}
|
||||
|
||||
/// Builtin programs activated dynamically by feature
|
||||
fn feature_builtins() -> Vec<(Builtin, Pubkey)> {
|
||||
fn feature_builtins() -> Vec<(Builtin, Pubkey, ActivationType)> {
|
||||
vec![(
|
||||
Builtin::new(
|
||||
"secp256k1_program",
|
||||
@@ -39,6 +45,7 @@ fn feature_builtins() -> Vec<(Builtin, Pubkey)> {
|
||||
Entrypoint::Program(solana_secp256k1_program::process_instruction),
|
||||
),
|
||||
feature_set::secp256k1_program_enabled::id(),
|
||||
ActivationType::NewProgram,
|
||||
)]
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user