Class OpcodeData
A single opcode-execution entry in an OpcodesData trace.
Inherited Members
Namespace: Hiero.Mirror
Assembly: Hiero.dll
Syntax
public class OpcodeData
Remarks
The Memory, Stack, and Storage fields are populated only when their respective projection filters (OpcodeMemoryProjectionFilter, OpcodeStackProjectionFilter, OpcodeStorageProjectionFilter) were set to include them on the request. Otherwise they arrive null.
Properties
| Edit this page View SourceDepth
The call-stack depth at which this opcode executed.
Declaration
[JsonPropertyName("depth")]
public int Depth { get; set; }
Property Value
| Type | Description |
|---|---|
| int |
Gas
Remaining gas available when this opcode began executing.
Declaration
[JsonPropertyName("gas")]
public long Gas { get; set; }
Property Value
| Type | Description |
|---|---|
| long |
GasCost
Gas cost charged for executing this specific opcode.
Declaration
[JsonPropertyName("gas_cost")]
public long GasCost { get; set; }
Property Value
| Type | Description |
|---|---|
| long |
Memory
The EVM memory, one 32-byte word per array element. Null when memory was not requested on the tracing call.
Declaration
[JsonPropertyName("memory")]
[JsonConverter(typeof(HexStringArraytoBytesArrayConverter))]
public ReadOnlyMemory<byte>[]? Memory { get; set; }
Property Value
| Type | Description |
|---|---|
| ReadOnlyMemory<byte>[] |
Op
The mnemonic name of the opcode (e.g. PUSH1, SLOAD).
Declaration
[JsonPropertyName("op")]
public string Op { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
Pc
Program counter at which this opcode executed.
Declaration
[JsonPropertyName("pc")]
public int Pc { get; set; }
Property Value
| Type | Description |
|---|---|
| int |
Reason
Revert reason bytes, when the opcode is a revert. Null otherwise.
Declaration
[JsonPropertyName("reason")]
[JsonConverter(typeof(HexStringToBytesConverter))]
public ReadOnlyMemory<byte> Reason { get; set; }
Property Value
| Type | Description |
|---|---|
| ReadOnlyMemory<byte> |
Stack
The EVM stack, one 32-byte word per array element. Null when stack information was explicitly excluded on the tracing call.
Declaration
[JsonPropertyName("stack")]
[JsonConverter(typeof(HexStringArraytoBytesArrayConverter))]
public ReadOnlyMemory<byte>[]? Stack { get; set; }
Property Value
| Type | Description |
|---|---|
| ReadOnlyMemory<byte>[] |
Storage
Storage slots read or written by this opcode, keyed by slot hash (preserved as its on-the-wire hex-string form, since EVM storage keys are conventionally displayed as hex). Null when storage was not requested on the tracing call.
Declaration
[JsonPropertyName("storage")]
[JsonConverter(typeof(HexStringDictionaryToBytesConverter))]
public Dictionary<string, ReadOnlyMemory<byte>>? Storage { get; set; }
Property Value
| Type | Description |
|---|---|
| Dictionary<string, ReadOnlyMemory<byte>> |