Transaction trace types
An ordered list of calls to other contracts, excluding precompiled contracts.
|Whether the transaction is |
|Address of the transaction sender.|
|Gas provided by sender.|
|Target of the transaction.|
|Value transferred in the transaction.|
|Gas used by the transaction. Includes any refunds of unused gas.|
|Return value of the contract call. Contains only the actual value sent by a |
|Traces of contract calls made by the transaction.|
|Tree list address of where the call occurred, address of the parents, and order of the current sub call.|
|Whether the transaction is a |
An ordered list of EVM actions when processing the transaction.
vmTrace only reports actual data returned from a
RETURN opcode and does not return the contents of the reserved output space for the call operations. As a result:
nullwhen a call operation ends because of a
REVERT, running out of instructions, or any exceptional halts.
- When a
RETURNoperation returns data of a different length to the space reserved by the call,
vmTracereports only the data passed to the
RETURNoperation and does not include pre-existing memory data or trim the returned data.
For out of gas operations,
vmTrace reports the operation that caused the out of gas exception, including the calculated gas cost.
vmTrace does not report
ex values because the operation is not executed.
|Code executed by the EVM.|
|Sequence of EVM operations (opcodes) executed in the transaction.|
|Gas cost of the opcode. Includes memory expansion costs but not gas refunds. For precompiled contract calls, reports only the actual cost.|
|Memory read or written by the operation.|
|Adjusted stack items. For swap, includes all intermediate values and the result. Otherwise, is the value pushed onto the stack.|
|Account storage written by the operation.|
|Remaining gas taking into account the all but 1/64th rule for calls.|
|Sub call operations.|
State changes in the requested block for each transaction represented as a map of accounts to an object. Besu lists the balance, code, nonce, and storage changes from immediately before the transaction to after the transaction. For the
+indicates the field didn’t exist before and now has the specified value
-indicates a deleted value
An absent value is distinct from zero when creating accounts or clearing storage.
|Change of balance event.|
|Balance before the transaction.|
|Balance after the transaction.|
|Changes to code. None in this example.|
|Change of nonce.|
|Nonce before the transaction.|
|Nonce after the transaction.|
|Changes to storage. None in this example.|
Applicable API methods
The trace options
stateDiff are available for the following ad-hoc tracing API methods:
trace option is available for the following transaction-trace filtering API methods: