El método trace_transaction
recupera información detallada del rastro para una transacción identificada por su hash. Este método proporciona información sobre cada paso de la ejecución de la transacción, incluidas las llamadas internas entre contratos, permitiendo un análisis y depuración en profundidad.
Este método devuelve un array de rastros para todas las operaciones ejecutadas durante la transacción.
El hash de la transacción a rastrear
Un array de objetos de rastro 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)
Hash del bloque que contiene este rastro
Número de bloque que contiene este rastro
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
Hash de la transacción que se está rastreando
Posición índice de la transacción en el bloque
Tipo de operación (call, create, suicide)
Mensaje de error si la llamada falló (opcional)
{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"action": {
"callType": "call",
"from": "0x83806d539d4ea1c140489a06660319c9a303f874",
"gas": "0x1a1f8",
"input": "0x",
"to": "0x1c39ba39e4735cb65978d4db400ddd70a72dc750",
"value": "0x7a16c911b4d00000"
},
"blockHash": "0x7eb25504e4c202cf3d62fd585d3e238f592c780cca82dacb2ed3cb5b38883add",
"blockNumber": 3068185,
"result": {
"gasUsed": "0x2982",
"output": "0x"
},
"subtraces": 2,
"traceAddress": [],
"transactionHash": "0x17104ac9d3312d8c136b7f44d4b8b47852618065ebfa534bd2d3b5ef218ca1f3",
"transactionPosition": 2,
"type": "call"
},
{
"action": {
"callType": "call",
"from": "0x1c39ba39e4735cb65978d4db400ddd70a72dc750",
"gas": "0x13e99",
"input": "0x16c72721",
"to": "0x2bd2326c993dfaef84f696526064ff22eba5b362",
"value": "0x0"
},
"blockHash": "0x7eb25504e4c202cf3d62fd585d3e238f592c780cca82dacb2ed3cb5b38883add",
"blockNumber": 3068185,
"result": {
"gasUsed": "0x183",
"output": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
"subtraces": 0,
"traceAddress": [0],
"transactionHash": "0x17104ac9d3312d8c136b7f44d4b8b47852618065ebfa534bd2d3b5ef218ca1f3",
"transactionPosition": 2,
"type": "call"
},
{
"action": {
"callType": "call",
"from": "0x1c39ba39e4735cb65978d4db400ddd70a72dc750",
"gas": "0x8fc",
"input": "0x",
"to": "0x70faa28a6b8d6829a4b1e649d26ec9a2a39ba413",
"value": "0x7a16c911b4d00000"
},
"blockHash": "0x7eb25504e4c202cf3d62fd585d3e238f592c780cca82dacb2ed3cb5b38883add",
"blockNumber": 3068185,
"result": {
"gasUsed": "0x0",
"output": "0x"
},
"subtraces": 0,
"traceAddress": [1],
"transactionHash": "0x17104ac9d3312d8c136b7f44d4b8b47852618065ebfa534bd2d3b5ef218ca1f3",
"transactionPosition": 2,
"type": "call"
}
]
}
El árbol de rastros representa el flujo de ejecución de la transacción:
traceAddress
vacío)traceAddress
de [0]
, [1]
, etc.)traceAddress
de [0, 0]
, [0, 1]
, etc.)El campo callType
puede tener diferentes valores:
El campo type
indica el tipo de operación:
trace_replayTransaction