Deduplicate default address generation

This commit is contained in:
Jack Grigg 2021-03-16 10:01:50 +13:00
parent 3c8befa0f3
commit 8e55b46dbf
1 changed files with 6 additions and 3 deletions

View File

@ -36,8 +36,7 @@ impl SpendingKey {
let ask_not_zero = !SpendAuthorizingKey::derive_inner(&sk).ct_is_zero();
let have_default_address = Choice::from({
let fvk = FullViewingKey::from(&sk);
let default_address = fvk.address(DiversifierKey::from(&fvk).default_diversifier());
if default_address.is_some() {
if fvk.default_address_inner().is_some() {
1
} else {
0
@ -165,10 +164,14 @@ impl FullViewingKey {
/// Returns the default payment address for this key.
pub fn default_address(&self) -> Address {
self.address(DiversifierKey::from(self).default_diversifier())
self.default_address_inner()
.expect("Default address works by construction")
}
fn default_address_inner(&self) -> Option<Address> {
self.address(DiversifierKey::from(self).default_diversifier())
}
/// Returns the payment address for this key at the given index.
///
/// Returns `None` if the diversifier does not correspond to an address. This happens