contract InitializableModuleKeys {

    // Governance
    bytes32 internal KEY_GOVERNANCE;
    bytes32 internal KEY_STAKING;
    bytes32 internal KEY_PROXY_ADMIN;

    // mStable
    bytes32 internal KEY_ORACLE_HUB;
    bytes32 internal KEY_MANAGER;
    bytes32 internal KEY_RECOLLATERALISER;
    bytes32 internal KEY_META_TOKEN;
    bytes32 internal KEY_SAVINGS_MANAGER;

    /**
     * @dev Initialize function for upgradable proxy contracts. This function should be called
     *      via Proxy to initialize constants in the Proxy contract.
     */
    function _initialize() internal {
        // keccak256() values are evaluated only once at the time of this function call.
        // Hence, no need to assign hard-coded values to these variables.
        KEY_GOVERNANCE = keccak256("Governance");
        KEY_STAKING = keccak256("Staking");
        KEY_PROXY_ADMIN = keccak256("ProxyAdmin");

        KEY_ORACLE_HUB = keccak256("OracleHub");
        KEY_MANAGER = keccak256("Manager");
        KEY_RECOLLATERALISER = keccak256("Recollateraliser");
        KEY_META_TOKEN = keccak256("MetaToken");
        KEY_SAVINGS_MANAGER = keccak256("SavingsManager");
    }
}
function _initialize() internal {
    // keccak256() values are evaluated only once at the time of this function call.
    // Hence, no need to assign hard-coded values to these variables.
    KEY_GOVERNANCE = keccak256("Governance");
    KEY_STAKING = keccak256("Staking");
    KEY_PROXY_ADMIN = keccak256("ProxyAdmin");

    KEY_ORACLE_HUB = keccak256("OracleHub");
    KEY_MANAGER = keccak256("Manager");
    KEY_RECOLLATERALISER = keccak256("Recollateraliser");
    KEY_META_TOKEN = keccak256("MetaToken");
    KEY_SAVINGS_MANAGER = keccak256("SavingsManager");
}

/**
 * @dev Initialize function for upgradable proxy contracts. This function should be called
 *      via Proxy to initialize constants in the Proxy contract.
 */