Fantom API method that retrieves a specific trace from a transaction by index. Th method is part of the Ethereum client’s tracing API, which provides detailed insights into individual transaction steps within the Ethereum Virtual Machine (EVM). It is particularly useful for analyzing transactions with multiple internal calls and operations.
txHash
— the hash of the transaction from which to retrieve the trace.traceIndex
— an array of integers specifying the zero-based indices of the traces to retrieve.action
— an object that describes the action taken by the transaction:
callType
— the type of call, such as call
, delegatecall
, or staticcall
.from
— the address of the sender who initiated the transaction.gas
— the units of gas used by the transaction.input
— the data sent with the transaction.to
— the recipient of the transaction, if applicable.value
— the value transferred in Wei.blockHash
— the hash of the block in which the transaction was included.
blockNumber
— the number of the block in which the transaction was included.
result
— an object that contains the outcome of the trace:
gasUsed
— the gas used by the transaction, encoded as hexadecimal.output
— the return value of the execution, encoded as a hexadecimal string.subtraces
— the number of sub-traces spawned by the trace.
traceAddress
— an array that indicates the hierarchical position of the trace.
transactionHash
— the hash of the transaction.
transactionPosition
— the position of the transaction within the block.
type
— the type of action taken by the transaction, call
or create
.
trace_get
code examplesconst { Web3, Web3PluginBase } = require("web3");
const NODE_URL = "CHAINSTACK_NODE_URL";
const web3 = new Web3(NODE_URL);
// Define the TraceBlockPlugin class with only trace_get
class TraceBlockPlugin extends Web3PluginBase {
pluginNamespace = 'trace';
// trace_get method
async traceGet(txHash, transactionPositions) {
return this.requestManager.send({
method: 'trace_get',
params: [txHash, transactionPositions],
});
}
}
// Register the plugin
web3.registerPlugin(new TraceBlockPlugin());
// Function to use traceGet
async function traceGet(txHash, transactionPositions) {
const result = await web3.trace.traceGet(txHash, transactionPositions);
console.log(result);
}
// Example usage of traceGet
const txHash = '0xa2b1e35f59d184da1996b37803ed2e8e81057be7d07a93af48a410fd9338d616'; // Replace with actual block hash
const transactionPositions = ['0x1']; // Replace with actual transaction indices in the block
traceGet(txHash, transactionPositions);
trace_get
method is useful for developers and analysts who must investigate the detailed execution of specific transactions, particularly those involving complex interactions and multiple steps within the EVM. It can help audit smart contract functions, verify transaction logic, and understand the flow of transactions that involve several contract calls.
trace_get
RPC method yourselfWas this page helpful?