Skip to content

Commit 0c18032

Browse files
committed
refactor: use macros for FullScan and Sync requests builders
1 parent e433fe9 commit 0c18032

File tree

3 files changed

+8
-37
lines changed

3 files changed

+8
-37
lines changed

bdk-ffi/src/bdk.udl

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -272,37 +272,8 @@ interface TransactionError {
272272

273273
typedef enum KeychainKind;
274274

275-
/// Builds a [`FullScanRequest`].
276-
interface FullScanRequestBuilder {
277-
[Throws=RequestBuilderError]
278-
FullScanRequestBuilder inspect_spks_for_all_keychains(FullScanScriptInspector inspector);
279275

280-
[Throws=RequestBuilderError]
281-
FullScanRequest build();
282-
};
283-
284-
/// Builds a [`SyncRequest`].
285-
interface SyncRequestBuilder {
286-
[Throws=RequestBuilderError]
287-
SyncRequestBuilder inspect_spks(SyncScriptInspector inspector);
288-
289-
[Throws=RequestBuilderError]
290-
SyncRequest build();
291-
};
292-
293-
interface FullScanRequest {};
294276

295-
interface SyncRequest {};
296-
297-
[Trait, WithForeign]
298-
interface SyncScriptInspector {
299-
void inspect(Script script, u64 total);
300-
};
301-
302-
[Trait, WithForeign]
303-
interface FullScanScriptInspector {
304-
void inspect(KeychainKind keychain, u32 index, Script script);
305-
};
306277

307278
// ------------------------------------------------------------------------
308279
// bdk_wallet crate - wallet module

bdk-ffi/src/lib.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ mod wallet;
1313

1414
use crate::bitcoin::FeeRate;
1515
use crate::bitcoin::OutPoint;
16-
use crate::bitcoin::Script;
1716
use crate::error::AddressParseError;
1817
use crate::error::Bip32Error;
1918
use crate::error::Bip39Error;
@@ -32,17 +31,10 @@ use crate::error::PsbtFinalizeError;
3231
use crate::error::PsbtParseError;
3332
use crate::error::RequestBuilderError;
3433
use crate::error::TransactionError;
35-
use crate::types::FullScanRequest;
36-
use crate::types::FullScanRequestBuilder;
37-
use crate::types::FullScanScriptInspector;
3834
use crate::types::LockTime;
3935
use crate::types::PkOrF;
40-
use crate::types::SyncRequest;
41-
use crate::types::SyncRequestBuilder;
42-
use crate::types::SyncScriptInspector;
4336

4437
use bdk_wallet::bitcoin::Network;
4538
use bdk_wallet::keys::bip39::WordCount;
46-
use bdk_wallet::KeychainKind;
4739

4840
uniffi::include_scaffolding!("bdk");

bdk-ffi/src/types.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,25 +261,32 @@ impl From<BdkLocalOutput> for LocalOutput {
261261
}
262262

263263
// Callback for the FullScanRequest
264+
#[uniffi::export(with_foreign)]
264265
pub trait FullScanScriptInspector: Sync + Send {
265266
fn inspect(&self, keychain: KeychainKind, index: u32, script: Arc<Script>);
266267
}
267268

268269
// Callback for the SyncRequest
270+
#[uniffi::export(with_foreign)]
269271
pub trait SyncScriptInspector: Sync + Send {
270272
fn inspect(&self, script: Arc<Script>, total: u64);
271273
}
272274

275+
#[derive(uniffi::Object)]
273276
pub struct FullScanRequestBuilder(
274277
pub(crate) Mutex<Option<BdkFullScanRequestBuilder<KeychainKind>>>,
275278
);
276279

280+
#[derive(uniffi::Object)]
277281
pub struct SyncRequestBuilder(pub(crate) Mutex<Option<BdkSyncRequestBuilder<(KeychainKind, u32)>>>);
278282

283+
#[derive(uniffi::Object)]
279284
pub struct FullScanRequest(pub(crate) Mutex<Option<BdkFullScanRequest<KeychainKind>>>);
280285

286+
#[derive(uniffi::Object)]
281287
pub struct SyncRequest(pub(crate) Mutex<Option<BdkSyncRequest<(KeychainKind, u32)>>>);
282288

289+
#[uniffi::export]
283290
impl SyncRequestBuilder {
284291
pub fn inspect_spks(
285292
&self,
@@ -314,6 +321,7 @@ impl SyncRequestBuilder {
314321
}
315322
}
316323

324+
#[uniffi::export]
317325
impl FullScanRequestBuilder {
318326
pub fn inspect_spks_for_all_keychains(
319327
&self,

0 commit comments

Comments
 (0)