From 3e4aa041a427457b8feea2279105c3176aa63ea3 Mon Sep 17 00:00:00 2001 From: Alfredo Garcia Date: Sat, 18 May 2024 16:46:01 -0300 Subject: [PATCH] use `zip_212_enforcement` --- zebra-chain/src/parameters/network_upgrade.rs | 2 +- zebra-chain/src/primitives/zcash_note_encryption.rs | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/zebra-chain/src/parameters/network_upgrade.rs b/zebra-chain/src/parameters/network_upgrade.rs index 1cd2be65c38..3c6a0544f32 100644 --- a/zebra-chain/src/parameters/network_upgrade.rs +++ b/zebra-chain/src/parameters/network_upgrade.rs @@ -30,7 +30,7 @@ pub const NETWORK_UPGRADES_IN_ORDER: [NetworkUpgrade; 8] = [ /// /// Network upgrades can change the Zcash network protocol or consensus rules in /// incompatible ways. -#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize, Ord, PartialOrd)] #[cfg_attr(any(test, feature = "proptest-impl"), derive(Arbitrary))] pub enum NetworkUpgrade { /// The Zcash protocol for a Genesis block. diff --git a/zebra-chain/src/primitives/zcash_note_encryption.rs b/zebra-chain/src/primitives/zcash_note_encryption.rs index 457a5c04b94..06a43a70f21 100644 --- a/zebra-chain/src/primitives/zcash_note_encryption.rs +++ b/zebra-chain/src/primitives/zcash_note_encryption.rs @@ -22,12 +22,18 @@ pub fn decrypts_successfully(transaction: &Transaction, network: &Network, heigh let null_sapling_ovk = sapling::keys::OutgoingViewingKey([0u8; 32]); + let zip_212_enforcement = if network_upgrade >= NetworkUpgrade::Canopy { + sapling::note_encryption::Zip212Enforcement::On + } else { + sapling::note_encryption::Zip212Enforcement::Off + }; + if let Some(bundle) = alt_tx.sapling_bundle() { for output in bundle.shielded_outputs().iter() { let recovery = sapling::note_encryption::try_sapling_output_recovery( &null_sapling_ovk, output, - sapling::note_encryption::Zip212Enforcement::GracePeriod, + zip_212_enforcement, ); if recovery.is_none() { return false;