11// SPDX-License-Identifier: AGPL-3.0-or-later
22pragma solidity ^ 0.8.21 ;
33
4- import { AccessControlEnumerable } from "openzeppelin-contracts/contracts/access/extensions/AccessControlEnumerable.sol " ;
54import { IERC20Metadata as IERC20 } from "openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol " ;
65
6+ import { AccessControlEnumerableUpgradeable }
7+ from "openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol " ;
8+
9+ import { UUPSUpgradeable } from "openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol " ;
10+
711import { Ethereum } from "spark-address-registry/Ethereum.sol " ;
812
913import { IEETHLike, ILiquidityPoolLike, IWETHLike, IWEETHLike } from "./libraries/WeETHLib.sol " ;
@@ -14,22 +18,29 @@ interface IWithdrawRequestNFTLike {
1418 function isValid (uint256 requestId ) external view returns (bool );
1519}
1620
17- contract WeEthModule is AccessControlEnumerable {
21+ contract WeEthModule is AccessControlEnumerableUpgradeable , UUPSUpgradeable {
1822
19- address public immutable almProxy;
23+ address public almProxy;
2024
2125 /**********************************************************************************************/
2226 /*** Initialization ***/
2327 /**********************************************************************************************/
2428
25- constructor (address admin , address _almProxy ) {
29+ constructor () {
30+ _disableInitializers ();
31+ }
32+
33+ function initialize (address admin , address _almProxy ) external initializer {
2634 require (_almProxy != address (0 ), "WeEthModule/invalid-alm-proxy " );
2735
2836 _grantRole (DEFAULT_ADMIN_ROLE, admin);
2937
3038 almProxy = _almProxy;
3139 }
3240
41+ // Only DEFAULT_ADMIN_ROLE can upgrade the implementation
42+ function _authorizeUpgrade (address ) internal view override onlyRole (DEFAULT_ADMIN_ROLE) {}
43+
3344 /**********************************************************************************************/
3445 /*** External functions ***/
3546 /**********************************************************************************************/
0 commit comments