trace_replayBlockTransactions
方法重放指定区块中的所有交易并返回每个交易的详细追踪信息。这提供了对交易执行流程的见解,允许进行详细分析和调试。
此方法重放区块中的所有交易并提供详细的追踪信息。
十六进制格式的区块号或区块标签(latest, earliest, pending)
响应中包含的追踪类型数组
区块中每个交易的追踪结果数组
交易的输出数据
交易导致的状态差异(如果请求)
地址的状态变化
追踪对象数组
关于调用操作的详情
调用类型(call, delegatecall 等)
发送者地址
为调用提供的燃料
调用的输入数据
接收者地址
以 wei 为单位转移的价值
调用结果
使用的燃料量
调用的输出数据
子追踪数量
调用树中追踪位置的地址路径
追踪类型
交易的哈希
虚拟机执行追踪(如果请求)
正在执行的 EVM 字节码
已执行操作的数组
操作的燃料成本
操作的执行结果
程序计数器
关于调用子执行的信息
{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"output": "0x0000000000000000000000000000000000000000000000000000000000000001",
"stateDiff": {
"0x1234567890123456789012345678901234567890": {
"balance": {
"*": {
"from": "0x100",
"to": "0x110"
}
},
"code": "=",
"nonce": {
"*": {
"from": "0x10",
"to": "0x11"
}
},
"storage": {
"0x0000000000000000000000000000000000000000000000000000000000000001": {
"*": {
"from": "0x0000000000000000000000000000000000000000000000000000000000000000",
"to": "0x0000000000000000000000000000000000000000000000000000000000000001"
}
}
}
}
},
"trace": [
{
"action": {
"callType": "call",
"from": "0x71c7656ec7ab88b098defb751b7401b5f6d8976f",
"gas": "0x4c40d",
"input": "0xa9059cbb000000000000000000000000ea674fdde714fd979de3edf0f56aa9716b898ec80000000000000000000000000000000000000000000000002b5e3af16b1880000",
"to": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"value": "0x0"
},
"result": {
"gasUsed": "0x9868",
"output": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
"subtraces": 0,
"traceAddress": [],
"type": "call"
}
],
"transactionHash": "0x69f8de1af3129dc3b1adb5b3c1577476f737f9335f156e177b48c2ed88f3f7c4",
"vmTrace": {
"code": "0x60606040...",
"ops": [
{
"cost": 3,
"ex": {
"mem": null,
"push": ["0x60"],
"store": null,
"used": 16723979
},
"pc": 0,
"sub": null
}
// 额外的操作...
]
}
}
// 额外的交易追踪...
]
}
traceTypes
参数接受以下值的数组:
您可以请求这些追踪类型的任意组合。
状态差异格式使用以下符号:
虚拟机追踪包含:
追踪格式显示执行路径:
blockNumber
参数接受:
0x1b4
)latest
: 最近挖出的区块earliest
: 创世区块pending
: 当前待定区块(等待挖矿的交易)