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§
Sourcefn save_seal(&mut self, record: &SealRecord) -> Result<(), StoreError>
fn save_seal(&mut self, record: &SealRecord) -> Result<(), StoreError>
Save a consumed seal record
Sourcefn is_seal_consumed(
&self,
chain: &str,
seal_id: &[u8],
) -> Result<bool, StoreError>
fn is_seal_consumed( &self, chain: &str, seal_id: &[u8], ) -> Result<bool, StoreError>
Check if a seal has been consumed
Sourcefn get_seals(&self, chain: &str) -> Result<Vec<SealRecord>, StoreError>
fn get_seals(&self, chain: &str) -> Result<Vec<SealRecord>, StoreError>
Get all consumed seals for a chain
Sourcefn remove_seal(&mut self, chain: &str, seal_id: &[u8]) -> Result<(), StoreError>
fn remove_seal(&mut self, chain: &str, seal_id: &[u8]) -> Result<(), StoreError>
Remove a seal record (for reorg rollback)
Sourcefn remove_seals_after(
&mut self,
chain: &str,
height: u64,
) -> Result<usize, StoreError>
fn remove_seals_after( &mut self, chain: &str, height: u64, ) -> Result<usize, StoreError>
Remove all seals consumed after a given height (reorg rollback)
Sourcefn save_anchor(&mut self, record: &AnchorRecord) -> Result<(), StoreError>
fn save_anchor(&mut self, record: &AnchorRecord) -> Result<(), StoreError>
Save a published anchor record
Sourcefn has_anchor(&self, chain: &str, anchor_id: &[u8]) -> Result<bool, StoreError>
fn has_anchor(&self, chain: &str, anchor_id: &[u8]) -> Result<bool, StoreError>
Check if an anchor exists
Sourcefn finalize_anchor(
&mut self,
chain: &str,
anchor_id: &[u8],
confirmations: u64,
) -> Result<(), StoreError>
fn finalize_anchor( &mut self, chain: &str, anchor_id: &[u8], confirmations: u64, ) -> Result<(), StoreError>
Update anchor finalization status
Sourcefn pending_anchors(&self, chain: &str) -> Result<Vec<AnchorRecord>, StoreError>
fn pending_anchors(&self, chain: &str) -> Result<Vec<AnchorRecord>, StoreError>
Get anchors that are not yet finalized
Sourcefn remove_anchors_after(
&mut self,
chain: &str,
height: u64,
) -> Result<usize, StoreError>
fn remove_anchors_after( &mut self, chain: &str, height: u64, ) -> Result<usize, StoreError>
Remove anchors published after a given height (reorg rollback)
Sourcefn highest_block(&self, chain: &str) -> Result<u64, StoreError>
fn highest_block(&self, chain: &str) -> Result<u64, StoreError>
Get the highest recorded block height for a chain