From ea00df0cd1f0e51bba32818f3708f18c6b8879c5 Mon Sep 17 00:00:00 2001 From: Luke Imhoff Date: Tue, 13 Nov 2018 09:17:03 -0600 Subject: [PATCH] Include input when converting elixir call traces --- .../lib/ethereum_jsonrpc/parity/trace.ex | 78 ++++++++++--------- 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/parity/trace.ex b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/parity/trace.ex index 2df3c54dec..e79f766775 100644 --- a/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/parity/trace.ex +++ b/apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/parity/trace.ex @@ -89,38 +89,39 @@ defmodule EthereumJSONRPC.Parity.Trace do ...> "action" => %{ ...> "callType" => "call", ...> "from" => "0xe8ddc5c7a2d2f0d7a9798459c0104fdf5e987aca", + ...> "to" => "0x8bf38d4764929064f2d4d3a56520a76ab3df415b", ...> "gas" => 4677320, ...> "input" => "0x10855269000000000000000000000000862d67cb0773ee3f8ce7ea89b328ffea861ab3ef", - ...> "to" => "0x8bf38d4764929064f2d4d3a56520a76ab3df415b", ...> "value" => 0 ...> }, ...> "blockNumber" => 35, + ...> "transactionIndex" => 0, + ...> "transactionHash" => "0x3a3eb134e6792ce9403ea4188e5e79693de9e4c94e499db132be086400da79e6", ...> "index" => 0, + ...> "traceAddress" => [], + ...> "type" => "call", ...> "result" => %{ ...> "gasUsed" => 27770, ...> "output" => "0x" ...> }, - ...> "subtraces" => 0, - ...> "traceAddress" => [], - ...> "transactionHash" => "0x3a3eb134e6792ce9403ea4188e5e79693de9e4c94e499db132be086400da79e6", - ...> "type" => "call", - ...> "transactionIndex" => 0 + ...> "subtraces" => 0 ...> } ...> ) %{ block_number: 35, + transaction_index: 0, + transaction_hash: "0x3a3eb134e6792ce9403ea4188e5e79693de9e4c94e499db132be086400da79e6", + index: 0, + trace_address: [], + type: "call", call_type: "call", from_address_hash: "0xe8ddc5c7a2d2f0d7a9798459c0104fdf5e987aca", + to_address_hash: "0x8bf38d4764929064f2d4d3a56520a76ab3df415b", gas: 4677320, gas_used: 27770, - index: 0, + input: "0x10855269000000000000000000000000862d67cb0773ee3f8ce7ea89b328ffea861ab3ef", output: "0x", - to_address_hash: "0x8bf38d4764929064f2d4d3a56520a76ab3df415b", - trace_address: [], - transaction_hash: "0x3a3eb134e6792ce9403ea4188e5e79693de9e4c94e499db132be086400da79e6", - type: "call", - value: 0, - transaction_index: 0 + value: 0 } Calls can error and be reverted @@ -130,34 +131,35 @@ defmodule EthereumJSONRPC.Parity.Trace do ...> "action" => %{ ...> "callType" => "call", ...> "from" => "0xc9266e6fdf5182dc47d27e0dc32bdff9e4cd2e32", + ...> "to" => "0xfdca0da4158740a93693441b35809b5bb463e527", ...> "gas" => 7578728, ...> "input" => "0xa6f2ae3a", - ...> "to" => "0xfdca0da4158740a93693441b35809b5bb463e527", ...> "value" => 10000000000000000 ...> }, ...> "blockNumber" => 35, - ...> "error" => "Reverted", + ...> "transactionIndex" => 0, + ...> "transactionHash" => "0xcd7c15dbbc797722bef6e1d551edfd644fc7f4fb2ccd6a7947b2d1ade9ed140b", ...> "index" => 0, - ...> "subtraces" => 7, ...> "traceAddress" => [], - ...> "transactionHash" => "0xcd7c15dbbc797722bef6e1d551edfd644fc7f4fb2ccd6a7947b2d1ade9ed140b", ...> "type" => "call", - ...> "transactionIndex" => 0 + ...> "error" => "Reverted", + ...> "subtraces" => 7, ...> } ...> ) %{ block_number: 35, - call_type: "call", - error: "Reverted", - from_address_hash: "0xc9266e6fdf5182dc47d27e0dc32bdff9e4cd2e32", - gas: 7578728, + transaction_index: 0, + transaction_hash: "0xcd7c15dbbc797722bef6e1d551edfd644fc7f4fb2ccd6a7947b2d1ade9ed140b", index: 0, - to_address_hash: "0xfdca0da4158740a93693441b35809b5bb463e527", trace_address: [], - transaction_hash: "0xcd7c15dbbc797722bef6e1d551edfd644fc7f4fb2ccd6a7947b2d1ade9ed140b", type: "call", - value: 10000000000000000, - transaction_index: 0 + call_type: "call", + from_address_hash: "0xc9266e6fdf5182dc47d27e0dc32bdff9e4cd2e32", + to_address_hash: "0xfdca0da4158740a93693441b35809b5bb463e527", + input: "0xa6f2ae3a", + error: "Reverted", + gas: 7578728, + value: 10000000000000000 } Self-destruct transfer a `"balance"` from `"address"` to `"refundAddress"`. These self-destruct-unique fields can be @@ -204,30 +206,32 @@ defmodule EthereumJSONRPC.Parity.Trace do %{ "action" => %{ "callType" => call_type, + "to" => to_address_hash, "from" => from_address_hash, + "input" => input, "gas" => gas, - "to" => to_address_hash, "value" => value }, "blockNumber" => block_number, - "index" => index, - "traceAddress" => trace_address, + "transactionIndex" => transaction_index, "transactionHash" => transaction_hash, - "transactionIndex" => transaction_index + "index" => index, + "traceAddress" => trace_address } = elixir %{ block_number: block_number, - call_type: call_type, - from_address_hash: from_address_hash, - gas: gas, + transaction_hash: transaction_hash, + transaction_index: transaction_index, index: index, - to_address_hash: to_address_hash, trace_address: trace_address, - transaction_hash: transaction_hash, type: type, - value: value, - transaction_index: transaction_index + call_type: call_type, + from_address_hash: from_address_hash, + to_address_hash: to_address_hash, + gas: gas, + input: input, + value: value } |> put_call_error_or_result(elixir) end