diff --git a/fvm/Cargo.toml b/fvm/Cargo.toml index 83b88ec7d..84c067382 100644 --- a/fvm/Cargo.toml +++ b/fvm/Cargo.toml @@ -61,3 +61,4 @@ gas_calibration = [] # The current implementation keeps it by default for backward compatibility reason. # See verify-signature = [] +nv24-dev = [] \ No newline at end of file diff --git a/fvm/src/gas/price_list.rs b/fvm/src/gas/price_list.rs index 917bd36db..cda938480 100644 --- a/fvm/src/gas/price_list.rs +++ b/fvm/src/gas/price_list.rs @@ -1002,6 +1002,8 @@ impl PriceList { pub fn price_list_by_network_version(network_version: NetworkVersion) -> &'static PriceList { match network_version { NetworkVersion::V21 | NetworkVersion::V22 | NetworkVersion::V23 => &WATERMELON_PRICES, + #[cfg(feature = "nv24-dev")] + NetworkVersion::V24 => &WATERMELON_PRICES, _ => panic!("network version {nv} not supported", nv = network_version), } } diff --git a/fvm/src/machine/default.rs b/fvm/src/machine/default.rs index 5915e7e1d..54d3615e7 100644 --- a/fvm/src/machine/default.rs +++ b/fvm/src/machine/default.rs @@ -51,9 +51,14 @@ where /// * `blockstore`: The underlying [blockstore][`Blockstore`] for reading/writing state. /// * `externs`: Client-provided ["external"][`Externs`] methods for accessing chain state. pub fn new(context: &MachineContext, blockstore: B, externs: E) -> anyhow::Result { + #[cfg(not(feature = "nv24-dev"))] const SUPPORTED_VERSIONS: RangeInclusive = NetworkVersion::V21..=NetworkVersion::V23; + #[cfg(feature = "nv24-dev")] + const SUPPORTED_VERSIONS: RangeInclusive = + NetworkVersion::V21..=NetworkVersion::V24; + debug!( "initializing a new machine, epoch={}, base_fee={}, nv={:?}, root={}", context.epoch, &context.base_fee, context.network_version, context.initial_state_root diff --git a/shared/src/version/mod.rs b/shared/src/version/mod.rs index 76f3a96bd..140c85460 100644 --- a/shared/src/version/mod.rs +++ b/shared/src/version/mod.rs @@ -61,6 +61,8 @@ impl NetworkVersion { pub const V22: Self = Self(22); /// Waffle (builtin-actors v14) pub const V23: Self = Self(23); + /// TBD (builtin-actors v15) + pub const V24: Self = Self(24); pub const MAX: Self = Self(u32::MAX);