diff --git a/crates/rpc/rpc/src/eth/api/transactions.rs b/crates/rpc/rpc/src/eth/api/transactions.rs index 8829a0434..2846ec950 100644 --- a/crates/rpc/rpc/src/eth/api/transactions.rs +++ b/crates/rpc/rpc/src/eth/api/transactions.rs @@ -52,6 +52,7 @@ use crate::eth::revm_utils::FillableTransaction; #[cfg(feature = "optimism")] use reth_rpc_types::OptimismTransactionReceiptFields; use revm_primitives::db::{Database, DatabaseRef}; +use revm_primitives::WASM_MAX_CODE_SIZE; /// Helper alias type for the state's [`CacheDB`] pub(crate) type StateCacheDB = CacheDB>; @@ -1072,6 +1073,7 @@ where R: Send + 'static, { let (cfg, block_env, at) = self.evm_env_at(at).await?; + cfg.limit_contract_code_size = Some(WASM_MAX_CODE_SIZE); let this = self.clone(); self.inner .blocking_task_pool diff --git a/crates/transaction-pool/src/validate/constants.rs b/crates/transaction-pool/src/validate/constants.rs index 489677057..bc039dd5a 100644 --- a/crates/transaction-pool/src/validate/constants.rs +++ b/crates/transaction-pool/src/validate/constants.rs @@ -9,10 +9,10 @@ pub const TX_SLOT_BYTE_SIZE: usize = 32 * 1024; /// more expensive to propagate; larger transactions also take more resources /// to validate whether they fit into the pool or not. Default is 4 times [`TX_SLOT_BYTE_SIZE`], /// which defaults to 32 KiB, so 128 KiB. -pub const DEFAULT_MAX_TX_INPUT_BYTES: usize = 4 * TX_SLOT_BYTE_SIZE; // 128KB +pub const DEFAULT_MAX_TX_INPUT_BYTES: usize = 4 * TX_SLOT_BYTE_SIZE * 8; // 1MB /// Maximum bytecode to permit for a contract. -pub const MAX_CODE_BYTE_SIZE: usize = 24576; +pub const MAX_CODE_BYTE_SIZE: usize = 0x100000; // 1MB /// Maximum initcode to permit in a creation transaction and create instructions. pub const MAX_INIT_CODE_BYTE_SIZE: usize = 2 * MAX_CODE_BYTE_SIZE; diff --git a/examples/exex/rollup/src/execution.rs b/examples/exex/rollup/src/execution.rs index e1fcfb5c4..a1dfb8411 100644 --- a/examples/exex/rollup/src/execution.rs +++ b/examples/exex/rollup/src/execution.rs @@ -2,6 +2,7 @@ use crate::{db::Database, RollupContract, CHAIN_ID, CHAIN_SPEC}; use alloy_consensus::{Blob, SidecarCoder, SimpleCoder}; use alloy_rlp::Decodable as _; use eyre::OptionExt; +use reth::primitives::revm_primitives::WASM_MAX_CODE_SIZE; use reth::transaction_pool::TransactionPool; use reth_execution_errors::BlockValidationError; use reth_node_api::{ConfigureEvm, ConfigureEvmEnv}; @@ -114,6 +115,7 @@ fn configure_evm<'a>( header, U256::ZERO, ); + cfg.cfg_env.limit_contract_code_size = Some(WASM_MAX_CODE_SIZE); *evm.cfg_mut() = cfg.cfg_env; evm