El método trace_replayTransaction
le permite reproducir una transacción y recuperar una variedad de información de rastro incluyendo rastro de ejecución, rastro VM y cambios de estado. Este método proporciona información más detallada que trace_transaction
mostrando cómo la transacción cambió el estado.
Este método reproduce una transacción y devuelve información detallada de rastro incluyendo rastro VM y diferencias de estado.
El hash de la transacción a reproducir
Array de tipos de rastreo a incluir en la respuesta
Objeto resultado con información de rastreo
Datos de salida de la transacción
Diferencias de estado causadas por la transacción (si se solicita)
Cambios de estado para una dirección
Array de objetos de rastreo para todas las operaciones en la transacción
Detalles sobre la acción de llamada
Tipo de llamada (call, delegatecall, etc.)
Dirección del remitente
Gas proporcionado para la llamada (hex)
Datos de entrada para la llamada (hex)
Dirección del destinatario
Valor transferido en wei (hex)
Resultado de la llamada
Cantidad de gas utilizado (hex)
Datos de salida de la llamada (hex)
Número de sub-rastros
Ruta de dirección de la ubicación del rastro en el árbol de llamadas
Tipo de operación (call, create, suicide)
Rastro de ejecución de la máquina virtual (si se solicita)
Bytecode EVM que se está ejecutando
Array de operaciones ejecutadas
Costo de gas de la operación
Resultado de ejecución de la operación
Contador de programa
Información sobre la sub-ejecución de llamada
{
"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
}
]
}
}
}
El parámetro traceTypes
acepta un array de los siguientes valores:
Puede solicitar cualquier combinación de estos tipos de rastro.
El formato de diferencia de estado utiliza los siguientes símbolos:
trace_transaction
en su lugartrace_transaction
puede ser suficiente