pub struct CoreBpfMigrationConfig {
pub source_buffer_address: Pubkey,
pub upgrade_authority_address: Option<Pubkey>,
pub feature_id: Pubkey,
pub migration_target: CoreBpfMigrationTargetType,
pub datapoint_name: &'static str,
}
Expand description
Configuration for migrating a built-in program to Core BPF.
Fields§
§source_buffer_address: Pubkey
The 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: Pubkey
The 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: CoreBpfMigrationTargetType
The type of target to replace.
datapoint_name: &'static str
Static 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