diff --git a/.github/workflows/rpc-integration-tests.yml b/.github/workflows/rpc-integration-tests.yml index f1510ea1bd..11dda7140a 100644 --- a/.github/workflows/rpc-integration-tests.yml +++ b/.github/workflows/rpc-integration-tests.yml @@ -27,7 +27,7 @@ jobs: - name: Checkout RPC Tests Repository & Install Requirements run: | rm -rf ${{runner.workspace}}/rpc-tests - git -c advice.detachedHead=false clone --depth 1 --branch v0.32.0 https://github.com/erigontech/rpc-tests ${{runner.workspace}}/rpc-tests + git -c advice.detachedHead=false clone --depth 1 --branch v0.33.0 https://github.com/erigontech/rpc-tests ${{runner.workspace}}/rpc-tests cd ${{runner.workspace}}/rpc-tests pip3 install -r requirements.txt diff --git a/silkworm/rpc/core/evm_trace.cpp b/silkworm/rpc/core/evm_trace.cpp index fcdca35973..e93a827f9a 100644 --- a/silkworm/rpc/core/evm_trace.cpp +++ b/silkworm/rpc/core/evm_trace.cpp @@ -720,8 +720,13 @@ void VmTraceTracer::on_execution_end(const evmc_result& result, const silkworm:: case evmc_status_code::EVMC_STACK_UNDERFLOW: case evmc_status_code::EVMC_STACK_OVERFLOW: case evmc_status_code::EVMC_BAD_JUMP_DESTINATION: - op.trace_ex.used = op.gas_cost - metrics_[op.op_code].gas_cost; - op.gas_cost = metrics_[op.op_code].gas_cost; + if (op.op_code == evmc_opcode::OP_EXP) { // Erigon the static part is 0 + op.trace_ex.used = op.gas_cost; + op.gas_cost = 0; + } else { + op.trace_ex.used = op.gas_cost - metrics_[op.op_code].gas_cost; + op.gas_cost = metrics_[op.op_code].gas_cost; + } break; case evmc_status_code::EVMC_UNDEFINED_INSTRUCTION: