From 365a7f95258192774d59154160d862b7887813c4 Mon Sep 17 00:00:00 2001 From: mark-terry <36909937+mark-terry@users.noreply.github.com> Date: Fri, 4 Mar 2022 13:59:50 +1000 Subject: [PATCH] trace_get (#3477) * Initial commit for trace_get implementation. No tests. * test files for trace_get Signed-off-by: Mark Terry Signed-off-by: Frank Li Signed-off-by: Sally MacFarlane Co-authored-by: Sally MacFarlane Co-authored-by: Frank Li --- .../besu/ethereum/api/jsonrpc/RpcMethod.java | 1 + .../jsonrpc/internal/methods/TraceGet.java | 76 +++++++++++++ .../jsonrpc/methods/TraceJsonRpcMethods.java | 3 +- .../besu/ethereum/api/util/TraceUtil.java | 100 ++++++++++++++++++ .../bonsai/TraceJsonRpcHttpBySpecTest.java | 1 + .../forest/TraceJsonRpcHttpBySpecTest.java | 1 + .../trace-get/trace_get_02_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_03_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_04_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_04_1_0_trace.json | 35 ++++++ .../trace-get/trace_get_04_2_0_trace.json | 35 ++++++ .../trace-get/trace_get_05_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_06_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_06_0_1_trace.json | 29 +++++ .../trace-get/trace_get_07_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_08_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_08_0_1_trace.json | 35 ++++++ .../trace-get/trace_get_09_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_09_0_1_trace.json | 35 ++++++ .../trace-get/trace_get_09_0_2_trace.json | 35 ++++++ .../trace-get/trace_get_09_0_3_trace.json | 35 ++++++ .../trace-get/trace_get_0a_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_0a_0_1_trace.json | 35 ++++++ .../trace-get/trace_get_0b_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_0b_0_1_trace.json | 35 ++++++ .../trace-get/trace_get_0c_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_0d_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_0e_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_0e_1_0_trace.json | 35 ++++++ .../trace-get/trace_get_0e_2_0_trace.json | 35 ++++++ .../trace-get/trace_get_0f_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_0f_1_0_trace.json | 35 ++++++ .../trace-get/trace_get_10_0_0_trace.json | 32 ++++++ .../trace-get/trace_get_10_1_0_trace.json | 32 ++++++ .../trace-get/trace_get_10_2_0_trace.json | 32 ++++++ .../trace-get/trace_get_11_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_12_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_12_1_0_trace.json | 32 ++++++ .../trace-get/trace_get_13_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_13_1_0_trace.json | 35 ++++++ .../trace-get/trace_get_13_1_1_trace.json | 35 ++++++ .../trace-get/trace_get_13_1_2_trace.json | 29 +++++ .../trace-get/trace_get_13_1_3_trace.json | 35 ++++++ .../trace-get/trace_get_13_2_0_trace.json | 35 ++++++ .../trace-get/trace_get_13_3_0_trace.json | 35 ++++++ .../trace-get/trace_get_13_3_1_trace.json | 35 ++++++ .../trace-get/trace_get_13_3_2_trace.json | 29 +++++ .../trace-get/trace_get_13_3_3_trace.json | 35 ++++++ .../trace-get/trace_get_13_4_0_trace.json | 35 ++++++ .../trace-get/trace_get_13_5_0_trace.json | 35 ++++++ .../trace-get/trace_get_13_5_1_trace.json | 35 ++++++ .../trace-get/trace_get_13_5_2_trace.json | 29 +++++ .../trace-get/trace_get_13_5_3_trace.json | 35 ++++++ .../trace-get/trace_get_14_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_14_0_1_trace.json | 35 ++++++ .../trace-get/trace_get_14_1_0_trace.json | 35 ++++++ .../trace-get/trace_get_14_1_1_trace.json | 35 ++++++ .../trace-get/trace_get_15_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_15_0_1_trace.json | 35 ++++++ .../trace-get/trace_get_15_1_0_trace.json | 35 ++++++ .../trace-get/trace_get_15_1_1_trace.json | 35 ++++++ .../trace-get/trace_get_15_2_0_trace.json | 35 ++++++ .../trace-get/trace_get_15_2_1_trace.json | 35 ++++++ .../trace-get/trace_get_15_3_0_trace.json | 35 ++++++ .../trace-get/trace_get_15_3_1_trace.json | 35 ++++++ .../trace-get/trace_get_16_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_16_0_1_trace.json | 35 ++++++ .../trace-get/trace_get_16_1_0_trace.json | 35 ++++++ .../trace-get/trace_get_16_1_1_trace.json | 35 ++++++ .../trace-get/trace_get_16_2_0_trace.json | 35 ++++++ .../trace-get/trace_get_16_2_1_trace.json | 35 ++++++ .../trace-get/trace_get_16_3_0_trace.json | 35 ++++++ .../trace-get/trace_get_16_3_1_trace.json | 35 ++++++ .../trace-get/trace_get_17_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_17_0_1_trace.json | 35 ++++++ .../trace-get/trace_get_18_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_18_0_1_trace.json | 35 ++++++ .../trace-get/trace_get_18_0_2_trace.json | 35 ++++++ .../trace-get/trace_get_18_0_3_trace.json | 35 ++++++ .../trace-get/trace_get_19_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_19_1_0_trace.json | 35 ++++++ .../trace-get/trace_get_1a_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_1a_0_1_trace.json | 35 ++++++ .../trace-get/trace_get_1b_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_1b_0_1_trace.json | 29 +++++ .../trace-get/trace_get_1c_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_1c_0_1_trace.json | 29 +++++ .../trace-get/trace_get_1d_0_0_trace.json | 31 ++++++ .../trace-get/trace_get_1e_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_1e_0_1_trace.json | 32 ++++++ .../trace-get/trace_get_1e_0_2_trace.json | 32 ++++++ .../trace-get/trace_get_1f_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_20_0_0_trace.json | 35 ++++++ .../trace-get/trace_get_20_0_1_trace.json | 31 ++++++ .../trace-get/trace_get_21_0_0_trace.json | 31 ++++++ 95 files changed, 3230 insertions(+), 1 deletion(-) create mode 100644 ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/TraceGet.java create mode 100644 ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/util/TraceUtil.java create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_02_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_03_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_04_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_04_1_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_04_2_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_05_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_06_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_06_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_07_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_08_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_08_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_2_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_3_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0a_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0a_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0b_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0b_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0c_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0d_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0e_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0e_1_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0e_2_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0f_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0f_1_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_10_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_10_1_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_10_2_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_11_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_12_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_12_1_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_2_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_3_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_2_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_2_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_3_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_4_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_2_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_3_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_1_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_1_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_1_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_1_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_2_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_2_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_3_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_3_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_1_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_1_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_2_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_2_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_3_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_3_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_17_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_17_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_2_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_3_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_19_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_19_1_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1a_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1a_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1b_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1b_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1c_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1c_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1d_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1e_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1e_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1e_0_2_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1f_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_20_0_0_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_20_0_1_trace.json create mode 100644 ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_21_0_0_trace.json diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/RpcMethod.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/RpcMethod.java index 19564b10502..06954668eb6 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/RpcMethod.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/RpcMethod.java @@ -158,6 +158,7 @@ public enum RpcMethod { TRACE_REPLAY_BLOCK_TRANSACTIONS("trace_replayBlockTransactions"), TRACE_BLOCK("trace_block"), TRACE_CALL("trace_call"), + TRACE_GET("trace_get"), TRACE_TRANSACTION("trace_transaction"), TRACE_FILTER("trace_filter"), TX_POOL_BESU_STATISTICS("txpool_besuStatistics"), diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/TraceGet.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/TraceGet.java new file mode 100644 index 00000000000..ed74d0b42a3 --- /dev/null +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/TraceGet.java @@ -0,0 +1,76 @@ +/* + * Copyright ConsenSys AG. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +package org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods; + +import org.hyperledger.besu.datatypes.Hash; +import org.hyperledger.besu.ethereum.api.jsonrpc.RpcMethod; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.processor.BlockTracer; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcError; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.tracing.flat.FlatTrace; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.tracing.flat.MixInIgnoreRevertReason; +import org.hyperledger.besu.ethereum.api.query.BlockchainQueries; +import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; + +import java.util.List; +import java.util.function.Supplier; +import java.util.stream.Collectors; + +import com.fasterxml.jackson.databind.ObjectMapper; + +public class TraceGet extends AbstractTraceByHash implements JsonRpcMethod { + private static final ObjectMapper MAPPER_IGNORE_REVERT_REASON = new ObjectMapper(); + + public TraceGet( + final Supplier blockTracerSupplier, + final BlockchainQueries blockchainQueries, + final ProtocolSchedule protocolSchedule) { + super(blockTracerSupplier, blockchainQueries, protocolSchedule); + + // The trace_get specification does not output the revert reason, so we have to remove it + MAPPER_IGNORE_REVERT_REASON.addMixIn(FlatTrace.class, MixInIgnoreRevertReason.class); + } + + @Override + public String getName() { + return RpcMethod.TRACE_GET.getMethodName(); + } + + @Override + public JsonRpcResponse response(final JsonRpcRequestContext requestContext) { + if (requestContext.getRequest().getParamLength() != 2) { + return new JsonRpcErrorResponse( + requestContext.getRequest().getId(), JsonRpcError.INVALID_PARAMS); + } + + final Hash transactionHash = requestContext.getRequiredParameter(0, Hash.class); + final List traceNumbersAsStrings = requestContext.getRequiredParameter(1, List.class); + final List traceNumbers = + traceNumbersAsStrings.stream() + .map(t -> Integer.parseInt(((String) t).substring(2), 16)) + .collect(Collectors.toList()); + + return new JsonRpcSuccessResponse( + requestContext.getRequest().getId(), + MAPPER_IGNORE_REVERT_REASON.valueToTree( + resultByTransactionHash(transactionHash) + .filter(trace -> trace.getTraceAddress().equals(traceNumbers)) + .findFirst() + .orElse(null))); + } +} diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/TraceJsonRpcMethods.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/TraceJsonRpcMethods.java index e6a1411e737..40d2ab0c249 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/TraceJsonRpcMethods.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/TraceJsonRpcMethods.java @@ -19,6 +19,7 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.TraceBlock; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.TraceCall; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.TraceFilter; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.TraceGet; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.TraceReplayBlockTransactions; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.TraceTransaction; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.processor.BlockReplay; @@ -47,7 +48,6 @@ public class TraceJsonRpcMethods extends ApiGroupJsonRpcMethods { @Override protected String getApiGroup() { - // Disable TRACE functionality while under development return RpcApis.TRACE.name(); } @@ -62,6 +62,7 @@ protected Map create() { new TraceReplayBlockTransactions( () -> new BlockTracer(blockReplay), protocolSchedule, blockchainQueries), new TraceFilter(() -> new BlockTracer(blockReplay), protocolSchedule, blockchainQueries), + new TraceGet(() -> new BlockTracer(blockReplay), blockchainQueries, protocolSchedule), new TraceTransaction( () -> new BlockTracer(blockReplay), protocolSchedule, blockchainQueries), new TraceBlock(() -> new BlockTracer(blockReplay), protocolSchedule, blockchainQueries), diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/util/TraceUtil.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/util/TraceUtil.java new file mode 100644 index 00000000000..efdb3e89285 --- /dev/null +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/util/TraceUtil.java @@ -0,0 +1,100 @@ +/* + * Copyright ConsenSys AG. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +package org.hyperledger.besu.ethereum.api.util; + +import org.hyperledger.besu.datatypes.Hash; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.processor.BlockTrace; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.processor.BlockTracer; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.processor.TransactionTrace; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.tracing.flat.FlatTrace; +import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.tracing.flat.FlatTraceGenerator; +import org.hyperledger.besu.ethereum.api.query.BlockchainQueries; +import org.hyperledger.besu.ethereum.api.query.TransactionWithMetadata; +import org.hyperledger.besu.ethereum.core.Block; +import org.hyperledger.besu.ethereum.debug.TraceOptions; +import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; +import org.hyperledger.besu.ethereum.vm.DebugOperationTracer; + +import java.util.Collections; +import java.util.function.Supplier; +import java.util.stream.Stream; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; + +public class TraceUtil { + + private TraceUtil() { + throw new IllegalStateException("Utility class"); + } + + public static Stream resultByTransactionHash( + final Hash transactionHash, + final BlockchainQueries blockchainQueries, + final Supplier blockTracerSupplier, + final ProtocolSchedule protocolSchedule) { + return blockchainQueries + .transactionByHash(transactionHash) + .flatMap(TransactionWithMetadata::getBlockNumber) + .flatMap(blockNumber -> blockchainQueries.getBlockchain().getBlockByNumber(blockNumber)) + .map(block -> getTraceBlock(block, transactionHash, blockTracerSupplier, protocolSchedule)) + .orElse(Stream.empty()); + } + + private static Stream getTraceBlock( + final Block block, + final Hash transactionHash, + final Supplier blockTracerSupplier, + final ProtocolSchedule protocolSchedule) { + if (block == null || block.getBody().getTransactions().isEmpty()) { + return Stream.empty(); + } + final TransactionTrace transactionTrace = + getTransactionTrace(block, transactionHash, blockTracerSupplier); + return getTraceStream(protocolSchedule, transactionTrace, block); + } + + private static TransactionTrace getTransactionTrace( + final Block block, + final Hash transactionHash, + final Supplier blockTracerSupplier) { + return blockTracerSupplier + .get() + .trace(block, new DebugOperationTracer(new TraceOptions(false, false, true))) + .map(BlockTrace::getTransactionTraces) + .orElse(Collections.emptyList()) + .stream() + .filter(trxTrace -> trxTrace.getTransaction().getHash().equals(transactionHash)) + .findFirst() + .orElseThrow(); + } + + private static Stream getTraceStream( + final ProtocolSchedule protocolSchedule, + final TransactionTrace transactionTrace, + final Block block) { + return FlatTraceGenerator.generateFromTransactionTraceAndBlock( + protocolSchedule, transactionTrace, block) + .map(FlatTrace.class::cast); + } + + public static JsonNode arrayNodeFromTraceStream(final Stream traceStream) { + final ObjectMapper mapper = new ObjectMapper(); + final ArrayNode resultArrayNode = mapper.createArrayNode(); + traceStream.forEachOrdered(resultArrayNode::addPOJO); + return resultArrayNode; + } +} diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/bonsai/TraceJsonRpcHttpBySpecTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/bonsai/TraceJsonRpcHttpBySpecTest.java index 1daf5aba7ab..44bf421fb67 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/bonsai/TraceJsonRpcHttpBySpecTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/bonsai/TraceJsonRpcHttpBySpecTest.java @@ -48,6 +48,7 @@ public static Object[][] specs() { return AbstractJsonRpcHttpBySpecTest.findSpecFiles( new String[] { "trace/specs/trace-block", + "trace/specs/trace-get", "trace/specs/trace-transaction", "trace/specs/replay-trace-transaction/flat", "trace/specs/replay-trace-transaction/vm-trace", diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/forest/TraceJsonRpcHttpBySpecTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/forest/TraceJsonRpcHttpBySpecTest.java index 22970bdfdf9..1ecb10b2382 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/forest/TraceJsonRpcHttpBySpecTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/forest/TraceJsonRpcHttpBySpecTest.java @@ -48,6 +48,7 @@ public static Object[][] specs() { return AbstractJsonRpcHttpBySpecTest.findSpecFiles( new String[] { "trace/specs/trace-block", + "trace/specs/trace-get", "trace/specs/trace-transaction", "trace/specs/replay-trace-transaction/flat", "trace/specs/replay-trace-transaction/vm-trace", diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_02_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_02_0_0_trace.json new file mode 100644 index 00000000000..58a574cdb59 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_02_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Simple value transfer", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x28fa8042c7b5835f4f91fc20937f3e70dcf3585c1afe31202bb6075185f9abfe", [ ] ], + "id" : 197 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x0000000000000000000000000000000000000999", + "value" : "0x1" + }, + "blockHash" : "0xf07e45fae684d31ce732c3026e57c810d4f236261aa39b20017137c348ffac4b", + "blockNumber" : 2, + "result" : { + "gasUsed" : "0x0", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x28fa8042c7b5835f4f91fc20937f3e70dcf3585c1afe31202bb6075185f9abfe", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 197 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_03_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_03_0_0_trace.json new file mode 100644 index 00000000000..2b08f1135c3 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_03_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Deploy contract that will self-destruct when called.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x8d5477f0aae852c3e9487b0f8e7b9ecf9ccdf23d7934d4b4b7eff40c271031e5", [ ] ], + "id" : 200 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod": "create", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xff300e", + "init" : "0x6004600c60003960046000f3600035ff", + "value" : "0x0" + }, + "blockHash" : "0x47a62e941d567d1d7411b32ff38bdef817357d226a0204c285e8db27b3808554", + "blockNumber" : 3, + "result" : { + "address" : "0xf12b5dd4ead5f743c6baa640b0216200e89b60da", + "code" : "0x600035ff", + "gasUsed" : "0x338" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x8d5477f0aae852c3e9487b0f8e7b9ecf9ccdf23d7934d4b4b7eff40c271031e5", + "transactionPosition" : 0, + "type" : "create" + }, + "id" : 200 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_04_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_04_0_0_trace.json new file mode 100644 index 00000000000..b5b813482cc --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_04_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,1),(2,2)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x4de634fe767d1f6d0512ca0c9c0a054d3a2596f7cdd7c1eea5f93046a740b3c7", [ ] ], + "id" : 203 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffabba", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xa1221b6473a02f05fd7235f3b336c9a061c04e74afc0034e8d6207148149d2be", + "blockNumber" : 4, + "result" : { + "gasUsed" : "0x9c58", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x4de634fe767d1f6d0512ca0c9c0a054d3a2596f7cdd7c1eea5f93046a740b3c7", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 203 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_04_1_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_04_1_0_trace.json new file mode 100644 index 00000000000..b5539b5ccae --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_04_1_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,3),(2,4)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xf882ec206292910527fd7095e59a1ca027b873296f1eba3886aa1addc4ff0ab9", [ ] ], + "id" : 206 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffabba", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xa1221b6473a02f05fd7235f3b336c9a061c04e74afc0034e8d6207148149d2be", + "blockNumber" : 4, + "result" : { + "gasUsed" : "0x2728", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0xf882ec206292910527fd7095e59a1ca027b873296f1eba3886aa1addc4ff0ab9", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 206 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_04_2_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_04_2_0_trace.json new file mode 100644 index 00000000000..a4cd655c576 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_04_2_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,3),(1,0)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x7ca6bf869e8882216f7443accb8d642df41af5bfa3a0e63bf03be2cfe629a030", [ ] ], + "id" : 209 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffabc6", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xa1221b6473a02f05fd7235f3b336c9a061c04e74afc0034e8d6207148149d2be", + "blockNumber" : 4, + "result" : { + "gasUsed" : "0x16c0", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x7ca6bf869e8882216f7443accb8d642df41af5bfa3a0e63bf03be2cfe629a030", + "transactionPosition" : 2, + "type" : "call" + }, + "id" : 209 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_05_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_05_0_0_trace.json new file mode 100644 index 00000000000..b8e5aa7a463 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_05_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Clear contract storage keys 1 and 2", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xdb2cd5e93dedae66371fc4a95452c746e11f7d2097464707597b8807c889ef5b", [ ] ], + "id" : 212 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffabd2", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xcad905f558c932b0dd40ffac69b021569a24388ae5f00e6d91cfe99ca6eb69df", + "blockNumber" : 5, + "result" : { + "gasUsed" : "0x16c0", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0xdb2cd5e93dedae66371fc4a95452c746e11f7d2097464707597b8807c889ef5b", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 212 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_06_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_06_0_0_trace.json new file mode 100644 index 00000000000..f8274584219 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_06_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Self destruct and send contract balance to address provided in the data field.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x91eeabc671e2dd2b1c8ddebb46ba59e8cb3e7d189f80bcc868a9787728c6e59e", [ ] ], + "id" : 215 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffad82", + "input" : "0x0000000000000000000000000000000000000999", + "to" : "0x0020000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xcd5d9c7acdcbd3fb4b24a39e05a38e32235751bb0c9e4f1aa16dc598a2c2a9e4", + "blockNumber" : 6, + "result" : { + "gasUsed" : "0x7536", + "output" : "0x" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x91eeabc671e2dd2b1c8ddebb46ba59e8cb3e7d189f80bcc868a9787728c6e59e", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 215 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_06_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_06_0_1_trace.json new file mode 100644 index 00000000000..2fb482d6881 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_06_0_1_trace.json @@ -0,0 +1,29 @@ +{ + "comment" : "Self destruct and send contract balance to address provided in the data field.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x91eeabc671e2dd2b1c8ddebb46ba59e8cb3e7d189f80bcc868a9787728c6e59e", [ "0x0" ] ], + "id" : 216 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "address" : "0x0020000000000000000000000000000000000000", + "balance" : "0x300", + "refundAddress" : "0x0000000000000999000000000000000000000000" + }, + "blockHash" : "0xcd5d9c7acdcbd3fb4b24a39e05a38e32235751bb0c9e4f1aa16dc598a2c2a9e4", + "blockNumber" : 6, + "result" : null, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0x91eeabc671e2dd2b1c8ddebb46ba59e8cb3e7d189f80bcc868a9787728c6e59e", + "transactionPosition" : 0, + "type" : "suicide" + }, + "id" : 216 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_07_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_07_0_0_trace.json new file mode 100644 index 00000000000..e55c10d36e5 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_07_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Increment 32 bytes provided in data field and return the value.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x47f4d445ea1812cb1ddd3464ab23d2bfc6ed408a8a9db1c497f94e8e06e85286", [ ] ], + "id" : 219 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffad52", + "input" : "0xf000000000000000000000000000000000000000000000000000000000000001", + "to" : "0x0030000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xeed85fe57db751442c826cfe4fdf43b10a5c2bc8b6fd3a8ccced48eb3fb35885", + "blockNumber" : 7, + "result" : { + "gasUsed" : "0x1b", + "output" : "0xf000000000000000000000000000000000000000000000000000000000000002" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x47f4d445ea1812cb1ddd3464ab23d2bfc6ed408a8a9db1c497f94e8e06e85286", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 219 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_08_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_08_0_0_trace.json new file mode 100644 index 00000000000..ef03e8c52fa --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_08_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - 1 level deep.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xa29f9d6a4f183f4c22c4857544a9a6b69c48d7bb8a97652be06e50bb69470666", [ ] ], + "id" : 222 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffacc6", + "input" : "0x0000000000000000000000000030000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000001", + "to" : "0x0040000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x35a8bb01d5da479278581033c58e242e6dd65606d4b5ee7332e074c849af2fe8", + "blockNumber" : 8, + "result" : { + "gasUsed" : "0x30a", + "output" : "0xf000000000000000000000000000000000000000000000000000000000000002" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0xa29f9d6a4f183f4c22c4857544a9a6b69c48d7bb8a97652be06e50bb69470666", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 222 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_08_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_08_0_1_trace.json new file mode 100644 index 00000000000..93c5794e46b --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_08_0_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - 1 level deep.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xa29f9d6a4f183f4c22c4857544a9a6b69c48d7bb8a97652be06e50bb69470666", [ "0x0" ] ], + "id" : 223 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0040000000000000000000000000000000000000", + "gas" : "0xfbab36", + "input" : "0xf000000000000000000000000000000000000000000000000000000000000001", + "to" : "0x0030000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x35a8bb01d5da479278581033c58e242e6dd65606d4b5ee7332e074c849af2fe8", + "blockNumber" : 8, + "result" : { + "gasUsed" : "0x1b", + "output" : "0xf000000000000000000000000000000000000000000000000000000000000002" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0xa29f9d6a4f183f4c22c4857544a9a6b69c48d7bb8a97652be06e50bb69470666", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 223 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_0_trace.json new file mode 100644 index 00000000000..ea2aa90d7fb --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - several levels deep. Using CALL.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x4af0ef28fbfcbdee7cc5925797c1b9030b3848c2f63f92737c3fe76b45582af5", [ ] ], + "id" : 226 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffabae", + "input" : "0x000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000001", + "to" : "0x0040000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x650cefaa3eae1542dfd6f6fbdee553d743393369887a9dce7b658ca93069fee2", + "blockNumber" : 9, + "result" : { + "gasUsed" : "0x8fa", + "output" : "0xf000000000000000000000000000000000000000000000000000000000000002" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x4af0ef28fbfcbdee7cc5925797c1b9030b3848c2f63f92737c3fe76b45582af5", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 226 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_1_trace.json new file mode 100644 index 00000000000..cff8a78fbd7 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - several levels deep. Using CALL.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x4af0ef28fbfcbdee7cc5925797c1b9030b3848c2f63f92737c3fe76b45582af5", [ "0x0" ] ], + "id" : 227 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0040000000000000000000000000000000000000", + "gas" : "0xfbaa17", + "input" : "0x00000000000000000000000000400000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000001", + "to" : "0x0040000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x650cefaa3eae1542dfd6f6fbdee553d743393369887a9dce7b658ca93069fee2", + "blockNumber" : 9, + "result" : { + "gasUsed" : "0x5ff", + "output" : "0xf000000000000000000000000000000000000000000000000000000000000002" + }, + "subtraces" : 1, + "traceAddress" : [ 0 ], + "transactionHash" : "0x4af0ef28fbfcbdee7cc5925797c1b9030b3848c2f63f92737c3fe76b45582af5", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 227 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_2_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_2_trace.json new file mode 100644 index 00000000000..048c8e13dc7 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_2_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - several levels deep. Using CALL.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x4af0ef28fbfcbdee7cc5925797c1b9030b3848c2f63f92737c3fe76b45582af5", [ "0x0", "0x0" ] ], + "id" : 228 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0040000000000000000000000000000000000000", + "gas" : "0xf7b88c", + "input" : "0x0000000000000000000000000030000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000001", + "to" : "0x0040000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x650cefaa3eae1542dfd6f6fbdee553d743393369887a9dce7b658ca93069fee2", + "blockNumber" : 9, + "result" : { + "gasUsed" : "0x30a", + "output" : "0xf000000000000000000000000000000000000000000000000000000000000002" + }, + "subtraces" : 1, + "traceAddress" : [ 0, 0 ], + "transactionHash" : "0x4af0ef28fbfcbdee7cc5925797c1b9030b3848c2f63f92737c3fe76b45582af5", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 228 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_3_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_3_trace.json new file mode 100644 index 00000000000..950ed9dd74b --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_09_0_3_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - several levels deep. Using CALL.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x4af0ef28fbfcbdee7cc5925797c1b9030b3848c2f63f92737c3fe76b45582af5", [ "0x0", "0x0", "0x0" ] ], + "id" : 229 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0040000000000000000000000000000000000000", + "gas" : "0xf3d6cd", + "input" : "0xf000000000000000000000000000000000000000000000000000000000000001", + "to" : "0x0030000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x650cefaa3eae1542dfd6f6fbdee553d743393369887a9dce7b658ca93069fee2", + "blockNumber" : 9, + "result" : { + "gasUsed" : "0x1b", + "output" : "0xf000000000000000000000000000000000000000000000000000000000000002" + }, + "subtraces" : 0, + "traceAddress" : [ 0, 0, 0 ], + "transactionHash" : "0x4af0ef28fbfcbdee7cc5925797c1b9030b3848c2f63f92737c3fe76b45582af5", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 229 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0a_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0a_0_0_trace.json new file mode 100644 index 00000000000..a8fc8d10e87 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0a_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - 1 level deep. Using CALLCODE.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x4ec95b7de430b61fc9a57ed35274fd766b7f5fac5213ab946963eb528deae6b5", [ ] ], + "id" : 232 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffacc6", + "input" : "0x0000000000000000000000000030000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000001", + "to" : "0x0050000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xf020928933dc70cc8b6034b6881501cb6cbf57cacd8cfb01ed6b2329e68e7073", + "blockNumber" : 10, + "result" : { + "gasUsed" : "0x30a", + "output" : "0xf000000000000000000000000000000000000000000000000000000000000002" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x4ec95b7de430b61fc9a57ed35274fd766b7f5fac5213ab946963eb528deae6b5", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 232 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0a_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0a_0_1_trace.json new file mode 100644 index 00000000000..aa93ccef3c8 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0a_0_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - 1 level deep. Using CALLCODE.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x4ec95b7de430b61fc9a57ed35274fd766b7f5fac5213ab946963eb528deae6b5", [ "0x0" ] ], + "id" : 233 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "callcode", + "from" : "0x0050000000000000000000000000000000000000", + "gas" : "0xfbab36", + "input" : "0xf000000000000000000000000000000000000000000000000000000000000001", + "to" : "0x0030000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xf020928933dc70cc8b6034b6881501cb6cbf57cacd8cfb01ed6b2329e68e7073", + "blockNumber" : 10, + "result" : { + "gasUsed" : "0x1b", + "output" : "0xf000000000000000000000000000000000000000000000000000000000000002" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0x4ec95b7de430b61fc9a57ed35274fd766b7f5fac5213ab946963eb528deae6b5", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 233 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0b_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0b_0_0_trace.json new file mode 100644 index 00000000000..b1965504b1b --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0b_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - 1 level deep. Using DELEGATECALL.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x6f77512ee9d43474a884c0703c86712fb98dca772fa6e12252786e3e23f196c1", [ ] ], + "id" : 236 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffacc6", + "input" : "0x0000000000000000000000000030000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000001", + "to" : "0x0060000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x61bfd9fcaa09a2a9df0276acce68b5212d42bebab67034aa6603cc6dfbb70db5", + "blockNumber" : 11, + "result" : { + "gasUsed" : "0x308", + "output" : "0xf000000000000000000000000000000000000000000000000000000000000002" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x6f77512ee9d43474a884c0703c86712fb98dca772fa6e12252786e3e23f196c1", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 236 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0b_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0b_0_1_trace.json new file mode 100644 index 00000000000..225ecd47221 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0b_0_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - 1 level deep. Using DELEGATECALL.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x6f77512ee9d43474a884c0703c86712fb98dca772fa6e12252786e3e23f196c1", [ "0x0" ] ], + "id" : 237 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "delegatecall", + "from" : "0x0060000000000000000000000000000000000000", + "gas" : "0xfbab38", + "input" : "0xf000000000000000000000000000000000000000000000000000000000000001", + "to" : "0x0030000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x61bfd9fcaa09a2a9df0276acce68b5212d42bebab67034aa6603cc6dfbb70db5", + "blockNumber" : 11, + "result" : { + "gasUsed" : "0x1b", + "output" : "0xf000000000000000000000000000000000000000000000000000000000000002" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0x6f77512ee9d43474a884c0703c86712fb98dca772fa6e12252786e3e23f196c1", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 237 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0c_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0c_0_0_trace.json new file mode 100644 index 00000000000..3f66c435da5 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0c_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Sequential memory modifications with MSTORE8.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x12e4a98e63825852a69d7702202a3b593e4059ec913c479443665d590da18724", [ ] ], + "id" : 240 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x0070000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x9ac8374676c21436e676693b9b4162120e946a73625d07c9dd78718054327c87", + "blockNumber" : 12, + "result" : { + "gasUsed" : "0x1e", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x12e4a98e63825852a69d7702202a3b593e4059ec913c479443665d590da18724", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 240 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0d_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0d_0_0_trace.json new file mode 100644 index 00000000000..e55cecfa2c3 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0d_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Sequential memory modifications with MSTORE.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x547c7e2fcdf9f88b03b4f4184d667d6768c669f279785774d0cf42435cab06f1", [ ] ], + "id" : 243 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x0080000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xfc8c590f4fc52847a23c83df28ca920a6b76e587ba68ce1e85b67a6154be320a", + "blockNumber" : 13, + "result" : { + "gasUsed" : "0xf", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x547c7e2fcdf9f88b03b4f4184d667d6768c669f279785774d0cf42435cab06f1", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 243 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0e_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0e_0_0_trace.json new file mode 100644 index 00000000000..17efa06c210 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0e_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Increments contract storage 0 by 1", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xe3ebc73c55176c3f2e72b289f8a9cefbcd5b25dcd205db5661f81b0bb974fa73", [ ] ], + "id" : 246 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x0090000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xd8e78c27c182cefe8a1da2fe2980d6e2fd43a2e1db1bd7ff30f1eef79faa277b", + "blockNumber" : 14, + "result" : { + "gasUsed" : "0x515e", + "output" : "0x01" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0xe3ebc73c55176c3f2e72b289f8a9cefbcd5b25dcd205db5661f81b0bb974fa73", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 246 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0e_1_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0e_1_0_trace.json new file mode 100644 index 00000000000..1d4b71647df --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0e_1_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Increments contract storage 0 by 1", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xb4dc55ca4a7c1f72402860c594efaa7da32035003f8e203b7f6a3cf1826685a5", [ ] ], + "id" : 249 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x0090000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xd8e78c27c182cefe8a1da2fe2980d6e2fd43a2e1db1bd7ff30f1eef79faa277b", + "blockNumber" : 14, + "result" : { + "gasUsed" : "0x16c6", + "output" : "0x02" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0xb4dc55ca4a7c1f72402860c594efaa7da32035003f8e203b7f6a3cf1826685a5", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 249 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0e_2_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0e_2_0_trace.json new file mode 100644 index 00000000000..fffb875e9f0 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0e_2_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Increments contract storage 0 by 1", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x1a9f6256886437cfa21ee7685dd7a996024bea4d4bf6554b14787a6c9e5b90e6", [ ] ], + "id" : 252 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x0090000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xd8e78c27c182cefe8a1da2fe2980d6e2fd43a2e1db1bd7ff30f1eef79faa277b", + "blockNumber" : 14, + "result" : { + "gasUsed" : "0x16c6", + "output" : "0x03" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x1a9f6256886437cfa21ee7685dd7a996024bea4d4bf6554b14787a6c9e5b90e6", + "transactionPosition" : 2, + "type" : "call" + }, + "id" : 252 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0f_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0f_0_0_trace.json new file mode 100644 index 00000000000..b5e3956e409 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0f_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Log output with LOG1.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x293cefc718137a74d36a5da204e3617604a9e8dfc79b6a6efb11056b3efd3b4a", [ ] ], + "id" : 255 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x00a0000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x69e9470ef04a4188a806f3474b03001845fd3722f4c7c58589ef7623549f8dc8", + "blockNumber" : 15, + "result" : { + "gasUsed" : "0x30b", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x293cefc718137a74d36a5da204e3617604a9e8dfc79b6a6efb11056b3efd3b4a", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 255 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0f_1_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0f_1_0_trace.json new file mode 100644 index 00000000000..07bdd345032 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_0f_1_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Log output with LOG2.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xb19370be2ace59794ee9bb5a69db98464cd6cb0b02b9afb3b978c9aad2bf5417", [ ] ], + "id" : 258 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x00b0000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x69e9470ef04a4188a806f3474b03001845fd3722f4c7c58589ef7623549f8dc8", + "blockNumber" : 15, + "result" : { + "gasUsed" : "0x485", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0xb19370be2ace59794ee9bb5a69db98464cd6cb0b02b9afb3b978c9aad2bf5417", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 258 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_10_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_10_0_0_trace.json new file mode 100644 index 00000000000..a84ebcadbfe --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_10_0_0_trace.json @@ -0,0 +1,32 @@ +{ + "comment" : "Various exceptional halt cases. Invalid OPCODE (0x1F).", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x6aed559a5dcf73efa132d8182585c40fdc6ef3b99a7629d80ffd4a62cb3db622", [ ] ], + "id" : 261 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x00c0000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x7d3d4c1129ebce54739fedf2642ea2cfaeafa48c2c489a11512d95f578f92abc", + "blockNumber" : 16, + "error" : "Bad instruction", + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x6aed559a5dcf73efa132d8182585c40fdc6ef3b99a7629d80ffd4a62cb3db622", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 261 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_10_1_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_10_1_0_trace.json new file mode 100644 index 00000000000..aaa3637b355 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_10_1_0_trace.json @@ -0,0 +1,32 @@ +{ + "comment" : "Various exceptional halt cases. INSUFFICIENT_STACK_ITEMS.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xb39fa8a1cb1db4663dc3733bc014d524e90a862bf2607e028eeb3932d92574fe", [ ] ], + "id" : 264 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x00d0000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x7d3d4c1129ebce54739fedf2642ea2cfaeafa48c2c489a11512d95f578f92abc", + "blockNumber" : 16, + "error" : "Stack underflow", + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0xb39fa8a1cb1db4663dc3733bc014d524e90a862bf2607e028eeb3932d92574fe", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 264 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_10_2_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_10_2_0_trace.json new file mode 100644 index 00000000000..694d6fdfec7 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_10_2_0_trace.json @@ -0,0 +1,32 @@ +{ + "comment" : "Various exceptional halt cases. INVALID_JUMP_DESTINATION.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x11a725053a6ece79d8de11cb75dd1f09c40dcd109a1c63573e847ad4f456a296", [ ] ], + "id" : 267 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x00e0000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x7d3d4c1129ebce54739fedf2642ea2cfaeafa48c2c489a11512d95f578f92abc", + "blockNumber" : 16, + "error" : "Bad jump destination", + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x11a725053a6ece79d8de11cb75dd1f09c40dcd109a1c63573e847ad4f456a296", + "transactionPosition" : 2, + "type" : "call" + }, + "id" : 267 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_11_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_11_0_0_trace.json new file mode 100644 index 00000000000..0ac1421c19a --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_11_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Pushes 1, 2, 3, then SWAP2 and SWAP1.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x93d974a14c784be231a7b580a6476a330e5d6f9ddfef70a6b5cacd9f91a1e495", [ ] ], + "id" : 270 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x00f0000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xfde8b9bcfdc9f75845f3eb9920107e51844478a09ec430dae2df741200da3058", + "blockNumber" : 17, + "result" : { + "gasUsed" : "0xf", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x93d974a14c784be231a7b580a6476a330e5d6f9ddfef70a6b5cacd9f91a1e495", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 270 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_12_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_12_0_0_trace.json new file mode 100644 index 00000000000..40a8d069c53 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_12_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Memory Read.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x2a5079cc535c429f668f13a7fb9a28bdba6831b5462bd04f781777b332a8fcbd", [ ] ], + "id" : 273 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x0100000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x220bc13dc4f1ed38dcca927a5be15eca16497d279f4c40d7b8fe9704eadf1464", + "blockNumber" : 18, + "result" : { + "gasUsed" : "0x1e", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x2a5079cc535c429f668f13a7fb9a28bdba6831b5462bd04f781777b332a8fcbd", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 273 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_12_1_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_12_1_0_trace.json new file mode 100644 index 00000000000..6783f2fc5af --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_12_1_0_trace.json @@ -0,0 +1,32 @@ +{ + "comment" : "Revert.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xc388baa0e55e6b73e850b22dc7e9853700f6b995fd55d95dd6ccd5a13d63c566", [ ] ], + "id" : 276 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x0110000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x220bc13dc4f1ed38dcca927a5be15eca16497d279f4c40d7b8fe9704eadf1464", + "blockNumber" : 18, + "error" : "Reverted", + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0xc388baa0e55e6b73e850b22dc7e9853700f6b995fd55d95dd6ccd5a13d63c566", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 276 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_0_0_trace.json new file mode 100644 index 00000000000..1afd745cc34 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Deploy contract that will self-destruct when called.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x1309b6d2187aa8b0dfe78fcf0a96d4a3e861bfbc381959d253ede57624a37f9b", [ ] ], + "id" : 279 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod": "create", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xff300e", + "init" : "0x6004600c60003960046000f3600035ff", + "value" : "0x0" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : { + "address" : "0x8f0483125fcb9aaaefa9209d8e9d7b9c8b9fb90f", + "code" : "0x600035ff", + "gasUsed" : "0x338" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x1309b6d2187aa8b0dfe78fcf0a96d4a3e861bfbc381959d253ede57624a37f9b", + "transactionPosition" : 0, + "type" : "create" + }, + "id" : 279 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_0_trace.json new file mode 100644 index 00000000000..cc4d6fef7d9 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "call the prior contract then call log contract 00a0..00.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x6b9b967cfbeedeb7f0f4956b8103075ddfcea26c01d6d5dc3f9e2ed2ec9c42c0", [ ] ], + "id" : 282 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod": "create", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xff2e26", + "init" : "0x60006000600060006000738f0483125fcb9aaaefa9209d8e9d7b9c8b9fb90f5af1600060006000600060007300a00000000000000000000000000000000000005af1", + "value" : "0x0" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : { + "address" : "0x9fbda871d559710256a2502a2517b794b482db40", + "code" : "0x", + "gasUsed" : "0x1c39" + }, + "subtraces" : 2, + "traceAddress" : [ ], + "transactionHash" : "0x6b9b967cfbeedeb7f0f4956b8103075ddfcea26c01d6d5dc3f9e2ed2ec9c42c0", + "transactionPosition" : 1, + "type" : "create" + }, + "id" : 282 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_1_trace.json new file mode 100644 index 00000000000..bbb0a5affe0 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "call the prior contract then call log contract 00a0..00.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x6b9b967cfbeedeb7f0f4956b8103075ddfcea26c01d6d5dc3f9e2ed2ec9c42c0", [ "0x0" ] ], + "id" : 283 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x9fbda871d559710256a2502a2517b794b482db40", + "gas" : "0xfb2ea9", + "input" : "0x", + "to" : "0x8f0483125fcb9aaaefa9209d8e9d7b9c8b9fb90f", + "value" : "0x0" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : { + "gasUsed" : "0x138e", + "output" : "0x" + }, + "subtraces" : 1, + "traceAddress" : [ 0 ], + "transactionHash" : "0x6b9b967cfbeedeb7f0f4956b8103075ddfcea26c01d6d5dc3f9e2ed2ec9c42c0", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 283 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_2_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_2_trace.json new file mode 100644 index 00000000000..beb6a987302 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_2_trace.json @@ -0,0 +1,29 @@ +{ + "comment" : "call the prior contract then call log contract 00a0..00.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x6b9b967cfbeedeb7f0f4956b8103075ddfcea26c01d6d5dc3f9e2ed2ec9c42c0", [ "0x0", "0x0" ] ], + "id" : 284 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "address" : "0x8f0483125fcb9aaaefa9209d8e9d7b9c8b9fb90f", + "balance" : "0x0", + "refundAddress" : "0x0000000000000000000000000000000000000000" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : null, + "subtraces" : 0, + "traceAddress" : [ 0, 0 ], + "transactionHash" : "0x6b9b967cfbeedeb7f0f4956b8103075ddfcea26c01d6d5dc3f9e2ed2ec9c42c0", + "transactionPosition" : 1, + "type" : "suicide" + }, + "id" : 284 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_3_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_3_trace.json new file mode 100644 index 00000000000..63443983a8f --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_1_3_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "call the prior contract then call log contract 00a0..00.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x6b9b967cfbeedeb7f0f4956b8103075ddfcea26c01d6d5dc3f9e2ed2ec9c42c0", [ "0x1" ] ], + "id" : 285 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x9fbda871d559710256a2502a2517b794b482db40", + "gas" : "0xfb18a5", + "input" : "0x", + "to" : "0x00a0000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : { + "gasUsed" : "0x30b", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 1 ], + "transactionHash" : "0x6b9b967cfbeedeb7f0f4956b8103075ddfcea26c01d6d5dc3f9e2ed2ec9c42c0", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 285 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_2_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_2_0_trace.json new file mode 100644 index 00000000000..bee0d9d78b3 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_2_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Deploy contract that will self-destruct when called.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xf12fd37f0836bd51f21bc15aa6bf5bea4b62fbbd39e1ee06725f91ac13ebc904", [ ] ], + "id" : 288 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod": "create", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xff300e", + "init" : "0x6004600c60003960046000f3600035ff", + "value" : "0x0" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : { + "address" : "0x2c2b9c9a4a25e24b174f26114e8926a9f2128fe4", + "code" : "0x600035ff", + "gasUsed" : "0x338" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0xf12fd37f0836bd51f21bc15aa6bf5bea4b62fbbd39e1ee06725f91ac13ebc904", + "transactionPosition" : 2, + "type" : "create" + }, + "id" : 288 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_0_trace.json new file mode 100644 index 00000000000..4a78d24084c --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "call the prior contract then callcode log contract 00a0..00.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x4c253746668dca6ac3f7b9bc18248b558a95b5fc881d140872c2dff984d344a7", [ ] ], + "id" : 291 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod": "create", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xff2e26", + "init" : "0x60006000600060006000732c2b9c9a4a25e24b174f26114e8926a9f2128fe45af2600060006000600060007300a00000000000000000000000000000000000005af2", + "value" : "0x0" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : { + "address" : "0x30753e4a8aad7f8597332e813735def5dd395028", + "code" : "0x", + "gasUsed" : "0x1c39" + }, + "subtraces" : 2, + "traceAddress" : [ ], + "transactionHash" : "0x4c253746668dca6ac3f7b9bc18248b558a95b5fc881d140872c2dff984d344a7", + "transactionPosition" : 3, + "type" : "create" + }, + "id" : 291 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_1_trace.json new file mode 100644 index 00000000000..93f7eee4264 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "call the prior contract then callcode log contract 00a0..00.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x4c253746668dca6ac3f7b9bc18248b558a95b5fc881d140872c2dff984d344a7", [ "0x0" ] ], + "id" : 292 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "callcode", + "from" : "0x30753e4a8aad7f8597332e813735def5dd395028", + "gas" : "0xfb2ea9", + "input" : "0x", + "to" : "0x2c2b9c9a4a25e24b174f26114e8926a9f2128fe4", + "value" : "0x0" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : { + "gasUsed" : "0x138e", + "output" : "0x" + }, + "subtraces" : 1, + "traceAddress" : [ 0 ], + "transactionHash" : "0x4c253746668dca6ac3f7b9bc18248b558a95b5fc881d140872c2dff984d344a7", + "transactionPosition" : 3, + "type" : "call" + }, + "id" : 292 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_2_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_2_trace.json new file mode 100644 index 00000000000..381f77fe8b6 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_2_trace.json @@ -0,0 +1,29 @@ +{ + "comment" : "call the prior contract then callcode log contract 00a0..00.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x4c253746668dca6ac3f7b9bc18248b558a95b5fc881d140872c2dff984d344a7", [ "0x0", "0x0" ] ], + "id" : 293 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "address" : "0x30753e4a8aad7f8597332e813735def5dd395028", + "balance" : "0x0", + "refundAddress" : "0x0000000000000000000000000000000000000000" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : null, + "subtraces" : 0, + "traceAddress" : [ 0, 0 ], + "transactionHash" : "0x4c253746668dca6ac3f7b9bc18248b558a95b5fc881d140872c2dff984d344a7", + "transactionPosition" : 3, + "type" : "suicide" + }, + "id" : 293 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_3_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_3_trace.json new file mode 100644 index 00000000000..c51fc92fa03 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_3_3_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "call the prior contract then callcode log contract 00a0..00.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x4c253746668dca6ac3f7b9bc18248b558a95b5fc881d140872c2dff984d344a7", [ "0x1" ] ], + "id" : 294 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "callcode", + "from" : "0x30753e4a8aad7f8597332e813735def5dd395028", + "gas" : "0xfb18a5", + "input" : "0x", + "to" : "0x00a0000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : { + "gasUsed" : "0x30b", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 1 ], + "transactionHash" : "0x4c253746668dca6ac3f7b9bc18248b558a95b5fc881d140872c2dff984d344a7", + "transactionPosition" : 3, + "type" : "call" + }, + "id" : 294 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_4_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_4_0_trace.json new file mode 100644 index 00000000000..4476501dbbb --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_4_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Deploy contract that will self-destruct when called.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x821ca63d171c5a3c60d32a738803092a52562056db3727a175f659cf49aae283", [ ] ], + "id" : 297 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod": "create", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xff300e", + "init" : "0x6004600c60003960046000f3600035ff", + "value" : "0x0" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : { + "address" : "0xfb88de099e13c3ed21f80a7a1e49f8caecf10df6", + "code" : "0x600035ff", + "gasUsed" : "0x338" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x821ca63d171c5a3c60d32a738803092a52562056db3727a175f659cf49aae283", + "transactionPosition" : 4, + "type" : "create" + }, + "id" : 297 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_0_trace.json new file mode 100644 index 00000000000..880b2174f7e --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "call the prior contract then delegatecall log contract 00a0..00.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xb795475e8f1820b683b60eb1a366bdc23e29f9cdf9639f7768c6644d20e3bbd1", [ ] ], + "id" : 300 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod": "create", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xff2e4e", + "init" : "0x600060006000600073fb88de099e13c3ed21f80a7a1e49f8caecf10df65af460006000600060007300a00000000000000000000000000000000000005af4", + "value" : "0x0" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : { + "address" : "0xaa588d3737b611bafd7bd713445b314bd453a5c8", + "code" : "0x", + "gasUsed" : "0x1c33" + }, + "subtraces" : 2, + "traceAddress" : [ ], + "transactionHash" : "0xb795475e8f1820b683b60eb1a366bdc23e29f9cdf9639f7768c6644d20e3bbd1", + "transactionPosition" : 5, + "type" : "create" + }, + "id" : 300 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_1_trace.json new file mode 100644 index 00000000000..8c34c033d46 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "call the prior contract then delegatecall log contract 00a0..00.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xb795475e8f1820b683b60eb1a366bdc23e29f9cdf9639f7768c6644d20e3bbd1", [ "0x0" ] ], + "id" : 301 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "delegatecall", + "from" : "0xaa588d3737b611bafd7bd713445b314bd453a5c8", + "gas" : "0xfb2ed3", + "input" : "0x", + "to" : "0xfb88de099e13c3ed21f80a7a1e49f8caecf10df6", + "value" : "0x0" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : { + "gasUsed" : "0x138e", + "output" : "0x" + }, + "subtraces" : 1, + "traceAddress" : [ 0 ], + "transactionHash" : "0xb795475e8f1820b683b60eb1a366bdc23e29f9cdf9639f7768c6644d20e3bbd1", + "transactionPosition" : 5, + "type" : "call" + }, + "id" : 301 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_2_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_2_trace.json new file mode 100644 index 00000000000..be60d1819eb --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_2_trace.json @@ -0,0 +1,29 @@ +{ + "comment" : "call the prior contract then delegatecall log contract 00a0..00.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xb795475e8f1820b683b60eb1a366bdc23e29f9cdf9639f7768c6644d20e3bbd1", [ "0x0", "0x0" ] ], + "id" : 302 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "address" : "0xaa588d3737b611bafd7bd713445b314bd453a5c8", + "balance" : "0x0", + "refundAddress" : "0x0000000000000000000000000000000000000000" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : null, + "subtraces" : 0, + "traceAddress" : [ 0, 0 ], + "transactionHash" : "0xb795475e8f1820b683b60eb1a366bdc23e29f9cdf9639f7768c6644d20e3bbd1", + "transactionPosition" : 5, + "type" : "suicide" + }, + "id" : 302 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_3_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_3_trace.json new file mode 100644 index 00000000000..ec0780cc59c --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_13_5_3_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "call the prior contract then delegatecall log contract 00a0..00.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xb795475e8f1820b683b60eb1a366bdc23e29f9cdf9639f7768c6644d20e3bbd1", [ "0x1" ] ], + "id" : 303 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "delegatecall", + "from" : "0xaa588d3737b611bafd7bd713445b314bd453a5c8", + "gas" : "0xfb18d2", + "input" : "0x", + "to" : "0x00a0000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x425ea2cf9bb89c09f131ab531958c4d189b5d047fd924d74f25d49cf47a5a8f1", + "blockNumber" : 19, + "result" : { + "gasUsed" : "0x30b", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 1 ], + "transactionHash" : "0xb795475e8f1820b683b60eb1a366bdc23e29f9cdf9639f7768c6644d20e3bbd1", + "transactionPosition" : 5, + "type" : "call" + }, + "id" : 303 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_0_0_trace.json new file mode 100644 index 00000000000..27ccca0db69 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "CREATE", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xd32c538fd1b3ef854c04ae39925dc9e849b568b92ea388f778b794851ab37f7c", [ ] ], + "id" : 306 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x0130000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x82066eb29b4f58f6ee0f8190e45efb31b3708397f0c147bf7a9bd3d1cae94e9b", + "blockNumber" : 20, + "result" : { + "gasUsed" : "0x16c46", + "output" : "0x" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0xd32c538fd1b3ef854c04ae39925dc9e849b568b92ea388f778b794851ab37f7c", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 306 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_0_1_trace.json new file mode 100644 index 00000000000..f8012dcc58e --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_0_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "CREATE", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xd32c538fd1b3ef854c04ae39925dc9e849b568b92ea388f778b794851ab37f7c", [ "0x0" ] ], + "id" : 307 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod": "create", + "from" : "0x0130000000000000000000000000000000000000", + "gas" : "0xfb3412", + "init" : "0x600160015560015460025561ffff6000526002601ef3", + "value" : "0x0" + }, + "blockHash" : "0x82066eb29b4f58f6ee0f8190e45efb31b3708397f0c147bf7a9bd3d1cae94e9b", + "blockNumber" : 20, + "result" : { + "address" : "0xaac0627078c038eb3d06e04b57d020fe212be97d", + "code" : "0xffff", + "gasUsed" : "0xa10e" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0xd32c538fd1b3ef854c04ae39925dc9e849b568b92ea388f778b794851ab37f7c", + "transactionPosition" : 0, + "type" : "create" + }, + "id" : 307 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_1_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_1_0_trace.json new file mode 100644 index 00000000000..a1b18650589 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_1_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "CREATE2", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xaf151fc10eb21e76efb0bc74da179a674083e420280fb2985f76b0326682864a", [ ] ], + "id" : 310 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x0140000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x82066eb29b4f58f6ee0f8190e45efb31b3708397f0c147bf7a9bd3d1cae94e9b", + "blockNumber" : 20, + "result" : { + "gasUsed" : "0x16b87", + "output" : "0x" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0xaf151fc10eb21e76efb0bc74da179a674083e420280fb2985f76b0326682864a", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 310 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_1_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_1_1_trace.json new file mode 100644 index 00000000000..eb5a4a9e89c --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_14_1_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "CREATE2", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xaf151fc10eb21e76efb0bc74da179a674083e420280fb2985f76b0326682864a", [ "0x0" ] ], + "id" : 311 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod":"create2", + "from" : "0x0140000000000000000000000000000000000000", + "gas" : "0xfb3409", + "init" : "0x600160015560015460025560ff60005360016000f3", + "value" : "0x0" + }, + "blockHash" : "0x82066eb29b4f58f6ee0f8190e45efb31b3708397f0c147bf7a9bd3d1cae94e9b", + "blockNumber" : 20, + "result" : { + "address" : "0x0deea5bd06fb86553643c1e94a2f5aac632b9ec9", + "code" : "0xff", + "gasUsed" : "0xa046" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0xaf151fc10eb21e76efb0bc74da179a674083e420280fb2985f76b0326682864a", + "transactionPosition" : 1, + "type" : "create" + }, + "id" : 311 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_0_0_trace.json new file mode 100644 index 00000000000..96fbd847dc7 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,1),(2,2)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x7ab106c58a1c4d5c5f545f94ad266a945e3ed82835528fd3adbf7973d2c0c953", [ ] ], + "id" : 314 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffab2e", + "input" : "0x00000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002", + "to" : "0x0040000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x6fd0a21e68ebfbfe21f359ec5b1ff07251a9bd96a7d30f03e4cd976d7a6729b7", + "blockNumber" : 21, + "result" : { + "gasUsed" : "0x9f59", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x7ab106c58a1c4d5c5f545f94ad266a945e3ed82835528fd3adbf7973d2c0c953", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 314 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_0_1_trace.json new file mode 100644 index 00000000000..4d13cea5a57 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_0_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,1),(2,2)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x7ab106c58a1c4d5c5f545f94ad266a945e3ed82835528fd3adbf7973d2c0c953", [ "0x0" ] ], + "id" : 315 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0040000000000000000000000000000000000000", + "gas" : "0xfba993", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x6fd0a21e68ebfbfe21f359ec5b1ff07251a9bd96a7d30f03e4cd976d7a6729b7", + "blockNumber" : 21, + "result" : { + "gasUsed" : "0x9c58", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0x7ab106c58a1c4d5c5f545f94ad266a945e3ed82835528fd3adbf7973d2c0c953", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 315 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_1_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_1_0_trace.json new file mode 100644 index 00000000000..511fccc6f87 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_1_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,3),(2,4)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x2b701e0b45e80f1c179a3696786aff2a411a51b03153528d1579f20915def5e4", [ ] ], + "id" : 318 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffab2e", + "input" : "0x00000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004", + "to" : "0x0040000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x6fd0a21e68ebfbfe21f359ec5b1ff07251a9bd96a7d30f03e4cd976d7a6729b7", + "blockNumber" : 21, + "result" : { + "gasUsed" : "0x2a29", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x2b701e0b45e80f1c179a3696786aff2a411a51b03153528d1579f20915def5e4", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 318 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_1_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_1_1_trace.json new file mode 100644 index 00000000000..110451331e9 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_1_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,3),(2,4)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x2b701e0b45e80f1c179a3696786aff2a411a51b03153528d1579f20915def5e4", [ "0x0" ] ], + "id" : 319 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0040000000000000000000000000000000000000", + "gas" : "0xfba993", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x6fd0a21e68ebfbfe21f359ec5b1ff07251a9bd96a7d30f03e4cd976d7a6729b7", + "blockNumber" : 21, + "result" : { + "gasUsed" : "0x2728", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0x2b701e0b45e80f1c179a3696786aff2a411a51b03153528d1579f20915def5e4", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 319 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_2_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_2_0_trace.json new file mode 100644 index 00000000000..b80bc9f66d7 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_2_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,3),(1,0)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xcc81ab56669a97c5debfff3e23ab5ffb366f04c8c7eaf83f259c975c1816cb41", [ ] ], + "id" : 322 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffab3a", + "input" : "0x00000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "to" : "0x0040000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x6fd0a21e68ebfbfe21f359ec5b1ff07251a9bd96a7d30f03e4cd976d7a6729b7", + "blockNumber" : 21, + "result" : { + "gasUsed" : "0x19c1", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0xcc81ab56669a97c5debfff3e23ab5ffb366f04c8c7eaf83f259c975c1816cb41", + "transactionPosition" : 2, + "type" : "call" + }, + "id" : 322 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_2_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_2_1_trace.json new file mode 100644 index 00000000000..92c48a43ce3 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_2_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,3),(1,0)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xcc81ab56669a97c5debfff3e23ab5ffb366f04c8c7eaf83f259c975c1816cb41", [ "0x0" ] ], + "id" : 323 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0040000000000000000000000000000000000000", + "gas" : "0xfba99f", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x6fd0a21e68ebfbfe21f359ec5b1ff07251a9bd96a7d30f03e4cd976d7a6729b7", + "blockNumber" : 21, + "result" : { + "gasUsed" : "0x16c0", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0xcc81ab56669a97c5debfff3e23ab5ffb366f04c8c7eaf83f259c975c1816cb41", + "transactionPosition" : 2, + "type" : "call" + }, + "id" : 323 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_3_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_3_0_trace.json new file mode 100644 index 00000000000..1540ce1f43a --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_3_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Clear contract storage keys 1 and 2", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x422edfe209e8b97f77a8e879db5182158f23e823ba7f59725d463d99d7ae66bd", [ ] ], + "id" : 326 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffab46", + "input" : "0x00000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000", + "to" : "0x0040000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x6fd0a21e68ebfbfe21f359ec5b1ff07251a9bd96a7d30f03e4cd976d7a6729b7", + "blockNumber" : 21, + "result" : { + "gasUsed" : "0x19c1", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x422edfe209e8b97f77a8e879db5182158f23e823ba7f59725d463d99d7ae66bd", + "transactionPosition" : 3, + "type" : "call" + }, + "id" : 326 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_3_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_3_1_trace.json new file mode 100644 index 00000000000..05f5c5bb330 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_15_3_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Clear contract storage keys 1 and 2", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x422edfe209e8b97f77a8e879db5182158f23e823ba7f59725d463d99d7ae66bd", [ "0x0" ] ], + "id" : 327 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0040000000000000000000000000000000000000", + "gas" : "0xfba9aa", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x6fd0a21e68ebfbfe21f359ec5b1ff07251a9bd96a7d30f03e4cd976d7a6729b7", + "blockNumber" : 21, + "result" : { + "gasUsed" : "0x16c0", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0x422edfe209e8b97f77a8e879db5182158f23e823ba7f59725d463d99d7ae66bd", + "transactionPosition" : 3, + "type" : "call" + }, + "id" : 327 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_0_0_trace.json new file mode 100644 index 00000000000..6c0678c93c7 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,1),(2,2)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x1f74ac428df5427f3a5576869e870cfff6712e4cffb1506bb4ef8f36c5e48162", [ ] ], + "id" : 330 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffab2e", + "input" : "0x00000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002", + "to" : "0x0060000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x3ea838359ab3ad18a43f6229892b103fd348114157267e72700dfb8842e5131a", + "blockNumber" : 22, + "result" : { + "gasUsed" : "0x9f57", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x1f74ac428df5427f3a5576869e870cfff6712e4cffb1506bb4ef8f36c5e48162", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 330 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_0_1_trace.json new file mode 100644 index 00000000000..df204ee3808 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_0_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,1),(2,2)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x1f74ac428df5427f3a5576869e870cfff6712e4cffb1506bb4ef8f36c5e48162", [ "0x0" ] ], + "id" : 331 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "delegatecall", + "from" : "0x0060000000000000000000000000000000000000", + "gas" : "0xfba995", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x3ea838359ab3ad18a43f6229892b103fd348114157267e72700dfb8842e5131a", + "blockNumber" : 22, + "result" : { + "gasUsed" : "0x9c58", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0x1f74ac428df5427f3a5576869e870cfff6712e4cffb1506bb4ef8f36c5e48162", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 331 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_1_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_1_0_trace.json new file mode 100644 index 00000000000..82733d5e6fe --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_1_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,3),(2,4)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x43d6ba1caeced03b6fa8cc3549c0557eea52917f1de50f4da23c9642beca95ee", [ ] ], + "id" : 334 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffab2e", + "input" : "0x00000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004", + "to" : "0x0060000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x3ea838359ab3ad18a43f6229892b103fd348114157267e72700dfb8842e5131a", + "blockNumber" : 22, + "result" : { + "gasUsed" : "0x2a27", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x43d6ba1caeced03b6fa8cc3549c0557eea52917f1de50f4da23c9642beca95ee", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 334 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_1_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_1_1_trace.json new file mode 100644 index 00000000000..9d244e4ce4a --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_1_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,3),(2,4)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x43d6ba1caeced03b6fa8cc3549c0557eea52917f1de50f4da23c9642beca95ee", [ "0x0" ] ], + "id" : 335 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "delegatecall", + "from" : "0x0060000000000000000000000000000000000000", + "gas" : "0xfba995", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x3ea838359ab3ad18a43f6229892b103fd348114157267e72700dfb8842e5131a", + "blockNumber" : 22, + "result" : { + "gasUsed" : "0x2728", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0x43d6ba1caeced03b6fa8cc3549c0557eea52917f1de50f4da23c9642beca95ee", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 335 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_2_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_2_0_trace.json new file mode 100644 index 00000000000..789d5d04407 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_2_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,3),(1,0)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x9eb50f31fc1d953e27331cd923f6b2f7fa11827d399c70aec00a04cf98cfd2ac", [ ] ], + "id" : 338 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffab3a", + "input" : "0x00000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "to" : "0x0060000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x3ea838359ab3ad18a43f6229892b103fd348114157267e72700dfb8842e5131a", + "blockNumber" : 22, + "result" : { + "gasUsed" : "0x19bf", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x9eb50f31fc1d953e27331cd923f6b2f7fa11827d399c70aec00a04cf98cfd2ac", + "transactionPosition" : 2, + "type" : "call" + }, + "id" : 338 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_2_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_2_1_trace.json new file mode 100644 index 00000000000..38abd2ad42c --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_2_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Set contract storage (key,value)'s: (1,3),(1,0)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x9eb50f31fc1d953e27331cd923f6b2f7fa11827d399c70aec00a04cf98cfd2ac", [ "0x0" ] ], + "id" : 339 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "delegatecall", + "from" : "0x0060000000000000000000000000000000000000", + "gas" : "0xfba9a0", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x3ea838359ab3ad18a43f6229892b103fd348114157267e72700dfb8842e5131a", + "blockNumber" : 22, + "result" : { + "gasUsed" : "0x16c0", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0x9eb50f31fc1d953e27331cd923f6b2f7fa11827d399c70aec00a04cf98cfd2ac", + "transactionPosition" : 2, + "type" : "call" + }, + "id" : 339 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_3_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_3_0_trace.json new file mode 100644 index 00000000000..af24d076088 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_3_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Clear contract storage keys 1 and 2", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xe2ef09a0b71f50947bd0bd1cacac77903d2a5fce80f34862bd4559727e0f608c", [ ] ], + "id" : 342 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffab46", + "input" : "0x00000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000", + "to" : "0x0060000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x3ea838359ab3ad18a43f6229892b103fd348114157267e72700dfb8842e5131a", + "blockNumber" : 22, + "result" : { + "gasUsed" : "0x19bf", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0xe2ef09a0b71f50947bd0bd1cacac77903d2a5fce80f34862bd4559727e0f608c", + "transactionPosition" : 3, + "type" : "call" + }, + "id" : 342 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_3_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_3_1_trace.json new file mode 100644 index 00000000000..e2882327bfa --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_16_3_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Clear contract storage keys 1 and 2", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xe2ef09a0b71f50947bd0bd1cacac77903d2a5fce80f34862bd4559727e0f608c", [ "0x0" ] ], + "id" : 343 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "delegatecall", + "from" : "0x0060000000000000000000000000000000000000", + "gas" : "0xfba9ac", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x3ea838359ab3ad18a43f6229892b103fd348114157267e72700dfb8842e5131a", + "blockNumber" : 22, + "result" : { + "gasUsed" : "0x16c0", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0xe2ef09a0b71f50947bd0bd1cacac77903d2a5fce80f34862bd4559727e0f608c", + "transactionPosition" : 3, + "type" : "call" + }, + "id" : 343 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_17_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_17_0_0_trace.json new file mode 100644 index 00000000000..c0ccffeca24 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_17_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract. Using STATICCALL.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xea357b8947f2aa968eba99ac995f07dbd5d006dc2eb4c2f1a2d4f4278a150373", [ ] ], + "id" : 346 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0x2b654", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120785e45de3d6be050ba3c4d33ff0bb2d010ace3b1dfe9c49f4c7a8075102fa19a86c010ace3b1dfe9c49f4c7a8075102fa19a86d", + "to" : "0x0120000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x5c224cb42aa0e0a60e0121ce5ee2ec3f08e5b83dab24de5f50e1d3fc9f450c50", + "blockNumber" : 23, + "result" : { + "gasUsed" : "0x301", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000012" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0xea357b8947f2aa968eba99ac995f07dbd5d006dc2eb4c2f1a2d4f4278a150373", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 346 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_17_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_17_0_1_trace.json new file mode 100644 index 00000000000..648bb12eb54 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_17_0_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract. Using STATICCALL.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xea357b8947f2aa968eba99ac995f07dbd5d006dc2eb4c2f1a2d4f4278a150373", [ "0x0" ] ], + "id" : 347 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "staticcall", + "from" : "0x0120000000000000000000000000000000000000", + "gas" : "0x2a88c", + "input" : "0x", + "to" : "0x0000000000000000000000000000000000000010", + "value" : "0x0" + }, + "blockHash" : "0x5c224cb42aa0e0a60e0121ce5ee2ec3f08e5b83dab24de5f50e1d3fc9f450c50", + "blockNumber" : 23, + "result" : { + "gasUsed" : "0x0", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0xea357b8947f2aa968eba99ac995f07dbd5d006dc2eb4c2f1a2d4f4278a150373", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 347 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_0_trace.json new file mode 100644 index 00000000000..cfca5860609 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - several levels deep. Using CALL and STATICCALL.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x2f92ad4d4433cd8f78214c1ba3b3d3d8a2b1e993b6cf336eb9200c8d9ac3b94d", [ ] ], + "id" : 350 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffa7e2", + "input" : "0x000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120785e45de3d6be050ba3c4d33ff0bb2d010ace3b1dfe9c49f4c7a8075102fa19a86c010ace3b1dfe9c49f4c7a8075102fa19a86d", + "to" : "0x0040000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x2773bc8754290aa9e4e1e82ef200e3a00e3255f02ddc3aef9c551c089ef9a8cd", + "blockNumber" : 24, + "result" : { + "gasUsed" : "0x915", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000012" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x2f92ad4d4433cd8f78214c1ba3b3d3d8a2b1e993b6cf336eb9200c8d9ac3b94d", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 350 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_1_trace.json new file mode 100644 index 00000000000..582c23e9e8a --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - several levels deep. Using CALL and STATICCALL.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x2f92ad4d4433cd8f78214c1ba3b3d3d8a2b1e993b6cf336eb9200c8d9ac3b94d", [ "0x0" ] ], + "id" : 351 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0040000000000000000000000000000000000000", + "gas" : "0xfba648", + "input" : "0x00000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120785e45de3d6be050ba3c4d33ff0bb2d010ace3b1dfe9c49f4c7a8075102fa19a86c010ace3b1dfe9c49f4c7a8075102fa19a86d", + "to" : "0x0040000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x2773bc8754290aa9e4e1e82ef200e3a00e3255f02ddc3aef9c551c089ef9a8cd", + "blockNumber" : 24, + "result" : { + "gasUsed" : "0x608", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000012" + }, + "subtraces" : 1, + "traceAddress" : [ 0 ], + "transactionHash" : "0x2f92ad4d4433cd8f78214c1ba3b3d3d8a2b1e993b6cf336eb9200c8d9ac3b94d", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 351 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_2_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_2_trace.json new file mode 100644 index 00000000000..c0a0a45896a --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_2_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - several levels deep. Using CALL and STATICCALL.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x2f92ad4d4433cd8f78214c1ba3b3d3d8a2b1e993b6cf336eb9200c8d9ac3b94d", [ "0x0", "0x0" ] ], + "id" : 352 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0040000000000000000000000000000000000000", + "gas" : "0xf7b4ba", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120785e45de3d6be050ba3c4d33ff0bb2d010ace3b1dfe9c49f4c7a8075102fa19a86c010ace3b1dfe9c49f4c7a8075102fa19a86d", + "to" : "0x0120000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x2773bc8754290aa9e4e1e82ef200e3a00e3255f02ddc3aef9c551c089ef9a8cd", + "blockNumber" : 24, + "result" : { + "gasUsed" : "0x301", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000012" + }, + "subtraces" : 1, + "traceAddress" : [ 0, 0 ], + "transactionHash" : "0x2f92ad4d4433cd8f78214c1ba3b3d3d8a2b1e993b6cf336eb9200c8d9ac3b94d", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 352 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_3_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_3_trace.json new file mode 100644 index 00000000000..afcddd64133 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_18_0_3_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - several levels deep. Using CALL and STATICCALL.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x2f92ad4d4433cd8f78214c1ba3b3d3d8a2b1e993b6cf336eb9200c8d9ac3b94d", [ "0x0", "0x0", "0x0" ] ], + "id" : 353 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "staticcall", + "from" : "0x0120000000000000000000000000000000000000", + "gas" : "0xf3d2f9", + "input" : "0x", + "to" : "0x0000000000000000000000000000000000000010", + "value" : "0x0" + }, + "blockHash" : "0x2773bc8754290aa9e4e1e82ef200e3a00e3255f02ddc3aef9c551c089ef9a8cd", + "blockNumber" : 24, + "result" : { + "gasUsed" : "0x0", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 0, 0, 0 ], + "transactionHash" : "0x2f92ad4d4433cd8f78214c1ba3b3d3d8a2b1e993b6cf336eb9200c8d9ac3b94d", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 353 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_19_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_19_0_0_trace.json new file mode 100644 index 00000000000..10e6c760c5c --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_19_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Deploy ERC20 contract", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xed9852eaa132d91f807e45dccd8d6859560f427637f9f4e3fc5741db997eefb0", [ ] ], + "id" : 356 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod": "create", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xfdc95a", + "init" : "0x606060405234156200001057600080fd5b604051620016d8380380620016d8833981016040528080519060200190919080518201919060200180519060200190919080518201919050505b83600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836003819055508260009080519060200190620000ad9291906200012e565b508060019080519060200190620000c69291906200012e565b5081600260006101000a81548160ff021916908360ff16021790555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505050620001dd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017157805160ff1916838001178555620001a2565b82800160010185558215620001a2579182015b82811115620001a157825182559160200191906001019062000184565b5b509050620001b19190620001b5565b5090565b620001da91905b80821115620001d6576000816000905550600101620001bc565b5090565b90565b6114eb80620001ed6000396000f300606060405236156100d9576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e2578063095ea7b31461017157806318160ddd146101cb57806323b872dd146101f4578063313ce5671461026d5780633bed33ce1461029c57806342966c68146102bf5780636623fc46146102fa57806370a08231146103355780638da5cb5b1461038257806395d89b41146103d7578063a9059cbb14610466578063cd4217c1146104a8578063d7a78db8146104f5578063dd62ed3e14610530575b6100e05b5b565b005b34156100ed57600080fd5b6100f561059c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101365780820151818401525b60208101905061011a565b50505050905090810190601f1680156101635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017c57600080fd5b6101b1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061063a565b604051808215151515815260200191505060405180910390f35b34156101d657600080fd5b6101de6106d6565b6040518082815260200191505060405180910390f35b34156101ff57600080fd5b610253600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106dc565b604051808215151515815260200191505060405180910390f35b341561027857600080fd5b610280610b01565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a757600080fd5b6102bd6004808035906020019091905050610b14565b005b34156102ca57600080fd5b6102e06004808035906020019091905050610bd6565b604051808215151515815260200191505060405180910390f35b341561030557600080fd5b61031b6004808035906020019091905050610d29565b604051808215151515815260200191505060405180910390f35b341561034057600080fd5b61036c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ef6565b6040518082815260200191505060405180910390f35b341561038d57600080fd5b610395610f0e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103e257600080fd5b6103ea610f34565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561042b5780820151818401525b60208101905061040f565b50505050905090810190601f1680156104585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561047157600080fd5b6104a6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fd2565b005b34156104b357600080fd5b6104df600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611260565b6040518082815260200191505060405180910390f35b341561050057600080fd5b6105166004808035906020019091905050611278565b604051808215151515815260200191505060405180910390f35b341561053b57600080fd5b610586600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611445565b6040518082815260200191505060405180910390f35b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106325780601f1061060757610100808354040283529160200191610632565b820191906000526020600020905b81548152906001019060200180831161061557829003601f168201915b505050505081565b6000808211151561064a57600080fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190505b92915050565b60035481565b6000808373ffffffffffffffffffffffffffffffffffffffff16141561070157600080fd5b60008211151561071057600080fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561075c57600080fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110156107e957600080fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561087257600080fd5b6108bb600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361146a565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610947600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611484565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a10600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361146a565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b9392505050565b600260009054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b7057600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610bd257600080fd5b5b50565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c2457600080fd5b600082111515610c3357600080fd5b610c7c600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361146a565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ccb6003548361146a565b6003819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600190505b919050565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d7757600080fd5b600082111515610d8657600080fd5b610dcf600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361146a565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611484565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f836040518082815260200191505060405180910390a2600190505b919050565b60056020528060005260406000206000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fca5780601f10610f9f57610100808354040283529160200191610fca565b820191906000526020600020905b815481529060010190602001808311610fad57829003601f168201915b505050505081565b60008273ffffffffffffffffffffffffffffffffffffffff161415610ff657600080fd5b60008111151561100557600080fd5b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561105157600080fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110156110de57600080fd5b611127600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261146a565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111b3600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611484565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b5050565b60066020528060005260406000206000915090505481565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156112c657600080fd5b6000821115156112d557600080fd5b61131e600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361146a565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113aa600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611484565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0836040518082815260200191505060405180910390a2600190505b919050565b6007602052816000526040600020602052806000526040600020600091509150505481565b6000611478838311156114af565b81830390505b92915050565b60008082840190506114a484821015801561149f5750838210155b6114af565b8091505b5092915050565b8015156114bb57600080fd5b5b505600a165627a7a72305820082734e053ffbdf2a3195354a3210dff3723c239a1e76ae3be0936f6aed31bee0029000000000000000000000000000000000000000000a56fa5b99019a5c80000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000003424e4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003424e420000000000000000000000000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xa7793ae6664b092057122795ad3ec0d4f6095dc3fa51903675cae89ac778a6ac", + "blockNumber" : 25, + "result" : { + "address" : "0xbaaa2a3237035a2c7fa2a33c76b44a8c6fe18e87", + "code" : "0x606060405236156100d9576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e2578063095ea7b31461017157806318160ddd146101cb57806323b872dd146101f4578063313ce5671461026d5780633bed33ce1461029c57806342966c68146102bf5780636623fc46146102fa57806370a08231146103355780638da5cb5b1461038257806395d89b41146103d7578063a9059cbb14610466578063cd4217c1146104a8578063d7a78db8146104f5578063dd62ed3e14610530575b6100e05b5b565b005b34156100ed57600080fd5b6100f561059c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101365780820151818401525b60208101905061011a565b50505050905090810190601f1680156101635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017c57600080fd5b6101b1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061063a565b604051808215151515815260200191505060405180910390f35b34156101d657600080fd5b6101de6106d6565b6040518082815260200191505060405180910390f35b34156101ff57600080fd5b610253600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106dc565b604051808215151515815260200191505060405180910390f35b341561027857600080fd5b610280610b01565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a757600080fd5b6102bd6004808035906020019091905050610b14565b005b34156102ca57600080fd5b6102e06004808035906020019091905050610bd6565b604051808215151515815260200191505060405180910390f35b341561030557600080fd5b61031b6004808035906020019091905050610d29565b604051808215151515815260200191505060405180910390f35b341561034057600080fd5b61036c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ef6565b6040518082815260200191505060405180910390f35b341561038d57600080fd5b610395610f0e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103e257600080fd5b6103ea610f34565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561042b5780820151818401525b60208101905061040f565b50505050905090810190601f1680156104585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561047157600080fd5b6104a6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fd2565b005b34156104b357600080fd5b6104df600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611260565b6040518082815260200191505060405180910390f35b341561050057600080fd5b6105166004808035906020019091905050611278565b604051808215151515815260200191505060405180910390f35b341561053b57600080fd5b610586600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611445565b6040518082815260200191505060405180910390f35b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106325780601f1061060757610100808354040283529160200191610632565b820191906000526020600020905b81548152906001019060200180831161061557829003601f168201915b505050505081565b6000808211151561064a57600080fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190505b92915050565b60035481565b6000808373ffffffffffffffffffffffffffffffffffffffff16141561070157600080fd5b60008211151561071057600080fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561075c57600080fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110156107e957600080fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561087257600080fd5b6108bb600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361146a565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610947600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611484565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a10600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361146a565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b9392505050565b600260009054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b7057600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610bd257600080fd5b5b50565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c2457600080fd5b600082111515610c3357600080fd5b610c7c600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361146a565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ccb6003548361146a565b6003819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600190505b919050565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d7757600080fd5b600082111515610d8657600080fd5b610dcf600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361146a565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611484565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f836040518082815260200191505060405180910390a2600190505b919050565b60056020528060005260406000206000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fca5780601f10610f9f57610100808354040283529160200191610fca565b820191906000526020600020905b815481529060010190602001808311610fad57829003601f168201915b505050505081565b60008273ffffffffffffffffffffffffffffffffffffffff161415610ff657600080fd5b60008111151561100557600080fd5b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561105157600080fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110156110de57600080fd5b611127600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261146a565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111b3600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611484565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b5050565b60066020528060005260406000206000915090505481565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156112c657600080fd5b6000821115156112d557600080fd5b61131e600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361146a565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113aa600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611484565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0836040518082815260200191505060405180910390a2600190505b919050565b6007602052816000526040600020602052806000526040600020600091509150505481565b6000611478838311156114af565b81830390505b92915050565b60008082840190506114a484821015801561149f5750838210155b6114af565b8091505b5092915050565b8015156114bb57600080fd5b5b505600a165627a7a72305820082734e053ffbdf2a3195354a3210dff3723c239a1e76ae3be0936f6aed31bee0029", + "gasUsed" : "0x124192" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0xed9852eaa132d91f807e45dccd8d6859560f427637f9f4e3fc5741db997eefb0", + "transactionPosition" : 0, + "type" : "create" + }, + "id" : 356 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_19_1_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_19_1_0_trace.json new file mode 100644 index 00000000000..9c2e7cef5da --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_19_1_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Transfert ERC20 tokens (with contract created 0xbaaa2a3237035a2c7fa2a33c76b44a8c6fe18e87)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x752c025084f7cd0dae7fc6193db319e6931873780b3ee8c6f5835515c9c24110", [ ] ], + "id" : 359 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffab66", + "input" : "0xa9059cbb0000000000000000000000000a13aa5589f0dd8dd3bd5055b31add5ca0f2f8e400000000000000000000000000000000000000000000003635c9adc5dea00000", + "to" : "0xbaaa2a3237035a2c7fa2a33c76b44a8c6fe18e87", + "value" : "0x0" + }, + "blockHash" : "0xa7793ae6664b092057122795ad3ec0d4f6095dc3fa51903675cae89ac778a6ac", + "blockNumber" : 25, + "result" : { + "gasUsed" : "0x7e42", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x752c025084f7cd0dae7fc6193db319e6931873780b3ee8c6f5835515c9c24110", + "transactionPosition" : 1, + "type" : "call" + }, + "id" : 359 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1a_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1a_0_0_trace.json new file mode 100644 index 00000000000..3e2fd448449 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1a_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - 1 level deep with gas refund.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x897ebf0a704b9e29de555e115b474cb212a7d217073452eee02bc47506b0622c", [ ] ], + "id" : 362 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffab3a", + "input" : "0x00000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "to" : "0x0040000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x7e01aa03af91b1b6bfc46f11e1e4b652a20af3f6440cbe3d7f9c5910c581e6e6", + "blockNumber" : 26, + "result" : { + "gasUsed" : "0x5459", + "output" : "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x897ebf0a704b9e29de555e115b474cb212a7d217073452eee02bc47506b0622c", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 362 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1a_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1a_0_1_trace.json new file mode 100644 index 00000000000..3ac18a9a156 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1a_0_1_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Proxy call to another contract - 1 level deep with gas refund.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x897ebf0a704b9e29de555e115b474cb212a7d217073452eee02bc47506b0622c", [ "0x0" ] ], + "id" : 363 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0040000000000000000000000000000000000000", + "gas" : "0xfba99f", + "input" : "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "to" : "0x0010000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x7e01aa03af91b1b6bfc46f11e1e4b652a20af3f6440cbe3d7f9c5910c581e6e6", + "blockNumber" : 26, + "result" : { + "gasUsed" : "0x5158", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0x897ebf0a704b9e29de555e115b474cb212a7d217073452eee02bc47506b0622c", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 363 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1b_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1b_0_0_trace.json new file mode 100644 index 00000000000..d01d4f61c1f --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1b_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Self destruct and send contract balance to the same address provided in the to field.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x728abdc65550943b21eba1eef7bb9c7b594d6f629dda1be4ae01b0f3ffcc6b16", [ ] ], + "id" : 366 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xffad82", + "input" : "0x0000000000000000000000000150000000000000", + "to" : "0x0150000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xad804d4984008429f56b42be14d3d1ac9f1eaf33aa43aafb7a0fcaf2c4594f01", + "blockNumber" : 27, + "result" : { + "gasUsed" : "0x138e", + "output" : "0x" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x728abdc65550943b21eba1eef7bb9c7b594d6f629dda1be4ae01b0f3ffcc6b16", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 366 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1b_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1b_0_1_trace.json new file mode 100644 index 00000000000..b9150495502 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1b_0_1_trace.json @@ -0,0 +1,29 @@ +{ + "comment" : "Self destruct and send contract balance to the same address provided in the to field.", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x728abdc65550943b21eba1eef7bb9c7b594d6f629dda1be4ae01b0f3ffcc6b16", [ "0x0" ] ], + "id" : 367 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "address" : "0x0150000000000000000000000000000000000000", + "balance" : "0x300", + "refundAddress" : "0x0150000000000000000000000000000000000000" + }, + "blockHash" : "0xad804d4984008429f56b42be14d3d1ac9f1eaf33aa43aafb7a0fcaf2c4594f01", + "blockNumber" : 27, + "result" : null, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0x728abdc65550943b21eba1eef7bb9c7b594d6f629dda1be4ae01b0f3ffcc6b16", + "transactionPosition" : 0, + "type" : "suicide" + }, + "id" : 367 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1c_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1c_0_0_trace.json new file mode 100644 index 00000000000..6d419d338a3 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1c_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Self destruct called in constructor with balance being returned to sender (from field)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xbe1b55619f540ea8a7d7e9330ea642a195afe0d6d60ced6f463da67b46d3f503", [ ] ], + "id" : 370 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod":"create", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xff2f0a", + "init" : "0x60806040523373ffffffffffffffffffffffffffffffffffffffff16fffe", + "value" : "0x0" + }, + "blockHash" : "0x96a82625443a337a5bfb912fd96977156f380c68b0d33040afffdb09c4cdbd52", + "blockNumber" : 28, + "result" : { + "address" : "0xa4392264a2d8c998901d10c154c91725b1bf0158", + "code" : "0x", + "gasUsed" : "0x13a2" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0xbe1b55619f540ea8a7d7e9330ea642a195afe0d6d60ced6f463da67b46d3f503", + "transactionPosition" : 0, + "type" : "create" + }, + "id" : 370 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1c_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1c_0_1_trace.json new file mode 100644 index 00000000000..4af475b031b --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1c_0_1_trace.json @@ -0,0 +1,29 @@ +{ + "comment" : "Self destruct called in constructor with balance being returned to sender (from field)", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xbe1b55619f540ea8a7d7e9330ea642a195afe0d6d60ced6f463da67b46d3f503", [ "0x0" ] ], + "id" : 371 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "address" : "0xa4392264a2d8c998901d10c154c91725b1bf0158", + "balance" : "0x0", + "refundAddress" : "0x627306090abab3a6e1400e9345bc60c78a8bef57" + }, + "blockHash" : "0x96a82625443a337a5bfb912fd96977156f380c68b0d33040afffdb09c4cdbd52", + "blockNumber" : 28, + "result" : null, + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0xbe1b55619f540ea8a7d7e9330ea642a195afe0d6d60ced6f463da67b46d3f503", + "transactionPosition" : 0, + "type" : "suicide" + }, + "id" : 371 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1d_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1d_0_0_trace.json new file mode 100644 index 00000000000..e4fb5d292b8 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1d_0_0_trace.json @@ -0,0 +1,31 @@ +{ + "comment" : "Stack underflow during contract creation", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xf2f9f56aab631d441ff7bd85a195cea43c7285a4e0bd03823f6c37b379eb0cbe", [ ] ], + "id" : 374 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod": "create", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0x4a14", + "init" : "0x6000f1", + "value" : "0x0" + }, + "blockHash" : "0x3cecd9469acbef39e092a08b5a2ce8b2b6a12e54e88bcb953a4e0e458fb3cf6d", + "blockNumber" : 29, + "error" : "Stack underflow", + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0xf2f9f56aab631d441ff7bd85a195cea43c7285a4e0bd03823f6c37b379eb0cbe", + "transactionPosition" : 0, + "type" : "create" + }, + "id" : 374 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1e_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1e_0_0_trace.json new file mode 100644 index 00000000000..f924b67acc9 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1e_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Transaction to test refund_CallToSuicideTwice_d0g0v0_Istanbul", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xbc7cedf9a139bc6a16959e1463a56ef5bdc07731e384d2a1c27e7828b563d594", [ ] ], + "id" : 377 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0x9843e0", + "input" : "0x00000000000000000000000000000000000000000000000000000000000001f4", + "to" : "0x0160000000000000000000000000000000000000", + "value" : "0xa" + }, + "blockHash" : "0xc016f949a0b11bb4e3151f9eca519f105f764d5f3a9fd71d6b24eacab731906a", + "blockNumber" : 30, + "result" : { + "gasUsed" : "0xcb3", + "output" : "0x" + }, + "subtraces" : 2, + "traceAddress" : [ ], + "transactionHash" : "0xbc7cedf9a139bc6a16959e1463a56ef5bdc07731e384d2a1c27e7828b563d594", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 377 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1e_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1e_0_1_trace.json new file mode 100644 index 00000000000..024b412e154 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1e_0_1_trace.json @@ -0,0 +1,32 @@ +{ + "comment" : "Transaction to test refund_CallToSuicideTwice_d0g0v0_Istanbul", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xbc7cedf9a139bc6a16959e1463a56ef5bdc07731e384d2a1c27e7828b563d594", [ "0x0" ] ], + "id" : 378 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0160000000000000000000000000000000000000", + "gas" : "0x1f4", + "input" : "0x", + "to" : "0x0170000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xc016f949a0b11bb4e3151f9eca519f105f764d5f3a9fd71d6b24eacab731906a", + "blockNumber" : 30, + "error" : "Out of gas", + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0xbc7cedf9a139bc6a16959e1463a56ef5bdc07731e384d2a1c27e7828b563d594", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 378 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1e_0_2_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1e_0_2_trace.json new file mode 100644 index 00000000000..2845373e16e --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1e_0_2_trace.json @@ -0,0 +1,32 @@ +{ + "comment" : "Transaction to test refund_CallToSuicideTwice_d0g0v0_Istanbul", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xbc7cedf9a139bc6a16959e1463a56ef5bdc07731e384d2a1c27e7828b563d594", [ "0x1" ] ], + "id" : 379 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x0160000000000000000000000000000000000000", + "gas" : "0x1f4", + "input" : "0x", + "to" : "0x0170000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0xc016f949a0b11bb4e3151f9eca519f105f764d5f3a9fd71d6b24eacab731906a", + "blockNumber" : 30, + "error" : "Out of gas", + "subtraces" : 0, + "traceAddress" : [ 1 ], + "transactionHash" : "0xbc7cedf9a139bc6a16959e1463a56ef5bdc07731e384d2a1c27e7828b563d594", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 379 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1f_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1f_0_0_trace.json new file mode 100644 index 00000000000..21778c04930 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_1f_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Call Precompiled contract directly", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x8b75ccd7087daeb5fc2c64bbd157d869a53d794f015d60b5718708ab9e7100e8", [ ] ], + "id" : 382 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", + "gas" : "0xffadea", + "input" : "0x", + "to" : "0x0000000000000000000000000000000000000001", + "value" : "0x0" + }, + "blockHash" : "0x06d6bcd80a749c5027c659ee06e48c55b00c5ce35be2af3b0028467ddf1ce12b", + "blockNumber" : 31, + "result" : { + "gasUsed" : "0xbb8", + "output" : "0x" + }, + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0x8b75ccd7087daeb5fc2c64bbd157d869a53d794f015d60b5718708ab9e7100e8", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 382 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_20_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_20_0_0_trace.json new file mode 100644 index 00000000000..a6bf72896c6 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_20_0_0_trace.json @@ -0,0 +1,35 @@ +{ + "comment" : "Call to a contract creation that fails with a depth of 1", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x3a9118fe52689f19ec58b4e1a50a0ae07021812f4c0d72c703a669e90622f3cd", [ ] ], + "id" : 385 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "callType" : "call", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0xcd01", + "input" : "0x000000000000000000000000000000000000000000000000000000000000ea60", + "to" : "0x0180000000000000000000000000000000000000", + "value" : "0x0" + }, + "blockHash" : "0x8b999c350ee739ebe2f7c5311c55c8c2e348704be2d196876ea9e92a509c7a6a", + "blockNumber" : 32, + "result" : { + "gasUsed" : "0xcbc2", + "output" : "0x" + }, + "subtraces" : 1, + "traceAddress" : [ ], + "transactionHash" : "0x3a9118fe52689f19ec58b4e1a50a0ae07021812f4c0d72c703a669e90622f3cd", + "transactionPosition" : 0, + "type" : "call" + }, + "id" : 385 + }, + "statusCode" : 200 +} \ No newline at end of file diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_20_0_1_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_20_0_1_trace.json new file mode 100644 index 00000000000..f17b76bd94d --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_20_0_1_trace.json @@ -0,0 +1,31 @@ +{ + "comment" : "Call to a contract creation that fails with a depth of 1", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0x3a9118fe52689f19ec58b4e1a50a0ae07021812f4c0d72c703a669e90622f3cd", [ "0x0" ] ], + "id" : 386 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod": "create", + "from" : "0x0180000000000000000000000000000000000000", + "gas" : "0x4eaa", + "init" : "0x600c600055602060406000f000", + "value" : "0x0" + }, + "blockHash" : "0x8b999c350ee739ebe2f7c5311c55c8c2e348704be2d196876ea9e92a509c7a6a", + "blockNumber" : 32, + "error" : "Out of gas", + "subtraces" : 0, + "traceAddress" : [ 0 ], + "transactionHash" : "0x3a9118fe52689f19ec58b4e1a50a0ae07021812f4c0d72c703a669e90622f3cd", + "transactionPosition" : 0, + "type" : "create" + }, + "id" : 386 + }, + "statusCode" : 200 +} diff --git a/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_21_0_0_trace.json b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_21_0_0_trace.json new file mode 100644 index 00000000000..f2ab1769438 --- /dev/null +++ b/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/trace-get/trace_get_21_0_0_trace.json @@ -0,0 +1,31 @@ +{ + "comment" : "Call to a contract creation that fails with a stack underflow", + "request" : { + "jsonrpc" : "2.0", + "method" : "trace_get", + "params" : [ "0xf0378e1bf579b23aff89255d93ade14fe9136a7cedd9c4985e9bec2d18ce65e9", [ ] ], + "id" : 389 + }, + "response" : { + "jsonrpc" : "2.0", + "result" : { + "action" : { + "creationMethod": "create", + "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", + "gas" : "0x46e824", + "init" : "0x602af300", + "value" : "0x0" + }, + "blockHash" : "0x156fa7f1633c5dd82d41b7c7d79049f620b25638ca87da137d13e1a27a210e49", + "blockNumber" : 33, + "error" : "Stack underflow", + "subtraces" : 0, + "traceAddress" : [ ], + "transactionHash" : "0xf0378e1bf579b23aff89255d93ade14fe9136a7cedd9c4985e9bec2d18ce65e9", + "transactionPosition" : 0, + "type" : "create" + }, + "id" : 389 + }, + "statusCode" : 200 +}