@@ -140,6 +140,8 @@ pub struct AddressInfo {
140
140
pub index : u32 ,
141
141
/// Address
142
142
pub address : Address ,
143
+ /// Type of keychain
144
+ pub keychain : KeychainKind ,
143
145
}
144
146
145
147
impl Deref for AddressInfo {
@@ -246,6 +248,7 @@ where
246
248
. map ( |address| AddressInfo {
247
249
address,
248
250
index : incremented_index,
251
+ keychain,
249
252
} )
250
253
. map_err ( |_| Error :: ScriptDoesntHaveAddressForm )
251
254
}
@@ -276,6 +279,7 @@ where
276
279
. map ( |address| AddressInfo {
277
280
address,
278
281
index : current_index,
282
+ keychain,
279
283
} )
280
284
. map_err ( |_| Error :: ScriptDoesntHaveAddressForm )
281
285
}
@@ -286,7 +290,11 @@ where
286
290
self . get_descriptor_for_keychain ( keychain)
287
291
. as_derived ( index, & self . secp )
288
292
. address ( self . network )
289
- . map ( |address| AddressInfo { index, address } )
293
+ . map ( |address| AddressInfo {
294
+ index,
295
+ address,
296
+ keychain,
297
+ } )
290
298
. map_err ( |_| Error :: ScriptDoesntHaveAddressForm )
291
299
}
292
300
@@ -298,7 +306,11 @@ where
298
306
self . get_descriptor_for_keychain ( keychain)
299
307
. as_derived ( index, & self . secp )
300
308
. address ( self . network )
301
- . map ( |address| AddressInfo { index, address } )
309
+ . map ( |address| AddressInfo {
310
+ index,
311
+ address,
312
+ keychain,
313
+ } )
302
314
. map_err ( |_| Error :: ScriptDoesntHaveAddressForm )
303
315
}
304
316
@@ -3917,6 +3929,7 @@ pub(crate) mod test {
3917
3929
AddressInfo {
3918
3930
index: 0 ,
3919
3931
address: Address :: from_str( "tb1q6yn66vajcctph75pvylgkksgpp6nq04ppwct9a" ) . unwrap( ) ,
3932
+ keychain: KeychainKind :: External ,
3920
3933
}
3921
3934
) ;
3922
3935
@@ -3925,7 +3938,8 @@ pub(crate) mod test {
3925
3938
wallet. get_address( New ) . unwrap( ) ,
3926
3939
AddressInfo {
3927
3940
index: 1 ,
3928
- address: Address :: from_str( "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7" ) . unwrap( )
3941
+ address: Address :: from_str( "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7" ) . unwrap( ) ,
3942
+ keychain: KeychainKind :: External ,
3929
3943
}
3930
3944
) ;
3931
3945
@@ -3934,7 +3948,8 @@ pub(crate) mod test {
3934
3948
wallet. get_address( Peek ( 25 ) ) . unwrap( ) ,
3935
3949
AddressInfo {
3936
3950
index: 25 ,
3937
- address: Address :: from_str( "tb1qsp7qu0knx3sl6536dzs0703u2w2ag6ppl9d0c2" ) . unwrap( )
3951
+ address: Address :: from_str( "tb1qsp7qu0knx3sl6536dzs0703u2w2ag6ppl9d0c2" ) . unwrap( ) ,
3952
+ keychain: KeychainKind :: External ,
3938
3953
}
3939
3954
) ;
3940
3955
@@ -3943,7 +3958,8 @@ pub(crate) mod test {
3943
3958
wallet. get_address( New ) . unwrap( ) ,
3944
3959
AddressInfo {
3945
3960
index: 2 ,
3946
- address: Address :: from_str( "tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2" ) . unwrap( )
3961
+ address: Address :: from_str( "tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2" ) . unwrap( ) ,
3962
+ keychain: KeychainKind :: External ,
3947
3963
}
3948
3964
) ;
3949
3965
@@ -3952,7 +3968,8 @@ pub(crate) mod test {
3952
3968
wallet. get_address( Reset ( 1 ) ) . unwrap( ) ,
3953
3969
AddressInfo {
3954
3970
index: 1 ,
3955
- address: Address :: from_str( "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7" ) . unwrap( )
3971
+ address: Address :: from_str( "tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7" ) . unwrap( ) ,
3972
+ keychain: KeychainKind :: External ,
3956
3973
}
3957
3974
) ;
3958
3975
@@ -3961,7 +3978,8 @@ pub(crate) mod test {
3961
3978
wallet. get_address( New ) . unwrap( ) ,
3962
3979
AddressInfo {
3963
3980
index: 2 ,
3964
- address: Address :: from_str( "tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2" ) . unwrap( )
3981
+ address: Address :: from_str( "tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2" ) . unwrap( ) ,
3982
+ keychain: KeychainKind :: External ,
3965
3983
}
3966
3984
) ;
3967
3985
}
0 commit comments