Skip to content

Commit

Permalink
add a Nu6 variant
Browse files Browse the repository at this point in the history
  • Loading branch information
oxarbitrage committed Nov 26, 2023
1 parent 67b84c2 commit 76d81db
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 2 deletions.
2 changes: 1 addition & 1 deletion rust-toolchain.toml
@@ -1,3 +1,3 @@
[toolchain]
channel = "1.65.0"
channel = "1.74.0"
components = [ "clippy", "rustfmt" ]
18 changes: 17 additions & 1 deletion zcash_primitives/src/consensus.rs
Expand Up @@ -212,6 +212,7 @@ impl Parameters for MainNetwork {
NetworkUpgrade::Heartwood => Some(BlockHeight(903_000)),
NetworkUpgrade::Canopy => Some(BlockHeight(1_046_400)),
NetworkUpgrade::Nu5 => Some(BlockHeight(1_687_104)),
NetworkUpgrade::Nu6 => None,
#[cfg(feature = "zfuture")]
NetworkUpgrade::ZFuture => None,
}
Expand Down Expand Up @@ -263,6 +264,7 @@ impl Parameters for TestNetwork {
NetworkUpgrade::Heartwood => Some(BlockHeight(903_800)),
NetworkUpgrade::Canopy => Some(BlockHeight(1_028_500)),
NetworkUpgrade::Nu5 => Some(BlockHeight(1_842_420)),
NetworkUpgrade::Nu6 => Some(BlockHeight(2_599_958)),
#[cfg(feature = "zfuture")]
NetworkUpgrade::ZFuture => None,
}
Expand Down Expand Up @@ -393,6 +395,10 @@ pub enum NetworkUpgrade {
///
/// [Nu5]: https://z.cash/upgrade/nu5/
Nu5,

///
Nu6,

/// The ZFUTURE network upgrade.
///
/// This upgrade is expected never to activate on mainnet;
Expand All @@ -413,6 +419,7 @@ impl fmt::Display for NetworkUpgrade {
NetworkUpgrade::Heartwood => write!(f, "Heartwood"),
NetworkUpgrade::Canopy => write!(f, "Canopy"),
NetworkUpgrade::Nu5 => write!(f, "Nu5"),
NetworkUpgrade::Nu6 => write!(f, "Nu6"),
#[cfg(feature = "zfuture")]
NetworkUpgrade::ZFuture => write!(f, "ZFUTURE"),
}
Expand All @@ -428,6 +435,7 @@ impl NetworkUpgrade {
NetworkUpgrade::Heartwood => BranchId::Heartwood,
NetworkUpgrade::Canopy => BranchId::Canopy,
NetworkUpgrade::Nu5 => BranchId::Nu5,
NetworkUpgrade::Nu6 => BranchId::Nu6,
#[cfg(feature = "zfuture")]
NetworkUpgrade::ZFuture => BranchId::ZFuture,
}
Expand All @@ -445,6 +453,7 @@ const UPGRADES_IN_ORDER: &[NetworkUpgrade] = &[
NetworkUpgrade::Heartwood,
NetworkUpgrade::Canopy,
NetworkUpgrade::Nu5,
NetworkUpgrade::Nu6,
];

pub const ZIP212_GRACE_PERIOD: u32 = 32256;
Expand Down Expand Up @@ -478,6 +487,8 @@ pub enum BranchId {
Canopy,
/// The consensus rules deployed by [`NetworkUpgrade::Nu5`].
Nu5,
///
Nu6,
/// Candidates for future consensus rules; this branch will never
/// activate on mainnet.
#[cfg(feature = "zfuture")]
Expand All @@ -498,6 +509,7 @@ impl TryFrom<u32> for BranchId {
0xf5b9_230b => Ok(BranchId::Heartwood),
0xe9ff_75a6 => Ok(BranchId::Canopy),
0xc2d6_d0b4 => Ok(BranchId::Nu5),
0x0000_0006 => Ok(BranchId::Nu6),
#[cfg(feature = "zfuture")]
0xffff_ffff => Ok(BranchId::ZFuture),
_ => Err("Unknown consensus branch ID"),
Expand All @@ -515,6 +527,7 @@ impl From<BranchId> for u32 {
BranchId::Heartwood => 0xf5b9_230b,
BranchId::Canopy => 0xe9ff_75a6,
BranchId::Nu5 => 0xc2d6_d0b4,
BranchId::Nu6 => 0x0000_0006,
#[cfg(feature = "zfuture")]
BranchId::ZFuture => 0xffff_ffff,
}
Expand Down Expand Up @@ -580,7 +593,10 @@ impl BranchId {
BranchId::Canopy => params
.activation_height(NetworkUpgrade::Canopy)
.map(|lower| (lower, params.activation_height(NetworkUpgrade::Nu5))),
BranchId::Nu5 => params.activation_height(NetworkUpgrade::Nu5).map(|lower| {
BranchId::Nu5 => params
.activation_height(NetworkUpgrade::Nu5)
.map(|lower| (lower, params.activation_height(NetworkUpgrade::Nu6))),
BranchId::Nu6 => params.activation_height(NetworkUpgrade::Nu6).map(|lower| {
#[cfg(feature = "zfuture")]
let upper = params.activation_height(NetworkUpgrade::ZFuture);
#[cfg(not(feature = "zfuture"))]
Expand Down
2 changes: 2 additions & 0 deletions zcash_primitives/src/transaction/mod.rs
Expand Up @@ -237,6 +237,7 @@ impl TxVersion {
TxVersion::Sapling
}
BranchId::Nu5 => TxVersion::Zip225,
BranchId::Nu6 => TxVersion::Zip225,
#[cfg(feature = "zfuture")]
BranchId::ZFuture => TxVersion::ZFuture,
}
Expand Down Expand Up @@ -1109,6 +1110,7 @@ pub mod testing {
Just(TxVersion::Sapling).boxed()
}
BranchId::Nu5 => Just(TxVersion::Zip225).boxed(),
BranchId::Nu6 => Just(TxVersion::Zip225).boxed(),
#[cfg(feature = "zfuture")]
BranchId::ZFuture => Just(TxVersion::ZFuture).boxed(),
}
Expand Down

0 comments on commit 76d81db

Please sign in to comment.