Files
openzeppelin-contracts/contracts
ericDeCourcy 33047ffddc Update ReentrancyGuard for Istanbul Hard Fork (#1992)
* Update ReentrancyGuard for Istanbul Hard Fork

Changes:
Added L37, `_guardCounter = 1;`

Rationale:
The planned _Istanbul Hard Fork_ will implement [EIP 2200](e4d4ea348e/EIPS/eip-2200.md), which implements "net gas metering" for `sstore` operations. If the final value of `_guardCounter` is unchanged relative to the original value of it, a gas refund will be applied and charges for changing the value of `_guardCounter` will effectively not exist. This ends up being cheaper than the current implementation ONLY AFTER Istanbul. Before Istanbul, the added line actually ends up costing more gas.

Note that if `_guardCounter` is `0` initially, the initial cost and subsequent refund will both be larger than if `_guardCounter` is `1` initially. Although in both cases, the net gas cost (`gasCost - gasRefund`) are equal, it's better in terms of cost to have both the gas cost and refund smaller, as there is some limit to the percentage of a gas refund that can actually be realized.

* Update CHANGELOG.md

Added note for change to ReentrancyGuard.sol

* Update ReentrancyGuard.sol

* Update CHANGELOG.md
2019-11-13 14:54:15 -03:00
..
2019-08-14 14:21:38 +02:00
2019-08-14 14:21:38 +02:00
2019-10-30 12:57:19 -03:00
2019-08-14 14:21:38 +02:00
2019-10-29 17:23:48 -03:00
2019-08-14 14:21:38 +02:00
2019-10-29 17:23:48 -03:00
2019-10-25 15:53:16 -03:00
2019-11-12 17:52:38 -03:00
2019-10-29 17:44:30 -03:00