Skip to main content

SealStore

Trait SealStore 

Source
pub trait SealStore: Send + Sync {
    // Required methods
    fn save_seal(&mut self, record: &SealRecord) -> Result<(), StoreError>;
    fn is_seal_consumed(
        &self,
        chain: &str,
        seal_id: &[u8],
    ) -> Result<bool, StoreError>;
    fn get_seals(&self, chain: &str) -> Result<Vec<SealRecord>, StoreError>;
    fn remove_seal(
        &mut self,
        chain: &str,
        seal_id: &[u8],
    ) -> Result<(), StoreError>;
    fn remove_seals_after(
        &mut self,
        chain: &str,
        height: u64,
    ) -> Result<usize, StoreError>;
    fn save_anchor(&mut self, record: &AnchorRecord) -> Result<(), StoreError>;
    fn has_anchor(
        &self,
        chain: &str,
        anchor_id: &[u8],
    ) -> Result<bool, StoreError>;
    fn finalize_anchor(
        &mut self,
        chain: &str,
        anchor_id: &[u8],
        confirmations: u64,
    ) -> Result<(), StoreError>;
    fn pending_anchors(
        &self,
        chain: &str,
    ) -> Result<Vec<AnchorRecord>, StoreError>;
    fn remove_anchors_after(
        &mut self,
        chain: &str,
        height: u64,
    ) -> Result<usize, StoreError>;
    fn highest_block(&self, chain: &str) -> Result<u64, StoreError>;
}
Expand description

Trait for persistent seal and anchor storage

Required Methods§

Source

fn save_seal(&mut self, record: &SealRecord) -> Result<(), StoreError>

Save a consumed seal record

Source

fn is_seal_consumed( &self, chain: &str, seal_id: &[u8], ) -> Result<bool, StoreError>

Check if a seal has been consumed

Source

fn get_seals(&self, chain: &str) -> Result<Vec<SealRecord>, StoreError>

Get all consumed seals for a chain

Source

fn remove_seal(&mut self, chain: &str, seal_id: &[u8]) -> Result<(), StoreError>

Remove a seal record (for reorg rollback)

Source

fn remove_seals_after( &mut self, chain: &str, height: u64, ) -> Result<usize, StoreError>

Remove all seals consumed after a given height (reorg rollback)

Source

fn save_anchor(&mut self, record: &AnchorRecord) -> Result<(), StoreError>

Save a published anchor record

Source

fn has_anchor(&self, chain: &str, anchor_id: &[u8]) -> Result<bool, StoreError>

Check if an anchor exists

Source

fn finalize_anchor( &mut self, chain: &str, anchor_id: &[u8], confirmations: u64, ) -> Result<(), StoreError>

Update anchor finalization status

Source

fn pending_anchors(&self, chain: &str) -> Result<Vec<AnchorRecord>, StoreError>

Get anchors that are not yet finalized

Source

fn remove_anchors_after( &mut self, chain: &str, height: u64, ) -> Result<usize, StoreError>

Remove anchors published after a given height (reorg rollback)

Source

fn highest_block(&self, chain: &str) -> Result<u64, StoreError>

Get the highest recorded block height for a chain

Implementors§