From 3084f3bb697f2df7f18fbc92ad4e61c2a5daec5b Mon Sep 17 00:00:00 2001 From: Marek Date: Mon, 22 Apr 2024 20:20:34 +0200 Subject: [PATCH] Impl conversions between network upgrades --- zebra-chain/src/parameters/network.rs | 11 +------- zebra-chain/src/parameters/network_upgrade.rs | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/zebra-chain/src/parameters/network.rs b/zebra-chain/src/parameters/network.rs index 265e3f2ed..d8cee48f0 100644 --- a/zebra-chain/src/parameters/network.rs +++ b/zebra-chain/src/parameters/network.rs @@ -283,17 +283,8 @@ impl zcash_primitives::consensus::Parameters for Network { &self, nu: zcash_primitives::consensus::NetworkUpgrade, ) -> Option { - let target_nu = match nu { - zcash_primitives::consensus::NetworkUpgrade::Overwinter => NetworkUpgrade::Overwinter, - zcash_primitives::consensus::NetworkUpgrade::Sapling => NetworkUpgrade::Sapling, - zcash_primitives::consensus::NetworkUpgrade::Blossom => NetworkUpgrade::Blossom, - zcash_primitives::consensus::NetworkUpgrade::Heartwood => NetworkUpgrade::Heartwood, - zcash_primitives::consensus::NetworkUpgrade::Canopy => NetworkUpgrade::Canopy, - zcash_primitives::consensus::NetworkUpgrade::Nu5 => NetworkUpgrade::Nu5, - }; - // Heights are hard-coded below Height::MAX or checked when the config is parsed. - target_nu + NetworkUpgrade::from(nu) .activation_height(self) .map(|Height(h)| zcash_primitives::consensus::BlockHeight::from_u32(h)) } diff --git a/zebra-chain/src/parameters/network_upgrade.rs b/zebra-chain/src/parameters/network_upgrade.rs index de546e3b4..2fbd62010 100644 --- a/zebra-chain/src/parameters/network_upgrade.rs +++ b/zebra-chain/src/parameters/network_upgrade.rs @@ -493,6 +493,32 @@ impl NetworkUpgrade { } } +impl From for NetworkUpgrade { + fn from(nu: zcash_protocol::consensus::NetworkUpgrade) -> Self { + match nu { + zcash_protocol::consensus::NetworkUpgrade::Overwinter => Self::Overwinter, + zcash_protocol::consensus::NetworkUpgrade::Sapling => Self::Sapling, + zcash_protocol::consensus::NetworkUpgrade::Blossom => Self::Blossom, + zcash_protocol::consensus::NetworkUpgrade::Heartwood => Self::Heartwood, + zcash_protocol::consensus::NetworkUpgrade::Canopy => Self::Canopy, + zcash_protocol::consensus::NetworkUpgrade::Nu5 => Self::Nu5, + } + } +} + +impl From for NetworkUpgrade { + fn from(value: zcash_primitives::consensus::NetworkUpgrade) -> Self { + match value { + zcash_primitives::consensus::NetworkUpgrade::Overwinter => NetworkUpgrade::Overwinter, + zcash_primitives::consensus::NetworkUpgrade::Sapling => NetworkUpgrade::Sapling, + zcash_primitives::consensus::NetworkUpgrade::Blossom => NetworkUpgrade::Blossom, + zcash_primitives::consensus::NetworkUpgrade::Heartwood => NetworkUpgrade::Heartwood, + zcash_primitives::consensus::NetworkUpgrade::Canopy => NetworkUpgrade::Canopy, + zcash_primitives::consensus::NetworkUpgrade::Nu5 => NetworkUpgrade::Nu5, + } + } +} + impl ConsensusBranchId { /// The value used by `zcashd` RPCs for missing consensus branch IDs. ///