我的理解是,煤气总退款不能超过交易总煤气成本的20%,我猜这意味着EVM会先把所有交易气体成本加起来,然后再扣除煤气退款总额(最高可达20%)。
我的问题是,如果一个账户在退款前没有资金支付交易气体成本,即使它有资金支付退款后的实际交易气体成本,交易也会失败吗?
示例:
交易失败是因为10,000>9,000,尽管有fails 9‘>8,000?
发布于 2023-05-12 14:04:49
是的,没错。交易的总气体成本包括EVM用于执行交易的实际气体和任何可退款操作的气体成本。如果总煤气成本超过帐户余额,即使EVM实际使用的气体少于帐户余额,交易也会失败。
在您的例子中,如果帐户只有9,000种气体的余额,而退款前的交易气体成本是10,000种气体,即使退款后的气体成本只有8,000种气体,交易也会失败。这是因为EVM计算了包括天然气退款在内的总天然气成本,在这种情况下,天然气总成本超过了帐户的余额。
https://ethereum.stackexchange.com/questions/150102
复制相似问题