如需获取本内容的最新版本,请参见 Cyfrin.io 上的Gas(代码示例)
你需要支付多少以太币来完成一笔交易?
你支付的以太币金额为:gas 消耗量 * gas 单价。其中:
- gas 是计算单位
- gas 消耗量是交易中使用的总 gas 量
- gas 单价是你愿意为每单位 gas 支付的以太币金额
gas 单价越高的交易,越容易被优先打包进区块。未使用的 gas 会被退还。
Gas 上限
gas 消耗量有两个上限:
- gas 上限(你愿意为交易支付的 gas 最大值,由你设定)
- 区块 gas 上限(单个区块允许的 gas 最大值,由网络设定)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
contract Gas {
uint256 public i = 0;
// 用完你发送的所有gas会导致交易失败。
// 状态更改会被撤销。
// 已消耗的gas不予退还。
function forever() public {
// Here we run a loop until all of the gas are spent
// and the transaction fails
while (true) {
i += 1;
}
}
}
Remix Lite 尝试一下
END