Skip to content

Commit 2eaea02

Browse files
fix: allow optional filter sync in ffi cli
1 parent a915f78 commit 2eaea02

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

dash-spv-ffi/src/bin/ffi_cli.rs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,12 @@ fn main() {
9999
.action(ArgAction::SetTrue)
100100
.help("Disable masternode list synchronization"),
101101
)
102+
.arg(
103+
Arg::new("no-filters")
104+
.long("no-filters")
105+
.action(ArgAction::SetTrue)
106+
.help("Disable compact filter synchronization"),
107+
)
102108
.get_matches();
103109

104110
// Map network
@@ -109,6 +115,8 @@ fn main() {
109115
_ => FFINetwork::Dash,
110116
};
111117

118+
let disable_filter_sync = matches.get_flag("no-filters");
119+
112120
unsafe {
113121
// Initialize tracing/logging via FFI so `tracing::info!` emits output
114122
let level = matches.get_one::<String>("log-level").map(String::as_str).unwrap_or("info");
@@ -125,6 +133,8 @@ fn main() {
125133
std::process::exit(1);
126134
}
127135

136+
let _ = dash_spv_ffi_config_set_filter_load(cfg, !disable_filter_sync);
137+
128138
if let Some(workers) = matches.get_one::<u32>("workers") {
129139
let _ = dash_spv_ffi_config_set_worker_threads(cfg, *workers);
130140
}
@@ -201,7 +211,10 @@ fn main() {
201211
let prog_ptr = dash_spv_ffi_client_get_sync_progress(client);
202212
if !prog_ptr.is_null() {
203213
let prog = &*prog_ptr;
204-
if prog.headers_synced && prog.filter_headers_synced {
214+
let filters_complete = prog.filter_headers_synced
215+
|| !prog.filter_sync_available
216+
|| disable_filter_sync;
217+
if prog.headers_synced && filters_complete {
205218
dash_spv_ffi_sync_progress_destroy(prog_ptr);
206219
break;
207220
}

0 commit comments

Comments
 (0)