Files
openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol
Francisco Giordano e7aa8dedbc Turn off blank-lines Solium rule (#1284)
* turn off blank-lines rule

* remove triple newlines

(cherry picked from commit 9b37104655)
2018-10-20 21:07:49 +00:00

30 lines
914 B
Solidity

pragma solidity ^0.4.24;
/**
* @title Helps contracts guard against reentrancy attacks.
* @author Remco Bloemen <remco@2π.com>, Eenae <alexey@mixbytes.io>
* @dev If you mark a function `nonReentrant`, you should also
* mark it `external`.
*/
contract ReentrancyGuard {
/// @dev counter to allow mutex lock with only one SSTORE operation
uint256 private _guardCounter = 1;
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* If you mark a function `nonReentrant`, you should also
* mark it `external`. Calling one `nonReentrant` function from
* another is not supported. Instead, you can implement a
* `private` function doing the actual work, and an `external`
* wrapper marked as `nonReentrant`.
*/
modifier nonReentrant() {
_guardCounter += 1;
uint256 localCounter = _guardCounter;
_;
require(localCounter == _guardCounter);
}
}