diff --git a/src/DelegatesContracts/DelegatesUpgradeable.sol b/src/DelegatesUpgradeable.sol similarity index 98% rename from src/DelegatesContracts/DelegatesUpgradeable.sol rename to src/DelegatesUpgradeable.sol index 29a6ff0..410903b 100644 --- a/src/DelegatesContracts/DelegatesUpgradeable.sol +++ b/src/DelegatesUpgradeable.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT - pragma solidity ^0.8.20; -import {IDelegates} from "./IDelegates.sol"; +import {IDelegates} from "./interfaces/IDelegates.sol"; + import {ECDSA} from "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol"; import {ContextUpgradeable} from "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol"; diff --git a/src/DelegatesContracts/ERC20DelegatesUpgradeable.sol b/src/ERC20DelegatesUpgradeable.sol similarity index 59% rename from src/DelegatesContracts/ERC20DelegatesUpgradeable.sol rename to src/ERC20DelegatesUpgradeable.sol index e0d7078..ff219a5 100644 --- a/src/DelegatesContracts/ERC20DelegatesUpgradeable.sol +++ b/src/ERC20DelegatesUpgradeable.sol @@ -1,10 +1,9 @@ // SPDX-License-Identifier: MIT - pragma solidity ^0.8.20; -import {ERC20Upgradeable} from "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol"; import {DelegatesUpgradeable} from "./DelegatesUpgradeable.sol"; import {Initializable} from "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol"; +import {ERC20Upgradeable} from "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol"; /** * @dev Extension of ERC20 to support token delegation. | * @@ -17,27 +16,6 @@ import {Initializable} from "lib/openzeppelin-contracts-upgradeable/contracts/pr */ abstract contract ERC20DelegatesUpgradeable is Initializable, ERC20Upgradeable, DelegatesUpgradeable { - /** - * @dev Total supply cap has been exceeded, introducing a risk of votes overflowing. - */ - error ERC20ExceededSafeSupply(uint256 increasedSupply, uint256 cap); - - function __ERC20Delegates_init() internal onlyInitializing {} - - function __ERC20Delegates_init_unchained() internal onlyInitializing {} - /** - * @dev Maximum token supply. Defaults to `type(uint208).max` (2^208^ - 1). - * - * This maximum is enforced in {_update}. Increasing this value will not remove the underlying limitation, and - * will cause {_update} to fail because of a math overflow in {_transferVotingUnits}. An override could be - * used to further restrict the total supply (to a lower value) if additional logic requires it. When resolving - * override conflicts on this function, the minimum should be returned. - */ - - function _maxSupply() internal view virtual returns (uint256) { - return type(uint256).max; - } - /** * @dev Move voting power when tokens are transferred. * @@ -45,13 +23,6 @@ abstract contract ERC20DelegatesUpgradeable is Initializable, ERC20Upgradeable, */ function _update(address from, address to, uint256 value) internal virtual override { super._update(from, to, value); - if (from == address(0)) { - uint256 supply = totalSupply(); - uint256 cap = _maxSupply(); - if (supply > cap) { - revert ERC20ExceededSafeSupply(supply, cap); - } - } _transferVotingUnits(from, to, value); } diff --git a/src/MorphoToken.sol b/src/MorphoToken.sol index 8f11bdd..96062ba 100644 --- a/src/MorphoToken.sol +++ b/src/MorphoToken.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.13; import {ERC20Upgradeable} from "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol"; import {Ownable2StepUpgradeable} from "lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol"; -import {ERC20DelegatesUpgradeable} from "./DelegatesContracts/ERC20DelegatesUpgradeable.sol"; +import {ERC20DelegatesUpgradeable} from "./ERC20DelegatesUpgradeable.sol"; import { ERC20PermitUpgradeable, NoncesUpgradeable @@ -35,7 +35,6 @@ contract MorphoToken is ERC20DelegatesUpgradeable, ERC20PermitUpgradeable, Ownab require(dao != address(0), ZeroAddress()); require(wrapper != address(0), ZeroAddress()); - ERC20DelegatesUpgradeable.__ERC20Delegates_init(); ERC20Upgradeable.__ERC20_init(NAME, SYMBOL); Ownable2StepUpgradeable.__Ownable2Step_init(); ERC20PermitUpgradeable.__ERC20Permit_init(NAME); diff --git a/src/DelegatesContracts/IDelegates.sol b/src/interfaces/IDelegates.sol similarity index 100% rename from src/DelegatesContracts/IDelegates.sol rename to src/interfaces/IDelegates.sol