Impl conversions between network upgrades

This commit is contained in:
Marek 2024-04-22 20:20:34 +02:00
parent 9a45ada2a8
commit 3084f3bb69
2 changed files with 27 additions and 10 deletions

View File

@ -283,17 +283,8 @@ impl zcash_primitives::consensus::Parameters for Network {
&self,
nu: zcash_primitives::consensus::NetworkUpgrade,
) -> Option<zcash_primitives::consensus::BlockHeight> {
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))
}

View File

@ -493,6 +493,32 @@ impl NetworkUpgrade {
}
}
impl From<zcash_protocol::consensus::NetworkUpgrade> 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<zcash_primitives::consensus::NetworkUpgrade> 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.
///