sui_core::execution_cache

Trait TransactionCacheRead

Source
pub trait TransactionCacheRead: Send + Sync {
Show 16 methods // Required methods fn multi_get_transaction_blocks( &self, digests: &[TransactionDigest], ) -> Vec<Option<Arc<VerifiedTransaction>>>; fn multi_get_executed_effects_digests( &self, digests: &[TransactionDigest], ) -> Vec<Option<TransactionEffectsDigest>>; fn multi_get_effects( &self, digests: &[TransactionEffectsDigest], ) -> Vec<Option<TransactionEffects>>; fn multi_get_events( &self, digests: &[TransactionDigest], ) -> Vec<Option<TransactionEvents>>; fn take_accumulator_events( &self, digest: &TransactionDigest, ) -> Option<Vec<AccumulatorEvent>>; fn notify_read_executed_effects_digests<'a>( &'a self, task_name: &'static str, digests: &'a [TransactionDigest], ) -> BoxFuture<'a, Vec<TransactionEffectsDigest>>; fn get_mysticeti_fastpath_outputs( &self, tx_digest: &TransactionDigest, ) -> Option<Arc<TransactionOutputs>>; fn notify_read_fastpath_transaction_outputs<'a>( &'a self, tx_digests: &'a [TransactionDigest], ) -> BoxFuture<'a, Vec<Arc<TransactionOutputs>>>; // Provided methods fn get_transaction_block( &self, digest: &TransactionDigest, ) -> Option<Arc<VerifiedTransaction>> { ... } fn get_transactions_and_serialized_sizes( &self, digests: &[TransactionDigest], ) -> SuiResult<Vec<Option<(VerifiedTransaction, usize)>>> { ... } fn is_tx_already_executed(&self, digest: &TransactionDigest) -> bool { ... } fn multi_get_executed_effects( &self, digests: &[TransactionDigest], ) -> Vec<Option<TransactionEffects>> { ... } fn get_executed_effects( &self, digest: &TransactionDigest, ) -> Option<TransactionEffects> { ... } fn get_effects( &self, digest: &TransactionEffectsDigest, ) -> Option<TransactionEffects> { ... } fn get_events( &self, digest: &TransactionDigest, ) -> Option<TransactionEvents> { ... } fn notify_read_executed_effects<'a>( &'a self, task_name: &'static str, digests: &'a [TransactionDigest], ) -> BoxFuture<'a, Vec<TransactionEffects>> { ... }
}

Required Methods§

Source

fn multi_get_transaction_blocks( &self, digests: &[TransactionDigest], ) -> Vec<Option<Arc<VerifiedTransaction>>>

Source

fn multi_get_executed_effects_digests( &self, digests: &[TransactionDigest], ) -> Vec<Option<TransactionEffectsDigest>>

Source

fn multi_get_effects( &self, digests: &[TransactionEffectsDigest], ) -> Vec<Option<TransactionEffects>>

Source

fn multi_get_events( &self, digests: &[TransactionDigest], ) -> Vec<Option<TransactionEvents>>

Source

fn take_accumulator_events( &self, digest: &TransactionDigest, ) -> Option<Vec<AccumulatorEvent>>

Source

fn notify_read_executed_effects_digests<'a>( &'a self, task_name: &'static str, digests: &'a [TransactionDigest], ) -> BoxFuture<'a, Vec<TransactionEffectsDigest>>

Source

fn get_mysticeti_fastpath_outputs( &self, tx_digest: &TransactionDigest, ) -> Option<Arc<TransactionOutputs>>

Get the execution outputs of a mysticeti fastpath certified transaction, if it exists.

Source

fn notify_read_fastpath_transaction_outputs<'a>( &'a self, tx_digests: &'a [TransactionDigest], ) -> BoxFuture<'a, Vec<Arc<TransactionOutputs>>>

Wait until the outputs of the given transactions are available in the temporary buffer holding mysticeti fastpath outputs.

Provided Methods§

Source

fn get_transaction_block( &self, digest: &TransactionDigest, ) -> Option<Arc<VerifiedTransaction>>

Source

fn get_transactions_and_serialized_sizes( &self, digests: &[TransactionDigest], ) -> SuiResult<Vec<Option<(VerifiedTransaction, usize)>>>

Source

fn is_tx_already_executed(&self, digest: &TransactionDigest) -> bool

Source

fn multi_get_executed_effects( &self, digests: &[TransactionDigest], ) -> Vec<Option<TransactionEffects>>

Source

fn get_executed_effects( &self, digest: &TransactionDigest, ) -> Option<TransactionEffects>

Source

fn get_effects( &self, digest: &TransactionEffectsDigest, ) -> Option<TransactionEffects>

Source

fn get_events(&self, digest: &TransactionDigest) -> Option<TransactionEvents>

Source

fn notify_read_executed_effects<'a>( &'a self, task_name: &'static str, digests: &'a [TransactionDigest], ) -> BoxFuture<'a, Vec<TransactionEffects>>

Wait until the effects of the given transactions are available and return them. WARNING: If calling this on a transaction that could be reverted, you must be sure that this function cannot be called during reconfiguration. The best way to do this is to wrap your future in EpochStore::within_alive_epoch. Holding an ExecutionLockReadGuard would also prevent reconfig from happening while waiting, but this is very dangerous, as it could prevent reconfiguration from ever occurring!

Implementors§