Esplora client now working with persisted mnemonics
This commit is contained in:
@@ -1,23 +1,22 @@
|
||||
use crate::{keys, utils};
|
||||
|
||||
use bdk::bitcoin::bip32::ExtendedPrivKey;
|
||||
use bdk::bitcoin::psbt::PartiallySignedTransaction;
|
||||
use bdk::bitcoin::Network;
|
||||
use bdk::database::MemoryDatabase;
|
||||
use bdk::keys::ExtendedKey;
|
||||
use bdk::template::Bip84;
|
||||
use bdk::wallet::AddressIndex::{self, New};
|
||||
use bdk::wallet::AddressInfo;
|
||||
use bdk::{blockchain::ElectrumBlockchain, electrum_client, SyncOptions};
|
||||
use bdk::{FeeRate, SignOptions, TransactionDetails, Wallet};
|
||||
use bdk::{FeeRate, KeychainKind, SignOptions, TransactionDetails, Wallet};
|
||||
|
||||
pub async fn run() -> Result<(), anyhow::Error> {
|
||||
let dave = utils::home(&"dave".to_string());
|
||||
let sammy = utils::home(&"sammy".to_string());
|
||||
let dave_keys = keys::bitcoin::load_from_file(&dave).unwrap();
|
||||
let sammy_keys = keys::bitcoin::load_from_file(&sammy).unwrap();
|
||||
let dave_key = keys::bitcoin::load_from_file(&dave).unwrap();
|
||||
let sammy_key = keys::bitcoin::load_from_file(&sammy).unwrap();
|
||||
|
||||
let dave_wallet = create_wallet(dave_keys)?;
|
||||
let sammy_wallet = create_wallet(sammy_keys)?;
|
||||
let dave_wallet = create_wallet(dave_key)?;
|
||||
let sammy_wallet = create_wallet(sammy_key)?;
|
||||
|
||||
let dave_address = dave_wallet.get_address(AddressIndex::Peek(0))?.to_string();
|
||||
let sammy_address = sammy_wallet.get_address(AddressIndex::Peek(0))?.to_string();
|
||||
@@ -50,10 +49,13 @@ pub async fn run() -> Result<(), anyhow::Error> {
|
||||
}
|
||||
|
||||
/// Create a BDK wallet using BIP 84 descriptor ("m/84h/1h/0h/0" and "m/84h/1h/0h/1")
|
||||
pub fn create_wallet(
|
||||
keys: (Bip84<ExtendedPrivKey>, Option<Bip84<ExtendedPrivKey>>),
|
||||
) -> anyhow::Result<Wallet<MemoryDatabase>> {
|
||||
let (external_descriptor, internal_descriptor) = keys;
|
||||
pub fn create_wallet(xkey: ExtendedKey) -> anyhow::Result<Wallet<MemoryDatabase>> {
|
||||
let xprv = xkey
|
||||
.into_xprv(Network::Testnet)
|
||||
.expect("couldn't turn xkey into xprv");
|
||||
|
||||
let external_descriptor = Bip84(xprv, KeychainKind::External);
|
||||
let internal_descriptor = Some(Bip84(xprv, KeychainKind::Internal));
|
||||
|
||||
let wallet = Wallet::new(
|
||||
external_descriptor,
|
||||
|
||||
Reference in New Issue
Block a user