* Update to ganache-cli v6.1.0 and truffle v4.1.0 * Update to stable version of ganache-cli * fix: update event emission warning - Fix event emission warnings for solidity 4.21 after truffle has been updated to use this version * fix pr review comments * update to truffle v4.1.5 * update package-lock * add additional emit keywords * update solidity-coverage to 0.4.15 * update to solium 1.1.6 * fix MerkleProof coverage analysis by testing through wrapper * change version pragma to ^0.4.21 * fix solium linting errors
33 lines
872 B
Solidity
33 lines
872 B
Solidity
pragma solidity ^0.4.21;
|
|
|
|
|
|
/**
|
|
* @title Helps contracts guard agains reentrancy 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 reentrancy_lock = false;
|
|
|
|
/**
|
|
* @dev Prevents a 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() {
|
|
require(!reentrancy_lock);
|
|
reentrancy_lock = true;
|
|
_;
|
|
reentrancy_lock = false;
|
|
}
|
|
|
|
}
|