diff --git a/.github/workflows/rpc-integration-tests.yml b/.github/workflows/rpc-integration-tests.yml index 67989d4e26..1c0fcaa96d 100644 --- a/.github/workflows/rpc-integration-tests.yml +++ b/.github/workflows/rpc-integration-tests.yml @@ -33,7 +33,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 v1.33.0 https://github.com/erigontech/rpc-tests ${{runner.workspace}}/rpc-tests + git -c advice.detachedHead=false clone --depth 1 --branch v1.34.0 https://github.com/erigontech/rpc-tests ${{runner.workspace}}/rpc-tests cd ${{runner.workspace}}/rpc-tests pip3 install -r requirements.txt --break-system-packages diff --git a/silkworm/rpc/core/evm_trace.cpp b/silkworm/rpc/core/evm_trace.cpp index df3ea03dd0..17fdd6adc1 100644 --- a/silkworm/rpc/core/evm_trace.cpp +++ b/silkworm/rpc/core/evm_trace.cpp @@ -805,7 +805,9 @@ void TraceTracer::on_execution_start(evmc_revision rev, const evmc_message& msg, current_depth_ = msg.depth; auto create = (!initial_ibs_.exists(recipient) && created_address_.find(recipient) == created_address_.end() && recipient != code_address); - + if (last_opcode_) { + create = create || last_opcode_.value() == OP_CREATE2 || last_opcode_.value() == OP_CREATE; + } start_gas_.push(msg.gas); size_t index = traces_.size(); @@ -937,6 +939,8 @@ void TraceTracer::on_execution_end(const evmc_result& result, const silkworm::In is_precompile_ = false; return; } + if (index_stack_.empty()) + return; auto index = index_stack_.top(); auto start_gas = start_gas_.top(); @@ -1038,6 +1042,7 @@ void TraceTracer::on_creation_completed(const evmc_result& result, const silkwor auto start_gas = start_gas_.top(); index_stack_.pop(); start_gas_.pop(); + Trace& trace = traces_[index]; trace.trace_result->gas_used = start_gas - result.gas_left; }