I am looking for upgradeable ERC20 Token with fix cap. Token should be burnable, pausable as well. I have created a simple contract using OpenZeppelin. What I want to avoid is that once the contract is deployed, future upgrade should not allow mint more than fix cap (when token burned then [total - burned] tokens).
There are two possibilities:
- Either mint only required token until total cap - burned
- Mint all tokens during initialization and not allow mint anymore.
What would be the best possible way and how can I make sure that token 1. Can’t exceed (total cap - burned) and 2. Not possible to mint anymore via new contract.
Do I need to look for Eternal Storage?
Any example for the above scenario would be appreciated.
Thank you.