const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);
const traceTransaction = async (txHash) => {
const traces = await provider.send("trace_transaction", [txHash]);
console.log(`Transaction has ${traces.length} traces`);
for (const trace of traces) {
const indent = " ".repeat(trace.traceAddress.length);
const callType = trace.action.callType || trace.type;
const to = trace.action.to || "Contract Creation";
console.log(`${indent}[${trace.traceAddress.join(",")}] ${callType}`);
console.log(`${indent} From: ${trace.action.from}`);
console.log(`${indent} To: ${to}`);
console.log(`${indent} Gas Used: ${trace.result?.gasUsed || "N/A"}`);
if (trace.error) {
console.log(`${indent} Error: ${trace.error}`);
}
}
};
traceTransaction("0xb3e821e696897b02283b7b2d602941b1d3cb08448d3a204bab05955215fc2035");