gas优化之删除重置

  • iszzm123
  • 发布于 7 小时前
  • 阅读 16

用delete释放存储delete会将storage变量重置为零值,获得gas退款。在以太坊当前的机制下,delete释放一个非零存储槽所获得的退款是固定数值4,800gas

用 delete 释放存储

delete 会将 storage 变量重置为零值,获得 gas 退款。

在以太坊当前的机制下,delete 释放一个非零存储槽所获得的 退款是固定数值 4,800 gas

退款上限:单笔交易的总退款不能超过该交易实际消耗 gas 的一半。

// 删除单个变量,获得 refund
delete balances[user];
// 设为 0,不触发 refund
balances[user] = 0;

不要用 delete 清空数组

// 会触发大量 SSTORE,极贵
delete myArray;
// 重置为空的数组
myArray = new uint[](0);
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
iszzm123
iszzm123
最近有应聘的意向