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>
Sourcepub fn new_uninitialized(slot: Slot, epoch: Epoch) -> Self
pub fn new_uninitialized(slot: Slot, epoch: Epoch) -> Self
Create a new, uninitialized TransactionBatchProcessor.
In this context, uninitialized means that the TransactionBatchProcessor
has been initialized with an empty program cache. The cache contains no
programs (including builtins) and has not been configured with a valid
fork graph.
When using this method, it’s advisable to call set_fork_graph_in_program_cache
as well as add_builtin to configure the cache before using the processor.
Sourcepub fn new_from(&self, slot: Slot, epoch: Epoch) -> Self
pub fn new_from(&self, slot: Slot, epoch: Epoch) -> Self
Create a new TransactionBatchProcessor from the current instance, but
with the provided slot and epoch.
- Inherits the program cache and builtin program ids from the current instance.
- Resets the sysvar cache.
pub fn sysvar_cache(&self) -> RwLockReadGuard<'_, SysvarCache>
Sourcepub fn load_and_execute_sanitized_transactions<CB: TransactionProcessingCallback>(
&self,
callbacks: &CB,
sanitized_txs: &[impl SVMTransaction],
check_results: Vec<TransactionCheckResult>,
environment: &TransactionProcessingEnvironment<'_>,
config: &TransactionProcessingConfig<'_>,
) -> LoadAndExecuteSanitizedTransactionsOutput
pub fn load_and_execute_sanitized_transactions<CB: TransactionProcessingCallback>( &self, callbacks: &CB, sanitized_txs: &[impl SVMTransaction], 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