zcash_client_backend: Fix testnet bug in diversify-address example

I misunderstood the meanings of Err(_) vs Ok(None), which indicates that
we need to refactor this API! In the meantime, this enables the example
to work with testnet Sapling viewing keys.
This commit is contained in:
Jack Grigg 2021-01-12 12:59:04 +00:00
parent 0540d4156b
commit 10f5dddb79
1 changed files with 9 additions and 12 deletions

View File

@ -9,19 +9,16 @@ use zcash_primitives::{
fn parse_viewing_key(s: &str) -> Result<(ExtendedFullViewingKey, bool), &'static str> {
decode_extended_full_viewing_key(mainnet::HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY, s)
.map(|res| {
res.map(|vk| (vk, true))
.ok_or("Invalid mainnet Sapling viewing key")
.ok()
.flatten()
.map(|vk| (vk, true))
.or_else(|| {
decode_extended_full_viewing_key(testnet::HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY, s)
.ok()
.flatten()
.map(|vk| (vk, false))
})
.or_else(|_| {
decode_extended_full_viewing_key(testnet::HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY, s).map(
|res| {
res.map(|vk| (vk, false))
.ok_or("Invalid testnet Sapling viewing key")
},
)
})
.map_err(|_| "Invalid Sapling viewing key")?
.ok_or("Invalid Sapling viewing key")
}
fn parse_diversifier_index(s: &str) -> Result<DiversifierIndex, &'static str> {