diff --git a/.github/workflows/rpc-integration-tests.yml b/.github/workflows/rpc-integration-tests.yml index 25aba3b035..4ce8d476a2 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.38.0 https://github.com/erigontech/rpc-tests ${{runner.workspace}}/rpc-tests + git -c advice.detachedHead=false clone --depth 1 --branch v0.39.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 af5961be07..d39649af70 100644 --- a/silkworm/rpc/core/evm_trace.cpp +++ b/silkworm/rpc/core/evm_trace.cpp @@ -854,10 +854,14 @@ void TraceTracer::on_execution_start(evmc_revision rev, const evmc_message& msg, trace.trace_result->output.emplace(); trace_action.input = silkworm::ByteView{msg.input_data, msg.input_size}; trace_action.to = recipient; - bool in_static_mode = (msg.flags & evmc_flags::EVMC_STATIC) != 0; switch (msg.kind) { case evmc_call_kind::EVMC_CALL: - trace_action.call_type = in_static_mode ? "staticcall" : "call"; + if (traces_.size() > 1) { + Trace& prev_trace = traces_[traces_.size() - 2]; + trace_action.call_type = prev_trace.op_code == OP_STATICCALL ? "staticcall" : "call"; + } else { + trace_action.call_type = "call"; + } break; case evmc_call_kind::EVMC_DELEGATECALL: trace_action.call_type = "delegatecall";