eth_feeHistory
方法返回历史 gas 费用数据,使网络费用趋势分析成为可能,并帮助对交易 gas 价格做出明智决策。此方法在实施 EIP-1559 后变得至关重要,EIP-1559 引入了一种新的费用市场机制,包含基础费用和优先费用。
此方法检索历史 gas 信息集合,包括基础费用、gas 使用率和指定百分位的优先费用(小费)。
请求范围内的区块数量(1-1024)
范围内的最高区块号或区块标签
用于优先费用计算的百分位列表
范围内最旧区块的十六进制字符串
每个 gas 的基础费用数组(包括下一个区块)
区块 gas 使用率数组
优先费用百分位值数组
{
"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"]
]
}
}
基础费用根据网络拥塞情况变化:当区块填充超过 50% 时增加,低于 50% 时减少。理解这一机制有助于预测未来费用。
// 从历史记录计算平均基础费用的示例
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;