@@ -146,7 +146,7 @@ mod tests {
146146 use elements:: Address ;
147147
148148 use super :: * ;
149- use crate :: NoExt ;
149+ use crate :: { DefiniteDescriptorKey , NoExt } ;
150150
151151 #[ test]
152152 fn bare_addr_to_confidential ( ) {
@@ -168,8 +168,8 @@ mod tests {
168168 }
169169
170170 struct ConfidentialTest {
171- key : Key < secp256k1_zkp :: PublicKey > ,
172- descriptor : crate :: Descriptor < secp256k1_zkp :: PublicKey , NoExt > ,
171+ key : Key < DefiniteDescriptorKey > ,
172+ descriptor : crate :: Descriptor < DefiniteDescriptorKey , NoExt > ,
173173 descriptor_str : String ,
174174 conf_addr : & ' static str ,
175175 unconf_addr : & ' static str ,
@@ -180,8 +180,8 @@ mod tests {
180180 & self ,
181181 secp : & secp256k1_zkp:: Secp256k1 < C > ,
182182 ) {
183- let desc: Descriptor < secp256k1_zkp :: PublicKey , NoExt > = Descriptor {
184- key : self . key ,
183+ let desc: Descriptor < DefiniteDescriptorKey , NoExt > = Descriptor {
184+ key : self . key . clone ( ) ,
185185 descriptor : self . descriptor . clone ( ) ,
186186 } ;
187187 assert_eq ! ( self . descriptor_str, desc. to_string( ) ) ;
@@ -207,7 +207,7 @@ mod tests {
207207 index, self . descriptor_str
208208 ) ;
209209 match self . key {
210- Key :: Bare ( pk) => println ! ( "** Blinding key: <code>{}</code>" , pk) ,
210+ Key :: Bare ( ref pk) => println ! ( "** Blinding key: <code>{}</code>" , pk) ,
211211 Key :: Slip77 ( mbk) => println ! ( "** SLIP77 master blinding key: <code>{}</code>" , mbk) ,
212212 }
213213 println ! ( "** Confidential address: <code>{}</code>" , self . conf_addr) ;
@@ -224,80 +224,80 @@ mod tests {
224224 let secp = secp256k1_zkp:: Secp256k1 :: new ( ) ;
225225
226226 // CT key used for bare keys
227- let ct_key = secp256k1_zkp :: PublicKey :: from_str (
228- "02dce16018bbbb8e36de7b394df5b5166e9adb7498be7d881a85a09aeecf76b623 " ,
227+ let ct_key = DefiniteDescriptorKey :: from_str (
228+ "xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL " ,
229229 )
230230 . unwrap ( ) ;
231231 // Auxiliary key to create scriptpubkeys from
232- let spk_key = secp256k1_zkp :: PublicKey :: from_str (
233- "03774eec7a3d550d18e9f89414152025b3b0ad6a342b19481f702d843cff06dfc4 " ,
232+ let spk_key = DefiniteDescriptorKey :: from_str (
233+ "xpub69H7F5d8KSRgmmdJg2KhpAK8SR3DjMwAdkxj3ZuxV27CprR9LgpeyGmXUbC6wb7ERfvrnKZjXoUmmDznezpbZb7ap6r1D3tgFxHmwMkQTPH " ,
234234 )
235235 . unwrap ( ) ;
236236
237237 let tests = vec ! [
238238 // Bare key, P2PKH
239239 ConfidentialTest {
240- key: Key :: Bare ( ct_key) ,
241- descriptor: crate :: Descriptor :: new_pkh( spk_key) ,
242- descriptor_str: format!( "ct({},elpkh({}))#y6sgetu5 " , ct_key, spk_key) ,
243- conf_addr: "CTEp9vcs3eU7zQoyrAqeu9LwdcB8QtC2igYSWt7dhaEQvDwVCceLHdLrREAeYrhC5Jz9Wedn3JyxMzpo " ,
244- unconf_addr: "2daq3zWYvigZd3i8VmBnFrZd4DPT9iV94EP " ,
240+ key: Key :: Bare ( ct_key. clone ( ) ) ,
241+ descriptor: crate :: Descriptor :: new_pkh( spk_key. clone ( ) ) ,
242+ descriptor_str: format!( "ct({},elpkh({}))#y0lg3d5y " , ct_key, spk_key) ,
243+ conf_addr: "CTEnDa5fqGccV3g3jvp4exSQwRfb6FpGchNBF4ZrAaq8ip8gvLqHCtzw1F7d7U5gYJYXBwymgEMmJjca " ,
244+ unconf_addr: "2dhfebpgPWpeqPdCMMam5F2UHAgx3bbLzAg " ,
245245 } ,
246246 // Bare key, P2WPKH
247247 ConfidentialTest {
248- key: Key :: Bare ( ct_key) ,
249- descriptor: crate :: Descriptor :: new_wpkh( spk_key) . unwrap( ) ,
250- descriptor_str: format!( "ct({},elwpkh({}))#h5e0p6m9 " , ct_key, spk_key) ,
251- conf_addr: "el1qq0r6pegudzm0tzpszelc34qjln4fdxawgwmgnza63wwpzdy6jrm0grmqvvk2ce5ksnxcs9ecgtnryt7xg34060uctupg60d02 " ,
252- unconf_addr: "ert1qpasxxt9vv6tgfnvgzuuy9e3j9lryg6ha53x9q0 " ,
248+ key: Key :: Bare ( ct_key. clone ( ) ) ,
249+ descriptor: crate :: Descriptor :: new_wpkh( spk_key. clone ( ) ) . unwrap( ) ,
250+ descriptor_str: format!( "ct({},elwpkh({}))#kt4e25qt " , ct_key, spk_key) ,
251+ conf_addr: "el1qqg5s7xj7upzl7h4q2k2wj4vq63nvaktn0egqu09nqcr6d44p4evaqknpl78t02k2xqgdh9ltmfmpy9ssk7qfvrldr2dttt3ez " ,
252+ unconf_addr: "ert1qtfsllr4h4t9rqyxmjl4a5asjzcgt0qyk32h3ur " ,
253253 } ,
254254 // Bare key, P2SH-WPKH
255255 ConfidentialTest {
256- key: Key :: Bare ( ct_key) ,
257- descriptor: crate :: Descriptor :: new_sh_wpkh( spk_key) . unwrap( ) ,
258- descriptor_str: format!( "ct({},elsh(wpkh({})))#3kvhe0a8 " , ct_key, spk_key) ,
259- conf_addr: "AzpsK7uqP1KVEMfDQvBXYUkpHmFagD3W4vaLe1X7uy8MS6nj41kNYnaexuXgx14PcbNnYAqBdCSWcbga " ,
260- unconf_addr: "XQ7ffnJkhMwj1H8Ma6N1vcU9mqAa96wB9w " ,
256+ key: Key :: Bare ( ct_key. clone ( ) ) ,
257+ descriptor: crate :: Descriptor :: new_sh_wpkh( spk_key. clone ( ) ) . unwrap( ) ,
258+ descriptor_str: format!( "ct({},elsh(wpkh({})))#xg9r4jej " , ct_key, spk_key) ,
259+ conf_addr: "AzpnREsN1RSi4JB7rAfpywmPsvGxyygmwm9o3iZcP43svg4frVW5DXvGj5yEx6mKcPtAyHgQWVikFRCM " ,
260+ unconf_addr: "XKGUGskfGsNRR1Ww4ytemgBjuszohUaNgv " ,
261261 } ,
262262 // Bare key, P2TR
263263 ConfidentialTest {
264- key: Key :: Bare ( ct_key) ,
265- descriptor: crate :: Descriptor :: new_tr( spk_key, None ) . unwrap( ) ,
266- descriptor_str: format!( "ct({},eltr({}))#ytq9w7f3 " , ct_key, spk_key) ,
267- conf_addr: "el1pqw5c43qvxyvj52ua7crx7tv62zca5356rsx439dqkyyqyavpmq2hz6r5jd0rkpzukq6hd965kepcmwtxvg0fh4ak4f636gv25yky23ce6z5pdt3ksqn2 " ,
268- unconf_addr: "ert1pdp6fxh3mq3wtqdtkja2tvsudh9nxy85m67m25agayx92ztz9guvs9wr5lg " ,
264+ key: Key :: Bare ( ct_key. clone ( ) ) ,
265+ descriptor: crate :: Descriptor :: new_tr( spk_key. clone ( ) , None ) . unwrap( ) ,
266+ descriptor_str: format!( "ct({},eltr({}))#c0pjjxyw " , ct_key, spk_key) ,
267+ conf_addr: "el1pq0nsl8du3gsuk7r90sgm78259mmv6mt9d4yvj30zr3u052ufs5meuc2tuvwx7k7g9kvhhpux07vqpm3qjj8uwdj94650265ustv0xy8z2pc847zht4k0 " ,
268+ unconf_addr: "ert1pv997x8r0t0yzmxtms7r8lxqqacsffr78xez6a284d2wg9k8nzr3q3s6527 " ,
269269 } ,
270270 // SLIP77, P2PKH
271271 ConfidentialTest {
272272 key: Key :: Slip77 ( slip77:: MasterBlindingKey :: from_seed( b"abcd" ) ) ,
273- descriptor: crate :: Descriptor :: new_pkh( spk_key) ,
274- descriptor_str: "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elpkh(03774eec7a3d550d18e9f89414152025b3b0ad6a342b19481f702d843cff06dfc4 ))#8cdjnvav" . into ( ) ,
275- conf_addr: "CTEkBfH2b6fyhfpn2iW1aoLFrC9DHooTsa7ouxXDuKVjLNF3GwJdgqQn63GriXDvTs7ntSU8NwXGrLKg " ,
276- unconf_addr: "2daq3zWYvigZd3i8VmBnFrZd4DPT9iV94EP " ,
273+ descriptor: crate :: Descriptor :: new_pkh( spk_key. clone ( ) ) ,
274+ descriptor_str: format! ( "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elpkh({} ))#hw2glz99" , spk_key ) ,
275+ conf_addr: "CTEvn67jjJXDr3aDCZypTCJc6XHZ7ATyd89oXfNLQt1G2omPUpPkHA6zUAGPGF2YH4RnWfWut2f4dRSd " ,
276+ unconf_addr: "2dhfebpgPWpeqPdCMMam5F2UHAgx3bbLzAg " ,
277277 } ,
278278 // SLIP77, P2WPKH
279279 ConfidentialTest {
280280 key: Key :: Slip77 ( slip77:: MasterBlindingKey :: from_seed( b"abcd" ) ) ,
281- descriptor: crate :: Descriptor :: new_wpkh( spk_key) . unwrap( ) ,
282- descriptor_str: "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elwpkh(03774eec7a3d550d18e9f89414152025b3b0ad6a342b19481f702d843cff06dfc4 ))#z5dnzfhk" . into ( ) ,
283- conf_addr: "el1qqva2r6mg26rr86u9t3qz2amya9v3ckks9ztcxgur6y6pktfa26d2qrmqvvk2ce5ksnxcs9ecgtnryt7xg3406z5cvgcqsgt35 " ,
284- unconf_addr: "ert1qpasxxt9vv6tgfnvgzuuy9e3j9lryg6ha53x9q0 " ,
281+ descriptor: crate :: Descriptor :: new_wpkh( spk_key. clone ( ) ) . unwrap( ) ,
282+ descriptor_str: format! ( "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elwpkh({} ))#545pl285" , spk_key ) ,
283+ conf_addr: "el1qqdx5wnttttzulcs6ujlg9pfts6mp3r4sdwg5ekdej566n5wxzk88vknpl78t02k2xqgdh9ltmfmpy9ssk7qfvge347y58xukt " ,
284+ unconf_addr: "ert1qtfsllr4h4t9rqyxmjl4a5asjzcgt0qyk32h3ur " ,
285285 } ,
286286 // SLIP77, P2SH
287287 ConfidentialTest {
288288 key: Key :: Slip77 ( slip77:: MasterBlindingKey :: from_seed( b"abcd" ) ) ,
289- descriptor: crate :: Descriptor :: new_sh_wpkh( spk_key) . unwrap( ) ,
290- descriptor_str: "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elsh(wpkh(03774eec7a3d550d18e9f89414152025b3b0ad6a342b19481f702d843cff06dfc4 )))#qgjmm4as" . into ( ) ,
291- conf_addr: "AzprjJt3poXAJWLmanTHYB2zrkUMXiiVyCRhDS7VRRaXUsRqeCMi3vKe4YufizpYDyzvQFLsvjfMeLMD " ,
292- unconf_addr: "XQ7ffnJkhMwj1H8Ma6N1vcU9mqAa96wB9w " ,
289+ descriptor: crate :: Descriptor :: new_sh_wpkh( spk_key. clone ( ) ) . unwrap( ) ,
290+ descriptor_str: format! ( "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elsh(wpkh({} )))#m30vswxr" , spk_key ) ,
291+ conf_addr: "AzptgrWR3xVX6Qg8mbkyZiESb6C9uy8VCUdCCmw7UtceiF5H8PdB6933YDT7vHsevK1yFmxfajdaedCH " ,
292+ unconf_addr: "XKGUGskfGsNRR1Ww4ytemgBjuszohUaNgv " ,
293293 } ,
294294 // SLIP77, P2TR
295295 ConfidentialTest {
296296 key: Key :: Slip77 ( slip77:: MasterBlindingKey :: from_seed( b"abcd" ) ) ,
297- descriptor: crate :: Descriptor :: new_tr( spk_key, None ) . unwrap( ) ,
298- descriptor_str: "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),eltr(03774eec7a3d550d18e9f89414152025b3b0ad6a342b19481f702d843cff06dfc4 ))#65xky8c4" . into ( ) ,
299- conf_addr: "el1pqgkj53t6cpqytk65s7dygws4a6hny3rrev7rw3r5gl7ymnjdqtt9k6r5jd0rkpzukq6hd965kepcmwtxvg0fh4ak4f636gv25yky23cehlfsszhd84mc " ,
300- unconf_addr: "ert1pdp6fxh3mq3wtqdtkja2tvsudh9nxy85m67m25agayx92ztz9guvs9wr5lg " ,
297+ descriptor: crate :: Descriptor :: new_tr( spk_key. clone ( ) , None ) . unwrap( ) ,
298+ descriptor_str: format! ( "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),eltr({} ))#n3v4t5cs" , spk_key ) ,
299+ conf_addr: "el1pq26fndnz8ef6umlz6e2755sm6j5jwxv3tdt2295mr4mx6ux0uf8vcc2tuvwx7k7g9kvhhpux07vqpm3qjj8uwdj94650265ustv0xy8zwzhhycxfhdrm " ,
300+ unconf_addr: "ert1pv997x8r0t0yzmxtms7r8lxqqacsffr78xez6a284d2wg9k8nzr3q3s6527 " ,
301301 } ,
302302 ] ;
303303
@@ -351,7 +351,7 @@ mod tests {
351351 */
352352
353353 for bad_str in bad_strs {
354- let err = Descriptor :: < secp256k1_zkp :: PublicKey > :: from_str ( bad_str. 0 ) . unwrap_err ( ) ;
354+ let err = Descriptor :: < DefiniteDescriptorKey > :: from_str ( bad_str. 0 ) . unwrap_err ( ) ;
355355 assert_eq ! ( bad_str. 1 , err. to_string( ) ) ;
356356 }
357357 }
0 commit comments