diff --git a/fvm/Cargo.toml b/fvm/Cargo.toml index c9a379d51..31992d8f0 100644 --- a/fvm/Cargo.toml +++ b/fvm/Cargo.toml @@ -67,3 +67,4 @@ testing = [] arb = ["arbitrary", "quickcheck", "fvm_shared/arb", "cid/arb"] m2-native = [] gas_calibration = [] +nv22-dev = [] diff --git a/fvm/src/gas/price_list.rs b/fvm/src/gas/price_list.rs index 8083e38f2..f6cf64b9e 100644 --- a/fvm/src/gas/price_list.rs +++ b/fvm/src/gas/price_list.rs @@ -974,6 +974,8 @@ impl PriceList { pub fn price_list_by_network_version(network_version: NetworkVersion) -> &'static PriceList { match network_version { NetworkVersion::V21 => &WATERMELON_PRICES, + #[cfg(feature = "nv22-dev")] + _ if network_version == NetworkVersion::V22 => &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 518bbc182..8f1ab0b0d 100644 --- a/fvm/src/machine/default.rs +++ b/fvm/src/machine/default.rs @@ -59,9 +59,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 = "nv22-dev"))] const SUPPORTED_VERSIONS: RangeInclusive = NetworkVersion::V21..=NetworkVersion::V21; + #[cfg(feature = "nv22-dev")] + const SUPPORTED_VERSIONS: RangeInclusive = + NetworkVersion::V21..=NetworkVersion::V22; + 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 439d97cfe..5f21ea8c3 100644 --- a/shared/src/version/mod.rs +++ b/shared/src/version/mod.rs @@ -57,6 +57,8 @@ impl NetworkVersion { pub const V20: Self = Self(20); /// Watermelon (builtin-actors v12) pub const V21: Self = Self(21); + /// TBD builtin-actors v13 + pub const V22: Self = Self(22); pub const MAX: Self = Self(u32::MAX);