Trait exocore_chain::pending::PendingStore[][src]

pub trait PendingStore: Send + Sync + 'static {
    fn put_operation(&mut self, operation: NewOperation) -> Result<bool, Error>;
fn update_operation_commit_status(
        &mut self,
        operation_id: OperationId,
        status: CommitStatus
    ) -> Result<(), Error>;
fn get_operation(
        &self,
        operation_id: OperationId
    ) -> Result<Option<StoredOperation>, Error>;
fn get_group_operations(
        &self,
        group_id: GroupId
    ) -> Result<Option<StoredOperationsGroup>, Error>;
fn operations_iter<R>(
        &self,
        range: R
    ) -> Result<TimelineIterator<'_>, Error>
    where
        R: RangeBounds<OperationId>
;
fn operations_count(&self) -> usize;
fn delete_operation(
        &mut self,
        operation_id: OperationId
    ) -> Result<(), Error>; }
Expand description

Pending operations store. This store contains operations that have just been created and that aren’t committed to the chain yet.

Required methods

Adds or replaces the given operation into the store. Returns true if the operation already exists and got overwritten.

Updates the commit status of an operation. This information is not replicated, and is populated by the CommitManager so that the PendingSynchronizer and Engine can get the chain status of an operation without hitting the chain every time. Returns Error::NotFound if operation doesn’t exist.

Returns the operation with given id.

Returns all operations grouped under the given group id / operation id. An example of operation group is a block with its signatures / refusals operations. Entry operations are NOT stored in the block’s group since they could get added into different blocks (but only one will be committed).

Iterates through all operations in the store within the given range. The iterator returns operations sorted by operation ids.

Returns the number of operations in the store.

Deletes the operation with given id, or all operations grouped by this operation id if the operation was a group (ex: block with its signatures)

Implementors