Skip to content

Commit

Permalink
fix block weight limits in evm tracing runtimes
Browse files Browse the repository at this point in the history
  • Loading branch information
RomarQ committed Mar 8, 2025
1 parent 7309b2b commit a58f24a
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 0 deletions.
34 changes: 34 additions & 0 deletions runtime/common/src/compilation_checks.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// Copyright 2025 Moonbeam foundation
// This file is part of Moonbeam.

// Moonbeam is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// Moonbeam is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with Moonbeam. If not, see <http://www.gnu.org/licenses/>.

/// Macro to trigger a compile-time error if the `on-chain-release-build` feature is enabled.
///
/// This ensures that certain code paths are not compiled when the code is built in an
/// on-chain environment, specifically when the `on-chain-release-build` feature is active.
/// This can be useful for enforcing restrictions or preventing undesirable behavior in on-chain
/// builds, ensuring that critical or forbidden code is excluded at compile time.
///
/// # Usage
/// ```rust
/// moonbeam_runtime_common::fail_to_compile_if_on_chain_build!();
/// ```
#[macro_export]
macro_rules! fail_to_compile_if_on_chain_build {
() => {
#[cfg(feature = "on-chain-release-build")]
compile_error!("Not allowed in on-chain builds.");
};
}
1 change: 1 addition & 0 deletions runtime/common/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
mod apis;
#[cfg(feature = "runtime-benchmarks")]
pub mod benchmarking;
pub mod compilation_checks;
pub mod deal_with_fees;
mod impl_moonbeam_xcm_call;
mod impl_moonbeam_xcm_call_tracing;
Expand Down
7 changes: 7 additions & 0 deletions runtime/moonbase/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,13 @@ pub const EXTRINSIC_BASE_WEIGHT: Weight = Weight::from_parts(10000 * WEIGHT_PER_

pub struct RuntimeBlockWeights;
impl Get<frame_system::limits::BlockWeights> for RuntimeBlockWeights {
#[cfg(feature = "evm-tracing")]
fn get() -> frame_system::limits::BlockWeights {
moonbeam_runtime_common::fail_to_compile_if_on_chain_build!();
frame_system::limits::BlockWeights::simple_max(Weight::MAX)
}

#[cfg(not(feature = "evm-tracing"))]
fn get() -> frame_system::limits::BlockWeights {
frame_system::limits::BlockWeights::builder()
.for_class(DispatchClass::Normal, |weights| {
Expand Down
7 changes: 7 additions & 0 deletions runtime/moonbeam/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,13 @@ pub const EXTRINSIC_BASE_WEIGHT: Weight = Weight::from_parts(10000 * WEIGHT_PER_

pub struct RuntimeBlockWeights;
impl Get<frame_system::limits::BlockWeights> for RuntimeBlockWeights {
#[cfg(feature = "evm-tracing")]
fn get() -> frame_system::limits::BlockWeights {
moonbeam_runtime_common::fail_to_compile_if_on_chain_build!();
frame_system::limits::BlockWeights::simple_max(Weight::MAX)
}

#[cfg(not(feature = "evm-tracing"))]
fn get() -> frame_system::limits::BlockWeights {
frame_system::limits::BlockWeights::builder()
.for_class(DispatchClass::Normal, |weights| {
Expand Down
7 changes: 7 additions & 0 deletions runtime/moonriver/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,13 @@ pub const EXTRINSIC_BASE_WEIGHT: Weight = Weight::from_parts(10000 * WEIGHT_PER_

pub struct RuntimeBlockWeights;
impl Get<frame_system::limits::BlockWeights> for RuntimeBlockWeights {
#[cfg(feature = "evm-tracing")]
fn get() -> frame_system::limits::BlockWeights {
moonbeam_runtime_common::fail_to_compile_if_on_chain_build!();
frame_system::limits::BlockWeights::simple_max(Weight::MAX)
}

#[cfg(not(feature = "evm-tracing"))]
fn get() -> frame_system::limits::BlockWeights {
frame_system::limits::BlockWeights::builder()
.for_class(DispatchClass::Normal, |weights| {
Expand Down

0 comments on commit a58f24a

Please sign in to comment.