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 () => {
const result = await provider.send("trace_call", [
{
to: PATHUSD,
data: data
},
["trace", "stateDiff"],
"latest"
]);
console.log("Output:", result.output);
console.log("Traces:", result.trace.length);
if (result.stateDiff) {
console.log("State changes:", Object.keys(result.stateDiff).length, "addresses affected");
}
};
traceCall();