diff --git a/CHANGELOG.md b/CHANGELOG.md index f379d6cbac6e..0b590f8e884a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Current ### Features + - [#6721](https://github.com/blockscout/blockscout/pull/6721) - Implement fetching internal transactions from callTracer - [#5561](https://github.com/blockscout/blockscout/pull/5561), [#6523](https://github.com/blockscout/blockscout/pull/6523) - Improve working with contracts implementations - [#6401](https://github.com/blockscout/blockscout/pull/6401) - Add Sol2Uml contract visualization @@ -29,6 +30,7 @@ ### Fixes +- [#6827](https://github.com/blockscout/blockscout/pull/6827) - Fix handling unknown calls from `callTracer` - [#6532](https://github.com/blockscout/blockscout/pull/6532) - Fix index creation migration - [#6473](https://github.com/blockscout/blockscout/pull/6473) - Fix state changes for contract creation transactions - [#6475](https://github.com/blockscout/blockscout/pull/6475) - Fix token name with unicode graphemes shortening diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth.ex index e8c20ceb4001..599dbb32e262 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/geth.ex @@ -3,6 +3,8 @@ defmodule EthereumJSONRPC.Geth do Ethereum JSONRPC methods that are only supported by [Geth](https://github.com/ethereum/go-ethereum/wiki/geth). """ + require Logger + import EthereumJSONRPC, only: [id_to_params: 1, integer_to_quantity: 1, json_rpc: 2, request: 1] alias EthereumJSONRPC.{FetchedBalance, FetchedCode, PendingTransaction} @@ -246,7 +248,8 @@ defmodule EthereumJSONRPC.Geth do acc, trace_address, inner? - ) do + ) + when type in ~w(CALL CALLCODE DELEGATECALL STATICCALL CREATE CREATE2 SELFDESTRUCT REWARD) do new_trace_address = [index | trace_address] formatted_call = @@ -283,6 +286,11 @@ defmodule EthereumJSONRPC.Geth do ) end + defp parse_call_tracer_calls({call, _}, acc, _trace_address, _inner?) do + Logger.warning("Call from a callTracer with an unknown type: #{inspect(call)}") + acc + end + defp parse_call_tracer_calls(calls, acc, trace_address, _inner) when is_list(calls) do calls |> Stream.with_index()