zcash_primitives: Add Network Upgrade 6 to `consensus::NetworkUpgrade` (#1048)
Co-authored-by: Jack Grigg <jack@electriccoin.co>
This commit is contained in:
parent
764127f952
commit
22ad737267
|
@ -23,6 +23,7 @@ zcash_proofs.workspace = true
|
|||
|
||||
[features]
|
||||
transparent-inputs = []
|
||||
unstable-nu6 = ["zcash_primitives/unstable-nu6"]
|
||||
|
||||
[lib]
|
||||
bench = false
|
||||
|
|
|
@ -512,6 +512,8 @@ mod tests {
|
|||
NetworkUpgrade::Heartwood => Some(BlockHeight::from_u32(903_800)),
|
||||
NetworkUpgrade::Canopy => Some(BlockHeight::from_u32(1_028_500)),
|
||||
NetworkUpgrade::Nu5 => Some(BlockHeight::from_u32(1_200_000)),
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
NetworkUpgrade::Nu6 => Some(BlockHeight::from_u32(1_300_000)),
|
||||
NetworkUpgrade::ZFuture => Some(BlockHeight::from_u32(1_400_000)),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -106,6 +106,7 @@ multicore = ["bellman/multicore", "orchard/multicore"]
|
|||
transparent-inputs = ["hdwallet", "ripemd", "secp256k1"]
|
||||
temporary-zcashd = []
|
||||
test-dependencies = ["proptest", "orchard/test-dependencies"]
|
||||
unstable-nu6 = []
|
||||
zfuture = []
|
||||
|
||||
[lib]
|
||||
|
|
|
@ -212,6 +212,8 @@ impl Parameters for MainNetwork {
|
|||
NetworkUpgrade::Heartwood => Some(BlockHeight(903_000)),
|
||||
NetworkUpgrade::Canopy => Some(BlockHeight(1_046_400)),
|
||||
NetworkUpgrade::Nu5 => Some(BlockHeight(1_687_104)),
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
NetworkUpgrade::Nu6 => None,
|
||||
#[cfg(feature = "zfuture")]
|
||||
NetworkUpgrade::ZFuture => None,
|
||||
}
|
||||
|
@ -263,6 +265,8 @@ impl Parameters for TestNetwork {
|
|||
NetworkUpgrade::Heartwood => Some(BlockHeight(903_800)),
|
||||
NetworkUpgrade::Canopy => Some(BlockHeight(1_028_500)),
|
||||
NetworkUpgrade::Nu5 => Some(BlockHeight(1_842_420)),
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
NetworkUpgrade::Nu6 => None,
|
||||
#[cfg(feature = "zfuture")]
|
||||
NetworkUpgrade::ZFuture => None,
|
||||
}
|
||||
|
@ -393,6 +397,11 @@ pub enum NetworkUpgrade {
|
|||
///
|
||||
/// [Nu5]: https://z.cash/upgrade/nu5/
|
||||
Nu5,
|
||||
/// The [Nu6] network upgrade.
|
||||
///
|
||||
/// [Nu6]: https://z.cash/upgrade/nu6/
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
Nu6,
|
||||
/// The ZFUTURE network upgrade.
|
||||
///
|
||||
/// This upgrade is expected never to activate on mainnet;
|
||||
|
@ -413,6 +422,8 @@ impl fmt::Display for NetworkUpgrade {
|
|||
NetworkUpgrade::Heartwood => write!(f, "Heartwood"),
|
||||
NetworkUpgrade::Canopy => write!(f, "Canopy"),
|
||||
NetworkUpgrade::Nu5 => write!(f, "Nu5"),
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
NetworkUpgrade::Nu6 => write!(f, "Nu6"),
|
||||
#[cfg(feature = "zfuture")]
|
||||
NetworkUpgrade::ZFuture => write!(f, "ZFUTURE"),
|
||||
}
|
||||
|
@ -428,6 +439,8 @@ impl NetworkUpgrade {
|
|||
NetworkUpgrade::Heartwood => BranchId::Heartwood,
|
||||
NetworkUpgrade::Canopy => BranchId::Canopy,
|
||||
NetworkUpgrade::Nu5 => BranchId::Nu5,
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
NetworkUpgrade::Nu6 => BranchId::Nu6,
|
||||
#[cfg(feature = "zfuture")]
|
||||
NetworkUpgrade::ZFuture => BranchId::ZFuture,
|
||||
}
|
||||
|
@ -445,6 +458,8 @@ const UPGRADES_IN_ORDER: &[NetworkUpgrade] = &[
|
|||
NetworkUpgrade::Heartwood,
|
||||
NetworkUpgrade::Canopy,
|
||||
NetworkUpgrade::Nu5,
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
NetworkUpgrade::Nu6,
|
||||
];
|
||||
|
||||
pub const ZIP212_GRACE_PERIOD: u32 = 32256;
|
||||
|
@ -478,6 +493,9 @@ pub enum BranchId {
|
|||
Canopy,
|
||||
/// The consensus rules deployed by [`NetworkUpgrade::Nu5`].
|
||||
Nu5,
|
||||
/// The consensus rules deployed by [`NetworkUpgrade::Nu6`].
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
Nu6,
|
||||
/// Candidates for future consensus rules; this branch will never
|
||||
/// activate on mainnet.
|
||||
#[cfg(feature = "zfuture")]
|
||||
|
@ -498,6 +516,8 @@ impl TryFrom<u32> for BranchId {
|
|||
0xf5b9_230b => Ok(BranchId::Heartwood),
|
||||
0xe9ff_75a6 => Ok(BranchId::Canopy),
|
||||
0xc2d6_d0b4 => Ok(BranchId::Nu5),
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
0xc8e7_1055 => Ok(BranchId::Nu6),
|
||||
#[cfg(feature = "zfuture")]
|
||||
0xffff_ffff => Ok(BranchId::ZFuture),
|
||||
_ => Err("Unknown consensus branch ID"),
|
||||
|
@ -515,6 +535,8 @@ impl From<BranchId> for u32 {
|
|||
BranchId::Heartwood => 0xf5b9_230b,
|
||||
BranchId::Canopy => 0xe9ff_75a6,
|
||||
BranchId::Nu5 => 0xc2d6_d0b4,
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
BranchId::Nu6 => 0xc8e7_1055,
|
||||
#[cfg(feature = "zfuture")]
|
||||
BranchId::ZFuture => 0xffff_ffff,
|
||||
}
|
||||
|
@ -587,6 +609,8 @@ impl BranchId {
|
|||
let upper = None;
|
||||
(lower, upper)
|
||||
}),
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
BranchId::Nu6 => None,
|
||||
#[cfg(feature = "zfuture")]
|
||||
BranchId::ZFuture => params
|
||||
.activation_height(NetworkUpgrade::ZFuture)
|
||||
|
@ -634,6 +658,8 @@ pub mod testing {
|
|||
BranchId::Heartwood,
|
||||
BranchId::Canopy,
|
||||
BranchId::Nu5,
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
BranchId::Nu6,
|
||||
#[cfg(feature = "zfuture")]
|
||||
BranchId::ZFuture,
|
||||
])
|
||||
|
|
|
@ -239,6 +239,8 @@ impl TxVersion {
|
|||
TxVersion::Sapling
|
||||
}
|
||||
BranchId::Nu5 => TxVersion::Zip225,
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
BranchId::Nu6 => TxVersion::Zip225,
|
||||
#[cfg(feature = "zfuture")]
|
||||
BranchId::ZFuture => TxVersion::ZFuture,
|
||||
}
|
||||
|
@ -970,6 +972,8 @@ pub mod testing {
|
|||
Just(TxVersion::Sapling).boxed()
|
||||
}
|
||||
BranchId::Nu5 => Just(TxVersion::Zip225).boxed(),
|
||||
#[cfg(feature = "unstable-nu6")]
|
||||
BranchId::Nu6 => Just(TxVersion::Zip225).boxed(),
|
||||
#[cfg(feature = "zfuture")]
|
||||
BranchId::ZFuture => Just(TxVersion::ZFuture).boxed(),
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue