pub struct CoreBpfMigrationConfig {
pub source_buffer_address: Pubkey,
pub upgrade_authority_address: Option<Pubkey>,
pub feature_id: Pubkey,
pub migration_target: CoreBpfMigrationTargetType,
pub verified_build_hash: Option<Hash>,
pub datapoint_name: &'static str,
}Expand description
Configuration for migrating a built-in program to Core BPF.
Fields§
§source_buffer_address: PubkeyThe address of the source buffer account to be used to replace the builtin.
The authority to be used as the BPF program’s upgrade authority.
Note: If this value is set to None, then the migration will ignore
the source buffer account’s authority. If it’s set to any Some(..)
value, then the migration will perform a sanity check to ensure the
source buffer account’s authority matches the provided value.
feature_id: PubkeyThe feature gate to trigger the migration to Core BPF.
Note: This feature gate should never be the same as any builtin’s
enable_feature_id. It should always be a feature gate that will be
activated after the builtin is already enabled.
migration_target: CoreBpfMigrationTargetTypeThe type of target to replace.
verified_build_hash: Option<Hash>If specified, the expected verifiable build hash of the bpf program. This will be checked against the buffer account before migration.
datapoint_name: &'static strStatic message used to emit datapoint logging. This is used to identify the migration in the logs. Should be unique to the migration, ie: “migrate_{builtin/stateless}to_core_bpf{program_name}”.
Trait Implementations§
Source§impl Debug for CoreBpfMigrationConfig
impl Debug for CoreBpfMigrationConfig
Source§impl PartialEq for CoreBpfMigrationConfig
impl PartialEq for CoreBpfMigrationConfig
impl StructuralPartialEq for CoreBpfMigrationConfig
Auto Trait Implementations§
impl Freeze for CoreBpfMigrationConfig
impl RefUnwindSafe for CoreBpfMigrationConfig
impl Send for CoreBpfMigrationConfig
impl Sync for CoreBpfMigrationConfig
impl Unpin for CoreBpfMigrationConfig
impl UnwindSafe for CoreBpfMigrationConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more