// SPDX-License-Identifier: MIT// Compatible with OpenZeppelin Contracts ^5.0.0
pragma solidity ^0.8.20;import"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";import"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";import"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";import"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";import"@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol";
contract MyContract is Initializable,PausableUpgradeable,OwnableUpgradeable,UUPSUpgradeable{
using CountersUpgradeableforCountersUpgradeable.Counter;CountersUpgradeable.Counterprivate changeId;
uint public number;// string public name;/// @custom:oz-upgrades-unsafe-allow constructorconstructor(){_disableInitializers();}
function initialize(address initialOwner) initializer public{__Pausable_init();__Ownable_init(initialOwner);__UUPSUpgradeable_init();}
function pause()public onlyOwner {_pause();}
function unpause()public onlyOwner {_unpause();}
function updateNumber(uint _number)public returns (uint, uint){
number = _number;
changeId.increment();
uint id = changeId.current();return(number, id);}// function addName(string memory _name) public returns (string memory){// name = _name;// return name;// }
function _authorizeUpgrade(address newImplementation)
internal
onlyOwner
override
{}}