moving get_funded_wallet out of the test section to make it available for bdk-reserves
This commit is contained in:
parent
38d1d0b0e2
commit
fa013aeb83
@ -43,8 +43,8 @@ impl PsbtUtils for Psbt {
|
|||||||
mod test {
|
mod test {
|
||||||
use crate::bitcoin::TxIn;
|
use crate::bitcoin::TxIn;
|
||||||
use crate::psbt::Psbt;
|
use crate::psbt::Psbt;
|
||||||
use crate::wallet::test::{get_funded_wallet, get_test_wpkh};
|
|
||||||
use crate::wallet::AddressIndex;
|
use crate::wallet::AddressIndex;
|
||||||
|
use crate::wallet::{get_funded_wallet, test::get_test_wpkh};
|
||||||
use crate::SignOptions;
|
use crate::SignOptions;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
|
@ -115,8 +115,8 @@ mod test {
|
|||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::wallet::test::{get_funded_wallet, get_test_wpkh};
|
|
||||||
use crate::wallet::AddressIndex::New;
|
use crate::wallet::AddressIndex::New;
|
||||||
|
use crate::wallet::{get_funded_wallet, test::get_test_wpkh};
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
struct TestValidator;
|
struct TestValidator;
|
||||||
|
@ -18,6 +18,7 @@ use std::collections::HashMap;
|
|||||||
use std::collections::{BTreeMap, HashSet};
|
use std::collections::{BTreeMap, HashSet};
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::ops::{Deref, DerefMut};
|
use std::ops::{Deref, DerefMut};
|
||||||
|
use std::str::FromStr;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use bitcoin::secp256k1::Secp256k1;
|
use bitcoin::secp256k1::Secp256k1;
|
||||||
@ -55,6 +56,7 @@ use tx_builder::{BumpFee, CreateTx, FeePolicy, TxBuilder, TxParams};
|
|||||||
use utils::{check_nlocktime, check_nsequence_rbf, After, Older, SecpCtx, DUST_LIMIT_SATOSHI};
|
use utils::{check_nlocktime, check_nsequence_rbf, After, Older, SecpCtx, DUST_LIMIT_SATOSHI};
|
||||||
|
|
||||||
use crate::blockchain::{Blockchain, Progress};
|
use crate::blockchain::{Blockchain, Progress};
|
||||||
|
use crate::database::memory::MemoryDatabase;
|
||||||
use crate::database::{BatchDatabase, BatchOperations, DatabaseUtils};
|
use crate::database::{BatchDatabase, BatchOperations, DatabaseUtils};
|
||||||
use crate::descriptor::derived::AsDerived;
|
use crate::descriptor::derived::AsDerived;
|
||||||
use crate::descriptor::policy::BuildSatisfaction;
|
use crate::descriptor::policy::BuildSatisfaction;
|
||||||
@ -66,6 +68,7 @@ use crate::descriptor::{
|
|||||||
use crate::error::Error;
|
use crate::error::Error;
|
||||||
use crate::psbt::PsbtUtils;
|
use crate::psbt::PsbtUtils;
|
||||||
use crate::signer::SignerError;
|
use crate::signer::SignerError;
|
||||||
|
use crate::testutils;
|
||||||
use crate::types::*;
|
use crate::types::*;
|
||||||
|
|
||||||
const CACHE_ADDR_BATCH_SIZE: u32 = 100;
|
const CACHE_ADDR_BATCH_SIZE: u32 = 100;
|
||||||
@ -167,6 +170,11 @@ where
|
|||||||
secp,
|
secp,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get the Bitcoin network the wallet is using.
|
||||||
|
pub fn network(&self) -> Network {
|
||||||
|
self.network
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The address index selection strategy to use to derived an address from the wallet's external
|
/// The address index selection strategy to use to derived an address from the wallet's external
|
||||||
@ -1534,11 +1542,6 @@ where
|
|||||||
&self.client
|
&self.client
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get the Bitcoin network the wallet is using.
|
|
||||||
pub fn network(&self) -> Network {
|
|
||||||
self.network
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Broadcast a transaction to the network
|
/// Broadcast a transaction to the network
|
||||||
#[maybe_async]
|
#[maybe_async]
|
||||||
pub fn broadcast(&self, tx: Transaction) -> Result<Txid, Error> {
|
pub fn broadcast(&self, tx: Transaction) -> Result<Txid, Error> {
|
||||||
@ -1548,19 +1551,60 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Return a fake wallet that appears to be funded for testing.
|
||||||
|
pub fn get_funded_wallet(
|
||||||
|
descriptor: &str,
|
||||||
|
) -> (
|
||||||
|
Wallet<(), MemoryDatabase>,
|
||||||
|
(String, Option<String>),
|
||||||
|
bitcoin::Txid,
|
||||||
|
) {
|
||||||
|
let descriptors = testutils!(@descriptors (descriptor));
|
||||||
|
let wallet = Wallet::new_offline(
|
||||||
|
&descriptors.0,
|
||||||
|
None,
|
||||||
|
Network::Regtest,
|
||||||
|
MemoryDatabase::new(),
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
let funding_address_kix = 0;
|
||||||
|
|
||||||
|
let tx_meta = testutils! {
|
||||||
|
@tx ( (@external descriptors, funding_address_kix) => 50_000 ) (@confirmations 1)
|
||||||
|
};
|
||||||
|
|
||||||
|
wallet
|
||||||
|
.database
|
||||||
|
.borrow_mut()
|
||||||
|
.set_script_pubkey(
|
||||||
|
&bitcoin::Address::from_str(&tx_meta.output.get(0).unwrap().to_address)
|
||||||
|
.unwrap()
|
||||||
|
.script_pubkey(),
|
||||||
|
KeychainKind::External,
|
||||||
|
funding_address_kix,
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
wallet
|
||||||
|
.database
|
||||||
|
.borrow_mut()
|
||||||
|
.set_last_index(KeychainKind::External, funding_address_kix)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
let txid = crate::populate_test_db!(wallet.database.borrow_mut(), tx_meta, Some(100));
|
||||||
|
|
||||||
|
(wallet, descriptors, txid)
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
pub(crate) mod test {
|
pub(crate) mod test {
|
||||||
use std::str::FromStr;
|
|
||||||
|
|
||||||
use bitcoin::{util::psbt, Network};
|
use bitcoin::{util::psbt, Network};
|
||||||
|
|
||||||
use crate::database::memory::MemoryDatabase;
|
|
||||||
use crate::database::Database;
|
use crate::database::Database;
|
||||||
use crate::types::KeychainKind;
|
use crate::types::KeychainKind;
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::signer::{SignOptions, SignerError};
|
use crate::signer::{SignOptions, SignerError};
|
||||||
use crate::testutils;
|
|
||||||
use crate::wallet::AddressIndex::{LastUnused, New, Peek, Reset};
|
use crate::wallet::AddressIndex::{LastUnused, New, Peek, Reset};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -1672,50 +1716,6 @@ pub(crate) mod test {
|
|||||||
"wsh(and_v(v:pk(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW),after(100000)))"
|
"wsh(and_v(v:pk(cVpPVruEDdmutPzisEsYvtST1usBR3ntr8pXSyt6D2YYqXRyPcFW),after(100000)))"
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn get_funded_wallet(
|
|
||||||
descriptor: &str,
|
|
||||||
) -> (
|
|
||||||
Wallet<(), MemoryDatabase>,
|
|
||||||
(String, Option<String>),
|
|
||||||
bitcoin::Txid,
|
|
||||||
) {
|
|
||||||
let descriptors = testutils!(@descriptors (descriptor));
|
|
||||||
let wallet = Wallet::new_offline(
|
|
||||||
&descriptors.0,
|
|
||||||
None,
|
|
||||||
Network::Regtest,
|
|
||||||
MemoryDatabase::new(),
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let funding_address_kix = 0;
|
|
||||||
|
|
||||||
let tx_meta = testutils! {
|
|
||||||
@tx ( (@external descriptors, funding_address_kix) => 50_000 ) (@confirmations 1)
|
|
||||||
};
|
|
||||||
|
|
||||||
wallet
|
|
||||||
.database
|
|
||||||
.borrow_mut()
|
|
||||||
.set_script_pubkey(
|
|
||||||
&bitcoin::Address::from_str(&tx_meta.output.get(0).unwrap().to_address)
|
|
||||||
.unwrap()
|
|
||||||
.script_pubkey(),
|
|
||||||
KeychainKind::External,
|
|
||||||
funding_address_kix,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
wallet
|
|
||||||
.database
|
|
||||||
.borrow_mut()
|
|
||||||
.set_last_index(KeychainKind::External, funding_address_kix)
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let txid = crate::populate_test_db!(wallet.database.borrow_mut(), tx_meta, Some(100));
|
|
||||||
|
|
||||||
(wallet, descriptors, txid)
|
|
||||||
}
|
|
||||||
|
|
||||||
macro_rules! assert_fee_rate {
|
macro_rules! assert_fee_rate {
|
||||||
($tx:expr, $fees:expr, $fee_rate:expr $( ,@dust_change $( $dust_change:expr )* )* $( ,@add_signature $( $add_signature:expr )* )* ) => ({
|
($tx:expr, $fees:expr, $fee_rate:expr $( ,@dust_change $( $dust_change:expr )* )* $( ,@add_signature $( $add_signature:expr )* )* ) => ({
|
||||||
let mut tx = $tx.clone();
|
let mut tx = $tx.clone();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user