{
    "Function": "mint",
    "File": "contracts/token/VariableSupplyERC20Token.sol",
    "Parent Contracts": [
        "contracts/AccessProtected.sol",
        "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol",
        "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
        "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "node_modules/@openzeppelin/contracts/utils/Context.sol"
    ],
    "High-Level Calls": [],
    "Internal Calls": [
        "onlyAdmin",
        "require(bool,string)",
        "_mint",
        "require(bool,string)"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "function mint(address account, uint256 amount) public onlyAdmin {\n        require(account != address(0), \"INVALID_ADDRESS\");\n        // If we're using maxSupply, we need to make sure we respect it\n        // mintableSupply = 0 means mint at will\n        if(mintableSupply > 0) {\n            require(amount <= mintableSupply, \"INVALID_AMOUNT\");\n            // We need to reduce the amount only if we're using the limit, if not just leave it be\n            mintableSupply -= amount;\n        }\n        _mint(account, amount);\n    }"
}