Skip to content

Commit 6e1d6bb

Browse files
committed
descriptor: stop using TranslatePk in mod.rs
This is the last of the uses of TranslatePk.
1 parent b80296b commit 6e1d6bb

File tree

5 files changed

+22
-29
lines changed

5 files changed

+22
-29
lines changed

bitcoind-tests/tests/setup/test_util.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ use bitcoin::secp256k1;
2626
use miniscript::descriptor::{SinglePub, SinglePubKey};
2727
use miniscript::{
2828
bitcoin, hash256, Descriptor, DescriptorPublicKey, Error, Miniscript, ScriptContext,
29-
TranslatePk, Translator,
29+
Translator,
3030
};
3131
use rand::RngCore;
3232
use secp256k1::XOnlyPublicKey;

examples/big.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use miniscript::policy::{Concrete, Liftable};
1818
use miniscript::psbt::PsbtExt;
1919
use miniscript::{
2020
translate_hash_fail, DefiniteDescriptorKey, Descriptor, DescriptorPublicKey, MiniscriptKey,
21-
TranslatePk, Translator,
21+
Translator,
2222
};
2323
use secp256k1::Secp256k1;
2424
fn main() {

examples/taproot.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use miniscript::bitcoin::secp256k1::rand;
88
use miniscript::bitcoin::{Network, WitnessVersion};
99
use miniscript::descriptor::DescriptorType;
1010
use miniscript::policy::Concrete;
11-
use miniscript::{translate_hash_fail, Descriptor, Miniscript, Tap, TranslatePk, Translator};
11+
use miniscript::{translate_hash_fail, Descriptor, Miniscript, Tap, Translator};
1212

1313
// Refer to https://github.com/sanket1729/adv_btc_workshop/blob/master/workshop.md#creating-a-taproot-descriptor
1414
// for a detailed explanation of the policy and it's compilation

src/descriptor/mod.rs

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use crate::plan::{AssetProvider, Plan};
2828
use crate::prelude::*;
2929
use crate::{
3030
expression, hash256, BareCtx, Error, ForEachKey, FromStrKey, MiniscriptKey, Satisfier,
31-
ToPublicKey, TranslateErr, TranslatePk, Translator,
31+
ToPublicKey, TranslateErr, Translator,
3232
};
3333

3434
mod bare;
@@ -359,6 +359,23 @@ impl<Pk: MiniscriptKey> Descriptor<Pk> {
359359
};
360360
Ok(weight)
361361
}
362+
363+
/// Converts a descriptor using one kind of keys to another kind of key.
364+
pub fn translate_pk<T, Q, E>(&self, t: &mut T) -> Result<Descriptor<Q>, TranslateErr<E>>
365+
where
366+
T: Translator<Pk, Q, E>,
367+
Q: MiniscriptKey,
368+
{
369+
let desc = match *self {
370+
Descriptor::Bare(ref bare) => Descriptor::Bare(bare.translate_pk(t)?),
371+
Descriptor::Pkh(ref pk) => Descriptor::Pkh(pk.translate_pk(t)?),
372+
Descriptor::Wpkh(ref pk) => Descriptor::Wpkh(pk.translate_pk(t)?),
373+
Descriptor::Sh(ref sh) => Descriptor::Sh(sh.translate_pk(t)?),
374+
Descriptor::Wsh(ref wsh) => Descriptor::Wsh(wsh.translate_pk(t)?),
375+
Descriptor::Tr(ref tr) => Descriptor::Tr(tr.translate_pk(t)?),
376+
};
377+
Ok(desc)
378+
}
362379
}
363380

364381
impl<Pk: MiniscriptKey + ToPublicKey> Descriptor<Pk> {
@@ -551,30 +568,6 @@ impl Descriptor<DefiniteDescriptorKey> {
551568
}
552569
}
553570

554-
impl<P, Q> TranslatePk<P, Q> for Descriptor<P>
555-
where
556-
P: MiniscriptKey,
557-
Q: MiniscriptKey,
558-
{
559-
type Output = Descriptor<Q>;
560-
561-
/// Converts a descriptor using abstract keys to one using specific keys.
562-
fn translate_pk<T, E>(&self, t: &mut T) -> Result<Self::Output, TranslateErr<E>>
563-
where
564-
T: Translator<P, Q, E>,
565-
{
566-
let desc = match *self {
567-
Descriptor::Bare(ref bare) => Descriptor::Bare(bare.translate_pk(t)?),
568-
Descriptor::Pkh(ref pk) => Descriptor::Pkh(pk.translate_pk(t)?),
569-
Descriptor::Wpkh(ref pk) => Descriptor::Wpkh(pk.translate_pk(t)?),
570-
Descriptor::Sh(ref sh) => Descriptor::Sh(sh.translate_pk(t)?),
571-
Descriptor::Wsh(ref wsh) => Descriptor::Wsh(wsh.translate_pk(t)?),
572-
Descriptor::Tr(ref tr) => Descriptor::Tr(tr.translate_pk(t)?),
573-
};
574-
Ok(desc)
575-
}
576-
}
577-
578571
impl<Pk: MiniscriptKey> ForEachKey<Pk> for Descriptor<Pk> {
579572
fn for_each_key<'a, F: FnMut(&'a Pk) -> bool>(&'a self, pred: F) -> bool {
580573
match *self {

src/psbt/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use crate::miniscript::context::SigType;
2525
use crate::prelude::*;
2626
use crate::{
2727
descriptor, interpreter, DefiniteDescriptorKey, Descriptor, DescriptorPublicKey, MiniscriptKey,
28-
Preimage32, Satisfier, ToPublicKey, TranslatePk, Translator,
28+
Preimage32, Satisfier, ToPublicKey, Translator,
2929
};
3030

3131
mod finalizer;

0 commit comments

Comments
 (0)