unc_primitives/
version.rs1use crate::types::Balance;
2use once_cell::sync::Lazy;
3
4#[derive(serde::Serialize, serde::Deserialize, Clone, Debug, Default)]
6pub struct Version {
7 pub version: String,
8 pub build: String,
9 #[serde(default)]
10 pub rustc_version: String,
11}
12
13use crate::upgrade_schedule::{get_protocol_version_internal, ProtocolUpgradeVotingSchedule};
14
15pub use unc_primitives_core::checked_feature;
17pub use unc_primitives_core::types::ProtocolVersion;
18pub use unc_primitives_core::version::ProtocolFeature;
19pub use unc_primitives_core::version::PEER_MIN_ALLOWED_PROTOCOL_VERSION;
20pub use unc_primitives_core::version::PROTOCOL_VERSION;
21
22pub const MIN_GAS_PRICE_UIP_92: Balance = 1_000_000_000;
24pub const MIN_PROTOCOL_VERSION_UIP_92: ProtocolVersion = 31;
25
26pub const MIN_GAS_PRICE_UIP_92_FIX: Balance = 100_000_000;
28pub const MIN_PROTOCOL_VERSION_UIP_92_FIX: ProtocolVersion = 32;
29
30pub const CORRECT_RANDOM_VALUE_PROTOCOL_VERSION: ProtocolVersion = 33;
31
32pub const ENABLE_INFLATION_PROTOCOL_VERSION: ProtocolVersion = 36;
34
35pub const UPGRADABILITY_FIX_PROTOCOL_VERSION: ProtocolVersion = 37;
38
39pub const CREATE_HASH_PROTOCOL_VERSION: ProtocolVersion = 38;
41
42pub const DELETE_KEY_STORAGE_USAGE_PROTOCOL_VERSION: ProtocolVersion = 40;
44
45pub const SHARD_CHUNK_HEADER_UPGRADE_VERSION: ProtocolVersion = 41;
46
47pub const CREATE_RECEIPT_ID_SWITCH_TO_CURRENT_BLOCK_VERSION: ProtocolVersion = 42;
49
50pub const PROTOCOL_UPGRADE_SCHEDULE: Lazy<ProtocolUpgradeVotingSchedule> = Lazy::new(|| {
58 ProtocolUpgradeVotingSchedule::default()
64});
65
66pub fn get_protocol_version(next_epoch_protocol_version: ProtocolVersion) -> ProtocolVersion {
70 get_protocol_version_internal(
71 next_epoch_protocol_version,
72 PROTOCOL_VERSION,
73 *PROTOCOL_UPGRADE_SCHEDULE,
74 )
75}