@@ -22,7 +22,7 @@ use crate::prelude::*;
22
22
use crate :: util:: MsKeyBuilder ;
23
23
use crate :: {
24
24
errstr, expression, script_num_size, AbsLockTime , Error , Miniscript , MiniscriptKey , Terminal ,
25
- ToPublicKey , TranslateErr , TranslatePk , Translator ,
25
+ ToPublicKey ,
26
26
} ;
27
27
28
28
impl < Pk : MiniscriptKey , Ctx : ScriptContext > Terminal < Pk , Ctx > {
@@ -46,102 +46,7 @@ impl<Pk: MiniscriptKey, Ctx: ScriptContext> Terminal<Pk, Ctx> {
46
46
}
47
47
}
48
48
49
- impl < Pk , Q , Ctx > TranslatePk < Pk , Q > for Terminal < Pk , Ctx >
50
- where
51
- Pk : MiniscriptKey ,
52
- Q : MiniscriptKey ,
53
- Ctx : ScriptContext ,
54
- {
55
- type Output = Terminal < Q , Ctx > ;
56
-
57
- /// Converts an AST element with one public key type to one of another public key type.
58
- fn translate_pk < T , E > ( & self , translate : & mut T ) -> Result < Self :: Output , TranslateErr < E > >
59
- where
60
- T : Translator < Pk , Q , E > ,
61
- {
62
- self . real_translate_pk ( translate)
63
- }
64
- }
65
-
66
49
impl < Pk : MiniscriptKey , Ctx : ScriptContext > Terminal < Pk , Ctx > {
67
- pub ( super ) fn real_translate_pk < Q , CtxQ , T , E > (
68
- & self ,
69
- t : & mut T ,
70
- ) -> Result < Terminal < Q , CtxQ > , TranslateErr < E > >
71
- where
72
- Q : MiniscriptKey ,
73
- CtxQ : ScriptContext ,
74
- T : Translator < Pk , Q , E > ,
75
- {
76
- let frag: Terminal < Q , CtxQ > = match * self {
77
- Terminal :: PkK ( ref p) => Terminal :: PkK ( t. pk ( p) ?) ,
78
- Terminal :: PkH ( ref p) => Terminal :: PkH ( t. pk ( p) ?) ,
79
- Terminal :: RawPkH ( ref p) => Terminal :: RawPkH ( * p) ,
80
- Terminal :: After ( n) => Terminal :: After ( n) ,
81
- Terminal :: Older ( n) => Terminal :: Older ( n) ,
82
- Terminal :: Sha256 ( ref x) => Terminal :: Sha256 ( t. sha256 ( x) ?) ,
83
- Terminal :: Hash256 ( ref x) => Terminal :: Hash256 ( t. hash256 ( x) ?) ,
84
- Terminal :: Ripemd160 ( ref x) => Terminal :: Ripemd160 ( t. ripemd160 ( x) ?) ,
85
- Terminal :: Hash160 ( ref x) => Terminal :: Hash160 ( t. hash160 ( x) ?) ,
86
- Terminal :: True => Terminal :: True ,
87
- Terminal :: False => Terminal :: False ,
88
- Terminal :: Alt ( ref sub) => Terminal :: Alt ( Arc :: new ( sub. real_translate_pk ( t) ?) ) ,
89
- Terminal :: Swap ( ref sub) => Terminal :: Swap ( Arc :: new ( sub. real_translate_pk ( t) ?) ) ,
90
- Terminal :: Check ( ref sub) => Terminal :: Check ( Arc :: new ( sub. real_translate_pk ( t) ?) ) ,
91
- Terminal :: DupIf ( ref sub) => Terminal :: DupIf ( Arc :: new ( sub. real_translate_pk ( t) ?) ) ,
92
- Terminal :: Verify ( ref sub) => Terminal :: Verify ( Arc :: new ( sub. real_translate_pk ( t) ?) ) ,
93
- Terminal :: NonZero ( ref sub) => Terminal :: NonZero ( Arc :: new ( sub. real_translate_pk ( t) ?) ) ,
94
- Terminal :: ZeroNotEqual ( ref sub) => {
95
- Terminal :: ZeroNotEqual ( Arc :: new ( sub. real_translate_pk ( t) ?) )
96
- }
97
- Terminal :: AndV ( ref left, ref right) => Terminal :: AndV (
98
- Arc :: new ( left. real_translate_pk ( t) ?) ,
99
- Arc :: new ( right. real_translate_pk ( t) ?) ,
100
- ) ,
101
- Terminal :: AndB ( ref left, ref right) => Terminal :: AndB (
102
- Arc :: new ( left. real_translate_pk ( t) ?) ,
103
- Arc :: new ( right. real_translate_pk ( t) ?) ,
104
- ) ,
105
- Terminal :: AndOr ( ref a, ref b, ref c) => Terminal :: AndOr (
106
- Arc :: new ( a. real_translate_pk ( t) ?) ,
107
- Arc :: new ( b. real_translate_pk ( t) ?) ,
108
- Arc :: new ( c. real_translate_pk ( t) ?) ,
109
- ) ,
110
- Terminal :: OrB ( ref left, ref right) => Terminal :: OrB (
111
- Arc :: new ( left. real_translate_pk ( t) ?) ,
112
- Arc :: new ( right. real_translate_pk ( t) ?) ,
113
- ) ,
114
- Terminal :: OrD ( ref left, ref right) => Terminal :: OrD (
115
- Arc :: new ( left. real_translate_pk ( t) ?) ,
116
- Arc :: new ( right. real_translate_pk ( t) ?) ,
117
- ) ,
118
- Terminal :: OrC ( ref left, ref right) => Terminal :: OrC (
119
- Arc :: new ( left. real_translate_pk ( t) ?) ,
120
- Arc :: new ( right. real_translate_pk ( t) ?) ,
121
- ) ,
122
- Terminal :: OrI ( ref left, ref right) => Terminal :: OrI (
123
- Arc :: new ( left. real_translate_pk ( t) ?) ,
124
- Arc :: new ( right. real_translate_pk ( t) ?) ,
125
- ) ,
126
- Terminal :: Thresh ( k, ref subs) => {
127
- let subs: Result < Vec < Arc < Miniscript < Q , _ > > > , _ > = subs
128
- . iter ( )
129
- . map ( |s| s. real_translate_pk ( t) . map ( Arc :: new) )
130
- . collect ( ) ;
131
- Terminal :: Thresh ( k, subs?)
132
- }
133
- Terminal :: Multi ( k, ref keys) => {
134
- let keys: Result < Vec < Q > , _ > = keys. iter ( ) . map ( |k| t. pk ( k) ) . collect ( ) ;
135
- Terminal :: Multi ( k, keys?)
136
- }
137
- Terminal :: MultiA ( k, ref keys) => {
138
- let keys: Result < Vec < Q > , _ > = keys. iter ( ) . map ( |k| t. pk ( k) ) . collect ( ) ;
139
- Terminal :: MultiA ( k, keys?)
140
- }
141
- } ;
142
- Ok ( frag)
143
- }
144
-
145
50
/// Substitutes raw public keys hashes with the public keys as provided by map.
146
51
pub fn substitute_raw_pkh ( & self , pk_map : & BTreeMap < hash160:: Hash , Pk > ) -> Terminal < Pk , Ctx > {
147
52
match self {
0 commit comments