* Introduce gas refunds on reverts * Update EIPS/eip-3978.md Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com> * Fixes * Update EIPS/eip-3978.md Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com> * Fix narrative * Update EIPS/eip-3978.md Co-authored-by: Micah Zoltu <micah@zoltu.net> * Update EIPS/eip-3978.md Co-authored-by: Micah Zoltu <micah@zoltu.net> Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com> Co-authored-by: Micah Zoltu <micah@zoltu.net>
1.7 KiB
eip | title | description | author | discussions-to | status | type | category | created |
---|---|---|---|---|---|---|---|---|
3978 | Gas refunds on reverts | Do not erase gas refunds on transaction subcall reverts, due users pay a lot of gas for storage non-modification. | Anton Bukov (@k06a), Mikhail Melnik (@ZumZoom) | https://ethereum-magicians.org/t/eip-3978-gas-refunds-on-reverts/7071/ | Draft | Standards Track | Core | 2021-09-16 |
Abstract
Since EIP-3298 gas refunds works for storage restores only inside the same transaction. For example ERC-20 approve
+ transferFrom
flow between 2 smart contracts according to EIP-2200 and EIP-2929 will cost nearly to 21600
gas with gas refund counter 20000
. But in case of reverting this subcall (containing both approve
and transferForm
) gas refund will be erased, while smart contract storage will remain unmodified. I think it should keep storage access costs, but still refund modification costs.
Motivation
Сurrent full cancelling of gas refunds on internal reverts is too unfair. Users pay for non-modification same cost as for modification.
Specification
Let's count all SSTORE gas costs within every subcall, excluding access costs. And on reverting any subcall let's not erase refund counter, but:
tx.gas_refund_counter = tx.gas_refund_counter - call.gas_refund_counter + MIN(call.gas_refund_counter, call.all_sstores_gas_cost)
Rationale
TBD
Backwards Compatibility
No known backward incompatibilities.
Test Cases
TBD
Reference Implementation
TBD
Security Considerations
TBD
Copyright
Copyright and related rights waived via CC0.