[wallet] Overhaul TxBuilder internals and externals
Fixes #251 TxBuilders are now not created directly but are created through the wallet with `build_tx` and `build_fee_bump`. The advantages of this realised in this commit are: 1. Normal tx creation and fee bumping use the code internally. The only difference between normal tx and fee bump is how the builder is created. 2. The TxBuilder now has a refernce to the wallet and can therefore lookup things as methods are called on it. `add_utxo` now uses this to look up UTXO deta when it is called (rather than having to do it and possibly error later on). To support these changes `get_utxo` and `get_descriptor_for_keychain` public methods have been added to Wallet. I could have kept them pub(crate) but they seem like fine APIs to have publicly.
This commit is contained in:
@@ -127,7 +127,6 @@ mod test {
|
||||
|
||||
use super::*;
|
||||
use crate::wallet::test::{get_funded_wallet, get_test_wpkh};
|
||||
use crate::wallet::TxBuilder;
|
||||
|
||||
struct TestValidator;
|
||||
impl AddressValidator for TestValidator {
|
||||
@@ -158,10 +157,9 @@ mod test {
|
||||
|
||||
let addr = testutils!(@external descriptors, 10);
|
||||
wallet
|
||||
.create_tx(TxBuilder::with_recipients(vec![(
|
||||
addr.script_pubkey(),
|
||||
25_000,
|
||||
)]))
|
||||
.build_tx()
|
||||
.add_recipient(addr.script_pubkey(), 25_000)
|
||||
.finish()
|
||||
.unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user