@@ -46,6 +46,39 @@ fn test_create_wallet() {
4646 assert_eq ! ( wallet. next_derivation_index( KeychainKind :: External ) , 0 ) ;
4747}
4848
49+ #[ test]
50+ fn test_keychains ( ) {
51+ let wallet = build_wallet ( ) ;
52+
53+ let keychains = wallet. keychains ( ) ;
54+
55+ assert_eq ! ( keychains. len( ) , 2 ) ;
56+
57+ let external = keychains
58+ . iter ( )
59+ . find ( |keychain| keychain. keychain == KeychainKind :: External )
60+ . unwrap ( ) ;
61+ let internal = keychains
62+ . iter ( )
63+ . find ( |keychain| keychain. keychain == KeychainKind :: Internal )
64+ . unwrap ( ) ;
65+ let external_public_descriptor = external. public_descriptor . to_string ( ) ;
66+ let internal_public_descriptor = internal. public_descriptor . to_string ( ) ;
67+
68+ assert_eq ! (
69+ external_public_descriptor,
70+ wallet. public_descriptor( KeychainKind :: External )
71+ ) ;
72+ assert_eq ! (
73+ internal_public_descriptor,
74+ wallet. public_descriptor( KeychainKind :: Internal )
75+ ) ;
76+ assert ! ( external. public_descriptor. has_wildcard( ) ) ;
77+ assert ! ( internal. public_descriptor. has_wildcard( ) ) ;
78+ assert ! ( !external_public_descriptor. contains( "tprv" ) ) ;
79+ assert ! ( !internal_public_descriptor. contains( "tprv" ) ) ;
80+ }
81+
4982#[ test]
5083fn test_reveal_next_address ( ) {
5184 let wallet = build_wallet ( ) ;
@@ -69,6 +102,18 @@ fn test_create_single_wallet() {
69102
70103 assert_eq ! ( wallet. derivation_index( KeychainKind :: External ) , None ) ;
71104
105+ let keychains = wallet. keychains ( ) ;
106+
107+ assert_eq ! ( keychains. len( ) , 1 ) ;
108+ assert_eq ! ( keychains[ 0 ] . keychain, KeychainKind :: External ) ;
109+ let public_descriptor = keychains[ 0 ] . public_descriptor . to_string ( ) ;
110+ assert_eq ! (
111+ public_descriptor,
112+ wallet. public_descriptor( KeychainKind :: External )
113+ ) ;
114+ assert ! ( keychains[ 0 ] . public_descriptor. has_wildcard( ) ) ;
115+ assert ! ( !public_descriptor. contains( "tprv" ) ) ;
116+
72117 let address_info = wallet. reveal_next_address ( KeychainKind :: External ) ;
73118
74119 assert_eq ! ( address_info. index, 0 ) ;
0 commit comments