From f0616f27aadf7287388800a5a1c3485137089409 Mon Sep 17 00:00:00 2001 From: MerlinEgalite Date: Sat, 12 Oct 2024 17:08:23 +0200 Subject: [PATCH 1/4] refactor: move idelegates to interface folder --- src/DelegatesContracts/DelegatesUpgradeable.sol | 3 ++- src/{DelegatesContracts => interfaces}/IDelegates.sol | 0 2 files changed, 2 insertions(+), 1 deletion(-) rename src/{DelegatesContracts => interfaces}/IDelegates.sol (100%) diff --git a/src/DelegatesContracts/DelegatesUpgradeable.sol b/src/DelegatesContracts/DelegatesUpgradeable.sol index 29a6ff0..59511ad 100644 --- a/src/DelegatesContracts/DelegatesUpgradeable.sol +++ b/src/DelegatesContracts/DelegatesUpgradeable.sol @@ -2,7 +2,8 @@ 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/IDelegates.sol b/src/interfaces/IDelegates.sol similarity index 100% rename from src/DelegatesContracts/IDelegates.sol rename to src/interfaces/IDelegates.sol From e3312db58c07f4d1b59a170a803e78cc7c33cc2a Mon Sep 17 00:00:00 2001 From: MerlinEgalite Date: Sat, 12 Oct 2024 17:09:30 +0200 Subject: [PATCH 2/4] refactor: remove useless logic --- .../DelegatesUpgradeable.sol | 1 - .../ERC20DelegatesUpgradeable.sol | 31 +------------------ 2 files changed, 1 insertion(+), 31 deletions(-) diff --git a/src/DelegatesContracts/DelegatesUpgradeable.sol b/src/DelegatesContracts/DelegatesUpgradeable.sol index 59511ad..426fb53 100644 --- a/src/DelegatesContracts/DelegatesUpgradeable.sol +++ b/src/DelegatesContracts/DelegatesUpgradeable.sol @@ -1,5 +1,4 @@ // SPDX-License-Identifier: MIT - pragma solidity ^0.8.20; import {IDelegates} from "../interfaces/IDelegates.sol"; diff --git a/src/DelegatesContracts/ERC20DelegatesUpgradeable.sol b/src/DelegatesContracts/ERC20DelegatesUpgradeable.sol index e0d7078..ff219a5 100644 --- a/src/DelegatesContracts/ERC20DelegatesUpgradeable.sol +++ b/src/DelegatesContracts/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); } From e22f0939f0a3c1b85f0dc2e2358c322ab40b3ef7 Mon Sep 17 00:00:00 2001 From: MerlinEgalite Date: Sat, 12 Oct 2024 17:10:26 +0200 Subject: [PATCH 3/4] refactor: remove delegate contracts folder --- src/{DelegatesContracts => }/DelegatesUpgradeable.sol | 2 +- src/{DelegatesContracts => }/ERC20DelegatesUpgradeable.sol | 0 src/MorphoToken.sol | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename src/{DelegatesContracts => }/DelegatesUpgradeable.sol (98%) rename src/{DelegatesContracts => }/ERC20DelegatesUpgradeable.sol (100%) 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 426fb53..410903b 100644 --- a/src/DelegatesContracts/DelegatesUpgradeable.sol +++ b/src/DelegatesUpgradeable.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; -import {IDelegates} from "../interfaces/IDelegates.sol"; +import {IDelegates} from "./interfaces/IDelegates.sol"; import {ECDSA} from "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol"; diff --git a/src/DelegatesContracts/ERC20DelegatesUpgradeable.sol b/src/ERC20DelegatesUpgradeable.sol similarity index 100% rename from src/DelegatesContracts/ERC20DelegatesUpgradeable.sol rename to src/ERC20DelegatesUpgradeable.sol diff --git a/src/MorphoToken.sol b/src/MorphoToken.sol index 8f11bdd..e1cc16c 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 From 1ed972f49e454e41e2944785090ef9b6ebb2f793 Mon Sep 17 00:00:00 2001 From: MerlinEgalite Date: Sat, 12 Oct 2024 17:13:08 +0200 Subject: [PATCH 4/4] fix: compiling --- src/MorphoToken.sol | 1 - 1 file changed, 1 deletion(-) diff --git a/src/MorphoToken.sol b/src/MorphoToken.sol index e1cc16c..96062ba 100644 --- a/src/MorphoToken.sol +++ b/src/MorphoToken.sol @@ -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);