From 7c130d62fdbc7d1a81dd5aaad5bc94674bcea726 Mon Sep 17 00:00:00 2001 From: sprites0 <199826320+sprites0@users.noreply.github.com> Date: Thu, 24 Apr 2025 07:47:01 +0000 Subject: [PATCH] fix: Fix edge case logic --- crates/ethereum/evm/src/precompile_replay.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/ethereum/evm/src/precompile_replay.rs b/crates/ethereum/evm/src/precompile_replay.rs index dd8758dad..09b24d511 100644 --- a/crates/ethereum/evm/src/precompile_replay.rs +++ b/crates/ethereum/evm/src/precompile_replay.rs @@ -56,7 +56,13 @@ impl PrecompileProvider for ReplayPrecompile { output: Bytes::new(), }; - return match *precompile_calls.get(&input).expect("missing precompile call") { + let Some(get) = precompile_calls.get(&input) else { + result.gas.spend_all(); + result.result = InstructionResult::PrecompileError; + return Ok(Some(result)) + }; + + return match *get { ReadPrecompileResult::Ok { gas_used, ref bytes } => { let underflow = result.gas.record_cost(gas_used); assert!(underflow, "Gas underflow is not possible");