Make diversifier functions return option

This commit is contained in:
Jay Graber
2018-06-04 07:47:46 -07:00
parent 0da9aac63e
commit 87c9994cb2
2 changed files with 10 additions and 6 deletions

View File

@@ -65,13 +65,17 @@ SaplingSpendingKey SaplingSpendingKey::random() {
return SaplingSpendingKey(random_uint256());
}
SaplingPaymentAddress SaplingIncomingViewingKey::address(diversifier_t d) const {
boost::optional<SaplingPaymentAddress> SaplingIncomingViewingKey::address(diversifier_t d) const {
uint256 pk_d;
librustzcash_ivk_to_pkd(this->begin(), d.data(), pk_d.begin());
return SaplingPaymentAddress(d, pk_d);
if (librustzcash_check_diversifier(d.data())) {
librustzcash_ivk_to_pkd(this->begin(), d.data(), pk_d.begin());
return SaplingPaymentAddress(d, pk_d);
} else {
return boost::none;
}
}
SaplingPaymentAddress SaplingSpendingKey::default_address() const {
boost::optional<SaplingPaymentAddress> SaplingSpendingKey::default_address() const {
return full_viewing_key().in_viewing_key().address(default_diversifier(*this));
}