const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);
// pathUSD token address
const PATHUSD = "0x20c0000000000000000000000000000000000000";
const TARGET_ADDRESS = "0x9729187D9E8Bbefa8295F39f5634cA454dd9d294";
// Encode balanceOf(address)
const iface = new ethers.Interface(["function balanceOf(address) view returns (uint256)"]);
const data = iface.encodeFunctionData("balanceOf", [TARGET_ADDRESS]);
const traceCall = async () => {
// Using default tracer
const trace = await provider.send("debug_traceCall", [
{
to: PATHUSD,
data: data
},
"latest",
{}
]);
console.log("Gas used:", trace.gas);
console.log("Failed:", trace.failed);
console.log("Return value:", trace.returnValue);
console.log("Execution steps:", trace.structLogs.length);
};
traceCall();