@@ -282,13 +282,13 @@ mod tests {
282282 assert_eq ! ( desc, Descriptor :: from_str( & desc. to_string( ) ) . unwrap( ) ) ;
283283 assert_eq ! (
284284 self . conf_addr,
285- desc. address( secp, & elements:: AddressParams :: ELEMENTS )
285+ desc. address( secp, & elements:: AddressParams :: LIQUID )
286286 . unwrap( )
287287 . to_string( ) ,
288288 ) ;
289289 assert_eq ! (
290290 self . unconf_addr,
291- desc. unconfidential_address( & elements:: AddressParams :: ELEMENTS )
291+ desc. unconfidential_address( & elements:: AddressParams :: LIQUID )
292292 . unwrap( )
293293 . to_string( ) ,
294294 ) ;
@@ -329,78 +329,95 @@ mod tests {
329329 )
330330 . unwrap ( ) ;
331331
332+
333+ let single_ct_key = DescriptorPublicKey :: from_str (
334+ "02dce16018bbbb8e36de7b394df5b5166e9adb7498be7d881a85a09aeecf76b623" ,
335+ )
336+ . unwrap ( ) ;
337+ let single_spk_key = DefiniteDescriptorKey :: from_str (
338+ "03774eec7a3d550d18e9f89414152025b3b0ad6a342b19481f702d843cff06dfc4" ,
339+ )
340+ . unwrap ( ) ;
341+
332342 let tests = vec ! [
333343 // Bare key, P2PKH
334344 ConfidentialTest {
335345 key: Key :: Bare ( ct_key. clone( ) ) ,
336346 descriptor: crate :: Descriptor :: new_pkh( spk_key. clone( ) ) ,
337347 descriptor_str: format!( "ct({},elpkh({}))#y0lg3d5y" , ct_key, spk_key) ,
338- conf_addr: "CTEnDa5fqGccV3g3jvp4exSQwRfb6FpGchNBF4ZrAaq8ip8gvLqHCtzw1F7d7U5gYJYXBwymgEMmJjca " ,
339- unconf_addr: "2dhfebpgPWpeqPdCMMam5F2UHAgx3bbLzAg " ,
348+ conf_addr: "VTpvZZYdbhbyVF3Wa99eMjgXhfvu4LS26dR2FwMfNXq7FDX73HZEsZr3VvgH9EDgQnYK7sP6ACKSuMGw " ,
349+ unconf_addr: "Q5WHLVd78iAspUNvzuULvi2F8u693pzAqe " ,
340350 } ,
341351 // Bare key, P2WPKH
342352 ConfidentialTest {
343353 key: Key :: Bare ( ct_key. clone( ) ) ,
344354 descriptor: crate :: Descriptor :: new_wpkh( spk_key. clone( ) ) . unwrap( ) ,
345355 descriptor_str: format!( "ct({},elwpkh({}))#kt4e25qt" , ct_key, spk_key) ,
346- conf_addr: "el1qqg5s7xj7upzl7h4q2k2wj4vq63nvaktn0egqu09nqcr6d44p4evaqknpl78t02k2xqgdh9ltmfmpy9ssk7qfvrldr2dttt3ez " ,
347- unconf_addr: "ert1qtfsllr4h4t9rqyxmjl4a5asjzcgt0qyk32h3ur " ,
356+ conf_addr: "lq1qqg5s7xj7upzl7h4q2k2wj4vq63nvaktn0egqu09nqcr6d44p4evaqknpl78t02k2xqgdh9ltmfmpy9ssk7qfvghdsfr4mvr9c " ,
357+ unconf_addr: "ex1qtfsllr4h4t9rqyxmjl4a5asjzcgt0qyktcafre " ,
348358 } ,
349359 // Bare key, P2SH-WPKH
350360 ConfidentialTest {
351361 key: Key :: Bare ( ct_key. clone( ) ) ,
352362 descriptor: crate :: Descriptor :: new_sh_wpkh( spk_key. clone( ) ) . unwrap( ) ,
353363 descriptor_str: format!( "ct({},elsh(wpkh({})))#xg9r4jej" , ct_key, spk_key) ,
354- conf_addr: "AzpnREsN1RSi4JB7rAfpywmPsvGxyygmwm9o3iZcP43svg4frVW5DXvGj5yEx6mKcPtAyHgQWVikFRCM " ,
355- unconf_addr: "XKGUGskfGsNRR1Ww4ytemgBjuszohUaNgv " ,
364+ conf_addr: "VJL8znN4XjXEUKzDaYsqdzRASGLY2KHxC4N6g5b5QvrNjXfeKp83Ci9AW2a8QzbZjpEffoy4PEywpLAZ " ,
365+ unconf_addr: "Gq6kpy2HiNgsyQVpBsuBKAPRFiir23qKro " ,
356366 } ,
357367 // Bare key, P2TR
358368 ConfidentialTest {
359369 key: Key :: Bare ( ct_key. clone( ) ) ,
360370 descriptor: crate :: Descriptor :: new_tr( spk_key. clone( ) , None ) . unwrap( ) ,
361371 descriptor_str: format!( "ct({},eltr({}))#c0pjjxyw" , ct_key, spk_key) ,
362- conf_addr: "el1pq0nsl8du3gsuk7r90sgm78259mmv6mt9d4yvj30zr3u052ufs5meuc2tuvwx7k7g9kvhhpux07vqpm3qjj8uwdj94650265ustv0xy8z2pc847zht4k0 " ,
363- unconf_addr: "ert1pv997x8r0t0yzmxtms7r8lxqqacsffr78xez6a284d2wg9k8nzr3q3s6527 " ,
372+ conf_addr: "lq1pq0nsl8du3gsuk7r90sgm78259mmv6mt9d4yvj30zr3u052ufs5meuc2tuvwx7k7g9kvhhpux07vqpm3qjj8uwdj94650265ustv0xy8zrdxdfgp8g9pl " ,
373+ unconf_addr: "ex1pv997x8r0t0yzmxtms7r8lxqqacsffr78xez6a284d2wg9k8nzr3qxa9kvf " ,
364374 } ,
365375 // SLIP77, P2PKH
366376 ConfidentialTest {
367377 key: Key :: Slip77 ( slip77:: MasterBlindingKey :: from_seed( b"abcd" ) ) ,
368378 descriptor: crate :: Descriptor :: new_pkh( spk_key. clone( ) ) ,
369379 descriptor_str: format!( "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elpkh({}))#hw2glz99" , spk_key) ,
370- conf_addr: "CTEvn67jjJXDr3aDCZypTCJc6XHZ7ATyd89oXfNLQt1G2omPUpPkHA6zUAGPGF2YH4RnWfWut2f4dRSd " ,
371- unconf_addr: "2dhfebpgPWpeqPdCMMam5F2UHAgx3bbLzAg " ,
380+ conf_addr: "VTq585ahVjWarEwg2nKQ9yYirmYs5F5j74CeYYA9cq1EZD9obm7hwpx6xqq3J1AY9YRaSavEMzYfr6t7 " ,
381+ unconf_addr: "Q5WHLVd78iAspUNvzuULvi2F8u693pzAqe " ,
372382 } ,
373383 // SLIP77, P2WPKH
374384 ConfidentialTest {
375385 key: Key :: Slip77 ( slip77:: MasterBlindingKey :: from_seed( b"abcd" ) ) ,
376386 descriptor: crate :: Descriptor :: new_wpkh( spk_key. clone( ) ) . unwrap( ) ,
377387 descriptor_str: format!( "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elwpkh({}))#545pl285" , spk_key) ,
378- conf_addr: "el1qqdx5wnttttzulcs6ujlg9pfts6mp3r4sdwg5ekdej566n5wxzk88vknpl78t02k2xqgdh9ltmfmpy9ssk7qfvge347y58xukt " ,
379- unconf_addr: "ert1qtfsllr4h4t9rqyxmjl4a5asjzcgt0qyk32h3ur " ,
388+ conf_addr: "lq1qqdx5wnttttzulcs6ujlg9pfts6mp3r4sdwg5ekdej566n5wxzk88vknpl78t02k2xqgdh9ltmfmpy9ssk7qfvr33xa22hpw23 " ,
389+ unconf_addr: "ex1qtfsllr4h4t9rqyxmjl4a5asjzcgt0qyktcafre " ,
380390 } ,
381391 // SLIP77, P2SH
382392 ConfidentialTest {
383393 key: Key :: Slip77 ( slip77:: MasterBlindingKey :: from_seed( b"abcd" ) ) ,
384394 descriptor: crate :: Descriptor :: new_sh_wpkh( spk_key. clone( ) ) . unwrap( ) ,
385395 descriptor_str: format!( "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),elsh(wpkh({})))#m30vswxr" , spk_key) ,
386- conf_addr: "AzptgrWR3xVX6Qg8mbkyZiESb6C9uy8VCUdCCmw7UtceiF5H8PdB6933YDT7vHsevK1yFmxfajdaedCH " ,
387- unconf_addr: "XKGUGskfGsNRR1Ww4ytemgBjuszohUaNgv " ,
396+ conf_addr: "VJLFGQ17aGa3WSVEVyxzDktD9SFixJjfSmqVq8xaWmR9X6gFbiF95KFwKA41PBhu3jNTxJFKTUphHL8J " ,
397+ unconf_addr: "Gq6kpy2HiNgsyQVpBsuBKAPRFiir23qKro " ,
388398 } ,
389399 // SLIP77, P2TR
390400 ConfidentialTest {
391401 key: Key :: Slip77 ( slip77:: MasterBlindingKey :: from_seed( b"abcd" ) ) ,
392402 descriptor: crate :: Descriptor :: new_tr( spk_key. clone( ) , None ) . unwrap( ) ,
393403 descriptor_str: format!( "ct(slip77(b2396b3ee20509cdb64fe24180a14a72dbd671728eaa49bac69d2bdecb5f5a04),eltr({}))#n3v4t5cs" , spk_key) ,
394- conf_addr: "el1pq26fndnz8ef6umlz6e2755sm6j5jwxv3tdt2295mr4mx6ux0uf8vcc2tuvwx7k7g9kvhhpux07vqpm3qjj8uwdj94650265ustv0xy8zwzhhycxfhdrm" ,
395- unconf_addr: "ert1pv997x8r0t0yzmxtms7r8lxqqacsffr78xez6a284d2wg9k8nzr3q3s6527" ,
404+ conf_addr: "lq1pq26fndnz8ef6umlz6e2755sm6j5jwxv3tdt2295mr4mx6ux0uf8vcc2tuvwx7k7g9kvhhpux07vqpm3qjj8uwdj94650265ustv0xy8z8wfacw9e5a5t" ,
405+ unconf_addr: "ex1pv997x8r0t0yzmxtms7r8lxqqacsffr78xez6a284d2wg9k8nzr3qxa9kvf" ,
406+ } ,
407+ ConfidentialTest {
408+ key: Key :: Bare ( single_ct_key) ,
409+ descriptor: crate :: Descriptor :: new_wpkh( single_spk_key) . unwrap( ) ,
410+ descriptor_str: format!( "ct(02dce16018bbbb8e36de7b394df5b5166e9adb7498be7d881a85a09aeecf76b623,elwpkh(03774eec7a3d550d18e9f89414152025b3b0ad6a342b19481f702d843cff06dfc4))#h5e0p6m9" ) ,
411+ conf_addr: "lq1qq0r6pegudzm0tzpszelc34qjln4fdxawgwmgnza63wwpzdy6jrm0grmqvvk2ce5ksnxcs9ecgtnryt7xg3406y5ccl0k2glns" ,
412+ unconf_addr: "ex1qpasxxt9vv6tgfnvgzuuy9e3j9lryg6hawrval4" ,
396413 } ,
397414 ] ;
398415
399416 for test in & tests {
400417 test. check ( & secp) ;
401418 }
402419 // Uncomment to regenerate test vectors; to see the output, run
403- // cargo test confidential::tests:; confidential_descriptor -- --nocapture
420+ // cargo test confidential::tests:: confidential_descriptor -- --nocapture
404421 /*
405422 for (n, test) in tests.iter().enumerate() {
406423 test.output_elip_test_vector(n + 1);
@@ -473,8 +490,8 @@ mod tests {
473490 key : Key :: View ( view_key. clone ( ) ) ,
474491 descriptor : crate :: Descriptor :: new_wpkh ( spk_key. clone ( ) ) . unwrap ( ) ,
475492 descriptor_str : format ! ( "ct({},elwpkh({}))#j95xktq7" , view_key, spk_key) ,
476- conf_addr : "el1qq2r0pdvcknjpwev96qu9975alzqs78cvsut5ju82t7tv8d645dgmwknpl78t02k2xqgdh9ltmfmpy9ssk7qfvq78z9wukacu0 " ,
477- unconf_addr : "ert1qtfsllr4h4t9rqyxmjl4a5asjzcgt0qyk32h3ur " ,
493+ conf_addr : "lq1qq2r0pdvcknjpwev96qu9975alzqs78cvsut5ju82t7tv8d645dgmwknpl78t02k2xqgdh9ltmfmpy9ssk7qfvtk83xqzx62q4 " ,
494+ unconf_addr : "ex1qtfsllr4h4t9rqyxmjl4a5asjzcgt0qyktcafre " ,
478495 } ;
479496 test. check ( & secp) ;
480497
@@ -483,8 +500,8 @@ mod tests {
483500 key : Key :: Bare ( ct_key. clone ( ) ) ,
484501 descriptor : crate :: Descriptor :: new_wpkh ( spk_key. clone ( ) ) . unwrap ( ) ,
485502 descriptor_str : format ! ( "ct({},elwpkh({}))#elmfpmp9" , ct_key, spk_key) ,
486- conf_addr : "el1qq2r0pdvcknjpwev96qu9975alzqs78cvsut5ju82t7tv8d645dgmwknpl78t02k2xqgdh9ltmfmpy9ssk7qfvq78z9wukacu0 " ,
487- unconf_addr : "ert1qtfsllr4h4t9rqyxmjl4a5asjzcgt0qyk32h3ur " ,
503+ conf_addr : "lq1qq2r0pdvcknjpwev96qu9975alzqs78cvsut5ju82t7tv8d645dgmwknpl78t02k2xqgdh9ltmfmpy9ssk7qfvtk83xqzx62q4 " ,
504+ unconf_addr : "ex1qtfsllr4h4t9rqyxmjl4a5asjzcgt0qyktcafre " ,
488505 } ;
489506 test. check ( & secp) ;
490507 }
@@ -495,17 +512,17 @@ mod tests {
495512 let view_key = "c25deb86fa11e49d651d7eae27c220ef930fbd86ea023eebfa73e54875647963" ;
496513 let ct_key = "0286fc9a38e765d955e9b0bcc18fa9ae81b0c893e2dd1ef5542a9c73780a086b90" ;
497514 let pk = "021a8fb6bd5a653b021b98a2a785725b8ddacfe3687bc043aa7f4d25d3a48d40b5" ;
498- let addr_conf = "el1qq265u4g3k3m3qpyxjwpdrtnm293wuxgvs9xzmzcs2ck0mv5rx23w4d7xfsednsmmxrszfe7s9rs0c6cvf3dfyqwa4jj40uffq " ;
499- let addr_unconf = "ert1qklrycvkecdanpcpyulgz3c8udvxyck5jkzxddw " ;
515+ let addr_conf = "lq1qq265u4g3k3m3qpyxjwpdrtnm293wuxgvs9xzmzcs2ck0mv5rx23w4d7xfsednsmmxrszfe7s9rs0c6cvf3dfytxax3utlmm46 " ;
516+ let addr_unconf = "ex1qklrycvkecdanpcpyulgz3c8udvxyck5jvsv4j5 " ;
500517
501518 for desc_str in [
502519 format ! ( "ct({view_key},elwpkh({pk}))#c2kx9zll" ) ,
503520 format ! ( "ct({ct_key},elwpkh({pk}))#m5mvyh29" ) ,
504521 ] {
505522 let desc = Descriptor :: < DefiniteDescriptorKey > :: from_str ( & desc_str) . unwrap ( ) ;
506523 assert_eq ! ( desc. to_string( ) , desc_str) ;
507- assert_eq ! ( addr_conf, & desc. address( & secp, & elements:: AddressParams :: ELEMENTS ) . unwrap( ) . to_string( ) ) ;
508- assert_eq ! ( addr_unconf, & desc. unconfidential_address( & elements:: AddressParams :: ELEMENTS ) . unwrap( ) . to_string( ) ) ;
524+ assert_eq ! ( addr_conf, & desc. address( & secp, & elements:: AddressParams :: LIQUID ) . unwrap( ) . to_string( ) ) ;
525+ assert_eq ! ( addr_unconf, & desc. unconfidential_address( & elements:: AddressParams :: LIQUID ) . unwrap( ) . to_string( ) ) ;
509526 }
510527 }
511528
@@ -525,15 +542,15 @@ mod tests {
525542 #[ test]
526543 fn descriptor_wildcard ( ) {
527544 let secp = secp256k1_zkp:: Secp256k1 :: new ( ) ;
528- let params = & elements:: AddressParams :: ELEMENTS ;
545+ let params = & elements:: AddressParams :: LIQUID ;
529546
530547 let xprv = "xprv9s21ZrQH143K28NgQ7bHCF61hy9VzwquBZvpzTwXLsbmQLRJ6iV9k2hUBRt5qzmBaSpeMj5LdcsHaXJvM7iFEivPryRcL8irN7Na9p65UUb" ;
531548 let xpub = "xpub661MyMwAqRbcEcT9W98HZP2kFzyzQQZkYnrRnrM8uD8kH8kSeFoQHq1x2iihLgC6PXGy5LrjCL66uSNhJ8pwjfx2rMUTLWuRMns2EG9xnjs" ;
532549 let desc_view_str = format ! ( "ct({}/*,elwpkh({}/*))#wk8ltq6h" , xprv, xpub) ;
533550 let desc_bare_str = format ! ( "ct({}/*,elwpkh({}/*))#zzac2dpf" , xpub, xpub) ;
534551 let index = 1 ;
535- let conf_addr = "el1qqf6690fpw2y00hv5a84zsydjgztg2089d5xnll4k4cstzn63uvgudd907qpvlvvwd5ym9gx7j0v46elf23kfxunucm6ejjyk0 " ;
536- let unconf_addr = "ert1qkjhlqqk0kx8x6zdj5r0f8k2avl54gmyn7qjk2k " ;
552+ let conf_addr = "lq1qqf6690fpw2y00hv5a84zsydjgztg2089d5xnll4k4cstzn63uvgudd907qpvlvvwd5ym9gx7j0v46elf23kfxhmutc58z4k24 " ;
553+ let unconf_addr = "ex1qkjhlqqk0kx8x6zdj5r0f8k2avl54gmynyjcw4v " ;
537554
538555 let desc_view = Descriptor :: < DescriptorPublicKey > :: from_str ( & desc_view_str) . unwrap ( ) ;
539556 let desc_bare = Descriptor :: < DescriptorPublicKey > :: from_str ( & desc_bare_str) . unwrap ( ) ;
0 commit comments