Added interface DerivationPath

This commit is contained in:
dhruvbaliyan 2022-08-09 14:27:19 +05:30
parent 930a1f1eb4
commit 4977cb6d68
No known key found for this signature in database
GPG Key ID: C0123AC0FAE7CC73
2 changed files with 20 additions and 0 deletions

View File

@ -245,3 +245,8 @@ interface BumpFeeTxBuilder {
[Throws=BdkError]
PartiallySignedBitcoinTransaction finish([ByRef] Wallet wallet);
};
interface DerivationPath {
[Throws=BdkError]
constructor(string path);
};

View File

@ -1,6 +1,7 @@
use bdk::bitcoin::hashes::hex::ToHex;
use bdk::bitcoin::secp256k1::Secp256k1;
use bdk::bitcoin::util::psbt::PartiallySignedTransaction;
use bdk::bitcoin::util::bip32::DerivationPath as BdkDerivationPath;
use bdk::bitcoin::{Address, Network, OutPoint as BdkOutPoint, Script, Txid};
use bdk::blockchain::any::{AnyBlockchain, AnyBlockchainConfig};
use bdk::blockchain::{
@ -633,6 +634,20 @@ fn generate_mnemonic(word_count: WordCount) -> Result<String, BdkError> {
Ok(mnemonic.to_string())
}
struct DerivationPath {
derivation_path_mutex: Mutex<BdkDerivationPath>,
}
impl DerivationPath {
fn new(path: String) -> Result<Self, BdkError> {
BdkDerivationPath::from_str(&path)
.map(|x| DerivationPath {
derivation_path_mutex: Mutex::new(x),
})
.map_err(|e| BdkError::Generic(e.to_string()))
}
}
uniffi::deps::static_assertions::assert_impl_all!(Wallet: Sync, Send);
// The goal of these tests to to ensure `bdk-ffi` intermediate code correctly calls `bdk` APIs.