curl --request POST \
--url https://rpc.testnet.tempo.xyz/ \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "debug_traceCall",
"params": [
{
"to": "0x20c0000000000000000000000000000000000000",
"data": "0x70a082310000000000000000000000009729187d9e8bbefa8295f39f5634ca454dd9d294"
},
"latest",
{}
],
"id": 1
}
'{
"jsonrpc": "<string>",
"id": 123,
"result": {}
}curl --request POST \
--url https://rpc.testnet.tempo.xyz/ \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "debug_traceCall",
"params": [
{
"to": "0x20c0000000000000000000000000000000000000",
"data": "0x70a082310000000000000000000000009729187d9e8bbefa8295f39f5634ca454dd9d294"
},
"latest",
{}
],
"id": 1
}
'{
"jsonrpc": "<string>",
"id": 123,
"result": {}
}callObject — the call object:
from — (optional) sender addressto — recipient addressgas — (optional) gas limitgasPrice — (optional) gas pricevalue — (optional) value to senddata — (optional) call datablockParameter — the block number (hex) or tag (latest, earliest, pending)tracerConfig — (optional) tracer configuration object:
tracer — tracer type (e.g., callTracer, prestateTracer)result — the trace result object, format depends on the tracer usedgas — gas usedfailed — whether the call failedreturnValue — return datastructLogs — array of execution stepsdebug_traceCall code examplesbalanceOf call on the pathUSD token:
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();
Was this page helpful?