pub index: u32,
/// Address
pub address: Address,
+ /// Type of keychain
+ pub keychain: KeychainKind,
}
impl Deref for AddressInfo {
.map(|address| AddressInfo {
address,
index: incremented_index,
+ keychain,
})
.map_err(|_| Error::ScriptDoesntHaveAddressForm)
}
.map(|address| AddressInfo {
address,
index: current_index,
+ keychain,
})
.map_err(|_| Error::ScriptDoesntHaveAddressForm)
}
self.get_descriptor_for_keychain(keychain)
.as_derived(index, &self.secp)
.address(self.network)
- .map(|address| AddressInfo { index, address })
+ .map(|address| AddressInfo {
+ index,
+ address,
+ keychain,
+ })
.map_err(|_| Error::ScriptDoesntHaveAddressForm)
}
self.get_descriptor_for_keychain(keychain)
.as_derived(index, &self.secp)
.address(self.network)
- .map(|address| AddressInfo { index, address })
+ .map(|address| AddressInfo {
+ index,
+ address,
+ keychain,
+ })
.map_err(|_| Error::ScriptDoesntHaveAddressForm)
}
AddressInfo {
index: 0,
address: Address::from_str("tb1q6yn66vajcctph75pvylgkksgpp6nq04ppwct9a").unwrap(),
+ keychain: KeychainKind::External,
}
);
wallet.get_address(New).unwrap(),
AddressInfo {
index: 1,
- address: Address::from_str("tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7").unwrap()
+ address: Address::from_str("tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7").unwrap(),
+ keychain: KeychainKind::External,
}
);
wallet.get_address(Peek(25)).unwrap(),
AddressInfo {
index: 25,
- address: Address::from_str("tb1qsp7qu0knx3sl6536dzs0703u2w2ag6ppl9d0c2").unwrap()
+ address: Address::from_str("tb1qsp7qu0knx3sl6536dzs0703u2w2ag6ppl9d0c2").unwrap(),
+ keychain: KeychainKind::External,
}
);
wallet.get_address(New).unwrap(),
AddressInfo {
index: 2,
- address: Address::from_str("tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2").unwrap()
+ address: Address::from_str("tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2").unwrap(),
+ keychain: KeychainKind::External,
}
);
wallet.get_address(Reset(1)).unwrap(),
AddressInfo {
index: 1,
- address: Address::from_str("tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7").unwrap()
+ address: Address::from_str("tb1q4er7kxx6sssz3q7qp7zsqsdx4erceahhax77d7").unwrap(),
+ keychain: KeychainKind::External,
}
);
wallet.get_address(New).unwrap(),
AddressInfo {
index: 2,
- address: Address::from_str("tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2").unwrap()
+ address: Address::from_str("tb1qzntf2mqex4ehwkjlfdyy3ewdlk08qkvkvrz7x2").unwrap(),
+ keychain: KeychainKind::External,
}
);
}
.unwrap();
assert_eq!(
- wallet.get_address(AddressIndex::New).unwrap().address,
- Address::from_str("bcrt1qkmvk2nadgplmd57ztld8nf8v2yxkzmdvwtjf8s").unwrap()
+ wallet.get_address(AddressIndex::New).unwrap(),
+ AddressInfo {
+ index: 0,
+ address: Address::from_str("bcrt1qkmvk2nadgplmd57ztld8nf8v2yxkzmdvwtjf8s").unwrap(),
+ keychain: KeychainKind::External,
+ }
);
+
assert_eq!(
- wallet
- .get_internal_address(AddressIndex::New)
- .unwrap()
- .address,
- Address::from_str("bcrt1qtrwtz00wxl69e5xex7amy4xzlxkaefg3gfdkxa").unwrap()
+ wallet.get_internal_address(AddressIndex::New).unwrap(),
+ AddressInfo {
+ index: 0,
+ address: Address::from_str("bcrt1qtrwtz00wxl69e5xex7amy4xzlxkaefg3gfdkxa").unwrap(),
+ keychain: KeychainKind::Internal,
+ }
);
let wallet = Wallet::new(
.unwrap();
assert_eq!(
- wallet
- .get_internal_address(AddressIndex::New)
- .unwrap()
- .address,
- Address::from_str("bcrt1qkmvk2nadgplmd57ztld8nf8v2yxkzmdvwtjf8s").unwrap(),
+ wallet.get_internal_address(AddressIndex::New).unwrap(),
+ AddressInfo {
+ index: 0,
+ address: Address::from_str("bcrt1qkmvk2nadgplmd57ztld8nf8v2yxkzmdvwtjf8s").unwrap(),
+ keychain: KeychainKind::Internal,
+ },
"when there's no internal descriptor it should just use external"
);
}