diff --git a/zcash_client_sqlite/src/transact.rs b/zcash_client_sqlite/src/transact.rs index 9feab59e8..b16aa8e8c 100644 --- a/zcash_client_sqlite/src/transact.rs +++ b/zcash_client_sqlite/src/transact.rs @@ -7,7 +7,7 @@ use std::convert::TryInto; use std::path::Path; use zcash_client_backend::encoding::encode_extended_full_viewing_key; use zcash_primitives::{ - consensus::{self, NetworkUpgrade, Parameters}, + consensus, keys::OutgoingViewingKey, merkle_tree::{IncrementalWitness, MerklePath}, note_encryption::Memo, @@ -227,19 +227,16 @@ pub fn create_to_address>( let rseed = { let d: Vec<_> = row.get(2)?; - if Network::is_nu_active(NetworkUpgrade::Canopy, height) { - let mut r = [0u8; 32]; - r.copy_from_slice(&d[..]); - Rseed::AfterZip212(r) - } else { - let r = jubjub::Fr::from_repr( - d[..] - .try_into() - .map_err(|_| Error(ErrorKind::InvalidNote))?, - ) - .ok_or(Error(ErrorKind::InvalidNote))?; - Rseed::BeforeZip212(r) - } + // We store rcm directly in the data DB, regardless of whether the note + // used a v1 or v2 note plaintext, so for the purposes of spending let's + // pretend this is a pre-ZIP 212 note. + let r = jubjub::Fr::from_repr( + d[..] + .try_into() + .map_err(|_| Error(ErrorKind::InvalidNote))?, + ) + .ok_or(Error(ErrorKind::InvalidNote))?; + Rseed::BeforeZip212(r) }; let from = extfvk.fvk.vk.to_payment_address(diversifier).unwrap();