// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../extensions/ERC20BurnableUpgradeable.sol"; import "../../../proxy/utils/Initializable.sol"; /** * @dev {ERC20} token, including: * * - Preminted initial supply * - Ability for holders to burn (destroy) their tokens * - No access control mechanism (for minting/pausing) and hence no governance * * This contract uses {ERC20Burnable} to include burn capabilities - head to * its documentation for details. * * _Available since v3.4._ */ contract ERC20PresetFixedSupplyUpgradeable is Initializable, ERC20BurnableUpgradeable { function initialize( string memory name, string memory symbol, uint256 initialSupply, address owner ) public virtual initializer { __ERC20PresetFixedSupply_init(name, symbol, initialSupply, owner); } /** * @dev Mints `initialSupply` amount of token and transfers them to `owner`. * * See {ERC20-constructor}. */ function __ERC20PresetFixedSupply_init( string memory name, string memory symbol, uint256 initialSupply, address owner ) internal initializer { __Context_init_unchained(); __ERC20_init_unchained(name, symbol); __ERC20Burnable_init_unchained(); __ERC20PresetFixedSupply_init_unchained(name, symbol, initialSupply, owner); } function __ERC20PresetFixedSupply_init_unchained( string memory name, string memory symbol, uint256 initialSupply, address owner ) internal initializer { _mint(owner, initialSupply); } uint256[50] private __gap; }