Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion eth-contracts/contracts/InitializableV2.sol
Original file line numberDiff line numberDiff line change
Expand Up@@ -13,16 +13,27 @@ contract InitializableV2 is Initializable {
bool private isInitialized;

string private constant ERROR_NOT_INITIALIZED = "InitializableV2: Not initialized";
string private constant ERROR_ALREADY_INITIALIZED = "InitializableV2: Already initialized";

/**
* @notice wrapper function around parent contract Initializable's `initializable` modifier
* initializable modifier ensures this function can only be called once by each deployed child contract
* sets isInitialized flag to true to which is used by _requireIsInitialized()
*/
function initialize() public initializer {
isInitialized = true;
}

/**
* @notice Reverts transaction if isInitialized is false. Used by child contracts to ensure
* contract is initialized before functions can be called.
*/
function _requireIsInitialized() internal view {
require(isInitialized == true, ERROR_NOT_INITIALIZED);
}

/**
* @notice Exposes isInitialized bool var to child contracts with read-only access
*/
function _isInitialized() internal view returns (bool) {
return isInitialized;
}
Expand Down