The whenOpen modifier prevents the function it is used from, and the modifier constructor starts with the value 1(true) by default.
If 0(false) is set by Owner, the function it is used with becomes inoperable.
The purpose of the whenOpen modifier; Pausing the project or just blocking the use of certain functions?
This part is not understood.
Because when this modifier is closed with close, the execute and bulkExecute  functions will not work, but all other functions will work, which will confuse users.
Apart from the confusion, it can also cause technical question marks.
1- Alice makes transactions from the platform, transfers with execute, changes transaction nonces with incrementNonce
2- Pause the project with whenOpen by owner
3- But Owner can change oracle address  or setBlockRang 
4- With Owner whenOpen, it starts the project again at any time (ERC721 may be a suitable time for price manipulation)
5- All of these situations can lead to a question mark for users
1- The purpose of the whenOpen modifier; Pausing the project or just blocking the use of certain functions? This part should be clarified and added to the documents.
2- When the project is paused, it can be ensured that it is included in critical features such as address change (There is no need to pause for these changes anyway). These clear user question marks.
