El método eth_feeHistory
devuelve datos históricos de tarifas de gas, permitiendo el análisis de tendencias de tarifas de red y ayudando a tomar decisiones informadas sobre precios de gas para transacciones. Este método se volvió esencial después de la implementación de EIP-1559, que introdujo un nuevo mecanismo de mercado de tarifas con tarifas base y tarifas de prioridad.
Este método recupera una colección de información histórica de gas, incluyendo tarifas base, relaciones de utilización de gas y tarifas de prioridad (propinas) en percentiles especificados.
Número de bloques en el rango solicitado (1-1024)
Número de bloque más alto del rango o etiqueta de bloque
Lista de percentiles para cálculo de tarifa de prioridad
Cadena hexadecimal del bloque más antiguo en el rango
Array de tarifas base por gas (incluye el siguiente bloque)
Array de proporciones de gas utilizado en bloques
Array de valores percentiles de tarifa de prioridad
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"oldestBlock": "0x1B177F5",
"baseFeePerGas": ["0x12", "0x10", "0x11", "0xf", "0xe"],
"gasUsedRatio": [0.5232, 0.4521, 0.4814, 0.2891],
"reward": [
["0x12", "0x34"],
["0x11", "0x38"],
["0x15", "0x42"],
["0x13", "0x39"]
]
}
}
La tarifa base cambia según la congestión de la red: aumenta cuando los bloques están más del 50% llenos y disminuye cuando están menos del 50% llenos. Entender este mecanismo ayuda a predecir tarifas futuras.
// Ejemplo de cálculo de tarifa base promedio del historial
const blockCount = 10;
const result = await provider.send('eth_feeHistory', [blockCount, 'latest', [25, 75]]);
const baseFees = result.baseFeePerGas.map((hex) => parseInt(hex, 16));
const avgBaseFee = baseFees.reduce((a, b) => a + b) / baseFees.length;