Skip to content

Commit 91921e9

Browse files
committed
Refactor signer traits, add support for taproot signatures
1 parent 8722fcd commit 91921e9

File tree

3 files changed

+289
-124
lines changed

3 files changed

+289
-124
lines changed

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ license = "MIT OR Apache-2.0"
1515
bdk-macros = "^0.6"
1616
log = "^0.4"
1717
miniscript = { version = "7.0", features = ["use-serde"] }
18-
bitcoin = { version = "0.28", features = ["use-serde", "base64"] }
18+
bitcoin = { version = "0.28", features = ["use-serde", "base64", "rand"] }
1919
serde = { version = "^1.0", features = ["derive"] }
2020
serde_json = { version = "^1.0" }
2121
rand = "^0.7"

src/wallet/mod.rs

+3-9
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ pub use utils::IsDust;
5050

5151
use address_validator::AddressValidator;
5252
use coin_selection::DefaultCoinSelectionAlgorithm;
53-
use signer::{SignOptions, Signer, SignerOrdering, SignersContainer};
53+
use signer::{SignOptions, SignerOrdering, SignersContainer, TransactionSigner};
5454
use tx_builder::{BumpFee, CreateTx, FeePolicy, TxBuilder, TxParams};
5555
use utils::{check_nlocktime, check_nsequence_rbf, After, Older, SecpCtx};
5656

@@ -457,7 +457,7 @@ where
457457
&mut self,
458458
keychain: KeychainKind,
459459
ordering: SignerOrdering,
460-
signer: Arc<dyn Signer>,
460+
signer: Arc<dyn TransactionSigner>,
461461
) {
462462
let signers = match keychain {
463463
KeychainKind::External => Arc::make_mut(&mut self.signers),
@@ -1036,13 +1036,7 @@ where
10361036
.iter()
10371037
.chain(self.change_signers.signers().iter())
10381038
{
1039-
if signer.sign_whole_tx() {
1040-
signer.sign(psbt, None, &self.secp)?;
1041-
} else {
1042-
for index in 0..psbt.inputs.len() {
1043-
signer.sign(psbt, Some(index), &self.secp)?;
1044-
}
1045-
}
1039+
signer.sign_transaction(psbt, &self.secp)?;
10461040
}
10471041

10481042
// attempt to finalize

0 commit comments

Comments
 (0)