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