feat: add memory wallet
This commit is contained in:
parent
f169b1a52f
commit
79e7ab73ea
@ -271,6 +271,9 @@ interface Wallet {
|
||||
[Throws=WalletCreationError]
|
||||
constructor(Descriptor descriptor, Descriptor? change_descriptor, string persistence_backend_path, Network network);
|
||||
|
||||
[Name=new_no_persist, Throws=DescriptorError]
|
||||
constructor(Descriptor descriptor, Descriptor? change_descriptor, Network network);
|
||||
|
||||
[Throws=PersistenceError]
|
||||
AddressInfo reveal_next_address(KeychainKind keychain);
|
||||
|
||||
|
@ -2,8 +2,8 @@ use crate::bitcoin::Amount;
|
||||
use crate::bitcoin::{FeeRate, OutPoint, Psbt, Script, Transaction};
|
||||
use crate::descriptor::Descriptor;
|
||||
use crate::error::{
|
||||
CalculateFeeError, CannotConnectError, CreateTxError, PersistenceError, SignerError,
|
||||
TxidParseError, WalletCreationError,
|
||||
CalculateFeeError, CannotConnectError, CreateTxError, DescriptorError, PersistenceError,
|
||||
SignerError, TxidParseError, WalletCreationError,
|
||||
};
|
||||
use crate::types::{
|
||||
AddressInfo, Balance, CanonicalTx, FullScanRequest, LocalOutput, ScriptAmount, SyncRequest,
|
||||
@ -49,6 +49,22 @@ impl Wallet {
|
||||
})
|
||||
}
|
||||
|
||||
pub fn new_no_persist(
|
||||
descriptor: Arc<Descriptor>,
|
||||
change_descriptor: Option<Arc<Descriptor>>,
|
||||
network: Network,
|
||||
) -> Result<Self, DescriptorError> {
|
||||
let descriptor = descriptor.as_string_private();
|
||||
let change_descriptor = change_descriptor.map(|d| d.as_string_private());
|
||||
|
||||
let wallet: BdkWallet =
|
||||
BdkWallet::new_no_persist(&descriptor, change_descriptor.as_ref(), network)?;
|
||||
|
||||
Ok(Wallet {
|
||||
inner_mutex: Mutex::new(wallet),
|
||||
})
|
||||
}
|
||||
|
||||
pub(crate) fn get_wallet(&self) -> MutexGuard<BdkWallet> {
|
||||
self.inner_mutex.lock().expect("wallet")
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user