pub trait ExecutionCacheRead: Send + Sync {
Show 36 methods // Required methods fn get_package_object( &self, id: &ObjectID ) -> SuiResult<Option<PackageObject>>; fn force_reload_system_packages(&self, system_package_ids: &[ObjectID]); fn get_object(&self, id: &ObjectID) -> SuiResult<Option<Object>>; fn get_latest_object_ref_or_tombstone( &self, object_id: ObjectID ) -> SuiResult<Option<ObjectRef>>; fn get_latest_object_or_tombstone( &self, object_id: ObjectID ) -> SuiResult<Option<(ObjectKey, ObjectOrTombstone)>>; fn get_object_by_key( &self, object_id: &ObjectID, version: SequenceNumber ) -> SuiResult<Option<Object>>; fn multi_get_objects_by_key( &self, object_keys: &[ObjectKey] ) -> SuiResult<Vec<Option<Object>>>; fn object_exists_by_key( &self, object_id: &ObjectID, version: SequenceNumber ) -> SuiResult<bool>; fn multi_object_exists_by_key( &self, object_keys: &[ObjectKey] ) -> SuiResult<Vec<bool>>; fn find_object_lt_or_eq_version( &self, object_id: ObjectID, version: SequenceNumber ) -> SuiResult<Option<Object>>; fn get_lock( &self, obj_ref: ObjectRef, epoch_store: &AuthorityPerEpochStore ) -> SuiResult<ObjectLockStatus>; fn _get_live_objref(&self, object_id: ObjectID) -> SuiResult<ObjectRef>; fn check_owned_objects_are_live( &self, owned_object_refs: &[ObjectRef] ) -> SuiResult; fn multi_get_transaction_blocks( &self, digests: &[TransactionDigest] ) -> SuiResult<Vec<Option<Arc<VerifiedTransaction>>>>; fn multi_get_executed_effects_digests( &self, digests: &[TransactionDigest] ) -> SuiResult<Vec<Option<TransactionEffectsDigest>>>; fn multi_get_effects( &self, digests: &[TransactionEffectsDigest] ) -> SuiResult<Vec<Option<TransactionEffects>>>; fn multi_get_events( &self, event_digests: &[TransactionEventsDigest] ) -> SuiResult<Vec<Option<TransactionEvents>>>; fn notify_read_executed_effects_digests<'a>( &'a self, digests: &'a [TransactionDigest] ) -> BoxFuture<'a, SuiResult<Vec<TransactionEffectsDigest>>>; fn get_sui_system_state_object_unsafe(&self) -> SuiResult<SuiSystemState>; fn get_marker_value( &self, object_id: &ObjectID, version: SequenceNumber, epoch_id: EpochId ) -> SuiResult<Option<MarkerValue>>; fn get_latest_marker( &self, object_id: &ObjectID, epoch_id: EpochId ) -> SuiResult<Option<(SequenceNumber, MarkerValue)>>; // Provided methods fn get_objects( &self, objects: &[ObjectID] ) -> SuiResult<Vec<Option<Object>>> { ... } fn multi_get_objects_with_more_accurate_error_return( &self, object_refs: &[ObjectRef] ) -> Result<Vec<Object>, SuiError> { ... } fn multi_input_objects_available( &self, keys: &[InputKey], receiving_objects: HashSet<InputKey>, epoch: EpochId ) -> Result<Vec<bool>, SuiError> { ... } fn get_transaction_block( &self, digest: &TransactionDigest ) -> SuiResult<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 ) -> SuiResult<bool> { ... } fn multi_get_executed_effects( &self, digests: &[TransactionDigest] ) -> SuiResult<Vec<Option<TransactionEffects>>> { ... } fn get_executed_effects( &self, digest: &TransactionDigest ) -> SuiResult<Option<TransactionEffects>> { ... } fn get_effects( &self, digest: &TransactionEffectsDigest ) -> SuiResult<Option<TransactionEffects>> { ... } fn get_events( &self, digest: &TransactionEventsDigest ) -> SuiResult<Option<TransactionEvents>> { ... } fn notify_read_executed_effects<'a>( &'a self, digests: &'a [TransactionDigest] ) -> BoxFuture<'a, SuiResult<Vec<TransactionEffects>>> { ... } fn get_last_shared_object_deletion_info( &self, object_id: &ObjectID, epoch_id: EpochId ) -> SuiResult<Option<(SequenceNumber, TransactionDigest)>> { ... } fn get_deleted_shared_object_previous_tx_digest( &self, object_id: &ObjectID, version: SequenceNumber, epoch_id: EpochId ) -> SuiResult<Option<TransactionDigest>> { ... } fn have_received_object_at_version( &self, object_id: &ObjectID, version: SequenceNumber, epoch_id: EpochId ) -> SuiResult<bool> { ... } fn have_deleted_owned_object_at_version_or_after( &self, object_id: &ObjectID, version: SequenceNumber, epoch_id: EpochId ) -> SuiResult<bool> { ... }
}

Required Methods§

source

fn get_package_object(&self, id: &ObjectID) -> SuiResult<Option<PackageObject>>

source

fn force_reload_system_packages(&self, system_package_ids: &[ObjectID])

source

fn get_object(&self, id: &ObjectID) -> SuiResult<Option<Object>>

source

fn get_latest_object_ref_or_tombstone( &self, object_id: ObjectID ) -> SuiResult<Option<ObjectRef>>

source

fn get_latest_object_or_tombstone( &self, object_id: ObjectID ) -> SuiResult<Option<(ObjectKey, ObjectOrTombstone)>>

source

fn get_object_by_key( &self, object_id: &ObjectID, version: SequenceNumber ) -> SuiResult<Option<Object>>

source

fn multi_get_objects_by_key( &self, object_keys: &[ObjectKey] ) -> SuiResult<Vec<Option<Object>>>

source

fn object_exists_by_key( &self, object_id: &ObjectID, version: SequenceNumber ) -> SuiResult<bool>

source

fn multi_object_exists_by_key( &self, object_keys: &[ObjectKey] ) -> SuiResult<Vec<bool>>

source

fn find_object_lt_or_eq_version( &self, object_id: ObjectID, version: SequenceNumber ) -> SuiResult<Option<Object>>

Return the object with version less then or eq to the provided seq number. This is used by indexer to find the correct version of dynamic field child object. We do not store the version of the child object, but because of lamport timestamp, we know the child must have version number less then or eq to the parent.

source

fn get_lock( &self, obj_ref: ObjectRef, epoch_store: &AuthorityPerEpochStore ) -> SuiResult<ObjectLockStatus>

source

fn _get_live_objref(&self, object_id: ObjectID) -> SuiResult<ObjectRef>

source

fn check_owned_objects_are_live( &self, owned_object_refs: &[ObjectRef] ) -> SuiResult

source

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

source

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

source

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

source

fn multi_get_events( &self, event_digests: &[TransactionEventsDigest] ) -> SuiResult<Vec<Option<TransactionEvents>>>

source

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

source

fn get_sui_system_state_object_unsafe(&self) -> SuiResult<SuiSystemState>

source

fn get_marker_value( &self, object_id: &ObjectID, version: SequenceNumber, epoch_id: EpochId ) -> SuiResult<Option<MarkerValue>>

Get the marker at a specific version

source

fn get_latest_marker( &self, object_id: &ObjectID, epoch_id: EpochId ) -> SuiResult<Option<(SequenceNumber, MarkerValue)>>

Get the latest marker for a given object.

Provided Methods§

source

fn get_objects(&self, objects: &[ObjectID]) -> SuiResult<Vec<Option<Object>>>

source

fn multi_get_objects_with_more_accurate_error_return( &self, object_refs: &[ObjectRef] ) -> Result<Vec<Object>, SuiError>

Load a list of objects from the store by object reference. If they exist in the store, they are returned directly. If any object missing, we try to figure out the best error to return. If the object we are asking is currently locked at a future version, we know this transaction is out-of-date and we return a ObjectVersionUnavailableForConsumption, which indicates this is not retriable. Otherwise, we return a ObjectNotFound error, which indicates this is retriable.

source

fn multi_input_objects_available( &self, keys: &[InputKey], receiving_objects: HashSet<InputKey>, epoch: EpochId ) -> Result<Vec<bool>, SuiError>

Used by transaction manager to determine if input objects are ready. Distinct from multi_get_object_by_key because it also consults markers to handle the case where an object will never become available (e.g. because it has been received by some other transaction already).

source

fn get_transaction_block( &self, digest: &TransactionDigest ) -> SuiResult<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) -> SuiResult<bool>

source

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

source

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

source

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

source

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

source

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

source

fn get_last_shared_object_deletion_info( &self, object_id: &ObjectID, epoch_id: EpochId ) -> SuiResult<Option<(SequenceNumber, TransactionDigest)>>

If the shared object was deleted, return deletion info for the current live version

source

fn get_deleted_shared_object_previous_tx_digest( &self, object_id: &ObjectID, version: SequenceNumber, epoch_id: EpochId ) -> SuiResult<Option<TransactionDigest>>

If the shared object was deleted, return deletion info for the specified version.

source

fn have_received_object_at_version( &self, object_id: &ObjectID, version: SequenceNumber, epoch_id: EpochId ) -> SuiResult<bool>

source

fn have_deleted_owned_object_at_version_or_after( &self, object_id: &ObjectID, version: SequenceNumber, epoch_id: EpochId ) -> SuiResult<bool>

Implementors§