Performs multiple call traces on top of the same block. i.e. transaction n will be executed on top of a pending block with all n-1 transactions applied (traced) first. Allows to trace dependent transactions. (Trace Mode required, and supported only on OpenEthereum & Erigon).
Parameters:
vmTrace - To get a full trace of virtual machine's state during the execution of the given of given transaction, including for any subcalls.
trace - To get the basic trace of the given transaction.
stateDiff - To get information on altered Ethereum state due to execution of the given transaction.
Returns:
Output - String.
TransactionHash - String of the transaction hash.
VmTrace - ParityVmTrace Object, which has the following fields:
Code - String.
Operations - array of ParityVmOperationTrace objects.
Action - ParityTrace Object, which has the following fields:
TraceAddress - Array.
CallType - String.
IncludeInTrace - Boolean.
IsPrecomplied - Boolean.
Type - String.
CreationMethod - String.
From - Address.
To - Address.
Gas - Quantity.
Value - Quantity.
Input - Data.
Result - ParityTraceResult object which has the following fields:
GasUsed - Quantity
Output - Data
Address - Address
Code - Data
Subtraces - Array.
Author - Address.
RewardType - String.
Error - String.
StateChanges - Array.
Code Examples:
require 'ethereum.rb' client = Ethereum::HttpClient.new('http://sample-endpoint-name.network.quiknode.pro/token-goes-here/') response = client.send_command('trace_callMany', [ [[{ "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1", "to": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value": "0x186a0" },["trace"]], [{ "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1", "to": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value": "0x186a0" },["trace"]]],"latest"]) puts response["result"]
from web3 import HTTPProvider client = HTTPProvider('http://sample-endpoint-name.network.quiknode.pro/token-goes-here/') result = client.make_request('trace_callMany', [ [[{ "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1", "to": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value": "0x186a0" },["trace"]], [{ "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1", "to": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value": "0x186a0" },["trace"]]],"latest"]) print(result)
const ethers = require("ethers"); (async () => { const provider = new ethers.providers.JsonRpcProvider("http://sample-endpoint-name.network.quiknode.pro/token-goes-here/"); const response = await provider.send("trace_callMany", [ [ [ { "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1", "to": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value": "0x186a0", }, ["trace"], ], [ { "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1", "to": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value": "0x186a0", }, ["trace"], ], ], "latest", ]); console.log(response); })();
curl http://sample-endpoint-name.network.quiknode.pro/token-goes-here/ \ -X POST \ -H "Content-Type: application/json" \ --data '{"method":"trace_callMany","params":[[[{"from":"0x407d73d8a49eeb85d32cf465507dd71d507100c1","to":"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b","value":"0x186a0"},["trace"]],[{"from":"0x407d73d8a49eeb85d32cf465507dd71d507100c1","to":"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b","value":"0x186a0"},["trace"]]],"latest"],"id":1,"jsonrpc":"2.0"}'