From 6dd95d01c3e7199bdacde4e51704795831afc81a Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Fri, 3 Dec 2021 16:32:59 +1100 Subject: [PATCH] Move `dummy_wallet` to `daemon::bdk_ext::new_test_wallet` This wallet is also useful for unit tests. Move it out of the harness into the library. --- daemon/src/bdk_ext.rs | 34 +++++++++++++++++++++++++++ daemon/src/lib.rs | 1 + daemon/tests/harness/maia.rs | 35 ---------------------------- daemon/tests/harness/mocks/wallet.rs | 4 ++-- 4 files changed, 37 insertions(+), 37 deletions(-) create mode 100644 daemon/src/bdk_ext.rs diff --git a/daemon/src/bdk_ext.rs b/daemon/src/bdk_ext.rs new file mode 100644 index 0000000..4beb979 --- /dev/null +++ b/daemon/src/bdk_ext.rs @@ -0,0 +1,34 @@ +use anyhow::Result; +use bdk::bitcoin::util::bip32::ExtendedPrivKey; +use bdk::bitcoin::{self, Amount, Network}; +use rand::{CryptoRng, RngCore}; + +pub fn new_test_wallet( + rng: &mut (impl RngCore + CryptoRng), + utxo_amount: Amount, + num_utxos: u8, +) -> Result> { + use bdk::{populate_test_db, testutils}; + + let mut seed = [0u8; 32]; + rng.fill_bytes(&mut seed); + + let key = ExtendedPrivKey::new_master(Network::Regtest, &seed)?; + let descriptors = testutils!(@descriptors (&format!("wpkh({}/*)", key))); + + let mut database = bdk::database::MemoryDatabase::new(); + + for index in 0..num_utxos { + populate_test_db!( + &mut database, + testutils! { + @tx ( (@external descriptors, index as u32) => utxo_amount.as_sat() ) (@confirmations 1) + }, + Some(100) + ); + } + + let wallet = bdk::Wallet::new_offline(&descriptors.0, None, Network::Regtest, database)?; + + Ok(wallet) +} diff --git a/daemon/src/lib.rs b/daemon/src/lib.rs index 566667c..abd1f35 100644 --- a/daemon/src/lib.rs +++ b/daemon/src/lib.rs @@ -23,6 +23,7 @@ pub mod sqlx_ext; // Must come first because it is a macro. pub mod actors; pub mod address_map; pub mod auth; +pub mod bdk_ext; pub mod bitmex_price_feed; pub mod cfd_actors; pub mod collab_settlement_taker; diff --git a/daemon/tests/harness/maia.rs b/daemon/tests/harness/maia.rs index 05502c2..4da7815 100644 --- a/daemon/tests/harness/maia.rs +++ b/daemon/tests/harness/maia.rs @@ -1,42 +1,7 @@ -use anyhow::Result; -use bdk::bitcoin; -use bdk::bitcoin::util::bip32::ExtendedPrivKey; -use bdk::bitcoin::{Amount, Network}; -use maia::secp256k1_zkp::rand::{CryptoRng, RngCore}; use maia::secp256k1_zkp::{schnorrsig, SecretKey}; use maia::Announcement; use std::str::FromStr; -pub fn dummy_wallet( - rng: &mut (impl RngCore + CryptoRng), - utxo_amount: Amount, - num_utxos: u8, -) -> Result> { - use bdk::{populate_test_db, testutils}; - - let mut seed = [0u8; 32]; - rng.fill_bytes(&mut seed); - - let key = ExtendedPrivKey::new_master(Network::Regtest, &seed)?; - let descriptors = testutils!(@descriptors (&format!("wpkh({}/*)", key))); - - let mut database = bdk::database::MemoryDatabase::new(); - - for index in 0..num_utxos { - populate_test_db!( - &mut database, - testutils! { - @tx ( (@external descriptors, index as u32) => utxo_amount.as_sat() ) (@confirmations 1) - }, - Some(100) - ); - } - - let wallet = bdk::Wallet::new_offline(&descriptors.0, None, Network::Regtest, database)?; - - Ok(wallet) -} - #[allow(dead_code)] pub struct OliviaData { id: String, diff --git a/daemon/tests/harness/mocks/wallet.rs b/daemon/tests/harness/mocks/wallet.rs index b43f91c..e31e592 100644 --- a/daemon/tests/harness/mocks/wallet.rs +++ b/daemon/tests/harness/mocks/wallet.rs @@ -1,10 +1,10 @@ -use crate::harness::maia::dummy_wallet; use anyhow::Result; use bdk::bitcoin::util::psbt::PartiallySignedTransaction; use bdk::bitcoin::{ecdsa, Amount, Txid}; use bdk::wallet::tx_builder::TxOrdering; use bdk::wallet::AddressIndex; use bdk::FeeRate; +use daemon::bdk_ext::new_test_wallet; use daemon::model::{Timestamp, WalletInfo}; use daemon::wallet; use maia::secp256k1_zkp::Secp256k1; @@ -75,7 +75,7 @@ fn dummy_wallet_info() -> Result { pub fn build_party_params(msg: wallet::BuildPartyParams) -> Result { let mut rng = thread_rng(); - let wallet = dummy_wallet(&mut rng, Amount::from_btc(0.4).unwrap(), 5).unwrap(); + let wallet = new_test_wallet(&mut rng, Amount::from_btc(0.4).unwrap(), 5).unwrap(); let mut builder = wallet.build_tx();