fuel_core_interfaces/
relayer.rs1use crate::{
2 common::fuel_storage::{
3 StorageAsMut,
4 StorageMutate,
5 },
6 db::{
7 KvStoreError,
8 Messages,
9 },
10 model::{
11 BlockHeight,
12 CheckedMessage,
13 DaBlockHeight,
14 SealedFuelBlock,
15 },
16};
17use async_trait::async_trait;
18use std::sync::Arc;
19
20#[async_trait]
22pub trait RelayerDb: StorageMutate<Messages, Error = KvStoreError> + Send + Sync {
23 async fn insert_message(&mut self, message: &CheckedMessage) {
25 let _ = self
26 .storage::<Messages>()
27 .insert(message.id(), message.as_ref());
28 }
29
30 async fn get_chain_height(&self) -> BlockHeight;
32
33 async fn get_sealed_block(&self, height: BlockHeight)
34 -> Option<Arc<SealedFuelBlock>>;
35
36 async fn set_finalized_da_height(&self, block: DaBlockHeight);
38
39 async fn get_finalized_da_height(&self) -> Option<DaBlockHeight>;
41
42 async fn get_last_published_fuel_height(&self) -> Option<BlockHeight>;
44
45 async fn set_last_published_fuel_height(&self, block_height: BlockHeight);
47}