trace_replayTransaction
方法允许您重放交易并检索各种追踪信息,包括执行追踪、虚拟机追踪和状态变化。此方法通过显示交易如何改变状态,提供比 trace_transaction
更详细的信息。
此方法重放交易并返回详细的追踪信息,包括虚拟机追踪和状态差异。
要重放的交易的哈希
响应中包含的追踪类型数组
带有追踪信息的结果对象
交易的输出数据
交易导致的状态差异(如果请求)
地址的状态变化
交易中所有操作的追踪对象数组
关于调用操作的详情
调用类型(call, delegatecall 等)
发送者地址
为调用提供的燃料(十六进制)
调用的输入数据(十六进制)
接收者地址
以 wei 为单位转移的价值(十六进制)
调用结果
使用的燃料量(十六进制)
调用的输出数据(十六进制)
子追踪数量
调用树中追踪位置的地址路径
操作类型(call, create, suicide)
虚拟机执行追踪(如果请求)
正在执行的 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": "0x83806d539d4ea1c140489a06660319c9a303f874",
"gas": "0x1a1f8",
"input": "0x",
"to": "0x1c39ba39e4735cb65978d4db400ddd70a72dc750",
"value": "0x7a16c911b4d00000"
},
"result": {
"gasUsed": "0x2982",
"output": "0x"
},
"subtraces": 2,
"traceAddress": [],
"type": "call"
}
],
"vmTrace": {
"code": "0x606060...",
"ops": [
{
"cost": 3,
"ex": {
"mem": null,
"push": ["0x60"],
"store": null,
"used": 16723979
},
"pc": 0,
"sub": null
}
]
}
}
}
traceTypes
参数接受以下值的数组:
您可以请求这些追踪类型的任意组合。
状态差异格式使用以下符号:
trace_transaction
trace_transaction
可能就足够了