pub trait TransactionCacheRead: Send + Sync {
Show 13 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 notify_read_executed_effects_digests<'a>(
&'a self,
digests: &'a [TransactionDigest],
) -> BoxFuture<'a, Vec<TransactionEffectsDigest>>;
// 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,
digests: &'a [TransactionDigest],
) -> BoxFuture<'a, Vec<TransactionEffects>> { ... }
}
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 notify_read_executed_effects_digests<'a>( &'a self, digests: &'a [TransactionDigest], ) -> BoxFuture<'a, Vec<TransactionEffectsDigest>>
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>
Sourcefn notify_read_executed_effects<'a>(
&'a self,
digests: &'a [TransactionDigest],
) -> BoxFuture<'a, Vec<TransactionEffects>>
fn notify_read_executed_effects<'a>( &'a self, 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!