fix: Fix edge case logic

This commit is contained in:
sprites0
2025-04-24 07:47:01 +00:00
parent 1adedc7184
commit 7c130d62fd

View File

@ -56,7 +56,13 @@ impl<CTX: ContextTr> PrecompileProvider for ReplayPrecompile<CTX> {
output: Bytes::new(), 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 } => { ReadPrecompileResult::Ok { gas_used, ref bytes } => {
let underflow = result.gas.record_cost(gas_used); let underflow = result.gas.record_cost(gas_used);
assert!(underflow, "Gas underflow is not possible"); assert!(underflow, "Gas underflow is not possible");