El método eth_sendRawTransaction
transmite una transacción pre-firmada a la red Ethereum. Este método se utiliza para enviar todo tipo de transacciones después de que han sido firmadas offline, convirtiéndolo en el método principal para cualquier operación que cambie el estado en la blockchain.
Este método envía una transacción firmada a la red para su procesamiento.
Los datos de la transacción firmada (cadena hexadecimal)
El hash de la transacción, o el hash cero si la transacción aún no está disponible
Antes de usar eth_sendRawTransaction
, necesita:
Ethereum soporta diferentes tipos de transacciones:
Tipo | Descripción | Estructura |
---|---|---|
Legacy (Tipo 0) | Transacciones pre-EIP-1559 con gasPrice | {nonce, gasPrice, gasLimit, to, value, data, v, r, s} |
EIP-2930 (Tipo 1) | Transacciones con listas de acceso | {chainId, nonce, gasPrice, gasLimit, to, value, data, accessList, v, r, s} |
EIP-1559 (Tipo 2) | Transacciones con tarifa prioritaria | {chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data, accessList, v, r, s} |
{
"jsonrpc": "2.0",
"id": 1,
"result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": 3,
"message": "execution reverted: Dai/insufficient-balance",
"data": "0x08c379a00000000000000000000000000000000000000000000000000000000000000..."
}
}
Error | Descripción | Solución |
---|---|---|
Nonce demasiado bajo | El nonce de la transacción ya ha sido utilizado | Obtener el último nonce con eth_getTransactionCount |
Nonce demasiado alto | El nonce de la transacción es más alto de lo esperado | Usar el nonce secuencial correcto |
Fondos insuficientes | No hay suficiente ETH para gas + valor | Añadir más ETH a la dirección remitente |
Precio de gas demasiado bajo | Precio de gas ofrecido por debajo del mínimo | Aumentar el precio del gas o usar parámetros EIP-1559 |
Reemplazo infravalorado | Al reemplazar una tx, el nuevo precio de gas es demasiado bajo | Aumentar el precio del gas al menos un 10% |
Ya conocido | Transacción ya en el mempool | Esperar a la transacción existente |
Ejecución revertida | La ejecución del contrato falló | Verificar condiciones del contrato y parámetros |
Después de transmitir una transacción:
eth_getTransactionReceipt
hasta que devuelva un resultado no nulostatus
en el recibo:
0x1
indica éxito0x0
indica fallo (revertido)Antes de enviar transacciones, puede:
eth_estimateGas
para obtener el gas aproximado necesarioeth_feeHistory