We're now supporting Polygon zkEVM!
Learn more here.
Please note that this RPC method requires the "Trace Mode" add-on to be enabled on your QuickNode endpoint.
Parameters:
tracer - string - The type of tracer. It could be callTracer or prestateTracer
tracerConfig - object - The object to specify the configurations of the tracer
onlyTopCall - boolean - When set to true, this will only trace the primary (top-level) call and not any sub-calls. It eliminates the additional processing for each call frame
Returns:
type - The type of the call
from - The address the transaction is sent from
to - The address the transaction is directed to
value - The integer of the value sent with this transaction
gas - The integer of the gas provided for the transaction execution
gasUsed - The integer of the gas used
input - The data given at the time of input
output - The data which is returned as an output
calls - A list of sub-calls
Code Examples:
from web3 import Web3, HTTPProvider provider = Web3.HTTPProvider("http://sample-endpoint-name.network.quiknode.pro/token-goes-here/") result = provider.make_request('debug_traceBlock', ["RLP_ENCODED_BLOCK", {"tracer": "callTracer"}]) print(result)
var myHeaders = new Headers(); myHeaders.append("Content-Type", "application/json"); var raw = JSON.stringify({ "method": "debug_traceBlock", "params": ["RLP_ENCODED_BLOCK", {"tracer": "callTracer"}], "id": 1, "jsonrpc": "2.0" }); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("http://sample-endpoint-name.network.quiknode.pro/token-goes-here/", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error));
require "uri" require "json" require "net/http" url = URI("http://sample-endpoint-name.network.quiknode.pro/token-goes-here/") http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Content-Type"] = "application/json" request.body = JSON.dump({ "method": "debug_traceBlock", "params": ["RLP_ENCODED_BLOCK", {"tracer": "callTracer"}], "id": 1, "jsonrpc": "2.0" }) response = http.request(request) puts response.read_body
curl http://sample-endpoint-name.network.quiknode.pro/token-goes-here/ \ -X POST \ -H "Content-Type: application/json" \ --data '{"method":"debug_traceBlock","params":["RLP_ENCODED_BLOCK", {"tracer": "callTracer"}],"id":1,"jsonrpc":"2.0"}'
const ethers = require("ethers"); (async () => { const provider = new ethers.providers.JsonRpcProvider("http://sample-endpoint-name.network.quiknode.pro/token-goes-here/"); const filterId = await provider.send("debug_traceBlock", [ "RLP_ENCODED_BLOCK", { "tracer": "callTracer" }, ]); console.log(filterId); })();
require 'eth' client = Eth::Client.create 'http://sample-endpoint-name.network.quiknode.pro/token-goes-here/' payload = { "jsonrpc": "2.0", "method": "debug_traceBlock", "params": ["RLP_ENCODED_BLOCK", {"tracer": "callTracer"}], "id": "1" } response = client.send(payload.to_json) puts response
import requests import json url = "http://sample-endpoint-name.network.quiknode.pro/token-goes-here/" payload = json.dumps({ "method": "debug_traceBlock", "params": ["RLP_ENCODED_BLOCK", {"tracer": "callTracer"}], "id": 1, "jsonrpc": "2.0" }) headers = { 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text)