forked from cerc-io/laconicd-deprecated
96cad7de9c
* tests: reorganize testing packages * gitignore and minor changes
25 lines
792 B
Solidity
25 lines
792 B
Solidity
// Brought from https://github.com/aragon/aragonOS/blob/v4.3.0/contracts/common/Petrifiable.sol
|
|
// Adapted to use pragma ^0.5.17 and satisfy our linter rules
|
|
|
|
pragma solidity ^0.5.17;
|
|
|
|
import "./Initializable.sol";
|
|
|
|
|
|
contract Petrifiable is Initializable {
|
|
// Use block UINT256_MAX (which should be never) as the initializable date
|
|
uint256 internal constant PETRIFIED_BLOCK = uint256(-1);
|
|
|
|
function isPetrified() public view returns (bool) {
|
|
return getInitializationBlock() == PETRIFIED_BLOCK;
|
|
}
|
|
|
|
/**
|
|
* @dev Function to be called by top level contract to prevent being initialized.
|
|
* Useful for freezing base contracts when they're used behind proxies.
|
|
*/
|
|
function petrify() internal onlyInit {
|
|
initializedAt(PETRIFIED_BLOCK);
|
|
}
|
|
}
|