你需要为一笔交易支付多少 ether ?
你需要支付 gas spent * gas price 这么多的 ether, 其中:
gas计算单元的单位gas spent是一笔交易中总共消耗的gas数量gas price是你愿意为每个gas支付多少ether
支付更高gas price的交易将被优先打包到区块中。
每花完的gas会被退回到用户的账户中。
Gas Limit
那么你最多能花费多少gas呢,这儿有两个方面的限制:
gas limit(你希望你的交易使用多少gas,这是你自己设定的,但是如果比所需的要少的话会导致交易失败,所有的修改会被回滚,但是gas不会退还给你)block gas limit(一个区块中的gas上限,这是由整个网络来设定的)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Gas {
uint public i = 0;
// 交易完成前如果你发送的gas被全部使用完的话,交易会失败
// 所有的交易状态会被回滚
// 花掉的gas也不会回退
function forever() public {
// 这里的循环会花掉所有的gas
// 然后该交易会失败
while (true) {
i += 1;
}
}
}