debug_traceTransaction

Provides a detailed record of how the transaction interacts with smart contracts, accounts, and other elements on the blockchain, helping developers understand what happened and troubleshoot issues.

Parameters

  1. Transaction Hash.

  2. Tracer - choose from one of these options:

    • 4byteTracer - Solidity contract functions are addressed using the first four byte of the Keccak-256 hash of their signature. This tracer monitors and analyzes the usage of specific function signatures within smart contracts by capturing their unique first four bytes.

    • callTracer - collects data about all call frames executed within a transaction, creating a hierarchical list of call frames structured mirroring the EVM's operations. This is useful for debugging and analytical purposes.

    • prestateTracer - captures and analyzes the state of the blockchain before the execution of a specific transaction. It helps in understanding the state changes and effects that a transaction will have on the blockchain's data and accounts before the transaction is actually executed.

    • noopTracer - returns empty results. This is used for testing purpose.

    • opcountTracer - count and track the number of operations (or opcodes) executed during a specific transaction.

    • unigramTracer - counts the frequency of occurrence of each opcode.

    • bigramTracer - a bigram refers to a sequence of two bytes or characters. This tracer is designed to observe and provide insights into the patterns and occurrences of these two-byte sequences as they appear within the data of executed transactions.

    • trigramTracer - a trigram refers to a sequence of three bytes or characters. This tracer is designed to observe and provide insights into the patterns and occurrences of these three-byte sequences as they appear within the data of executed transactions.

    • evmdisTracer - generates the bytecode disassembly of executed transactions, providing developers with insights into how smart contracts operate at a low-level bytecode level for debugging, security audits, and performance optimization purposes.

Sample Request

curl https://lb.nodies.app/v1/<INSERT URL> \
   -H "x-api-key: <API-KEY>" \
   -X POST \
   -H "Content-Type: application/json" \
   -d '{ 
  "method": "debug_traceTransaction",
  "params": [
    "0x00389d11639c3d1b48019208565b4f12e1656762dcd3b91e5865e2c04c4191bf",
    {
      "tracer": "callTracer"
    }
  ],
  "id": 1,
  "jsonrpc": "2.0"
}'

Sample Response

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "from": "0x9534da06b535910967e52e4dd1b67898d1f112b1",
    "gas": "0x8cbc",
    "gasUsed": "0xa15d",
    "to": "0xdac17f958d2ee523a2206206994597c13d831ec7",
    "input": "0xa9059cbb0000000000000000000000005e85a36599e122204123200fca30d7f6942769a900000000000000000000000000000000000000000000000000000000059a5380",
    "value": "0x0",
    "type": "CALL"
  }
}

Last updated