diff --git a/src/bdk.udl b/src/bdk.udl index 20450ec..5e30901 100644 --- a/src/bdk.udl +++ b/src/bdk.udl @@ -4,4 +4,5 @@ namespace bdk { interface OfflineWallet { constructor(string descriptor); + string get_new_address(); }; \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index c7f4430..4002e1f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,14 +1,13 @@ use bdk::Wallet; +use bdk::wallet::AddressIndex; use bdk::database::MemoryDatabase; use bdk::bitcoin::Network; // use crate::error::FfiError; use std::sync::{RwLock, Mutex}; use std::vec::Vec; - use bdk::database::BatchDatabase; use bdk::sled; use bdk::sled::Tree; - //mod error; //mod types; //mod wallet; @@ -40,6 +39,17 @@ impl OfflineWallet { // wallet: RwLock::new(Vec::new()) // } } + + fn get_new_address(&self) -> String { + self + .wallet + .lock() + .unwrap() + .get_address(AddressIndex::New) + .unwrap() + .address + .to_string() + } } uniffi::deps::static_assertions::assert_impl_all!(OfflineWallet: Sync, Send);