@@ -1610,6 +1610,37 @@ where
1610
1610
}
1611
1611
}
1612
1612
1613
+ /// Deterministically generate a unique name given the descriptors defining the wallet
1614
+ ///
1615
+ /// Compatible with [`wallet_name_from_descriptor`]
1616
+ pub fn wallet_name_from_descriptor < T > (
1617
+ descriptor : T ,
1618
+ change_descriptor : Option < T > ,
1619
+ network : Network ,
1620
+ secp : & SecpCtx ,
1621
+ ) -> Result < String , Error >
1622
+ where
1623
+ T : IntoWalletDescriptor ,
1624
+ {
1625
+ //TODO check descriptors contains only public keys
1626
+ let descriptor = descriptor
1627
+ . into_wallet_descriptor ( secp, network) ?
1628
+ . 0
1629
+ . to_string ( ) ;
1630
+ let mut wallet_name = get_checksum ( & descriptor[ ..descriptor. find ( '#' ) . unwrap ( ) ] ) ?;
1631
+ if let Some ( change_descriptor) = change_descriptor {
1632
+ let change_descriptor = change_descriptor
1633
+ . into_wallet_descriptor ( secp, network) ?
1634
+ . 0
1635
+ . to_string ( ) ;
1636
+ wallet_name. push_str (
1637
+ get_checksum ( & change_descriptor[ ..change_descriptor. find ( '#' ) . unwrap ( ) ] ) ?. as_str ( ) ,
1638
+ ) ;
1639
+ }
1640
+
1641
+ Ok ( wallet_name)
1642
+ }
1643
+
1613
1644
/// Return a fake wallet that appears to be funded for testing.
1614
1645
pub fn get_funded_wallet (
1615
1646
descriptor : & str ,
@@ -4091,34 +4122,3 @@ pub(crate) mod test {
4091
4122
) ;
4092
4123
}
4093
4124
}
4094
-
4095
- /// Deterministically generate a unique name given the descriptors defining the wallet
4096
- ///
4097
- /// Compatible with [`wallet_name_from_descriptor`]
4098
- pub fn wallet_name_from_descriptor < T > (
4099
- descriptor : T ,
4100
- change_descriptor : Option < T > ,
4101
- network : Network ,
4102
- secp : & SecpCtx ,
4103
- ) -> Result < String , Error >
4104
- where
4105
- T : IntoWalletDescriptor ,
4106
- {
4107
- //TODO check descriptors contains only public keys
4108
- let descriptor = descriptor
4109
- . into_wallet_descriptor ( secp, network) ?
4110
- . 0
4111
- . to_string ( ) ;
4112
- let mut wallet_name = get_checksum ( & descriptor[ ..descriptor. find ( '#' ) . unwrap ( ) ] ) ?;
4113
- if let Some ( change_descriptor) = change_descriptor {
4114
- let change_descriptor = change_descriptor
4115
- . into_wallet_descriptor ( secp, network) ?
4116
- . 0
4117
- . to_string ( ) ;
4118
- wallet_name. push_str (
4119
- get_checksum ( & change_descriptor[ ..change_descriptor. find ( '#' ) . unwrap ( ) ] ) ?. as_str ( ) ,
4120
- ) ;
4121
- }
4122
-
4123
- Ok ( wallet_name)
4124
- }
0 commit comments