pub struct TransactionBatchProcessor<FG: ForkGraph> {
pub program_cache: Arc<RwLock<ProgramCache<FG>>>,
pub builtin_program_ids: RwLock<HashSet<Pubkey>>,
/* private fields */
}
Fields§
§program_cache: Arc<RwLock<ProgramCache<FG>>>
Programs required for transaction batch processing
builtin_program_ids: RwLock<HashSet<Pubkey>>
Builtin program ids
Implementations§
source§impl<FG: ForkGraph> TransactionBatchProcessor<FG>
impl<FG: ForkGraph> TransactionBatchProcessor<FG>
pub fn new( slot: Slot, epoch: Epoch, builtin_program_ids: HashSet<Pubkey>, ) -> Self
pub fn new_from(&self, slot: Slot, epoch: Epoch) -> Self
sourcepub fn get_environments_for_epoch(
&self,
epoch: Epoch,
) -> Option<ProgramRuntimeEnvironments>
pub fn get_environments_for_epoch( &self, epoch: Epoch, ) -> Option<ProgramRuntimeEnvironments>
Returns the current environments depending on the given epoch Returns None if the call could result in a deadlock
pub fn sysvar_cache(&self) -> RwLockReadGuard<'_, SysvarCache>
sourcepub fn load_and_execute_sanitized_transactions<CB: TransactionProcessingCallback>(
&self,
callbacks: &CB,
sanitized_txs: &[SanitizedTransaction],
check_results: Vec<TransactionCheckResult>,
environment: &TransactionProcessingEnvironment<'_>,
config: &TransactionProcessingConfig<'_>,
) -> LoadAndExecuteSanitizedTransactionsOutput
pub fn load_and_execute_sanitized_transactions<CB: TransactionProcessingCallback>( &self, callbacks: &CB, sanitized_txs: &[SanitizedTransaction], check_results: Vec<TransactionCheckResult>, environment: &TransactionProcessingEnvironment<'_>, config: &TransactionProcessingConfig<'_>, ) -> LoadAndExecuteSanitizedTransactionsOutput
Main entrypoint to the SVM.
pub fn prepare_program_cache_for_upcoming_feature_set<CB: TransactionProcessingCallback>( &self, callbacks: &CB, upcoming_feature_set: &FeatureSet, compute_budget: &ComputeBudget, slot_index: u64, slots_in_epoch: u64, )
pub fn fill_missing_sysvar_cache_entries<CB: TransactionProcessingCallback>( &self, callbacks: &CB, )
pub fn reset_sysvar_cache(&self)
pub fn get_sysvar_cache_for_tests(&self) -> SysvarCache
sourcepub fn add_builtin<CB: TransactionProcessingCallback>(
&self,
callbacks: &CB,
program_id: Pubkey,
name: &str,
builtin: ProgramCacheEntry,
)
pub fn add_builtin<CB: TransactionProcessingCallback>( &self, callbacks: &CB, program_id: Pubkey, name: &str, builtin: ProgramCacheEntry, )
Add a built-in program
Trait Implementations§
source§impl<FG: ForkGraph> Debug for TransactionBatchProcessor<FG>
impl<FG: ForkGraph> Debug for TransactionBatchProcessor<FG>
Auto Trait Implementations§
impl<FG> !Freeze for TransactionBatchProcessor<FG>
impl<FG> RefUnwindSafe for TransactionBatchProcessor<FG>
impl<FG> Send for TransactionBatchProcessor<FG>
impl<FG> Sync for TransactionBatchProcessor<FG>
impl<FG> Unpin for TransactionBatchProcessor<FG>
impl<FG> UnwindSafe for TransactionBatchProcessor<FG>
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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