diff --git a/dash-spv/src/storage/filter_headers.rs b/dash-spv/src/storage/filter_headers.rs index ad3db9620..0674d8036 100644 --- a/dash-spv/src/storage/filter_headers.rs +++ b/dash-spv/src/storage/filter_headers.rs @@ -11,6 +11,12 @@ use tokio::sync::RwLock; pub trait FilterHeaderStorage { async fn store_filter_headers(&mut self, headers: &[FilterHeader]) -> StorageResult<()>; + async fn store_filter_headers_at_height( + &mut self, + headers: &[FilterHeader], + height: u32, + ) -> StorageResult<()>; + async fn load_filter_headers(&self, range: Range) -> StorageResult>; async fn get_filter_header(&self, height: u32) -> StorageResult> { @@ -75,6 +81,14 @@ impl FilterHeaderStorage for PersistentFilterHeaderStorage { self.filter_headers.write().await.store_items(headers).await } + async fn store_filter_headers_at_height( + &mut self, + headers: &[FilterHeader], + height: u32, + ) -> StorageResult<()> { + self.filter_headers.write().await.store_items_at_height(headers, height).await + } + async fn load_filter_headers(&self, range: Range) -> StorageResult> { self.filter_headers.write().await.get_items(range).await } diff --git a/dash-spv/src/storage/mod.rs b/dash-spv/src/storage/mod.rs index 03f9731ad..65759ca6f 100644 --- a/dash-spv/src/storage/mod.rs +++ b/dash-spv/src/storage/mod.rs @@ -302,6 +302,14 @@ impl FilterHeaderStorage for DiskStorageManager { self.filter_headers.write().await.store_filter_headers(headers).await } + async fn store_filter_headers_at_height( + &mut self, + headers: &[FilterHeader], + height: u32, + ) -> StorageResult<()> { + self.filter_headers.write().await.store_filter_headers_at_height(headers, height).await + } + async fn load_filter_headers(&self, range: Range) -> StorageResult> { self.filter_headers.read().await.load_filter_headers(range).await } diff --git a/dash-spv/src/sync/legacy/filters/download.rs b/dash-spv/src/sync/legacy/filters/download.rs index a41b2d8d1..87deec830 100644 --- a/dash-spv/src/sync/legacy/filters/download.rs +++ b/dash-spv/src/sync/legacy/filters/download.rs @@ -341,14 +341,18 @@ impl super::manager::FilterSyncManager