diff --git a/bdk-ffi/src/bdk.udl b/bdk-ffi/src/bdk.udl index 6e44a74..3dbaa55 100644 --- a/bdk-ffi/src/bdk.udl +++ b/bdk-ffi/src/bdk.udl @@ -333,11 +333,13 @@ interface SyncRequest { SyncRequest inspect_spks(SyncScriptInspector inspector); }; -callback interface SyncScriptInspector { +[Trait, WithForeign] +interface SyncScriptInspector { void inspect(Script script, u64 total); }; -callback interface FullScanScriptInspector { +[Trait, WithForeign] +interface FullScanScriptInspector { void inspect(KeychainKind keychain, u32 index, Script script); }; diff --git a/bdk-ffi/src/types.rs b/bdk-ffi/src/types.rs index 8960824..4e0b03b 100644 --- a/bdk-ffi/src/types.rs +++ b/bdk-ffi/src/types.rs @@ -127,7 +127,7 @@ pub struct SyncRequest(pub(crate) Mutex>); impl SyncRequest { pub fn inspect_spks( &self, - inspector: Box, + inspector: Arc, ) -> Result, InspectError> { let mut guard = self.0.lock().unwrap(); if let Some(sync_request) = guard.take() { @@ -145,7 +145,7 @@ impl SyncRequest { impl FullScanRequest { pub fn inspect_spks_for_all_keychains( &self, - inspector: Box, + inspector: Arc, ) -> Result, InspectError> { let mut guard = self.0.lock().unwrap(); if let Some(full_scan_request) = guard.take() {