Supported API methods for Ethereum Gateway
The full list of API methods that are supported by an Ethereum Gateway
is given below. The gateway returns a 403
if a method is specified that is not
supported.
For a full list of JSON-RPC API methods, refer to the JSON-RPC specification.
Trace methods
EVM traces are a way to track the execution of smart contracts on the Ethereum blockchain. It records all the steps taken by the Ethereum Virtual Machine (EVM) as it runs the smart contract. This includes information like the specific operation that was executed, how much gas it cost, and any changes made to the blockchain as a result. The trace module is a tool that allows developers to access and analyze these traces, which can be useful for debugging, testing, and monitoring smart contracts. It can be used to identify and fix errors, optimize performance, and gain insight into how the smart contract is interacting with the blockchain.
trace_filter
The trace_filter
method retrieves the traces of multiple transactions in a single request. This method is particularly useful for debugging and monitoring specific addresses on the Ethereum blockchain.
Request Parameters
fromBlock
:Quantity
orTag
- (optional) The block number to start receiving traces from.toBlock
:Quantity
orTag
- (optional) The block number to stop receiving traces at.fromAddress
:Array
- (optional) An array of addresses to start receiving traces from.toAddress
:Address
- (optional) An array of addresses to stop retrieving traces at.after
:Quantity
- (optional) The offset trace numbercount
:Quantity
- (optional) The amount of traces to return.
Returns
This method returns an Array
of traces matching the given filter.
Example
trace_filter Request$ curl https://web3-trial.cloudflare-eth.com/v1/mainnet \-X POST \-H 'Content-Type: application/json' \--data '{ "jsonrpc":"2.0", "method":"trace_filter", "params":[ { "count": 200, "fromBlock": "0xccb943", "toBlock": "0xccbc62", "fromAddress": [ "0xEdC763b3e418cD14767b3Be02b667619a6374076" ] } ], "id":1 }'
Response
{"jsonrpc": "2.0","result": [{"action": {"from": "0xedc763b3e418cd14767b3be02b667619a6374076","callType": "call","gas": "0x8462","input": "0x095ea7b30000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","to": "0x7ff4169a6b5122b664c51c95727d87750ec07c84","value": "0x0"},"blockHash": "0x351e7c06ec010c8f7e7358eb580238dd23e1e129be96822aa93ebb6da08558e6","blockNumber": 13416771,"result": {"gasUsed": "0x6009","output": "0x0000000000000000000000000000000000000000000000000000000000000001"},"subtraces": 0,"traceAddress": [],"transactionHash": "0x054bbb9fbb855bf23f755e548c7409f45fc5eff8a824b2ad06380bc038d7b049","transactionPosition": 54,"type": "call"}],"id": 1}
Limitations
The trace_filter
method has some limitations to ensure that our nodes are not overloaded.
- The block range for the
trace_filter
method is limited to 800 blocks. - The trace
count
is limited to 200