You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
36b065981a10c30f37548f5df792885d5397730f translator: make target pk and error associated types (Andrew Poelstra)
c330d0b37adb8e07dda75ab41cd57fa15728bbfc remove the TranslatePk trait (Andrew Poelstra)
6e1d6bbc9cb000f8473ab62017912f316740b1c8 descriptor: stop using TranslatePk in mod.rs (Andrew Poelstra)
b80296b1a7943be8f51f27673ac818e6c623ff60 descriptor: stop using TranslatePk in tr.rs (Andrew Poelstra)
f89cf257564fd4c0c0e41742efc62b7fbb739eb7 descriptor: stop using TranslatePk in sh.rs (Andrew Poelstra)
4654b98d9d5e90083d6cf01d718d1df7d3302b1e descriptor: stop using TranslatePk in segwitv0.rs (Andrew Poelstra)
9c91586d2668785cf601e13458260be49e3628e1 descriptor: stop using TranslatePk in bare.rs (Andrew Poelstra)
e73a141dd69e7a409419ee78d61023399ea71c04 miniscript: stop using TranslatePk (Andrew Poelstra)
Pull request description:
This may be too much of a breaking change and an instance of rust-bitcoin/rust-bitcoin#3166, but the existing traits are *really* annoying to use. But this change is not essential to any of my other work so feel free to concept NACK it.
There are two changes here:
* This drops the `TranslatePk` trait which had no business existing. It attempts to be generic over "things whose keys can be translated", but is missing impls (on keys themselves, for example) and anyway it is basically impossible to usefully be generic over this trait since it has an associated `Output` type which is unconstrained except by a comment saying "this must be `Self<Q>`. Really, the only purpose of this trait is to force users to write `use miniscript::TranslatePk` every time they want access to the `translate_pk` method.
* It moves two of the generics in `Translator` from generics to associated types. This makes it far more ergonomic to implement and require the trait, since you no longer need to write 3 separate generics everywhere when two are implied. (Actually, all three are implied, including the source `Pk` type, but in practice users want to constrain this to match an existing key type that they've got. So I left it as a generic rather than an associated type.)
ACKs for top commit:
sanket1729:
ACK 36b065981a10c30f37548f5df792885d5397730f
Tree-SHA512: 0f7989925af2f9857146eb00e41a81ec1bbaf4c94b0003230835d3979ccb7913d8c958f1293f501e36ddcbaf81e8a88ada261371d9b79c4c85fec3ee195ffc07
note = "Use max_weight_to_satisfy instead. The method to count bytes was redesigned and the results will differ from max_weight_to_satisfy. For more details check rust-bitcoin/rust-miniscript#476."
0 commit comments