debug_traceCall

debug_traceCall RPC Method

Parameters:

object - The transaction call object with the following fields:

from - string - (optional) The address the transaction is sent from

to - string - The address the transaction is directed to

gas - integer - (optional) The integer of the gas provided for the transaction execution

gasPrice - integer - (optional) The integer of the gasPrice used for each paid gas

value - integer - (optional) The integer of the value sent with this transaction

data - string - (optional) The hash of the method signature and encoded parameters

blockReference - string - The block number in hexadecimal format, the block hash, or tags. The supported tag values include earliest for the earliest/genesis block, latest for the latest mined block, pending for the pending state/transactions, safe for the most recent secure block, and finalized for the most recent secure block accepted by more than 2/3 of validators. safe and finalized are only supported on Ethereum, Gnosis, Arbitrum, Arbitrum Nova, and Avalanche C-chain

object - (optional) The tracer object with the following fields:

tracer - string - The type of tracer. It could be callTracer or prestateTracer

callTracer - The calltracer keeps track of all call frames, including depth 0 calls, that are made during a transaction prestateTracer - The prestateTracer replays the transaction and tracks every part of state that occured during the transaction

tracerConfig - object - The object to specify the configurations of the tracer

onlyTopCall - boolean - When set to true, this will only trace the primary (top-level) call and not any sub-calls. It eliminates the additional processing for each call frame

Returns:

result - The transaction trace object, which has the following fields:

failed - The transaction is successful or not

gas - The total consumed gas in the transaction

returnValue - The return value of the executed contract call

structLogs - The trace result of each step with the following fields:

pc - The current index in bytecode

op - The name of current executing operation

gas - The available gas in the execution

gasCost - The gas cost of the operation

depth - The number of levels of calling functions

error - The error of the execution

stack - An array of values in the current stack

memory - An array of values in the current memory

storage - The mapping of the current storage

refund - The total of current refund value

Code Examples:

var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "method": "debug_traceCall",
  "params": [
    {
      "from": null,
      "to": "0x6b175474e89094c44da98b954eedeac495271d0f",
      "data": "0x70a082310000000000000000000000006E0d01A76C3Cf4288372a29124A26D4353EE51BE"
    },
    "latest"
  ],
  "id": 1,
  "jsonrpc": "2.0"
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.ebs.ezat.io/core/api/v1.0/rpc/ethereum/mainnet?x-api-key-id=API-KEY-ID&x-api-key=API-KEY", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Last updated