Files
openzeppelin-contracts/contracts/ReentrancyGuard.sol
Jorge Izquierdo a6a2ee2bf1 Merge with master
2017-05-21 16:08:47 -04:00

29 lines
878 B
Solidity

pragma solidity ^0.4.8;
/// @title Helps contracts guard agains rentrancy attacks.
/// @author Remco Bloemen <remco@2π.com>
/// @notice If you mark a function `nonReentrant`, you should also
/// mark it `external`.
contract ReentrancyGuard {
/// @dev We use a single lock for the whole contract.
bool private rentrancy_lock = false;
/// Prevent contract from calling itself, directly or indirectly.
/// @notice 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 a `external`
/// wrapper marked as `nonReentrant`.
modifier nonReentrant() {
if(rentrancy_lock == false) {
rentrancy_lock = true;
_;
rentrancy_lock = false;
} else {
throw;
}
}
}