W3
EIP-1559EIP费用Final(2021-08-05,伦敦升级)

费用市场改革

把 Gas 价格拆成「销毁的基础费 + 给矿工/验证者的小费」,交易费变得可预测。

适用链:以太坊主网 + 多数 L2 / 兼容链

为什么重要:它改变的不只是费用:baseFee 会被销毁,使 ETH 具备通缩压力;也让「卡交易」的处理方式完全不同。

函数签名与选择器

选择器是签名的 keccak256 前 4 字节;事件则是完整的 32 字节 topic0。 点一下即可复制。

签名 / 字段选择器 / topic0说明
baseFeePerGas由协议按上一个区块的填充率自动调整,用户无法直接设置。
maxPriorityFeePerGas小费,直接给验证者,决定打包优先级。
maxFeePerGas用户愿意支付的单价上限,必须 ≥ baseFee + 小费。
实际扣费公式实际单价 = min(maxFeePerGas, baseFee + maxPriorityFeePerGas)。
gasUsed / gasLimittargetGas = gasLimit / 2,用满则下个区块 baseFee 上涨,用不满则下降。

代码模板

区块头里的费用字段
区块头里的费用字段JSON
费率推荐逻辑
费率推荐逻辑TypeScript

实现与使用时的常见陷阱

  • maxFeePerGas 设得过低时交易会一直挂在 mempool(baseFee 涨上去就永远不满足条件),只能靠替换交易取消。
  • baseFee 是销毁的,不是给矿工的。合约里读 block.basefee 可以拿到当前值。
  • 在 L2 上仍沿用这套字段,但真正的成本大头往往是 L1 数据费(blob / calldata),两者要分开估算。

相关标准

想把这个标准用起来?开发者路径的第 1–2 阶段讲了怎么把它写进项目;合约 IDE里有对应的可编辑模板与静态自检;链上 API 参考则给出前端调用它的三种写法。