// SPDX-License-Identifier: MIT pragma solidity ^0.8.2; import "@openzeppelin/contracts-upgradeable@4.3.1/token/ERC20/ERC20Upgradeable.sol"; import "@openzeppelin/contracts-upgradeable@4.3.1/token/ERC20/extensions/ERC20BurnableUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable@4.3.1/security/PausableUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable@4.3.1/access/OwnableUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable@4.3.1/proxy/utils/Initializable.sol"; import "@openzeppelin/contracts-upgradeable@4.3.1/proxy/utils/UUPSUpgradeable.sol"; contract MuhDeneme2 is Initializable, ERC20Upgradeable, ERC20BurnableUpgradeable, PausableUpgradeable, OwnableUpgradeable, UUPSUpgradeable { function initialize() initializer public { __ERC20_init("MuhDeneme2", "MD2"); __ERC20Burnable_init(); __Pausable_init(); __Ownable_init(); __UUPSUpgradeable_init(); } function pause() public onlyOwner { _pause(); } function unpause() public onlyOwner { _unpause(); } function mint(address to, uint256 amount) public onlyOwner { _mint(to, amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal whenNotPaused override { super._beforeTokenTransfer(from, to, amount); } function _authorizeUpgrade(address newImplementation) internal onlyOwner override {} }