diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index e792ac540..6f5ca62d6 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,10 +1,11 @@ name: Build Docs on: - push: release-v* + push: + branches: [release-v*] jobs: - trigger: + build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 diff --git a/contracts/access/AccessControlEnumerableUpgradeable.sol b/contracts/access/AccessControlEnumerableUpgradeable.sol index 4eb662b7f..6da0dc123 100644 --- a/contracts/access/AccessControlEnumerableUpgradeable.sol +++ b/contracts/access/AccessControlEnumerableUpgradeable.sol @@ -13,10 +13,6 @@ import "../proxy/utils/Initializable.sol"; */ abstract contract AccessControlEnumerableUpgradeable is Initializable, IAccessControlEnumerableUpgradeable, AccessControlUpgradeable { function __AccessControlEnumerable_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __AccessControl_init_unchained(); - __AccessControlEnumerable_init_unchained(); } function __AccessControlEnumerable_init_unchained() internal onlyInitializing { @@ -71,5 +67,11 @@ abstract contract AccessControlEnumerableUpgradeable is Initializable, IAccessCo super._revokeRole(role, account); _roleMembers[role].remove(account); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/access/AccessControlUpgradeable.sol b/contracts/access/AccessControlUpgradeable.sol index 736ebbb45..b7ad3af82 100644 --- a/contracts/access/AccessControlUpgradeable.sol +++ b/contracts/access/AccessControlUpgradeable.sol @@ -49,9 +49,6 @@ import "../proxy/utils/Initializable.sol"; */ abstract contract AccessControlUpgradeable is Initializable, ContextUpgradeable, IAccessControlUpgradeable, ERC165Upgradeable { function __AccessControl_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __AccessControl_init_unchained(); } function __AccessControl_init_unchained() internal onlyInitializing { @@ -229,5 +226,11 @@ abstract contract AccessControlUpgradeable is Initializable, ContextUpgradeable, emit RoleRevoked(role, account, _msgSender()); } } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/access/OwnableUpgradeable.sol b/contracts/access/OwnableUpgradeable.sol index dee422603..34b0d44b2 100644 --- a/contracts/access/OwnableUpgradeable.sol +++ b/contracts/access/OwnableUpgradeable.sol @@ -27,7 +27,6 @@ abstract contract OwnableUpgradeable is Initializable, ContextUpgradeable { * @dev Initializes the contract setting the deployer as the initial owner. */ function __Ownable_init() internal onlyInitializing { - __Context_init_unchained(); __Ownable_init_unchained(); } @@ -79,5 +78,11 @@ abstract contract OwnableUpgradeable is Initializable, ContextUpgradeable { _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/finance/PaymentSplitterUpgradeable.sol b/contracts/finance/PaymentSplitterUpgradeable.sol index ef506569f..6c18f34dc 100644 --- a/contracts/finance/PaymentSplitterUpgradeable.sol +++ b/contracts/finance/PaymentSplitterUpgradeable.sol @@ -49,7 +49,6 @@ contract PaymentSplitterUpgradeable is Initializable, ContextUpgradeable { * duplicates in `payees`. */ function __PaymentSplitter_init(address[] memory payees, uint256[] memory shares_) internal onlyInitializing { - __Context_init_unchained(); __PaymentSplitter_init_unchained(payees, shares_); } @@ -192,5 +191,11 @@ contract PaymentSplitterUpgradeable is Initializable, ContextUpgradeable { _totalShares = _totalShares + shares_; emit PayeeAdded(account, shares_); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[43] private __gap; } diff --git a/contracts/finance/VestingWalletUpgradeable.sol b/contracts/finance/VestingWalletUpgradeable.sol index d25a7a3b1..e2f3246c6 100644 --- a/contracts/finance/VestingWalletUpgradeable.sol +++ b/contracts/finance/VestingWalletUpgradeable.sol @@ -36,7 +36,6 @@ contract VestingWalletUpgradeable is Initializable, ContextUpgradeable { uint64 startTimestamp, uint64 durationSeconds ) internal onlyInitializing { - __Context_init_unchained(); __VestingWallet_init_unchained(beneficiaryAddress, startTimestamp, durationSeconds); } @@ -142,5 +141,11 @@ contract VestingWalletUpgradeable is Initializable, ContextUpgradeable { return (totalAllocation * (timestamp - start())) / duration(); } } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } diff --git a/contracts/governance/GovernorUpgradeable.sol b/contracts/governance/GovernorUpgradeable.sol index 4f50cefc4..7b080ec67 100644 --- a/contracts/governance/GovernorUpgradeable.sol +++ b/contracts/governance/GovernorUpgradeable.sol @@ -54,10 +54,7 @@ abstract contract GovernorUpgradeable is Initializable, ContextUpgradeable, ERC1 * @dev Sets the value for {name} and {version} */ function __Governor_init(string memory name_) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); __Governor_init_unchained(name_); } @@ -390,5 +387,11 @@ abstract contract GovernorUpgradeable is Initializable, ContextUpgradeable, ERC1 function _executor() internal view virtual returns (address) { return address(this); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } diff --git a/contracts/governance/IGovernorUpgradeable.sol b/contracts/governance/IGovernorUpgradeable.sol index 31303c40d..28af25133 100644 --- a/contracts/governance/IGovernorUpgradeable.sol +++ b/contracts/governance/IGovernorUpgradeable.sol @@ -13,7 +13,6 @@ import "../proxy/utils/Initializable.sol"; */ abstract contract IGovernorUpgradeable is Initializable, IERC165Upgradeable { function __IGovernor_init() internal onlyInitializing { - __IGovernor_init_unchained(); } function __IGovernor_init_unchained() internal onlyInitializing { @@ -222,5 +221,11 @@ abstract contract IGovernorUpgradeable is Initializable, IERC165Upgradeable { bytes32 r, bytes32 s ) public virtual returns (uint256 balance); + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/governance/TimelockControllerUpgradeable.sol b/contracts/governance/TimelockControllerUpgradeable.sol index f99cb8117..b0c49937a 100644 --- a/contracts/governance/TimelockControllerUpgradeable.sol +++ b/contracts/governance/TimelockControllerUpgradeable.sol @@ -66,9 +66,6 @@ contract TimelockControllerUpgradeable is Initializable, AccessControlUpgradeabl address[] memory proposers, address[] memory executors ) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __AccessControl_init_unchained(); __TimelockController_init_unchained(minDelay, proposers, executors); } @@ -362,5 +359,11 @@ contract TimelockControllerUpgradeable is Initializable, AccessControlUpgradeabl emit MinDelayChange(_minDelay, newDelay); _minDelay = newDelay; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } diff --git a/contracts/governance/compatibility/GovernorCompatibilityBravoUpgradeable.sol b/contracts/governance/compatibility/GovernorCompatibilityBravoUpgradeable.sol index 3fe18be6c..710c3d8bc 100644 --- a/contracts/governance/compatibility/GovernorCompatibilityBravoUpgradeable.sol +++ b/contracts/governance/compatibility/GovernorCompatibilityBravoUpgradeable.sol @@ -22,12 +22,6 @@ import "../../proxy/utils/Initializable.sol"; */ abstract contract GovernorCompatibilityBravoUpgradeable is Initializable, IGovernorTimelockUpgradeable, IGovernorCompatibilityBravoUpgradeable, GovernorUpgradeable { function __GovernorCompatibilityBravo_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); - __IGovernorCompatibilityBravo_init_unchained(); - __GovernorCompatibilityBravo_init_unchained(); } function __GovernorCompatibilityBravo_init_unchained() internal onlyInitializing { @@ -297,5 +291,11 @@ abstract contract GovernorCompatibilityBravoUpgradeable is Initializable, IGover revert("GovernorCompatibilityBravo: invalid vote type"); } } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/governance/compatibility/IGovernorCompatibilityBravoUpgradeable.sol b/contracts/governance/compatibility/IGovernorCompatibilityBravoUpgradeable.sol index eb9b4944f..bd47e05e5 100644 --- a/contracts/governance/compatibility/IGovernorCompatibilityBravoUpgradeable.sol +++ b/contracts/governance/compatibility/IGovernorCompatibilityBravoUpgradeable.sol @@ -13,8 +13,6 @@ import "../../proxy/utils/Initializable.sol"; */ abstract contract IGovernorCompatibilityBravoUpgradeable is Initializable, IGovernorUpgradeable { function __IGovernorCompatibilityBravo_init() internal onlyInitializing { - __IGovernor_init_unchained(); - __IGovernorCompatibilityBravo_init_unchained(); } function __IGovernorCompatibilityBravo_init_unchained() internal onlyInitializing { @@ -119,5 +117,11 @@ abstract contract IGovernorCompatibilityBravoUpgradeable is Initializable, IGove * @dev Part of the Governor Bravo's interface: _"Gets the receipt for a voter on a given proposal"_. */ function getReceipt(uint256 proposalId, address voter) public view virtual returns (Receipt memory); + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/governance/extensions/GovernorCountingSimpleUpgradeable.sol b/contracts/governance/extensions/GovernorCountingSimpleUpgradeable.sol index 66357e74e..72c83bd46 100644 --- a/contracts/governance/extensions/GovernorCountingSimpleUpgradeable.sol +++ b/contracts/governance/extensions/GovernorCountingSimpleUpgradeable.sol @@ -13,10 +13,6 @@ import "../../proxy/utils/Initializable.sol"; */ abstract contract GovernorCountingSimpleUpgradeable is Initializable, GovernorUpgradeable { function __GovernorCountingSimple_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __IGovernor_init_unchained(); - __GovernorCountingSimple_init_unchained(); } function __GovernorCountingSimple_init_unchained() internal onlyInitializing { @@ -113,5 +109,11 @@ abstract contract GovernorCountingSimpleUpgradeable is Initializable, GovernorUp revert("GovernorVotingSimple: invalid value for enum VoteType"); } } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/governance/extensions/GovernorPreventLateQuorumUpgradeable.sol b/contracts/governance/extensions/GovernorPreventLateQuorumUpgradeable.sol index ba1d30f8d..025781866 100644 --- a/contracts/governance/extensions/GovernorPreventLateQuorumUpgradeable.sol +++ b/contracts/governance/extensions/GovernorPreventLateQuorumUpgradeable.sol @@ -37,9 +37,6 @@ abstract contract GovernorPreventLateQuorumUpgradeable is Initializable, Governo * at proposal creation. */ function __GovernorPreventLateQuorum_init(uint64 initialVoteExtension) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __IGovernor_init_unchained(); __GovernorPreventLateQuorum_init_unchained(initialVoteExtension); } @@ -112,5 +109,11 @@ abstract contract GovernorPreventLateQuorumUpgradeable is Initializable, Governo emit LateQuorumVoteExtensionSet(_voteExtension, newVoteExtension); _voteExtension = newVoteExtension; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } diff --git a/contracts/governance/extensions/GovernorProposalThresholdUpgradeable.sol b/contracts/governance/extensions/GovernorProposalThresholdUpgradeable.sol index c147bb9eb..9ceec27c0 100644 --- a/contracts/governance/extensions/GovernorProposalThresholdUpgradeable.sol +++ b/contracts/governance/extensions/GovernorProposalThresholdUpgradeable.sol @@ -14,10 +14,6 @@ import "../../proxy/utils/Initializable.sol"; */ abstract contract GovernorProposalThresholdUpgradeable is Initializable, GovernorUpgradeable { function __GovernorProposalThreshold_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __IGovernor_init_unchained(); - __GovernorProposalThreshold_init_unchained(); } function __GovernorProposalThreshold_init_unchained() internal onlyInitializing { @@ -30,5 +26,11 @@ abstract contract GovernorProposalThresholdUpgradeable is Initializable, Governo ) public virtual override returns (uint256) { return super.propose(targets, values, calldatas, description); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/governance/extensions/GovernorSettingsUpgradeable.sol b/contracts/governance/extensions/GovernorSettingsUpgradeable.sol index 6d75f55f4..00ae51b10 100644 --- a/contracts/governance/extensions/GovernorSettingsUpgradeable.sol +++ b/contracts/governance/extensions/GovernorSettingsUpgradeable.sol @@ -28,9 +28,6 @@ abstract contract GovernorSettingsUpgradeable is Initializable, GovernorUpgradea uint256 initialVotingPeriod, uint256 initialProposalThreshold ) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __IGovernor_init_unchained(); __GovernorSettings_init_unchained(initialVotingDelay, initialVotingPeriod, initialProposalThreshold); } @@ -123,5 +120,11 @@ abstract contract GovernorSettingsUpgradeable is Initializable, GovernorUpgradea emit ProposalThresholdSet(_proposalThreshold, newProposalThreshold); _proposalThreshold = newProposalThreshold; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[47] private __gap; } diff --git a/contracts/governance/extensions/GovernorTimelockCompoundUpgradeable.sol b/contracts/governance/extensions/GovernorTimelockCompoundUpgradeable.sol index cbc0f31ef..f9128205b 100644 --- a/contracts/governance/extensions/GovernorTimelockCompoundUpgradeable.sol +++ b/contracts/governance/extensions/GovernorTimelockCompoundUpgradeable.sol @@ -95,10 +95,6 @@ abstract contract GovernorTimelockCompoundUpgradeable is Initializable, IGoverno * @dev Set the timelock. */ function __GovernorTimelockCompound_init(ICompoundTimelockUpgradeable timelockAddress) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); __GovernorTimelockCompound_init_unchained(timelockAddress); } @@ -250,5 +246,11 @@ abstract contract GovernorTimelockCompoundUpgradeable is Initializable, IGoverno emit TimelockChange(address(_timelock), address(newTimelock)); _timelock = newTimelock; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } diff --git a/contracts/governance/extensions/GovernorTimelockControlUpgradeable.sol b/contracts/governance/extensions/GovernorTimelockControlUpgradeable.sol index dc06ecf8d..b11584696 100644 --- a/contracts/governance/extensions/GovernorTimelockControlUpgradeable.sol +++ b/contracts/governance/extensions/GovernorTimelockControlUpgradeable.sol @@ -36,10 +36,6 @@ abstract contract GovernorTimelockControlUpgradeable is Initializable, IGovernor * @dev Set the timelock. */ function __GovernorTimelockControl_init(TimelockControllerUpgradeable timelockAddress) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); __GovernorTimelockControl_init_unchained(timelockAddress); } @@ -166,5 +162,11 @@ abstract contract GovernorTimelockControlUpgradeable is Initializable, IGovernor emit TimelockChange(address(_timelock), address(newTimelock)); _timelock = newTimelock; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } diff --git a/contracts/governance/extensions/GovernorVotesCompUpgradeable.sol b/contracts/governance/extensions/GovernorVotesCompUpgradeable.sol index 2e1acc472..577da5b59 100644 --- a/contracts/governance/extensions/GovernorVotesCompUpgradeable.sol +++ b/contracts/governance/extensions/GovernorVotesCompUpgradeable.sol @@ -16,9 +16,6 @@ abstract contract GovernorVotesCompUpgradeable is Initializable, GovernorUpgrade ERC20VotesCompUpgradeable public token; function __GovernorVotesComp_init(ERC20VotesCompUpgradeable token_) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __IGovernor_init_unchained(); __GovernorVotesComp_init_unchained(token_); } @@ -32,5 +29,11 @@ abstract contract GovernorVotesCompUpgradeable is Initializable, GovernorUpgrade function getVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) { return token.getPriorVotes(account, blockNumber); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/governance/extensions/GovernorVotesQuorumFractionUpgradeable.sol b/contracts/governance/extensions/GovernorVotesQuorumFractionUpgradeable.sol index a45931427..982b31f62 100644 --- a/contracts/governance/extensions/GovernorVotesQuorumFractionUpgradeable.sol +++ b/contracts/governance/extensions/GovernorVotesQuorumFractionUpgradeable.sol @@ -18,9 +18,6 @@ abstract contract GovernorVotesQuorumFractionUpgradeable is Initializable, Gover event QuorumNumeratorUpdated(uint256 oldQuorumNumerator, uint256 newQuorumNumerator); function __GovernorVotesQuorumFraction_init(uint256 quorumNumeratorValue) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __IGovernor_init_unchained(); __GovernorVotesQuorumFraction_init_unchained(quorumNumeratorValue); } @@ -55,5 +52,11 @@ abstract contract GovernorVotesQuorumFractionUpgradeable is Initializable, Gover emit QuorumNumeratorUpdated(oldQuorumNumerator, newQuorumNumerator); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/governance/extensions/GovernorVotesUpgradeable.sol b/contracts/governance/extensions/GovernorVotesUpgradeable.sol index ad8554af1..c984a7cc3 100644 --- a/contracts/governance/extensions/GovernorVotesUpgradeable.sol +++ b/contracts/governance/extensions/GovernorVotesUpgradeable.sol @@ -16,9 +16,6 @@ abstract contract GovernorVotesUpgradeable is Initializable, GovernorUpgradeable IVotesUpgradeable public token; function __GovernorVotes_init(IVotesUpgradeable tokenAddress) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __IGovernor_init_unchained(); __GovernorVotes_init_unchained(tokenAddress); } @@ -32,5 +29,11 @@ abstract contract GovernorVotesUpgradeable is Initializable, GovernorUpgradeable function getVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) { return token.getPastVotes(account, blockNumber); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/governance/extensions/IGovernorTimelockUpgradeable.sol b/contracts/governance/extensions/IGovernorTimelockUpgradeable.sol index 88c114bd4..1c78f74a3 100644 --- a/contracts/governance/extensions/IGovernorTimelockUpgradeable.sol +++ b/contracts/governance/extensions/IGovernorTimelockUpgradeable.sol @@ -13,8 +13,6 @@ import "../../proxy/utils/Initializable.sol"; */ abstract contract IGovernorTimelockUpgradeable is Initializable, IGovernorUpgradeable { function __IGovernorTimelock_init() internal onlyInitializing { - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); } function __IGovernorTimelock_init_unchained() internal onlyInitializing { @@ -31,5 +29,11 @@ abstract contract IGovernorTimelockUpgradeable is Initializable, IGovernorUpgrad bytes[] memory calldatas, bytes32 descriptionHash ) public virtual returns (uint256 proposalId); + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/governance/utils/VotesUpgradeable.sol b/contracts/governance/utils/VotesUpgradeable.sol index c994ed861..35b4a9e13 100644 --- a/contracts/governance/utils/VotesUpgradeable.sol +++ b/contracts/governance/utils/VotesUpgradeable.sol @@ -31,8 +31,6 @@ import "../../proxy/utils/Initializable.sol"; */ abstract contract VotesUpgradeable is Initializable, IVotesUpgradeable, ContextUpgradeable, EIP712Upgradeable { function __Votes_init() internal onlyInitializing { - __Context_init_unchained(); - __Votes_init_unchained(); } function __Votes_init_unchained() internal onlyInitializing { @@ -216,5 +214,11 @@ abstract contract VotesUpgradeable is Initializable, IVotesUpgradeable, ContextU * @dev Must return the voting units held by an account. */ function _getVotingUnits(address) internal virtual returns (uint256); + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[46] private __gap; } diff --git a/contracts/metatx/ERC2771ContextUpgradeable.sol b/contracts/metatx/ERC2771ContextUpgradeable.sol index f54eb70fe..91c6fe660 100644 --- a/contracts/metatx/ERC2771ContextUpgradeable.sol +++ b/contracts/metatx/ERC2771ContextUpgradeable.sol @@ -40,5 +40,11 @@ abstract contract ERC2771ContextUpgradeable is Initializable, ContextUpgradeable return super._msgData(); } } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/metatx/MinimalForwarderUpgradeable.sol b/contracts/metatx/MinimalForwarderUpgradeable.sol index 79979e9b0..9f568eb37 100644 --- a/contracts/metatx/MinimalForwarderUpgradeable.sol +++ b/contracts/metatx/MinimalForwarderUpgradeable.sol @@ -29,7 +29,6 @@ contract MinimalForwarderUpgradeable is Initializable, EIP712Upgradeable { function __MinimalForwarder_init() internal onlyInitializing { __EIP712_init_unchained("MinimalForwarder", "0.0.1"); - __MinimalForwarder_init_unchained(); } function __MinimalForwarder_init_unchained() internal onlyInitializing {} @@ -70,5 +69,11 @@ contract MinimalForwarderUpgradeable is Initializable, EIP712Upgradeable { return (success, returndata); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/AccessControlEnumerableMockUpgradeable.sol b/contracts/mocks/AccessControlEnumerableMockUpgradeable.sol index ad18ef572..91b9f6804 100644 --- a/contracts/mocks/AccessControlEnumerableMockUpgradeable.sol +++ b/contracts/mocks/AccessControlEnumerableMockUpgradeable.sol @@ -7,10 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract AccessControlEnumerableMockUpgradeable is Initializable, AccessControlEnumerableUpgradeable { function __AccessControlEnumerableMock_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __AccessControl_init_unchained(); - __AccessControlEnumerable_init_unchained(); __AccessControlEnumerableMock_init_unchained(); } @@ -23,5 +19,11 @@ contract AccessControlEnumerableMockUpgradeable is Initializable, AccessControlE } function senderProtected(bytes32 roleId) public onlyRole(roleId) {} + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/AccessControlMockUpgradeable.sol b/contracts/mocks/AccessControlMockUpgradeable.sol index 06820ee8b..2a8e22c4a 100644 --- a/contracts/mocks/AccessControlMockUpgradeable.sol +++ b/contracts/mocks/AccessControlMockUpgradeable.sol @@ -7,9 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract AccessControlMockUpgradeable is Initializable, AccessControlUpgradeable { function __AccessControlMock_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __AccessControl_init_unchained(); __AccessControlMock_init_unchained(); } @@ -22,5 +19,11 @@ contract AccessControlMockUpgradeable is Initializable, AccessControlUpgradeable } function senderProtected(bytes32 roleId) public onlyRole(roleId) {} + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/AddressImplUpgradeable.sol b/contracts/mocks/AddressImplUpgradeable.sol index a1b44c3b7..cf70ec110 100644 --- a/contracts/mocks/AddressImplUpgradeable.sol +++ b/contracts/mocks/AddressImplUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract AddressImplUpgradeable is Initializable { function __AddressImpl_init() internal onlyInitializing { - __AddressImpl_init_unchained(); } function __AddressImpl_init_unchained() internal onlyInitializing { @@ -45,5 +44,11 @@ contract AddressImplUpgradeable is Initializable { // sendValue's tests require the contract to hold Ether receive() external payable {} + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/ArraysImplUpgradeable.sol b/contracts/mocks/ArraysImplUpgradeable.sol index 9b657a92c..3653d9da0 100644 --- a/contracts/mocks/ArraysImplUpgradeable.sol +++ b/contracts/mocks/ArraysImplUpgradeable.sol @@ -21,5 +21,11 @@ contract ArraysImplUpgradeable is Initializable { function findUpperBound(uint256 element) external view returns (uint256) { return _array.findUpperBound(element); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/BadBeaconUpgradeable.sol b/contracts/mocks/BadBeaconUpgradeable.sol index 1eed9fd8b..fb817db24 100644 --- a/contracts/mocks/BadBeaconUpgradeable.sol +++ b/contracts/mocks/BadBeaconUpgradeable.sol @@ -4,17 +4,21 @@ pragma solidity ^0.8.0; import "../proxy/utils/Initializable.sol"; contract BadBeaconNoImplUpgradeable is Initializable { function __BadBeaconNoImpl_init() internal onlyInitializing { - __BadBeaconNoImpl_init_unchained(); } function __BadBeaconNoImpl_init_unchained() internal onlyInitializing { } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } contract BadBeaconNotContractUpgradeable is Initializable { function __BadBeaconNotContract_init() internal onlyInitializing { - __BadBeaconNotContract_init_unchained(); } function __BadBeaconNotContract_init_unchained() internal onlyInitializing { @@ -22,5 +26,11 @@ contract BadBeaconNotContractUpgradeable is Initializable { function implementation() external pure returns (address) { return address(0x1); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/Base64MockUpgradeable.sol b/contracts/mocks/Base64MockUpgradeable.sol index 2d4567601..b821469ed 100644 --- a/contracts/mocks/Base64MockUpgradeable.sol +++ b/contracts/mocks/Base64MockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract Base64MockUpgradeable is Initializable { function __Base64Mock_init() internal onlyInitializing { - __Base64Mock_init_unchained(); } function __Base64Mock_init_unchained() internal onlyInitializing { @@ -15,5 +14,11 @@ contract Base64MockUpgradeable is Initializable { function encode(bytes memory value) external pure returns (string memory) { return Base64Upgradeable.encode(value); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/BitmapMockUpgradeable.sol b/contracts/mocks/BitmapMockUpgradeable.sol index 7b132d4c0..59a95ec46 100644 --- a/contracts/mocks/BitmapMockUpgradeable.sol +++ b/contracts/mocks/BitmapMockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract BitMapMockUpgradeable is Initializable { function __BitMapMock_init() internal onlyInitializing { - __BitMapMock_init_unchained(); } function __BitMapMock_init_unchained() internal onlyInitializing { @@ -31,5 +30,11 @@ contract BitMapMockUpgradeable is Initializable { function unset(uint256 index) public { _bitmap.unset(index); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/CallReceiverMockUpgradeable.sol b/contracts/mocks/CallReceiverMockUpgradeable.sol index 6a7e59cea..c783c907e 100644 --- a/contracts/mocks/CallReceiverMockUpgradeable.sol +++ b/contracts/mocks/CallReceiverMockUpgradeable.sol @@ -5,7 +5,6 @@ import "../proxy/utils/Initializable.sol"; contract CallReceiverMockUpgradeable is Initializable { function __CallReceiverMock_init() internal onlyInitializing { - __CallReceiverMock_init_unchained(); } function __CallReceiverMock_init_unchained() internal onlyInitializing { @@ -61,5 +60,11 @@ contract CallReceiverMockUpgradeable is Initializable { sharedAnswer = "42"; return "0x1234"; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } diff --git a/contracts/mocks/CheckpointsImplUpgradeable.sol b/contracts/mocks/CheckpointsImplUpgradeable.sol index 82cf43755..a12509e27 100644 --- a/contracts/mocks/CheckpointsImplUpgradeable.sol +++ b/contracts/mocks/CheckpointsImplUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract CheckpointsImplUpgradeable is Initializable { function __CheckpointsImpl_init() internal onlyInitializing { - __CheckpointsImpl_init_unchained(); } function __CheckpointsImpl_init_unchained() internal onlyInitializing { @@ -27,5 +26,11 @@ contract CheckpointsImplUpgradeable is Initializable { function push(uint256 value) public returns (uint256, uint256) { return _totalCheckpoints.push(value); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/ClashingImplementationUpgradeable.sol b/contracts/mocks/ClashingImplementationUpgradeable.sol index 951cb3861..c24db8681 100644 --- a/contracts/mocks/ClashingImplementationUpgradeable.sol +++ b/contracts/mocks/ClashingImplementationUpgradeable.sol @@ -10,7 +10,6 @@ import "../proxy/utils/Initializable.sol"; */ contract ClashingImplementationUpgradeable is Initializable { function __ClashingImplementation_init() internal onlyInitializing { - __ClashingImplementation_init_unchained(); } function __ClashingImplementation_init_unchained() internal onlyInitializing { @@ -22,5 +21,11 @@ contract ClashingImplementationUpgradeable is Initializable { function delegatedFunction() external pure returns (bool) { return true; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ClonesMockUpgradeable.sol b/contracts/mocks/ClonesMockUpgradeable.sol index 7f89c78d9..537138a2a 100644 --- a/contracts/mocks/ClonesMockUpgradeable.sol +++ b/contracts/mocks/ClonesMockUpgradeable.sol @@ -8,7 +8,6 @@ import "../proxy/utils/Initializable.sol"; contract ClonesMockUpgradeable is Initializable { function __ClonesMock_init() internal onlyInitializing { - __ClonesMock_init_unchained(); } function __ClonesMock_init_unchained() internal onlyInitializing { @@ -40,5 +39,11 @@ contract ClonesMockUpgradeable is Initializable { } emit NewInstance(instance); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ConditionalEscrowMockUpgradeable.sol b/contracts/mocks/ConditionalEscrowMockUpgradeable.sol index 4b9cc0b23..1977f7df9 100644 --- a/contracts/mocks/ConditionalEscrowMockUpgradeable.sol +++ b/contracts/mocks/ConditionalEscrowMockUpgradeable.sol @@ -8,11 +8,7 @@ import "../proxy/utils/Initializable.sol"; // mock class using ConditionalEscrow contract ConditionalEscrowMockUpgradeable is Initializable, ConditionalEscrowUpgradeable { function __ConditionalEscrowMock_init() internal onlyInitializing { - __Context_init_unchained(); __Ownable_init_unchained(); - __Escrow_init_unchained(); - __ConditionalEscrow_init_unchained(); - __ConditionalEscrowMock_init_unchained(); } function __ConditionalEscrowMock_init_unchained() internal onlyInitializing { @@ -26,5 +22,11 @@ contract ConditionalEscrowMockUpgradeable is Initializable, ConditionalEscrowUpg function withdrawalAllowed(address payee) public view override returns (bool) { return _allowed[payee]; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/ContextMockUpgradeable.sol b/contracts/mocks/ContextMockUpgradeable.sol index ae5ab2e58..efa099d13 100644 --- a/contracts/mocks/ContextMockUpgradeable.sol +++ b/contracts/mocks/ContextMockUpgradeable.sol @@ -7,8 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract ContextMockUpgradeable is Initializable, ContextUpgradeable { function __ContextMock_init() internal onlyInitializing { - __Context_init_unchained(); - __ContextMock_init_unchained(); } function __ContextMock_init_unchained() internal onlyInitializing { @@ -24,12 +22,17 @@ contract ContextMockUpgradeable is Initializable, ContextUpgradeable { function msgData(uint256 integerValue, string memory stringValue) public { emit Data(_msgData(), integerValue, stringValue); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } contract ContextMockCallerUpgradeable is Initializable { function __ContextMockCaller_init() internal onlyInitializing { - __ContextMockCaller_init_unchained(); } function __ContextMockCaller_init_unchained() internal onlyInitializing { @@ -45,5 +48,11 @@ contract ContextMockCallerUpgradeable is Initializable { ) public { context.msgData(integerValue, stringValue); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/CountersImplUpgradeable.sol b/contracts/mocks/CountersImplUpgradeable.sol index 705df820d..59881c0f7 100644 --- a/contracts/mocks/CountersImplUpgradeable.sol +++ b/contracts/mocks/CountersImplUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract CountersImplUpgradeable is Initializable { function __CountersImpl_init() internal onlyInitializing { - __CountersImpl_init_unchained(); } function __CountersImpl_init_unchained() internal onlyInitializing { @@ -31,5 +30,11 @@ contract CountersImplUpgradeable is Initializable { function reset() public { _counter.reset(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/Create2ImplUpgradeable.sol b/contracts/mocks/Create2ImplUpgradeable.sol index 0fd882737..6a357c898 100644 --- a/contracts/mocks/Create2ImplUpgradeable.sol +++ b/contracts/mocks/Create2ImplUpgradeable.sol @@ -8,7 +8,6 @@ import "../proxy/utils/Initializable.sol"; contract Create2ImplUpgradeable is Initializable { function __Create2Impl_init() internal onlyInitializing { - __Create2Impl_init_unchained(); } function __Create2Impl_init_unchained() internal onlyInitializing { @@ -38,5 +37,11 @@ contract Create2ImplUpgradeable is Initializable { } receive() external payable {} + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/DummyImplementationUpgradeable.sol b/contracts/mocks/DummyImplementationUpgradeable.sol index 8db0dd486..9775aa28e 100644 --- a/contracts/mocks/DummyImplementationUpgradeable.sol +++ b/contracts/mocks/DummyImplementationUpgradeable.sol @@ -5,18 +5,22 @@ import "../proxy/utils/Initializable.sol"; abstract contract ImplUpgradeable is Initializable { function __Impl_init() internal onlyInitializing { - __Impl_init_unchained(); } function __Impl_init_unchained() internal onlyInitializing { } function version() public pure virtual returns (string memory); + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } contract DummyImplementationUpgradeable is Initializable { function __DummyImplementation_init() internal onlyInitializing { - __DummyImplementation_init_unchained(); } function __DummyImplementation_init_unchained() internal onlyInitializing { @@ -62,13 +66,17 @@ contract DummyImplementationUpgradeable is Initializable { function reverts() public pure { require(false, "DummyImplementation reverted"); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[47] private __gap; } contract DummyImplementationV2Upgradeable is Initializable, DummyImplementationUpgradeable { function __DummyImplementationV2_init() internal onlyInitializing { - __DummyImplementation_init_unchained(); - __DummyImplementationV2_init_unchained(); } function __DummyImplementationV2_init_unchained() internal onlyInitializing { @@ -80,5 +88,11 @@ contract DummyImplementationV2Upgradeable is Initializable, DummyImplementationU function version() public pure override returns (string memory) { return "V2"; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ECDSAMockUpgradeable.sol b/contracts/mocks/ECDSAMockUpgradeable.sol index 43d0dba6c..4406f3cd6 100644 --- a/contracts/mocks/ECDSAMockUpgradeable.sol +++ b/contracts/mocks/ECDSAMockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract ECDSAMockUpgradeable is Initializable { function __ECDSAMock_init() internal onlyInitializing { - __ECDSAMock_init_unchained(); } function __ECDSAMock_init_unchained() internal onlyInitializing { @@ -45,5 +44,11 @@ contract ECDSAMockUpgradeable is Initializable { function toEthSignedMessageHash(bytes memory s) public pure returns (bytes32) { return s.toEthSignedMessageHash(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/EIP712ExternalUpgradeable.sol b/contracts/mocks/EIP712ExternalUpgradeable.sol index 683d1c755..1234a4b03 100644 --- a/contracts/mocks/EIP712ExternalUpgradeable.sol +++ b/contracts/mocks/EIP712ExternalUpgradeable.sol @@ -9,7 +9,6 @@ import "../proxy/utils/Initializable.sol"; contract EIP712ExternalUpgradeable is Initializable, EIP712Upgradeable { function __EIP712External_init(string memory name, string memory version) internal onlyInitializing { __EIP712_init_unchained(name, version); - __EIP712External_init_unchained(name, version); } function __EIP712External_init_unchained(string memory, string memory) internal onlyInitializing {} @@ -34,5 +33,11 @@ contract EIP712ExternalUpgradeable is Initializable, EIP712Upgradeable { function getChainId() external view returns (uint256) { return block.chainid; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC1155BurnableMockUpgradeable.sol b/contracts/mocks/ERC1155BurnableMockUpgradeable.sol index 5b1db1c83..1dd704e9b 100644 --- a/contracts/mocks/ERC1155BurnableMockUpgradeable.sol +++ b/contracts/mocks/ERC1155BurnableMockUpgradeable.sol @@ -7,11 +7,7 @@ import "../proxy/utils/Initializable.sol"; contract ERC1155BurnableMockUpgradeable is Initializable, ERC1155BurnableUpgradeable { function __ERC1155BurnableMock_init(string memory uri) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __ERC1155_init_unchained(uri); - __ERC1155Burnable_init_unchained(); - __ERC1155BurnableMock_init_unchained(uri); } function __ERC1155BurnableMock_init_unchained(string memory) internal onlyInitializing {} @@ -24,5 +20,11 @@ contract ERC1155BurnableMockUpgradeable is Initializable, ERC1155BurnableUpgrade ) public { _mint(to, id, value, data); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC1155MockUpgradeable.sol b/contracts/mocks/ERC1155MockUpgradeable.sol index d48f6367f..719e0641a 100644 --- a/contracts/mocks/ERC1155MockUpgradeable.sol +++ b/contracts/mocks/ERC1155MockUpgradeable.sol @@ -11,10 +11,7 @@ import "../proxy/utils/Initializable.sol"; */ contract ERC1155MockUpgradeable is Initializable, ERC1155Upgradeable { function __ERC1155Mock_init(string memory uri) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __ERC1155_init_unchained(uri); - __ERC1155Mock_init_unchained(uri); } function __ERC1155Mock_init_unchained(string memory) internal onlyInitializing {} @@ -56,5 +53,11 @@ contract ERC1155MockUpgradeable is Initializable, ERC1155Upgradeable { ) public { _burnBatch(owner, ids, values); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC1155PausableMockUpgradeable.sol b/contracts/mocks/ERC1155PausableMockUpgradeable.sol index 1efd4d105..36bdc2901 100644 --- a/contracts/mocks/ERC1155PausableMockUpgradeable.sol +++ b/contracts/mocks/ERC1155PausableMockUpgradeable.sol @@ -8,13 +8,9 @@ import "../proxy/utils/Initializable.sol"; contract ERC1155PausableMockUpgradeable is Initializable, ERC1155MockUpgradeable, ERC1155PausableUpgradeable { function __ERC1155PausableMock_init(string memory uri) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __ERC1155_init_unchained(uri); __ERC1155Mock_init_unchained(uri); __Pausable_init_unchained(); - __ERC1155Pausable_init_unchained(); - __ERC1155PausableMock_init_unchained(uri); } function __ERC1155PausableMock_init_unchained(string memory) internal onlyInitializing {} @@ -37,5 +33,11 @@ contract ERC1155PausableMockUpgradeable is Initializable, ERC1155MockUpgradeable ) internal virtual override(ERC1155Upgradeable, ERC1155PausableUpgradeable) { super._beforeTokenTransfer(operator, from, to, ids, amounts, data); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC1155ReceiverMockUpgradeable.sol b/contracts/mocks/ERC1155ReceiverMockUpgradeable.sol index 4e22f25fb..23700ebb9 100644 --- a/contracts/mocks/ERC1155ReceiverMockUpgradeable.sol +++ b/contracts/mocks/ERC1155ReceiverMockUpgradeable.sol @@ -21,7 +21,6 @@ contract ERC1155ReceiverMockUpgradeable is Initializable, ERC165Upgradeable, IER bytes4 batRetval, bool batReverts ) internal onlyInitializing { - __ERC165_init_unchained(); __ERC1155ReceiverMock_init_unchained(recRetval, recReverts, batRetval, batReverts); } @@ -60,5 +59,11 @@ contract ERC1155ReceiverMockUpgradeable is Initializable, ERC165Upgradeable, IER emit BatchReceived(operator, from, ids, values, data, gasleft()); return _batRetval; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/ERC1155SupplyMockUpgradeable.sol b/contracts/mocks/ERC1155SupplyMockUpgradeable.sol index 3d958ab47..9261a4d80 100644 --- a/contracts/mocks/ERC1155SupplyMockUpgradeable.sol +++ b/contracts/mocks/ERC1155SupplyMockUpgradeable.sol @@ -8,12 +8,8 @@ import "../proxy/utils/Initializable.sol"; contract ERC1155SupplyMockUpgradeable is Initializable, ERC1155MockUpgradeable, ERC1155SupplyUpgradeable { function __ERC1155SupplyMock_init(string memory uri) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __ERC1155_init_unchained(uri); __ERC1155Mock_init_unchained(uri); - __ERC1155Supply_init_unchained(); - __ERC1155SupplyMock_init_unchained(uri); } function __ERC1155SupplyMock_init_unchained(string memory) internal onlyInitializing {} @@ -28,5 +24,11 @@ contract ERC1155SupplyMockUpgradeable is Initializable, ERC1155MockUpgradeable, ) internal virtual override(ERC1155Upgradeable, ERC1155SupplyUpgradeable) { super._beforeTokenTransfer(operator, from, to, ids, amounts, data); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC1271WalletMockUpgradeable.sol b/contracts/mocks/ERC1271WalletMockUpgradeable.sol index bf6b9df6a..84f2624fe 100644 --- a/contracts/mocks/ERC1271WalletMockUpgradeable.sol +++ b/contracts/mocks/ERC1271WalletMockUpgradeable.sol @@ -9,7 +9,6 @@ import "../proxy/utils/Initializable.sol"; contract ERC1271WalletMockUpgradeable is Initializable, OwnableUpgradeable, IERC1271Upgradeable { function __ERC1271WalletMock_init(address originalOwner) internal onlyInitializing { - __Context_init_unchained(); __Ownable_init_unchained(); __ERC1271WalletMock_init_unchained(originalOwner); } @@ -21,5 +20,11 @@ contract ERC1271WalletMockUpgradeable is Initializable, OwnableUpgradeable, IERC function isValidSignature(bytes32 hash, bytes memory signature) public view override returns (bytes4 magicValue) { return ECDSAUpgradeable.recover(hash, signature) == owner() ? this.isValidSignature.selector : bytes4(0); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC165/ERC165InterfacesSupportedUpgradeable.sol b/contracts/mocks/ERC165/ERC165InterfacesSupportedUpgradeable.sol index 4ea75c0e6..5eb71fdd5 100644 --- a/contracts/mocks/ERC165/ERC165InterfacesSupportedUpgradeable.sol +++ b/contracts/mocks/ERC165/ERC165InterfacesSupportedUpgradeable.sol @@ -52,6 +52,12 @@ contract SupportsInterfaceWithLookupMockUpgradeable is Initializable, IERC165Upg require(interfaceId != 0xffffffff, "ERC165InterfacesSupported: invalid interface id"); _supportedInterfaces[interfaceId] = true; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } @@ -66,5 +72,11 @@ contract ERC165InterfacesSupportedUpgradeable is Initializable, SupportsInterfac _registerInterface(interfaceIds[i]); } } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC165/ERC165MissingDataUpgradeable.sol b/contracts/mocks/ERC165/ERC165MissingDataUpgradeable.sol index c02fcd393..9b5938eee 100644 --- a/contracts/mocks/ERC165/ERC165MissingDataUpgradeable.sol +++ b/contracts/mocks/ERC165/ERC165MissingDataUpgradeable.sol @@ -5,11 +5,16 @@ import "../../proxy/utils/Initializable.sol"; contract ERC165MissingDataUpgradeable is Initializable { function __ERC165MissingData_init() internal onlyInitializing { - __ERC165MissingData_init_unchained(); } function __ERC165MissingData_init_unchained() internal onlyInitializing { } function supportsInterface(bytes4 interfaceId) public view {} // missing return + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC165/ERC165NotSupportedUpgradeable.sol b/contracts/mocks/ERC165/ERC165NotSupportedUpgradeable.sol index 9e2638134..96dcc8419 100644 --- a/contracts/mocks/ERC165/ERC165NotSupportedUpgradeable.sol +++ b/contracts/mocks/ERC165/ERC165NotSupportedUpgradeable.sol @@ -4,10 +4,15 @@ pragma solidity ^0.8.0; import "../../proxy/utils/Initializable.sol"; contract ERC165NotSupportedUpgradeable is Initializable { function __ERC165NotSupported_init() internal onlyInitializing { - __ERC165NotSupported_init_unchained(); } function __ERC165NotSupported_init_unchained() internal onlyInitializing { } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC165CheckerMockUpgradeable.sol b/contracts/mocks/ERC165CheckerMockUpgradeable.sol index 1f61e5b01..2c5194827 100644 --- a/contracts/mocks/ERC165CheckerMockUpgradeable.sol +++ b/contracts/mocks/ERC165CheckerMockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract ERC165CheckerMockUpgradeable is Initializable { function __ERC165CheckerMock_init() internal onlyInitializing { - __ERC165CheckerMock_init_unchained(); } function __ERC165CheckerMock_init_unchained() internal onlyInitializing { @@ -29,5 +28,11 @@ contract ERC165CheckerMockUpgradeable is Initializable { function getSupportedInterfaces(address account, bytes4[] memory interfaceIds) public view returns (bool[] memory) { return account.getSupportedInterfaces(interfaceIds); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC165MockUpgradeable.sol b/contracts/mocks/ERC165MockUpgradeable.sol index b3dd003fd..55e4ecabc 100644 --- a/contracts/mocks/ERC165MockUpgradeable.sol +++ b/contracts/mocks/ERC165MockUpgradeable.sol @@ -6,11 +6,15 @@ import "../utils/introspection/ERC165Upgradeable.sol"; import "../proxy/utils/Initializable.sol"; contract ERC165MockUpgradeable is Initializable, ERC165Upgradeable { function __ERC165Mock_init() internal onlyInitializing { - __ERC165_init_unchained(); - __ERC165Mock_init_unchained(); } function __ERC165Mock_init_unchained() internal onlyInitializing { } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC165StorageMockUpgradeable.sol b/contracts/mocks/ERC165StorageMockUpgradeable.sol index 5f8ee12fe..a1ac88134 100644 --- a/contracts/mocks/ERC165StorageMockUpgradeable.sol +++ b/contracts/mocks/ERC165StorageMockUpgradeable.sol @@ -7,9 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract ERC165StorageMockUpgradeable is Initializable, ERC165StorageUpgradeable { function __ERC165StorageMock_init() internal onlyInitializing { - __ERC165_init_unchained(); - __ERC165Storage_init_unchained(); - __ERC165StorageMock_init_unchained(); } function __ERC165StorageMock_init_unchained() internal onlyInitializing { @@ -17,5 +14,11 @@ contract ERC165StorageMockUpgradeable is Initializable, ERC165StorageUpgradeable function registerInterface(bytes4 interfaceId) public { _registerInterface(interfaceId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC1820ImplementerMockUpgradeable.sol b/contracts/mocks/ERC1820ImplementerMockUpgradeable.sol index a97971ac0..c9b8a8c72 100644 --- a/contracts/mocks/ERC1820ImplementerMockUpgradeable.sol +++ b/contracts/mocks/ERC1820ImplementerMockUpgradeable.sol @@ -7,8 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract ERC1820ImplementerMockUpgradeable is Initializable, ERC1820ImplementerUpgradeable { function __ERC1820ImplementerMock_init() internal onlyInitializing { - __ERC1820Implementer_init_unchained(); - __ERC1820ImplementerMock_init_unchained(); } function __ERC1820ImplementerMock_init_unchained() internal onlyInitializing { @@ -16,5 +14,11 @@ contract ERC1820ImplementerMockUpgradeable is Initializable, ERC1820ImplementerU function registerInterfaceForAddress(bytes32 interfaceHash, address account) public { _registerInterfaceForAddress(interfaceHash, account); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC20BurnableMockUpgradeable.sol b/contracts/mocks/ERC20BurnableMockUpgradeable.sol index 1b27b348f..d766728d0 100644 --- a/contracts/mocks/ERC20BurnableMockUpgradeable.sol +++ b/contracts/mocks/ERC20BurnableMockUpgradeable.sol @@ -12,9 +12,7 @@ contract ERC20BurnableMockUpgradeable is Initializable, ERC20BurnableUpgradeable address initialAccount, uint256 initialBalance ) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name, symbol); - __ERC20Burnable_init_unchained(); __ERC20BurnableMock_init_unchained(name, symbol, initialAccount, initialBalance); } @@ -26,5 +24,11 @@ contract ERC20BurnableMockUpgradeable is Initializable, ERC20BurnableUpgradeable ) internal onlyInitializing { _mint(initialAccount, initialBalance); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC20CappedMockUpgradeable.sol b/contracts/mocks/ERC20CappedMockUpgradeable.sol index e8a41966b..e615c0ef1 100644 --- a/contracts/mocks/ERC20CappedMockUpgradeable.sol +++ b/contracts/mocks/ERC20CappedMockUpgradeable.sol @@ -11,10 +11,8 @@ contract ERC20CappedMockUpgradeable is Initializable, ERC20CappedUpgradeable { string memory symbol, uint256 cap ) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name, symbol); __ERC20Capped_init_unchained(cap); - __ERC20CappedMock_init_unchained(name, symbol, cap); } function __ERC20CappedMock_init_unchained( @@ -26,5 +24,11 @@ contract ERC20CappedMockUpgradeable is Initializable, ERC20CappedUpgradeable { function mint(address to, uint256 tokenId) public { _mint(to, tokenId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC20DecimalsMockUpgradeable.sol b/contracts/mocks/ERC20DecimalsMockUpgradeable.sol index b08ef59e5..9f75c49e6 100644 --- a/contracts/mocks/ERC20DecimalsMockUpgradeable.sol +++ b/contracts/mocks/ERC20DecimalsMockUpgradeable.sol @@ -13,7 +13,6 @@ contract ERC20DecimalsMockUpgradeable is Initializable, ERC20Upgradeable { string memory symbol_, uint8 decimals_ ) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name_, symbol_); __ERC20DecimalsMock_init_unchained(name_, symbol_, decimals_); } @@ -29,5 +28,11 @@ contract ERC20DecimalsMockUpgradeable is Initializable, ERC20Upgradeable { function decimals() public view virtual override returns (uint8) { return _decimals; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC20FlashMintMockUpgradeable.sol b/contracts/mocks/ERC20FlashMintMockUpgradeable.sol index 3733c4637..1fc6c2660 100644 --- a/contracts/mocks/ERC20FlashMintMockUpgradeable.sol +++ b/contracts/mocks/ERC20FlashMintMockUpgradeable.sol @@ -12,9 +12,7 @@ contract ERC20FlashMintMockUpgradeable is Initializable, ERC20FlashMintUpgradeab address initialAccount, uint256 initialBalance ) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name, symbol); - __ERC20FlashMint_init_unchained(); __ERC20FlashMintMock_init_unchained(name, symbol, initialAccount, initialBalance); } @@ -26,5 +24,11 @@ contract ERC20FlashMintMockUpgradeable is Initializable, ERC20FlashMintUpgradeab ) internal onlyInitializing { _mint(initialAccount, initialBalance); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC20MockUpgradeable.sol b/contracts/mocks/ERC20MockUpgradeable.sol index 70843229e..bae5cad81 100644 --- a/contracts/mocks/ERC20MockUpgradeable.sol +++ b/contracts/mocks/ERC20MockUpgradeable.sol @@ -13,7 +13,6 @@ contract ERC20MockUpgradeable is Initializable, ERC20Upgradeable { address initialAccount, uint256 initialBalance ) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name, symbol); __ERC20Mock_init_unchained(name, symbol, initialAccount, initialBalance); } @@ -50,5 +49,11 @@ contract ERC20MockUpgradeable is Initializable, ERC20Upgradeable { ) public { _approve(owner, spender, value); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC20PausableMockUpgradeable.sol b/contracts/mocks/ERC20PausableMockUpgradeable.sol index fcbb9d26c..8c7803252 100644 --- a/contracts/mocks/ERC20PausableMockUpgradeable.sol +++ b/contracts/mocks/ERC20PausableMockUpgradeable.sol @@ -13,10 +13,8 @@ contract ERC20PausableMockUpgradeable is Initializable, ERC20PausableUpgradeable address initialAccount, uint256 initialBalance ) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name, symbol); __Pausable_init_unchained(); - __ERC20Pausable_init_unchained(); __ERC20PausableMock_init_unchained(name, symbol, initialAccount, initialBalance); } @@ -44,5 +42,11 @@ contract ERC20PausableMockUpgradeable is Initializable, ERC20PausableUpgradeable function burn(address from, uint256 amount) public { _burn(from, amount); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC20PermitMockUpgradeable.sol b/contracts/mocks/ERC20PermitMockUpgradeable.sol index 18e80f4fa..d65402c2b 100644 --- a/contracts/mocks/ERC20PermitMockUpgradeable.sol +++ b/contracts/mocks/ERC20PermitMockUpgradeable.sol @@ -12,7 +12,6 @@ contract ERC20PermitMockUpgradeable is Initializable, ERC20PermitUpgradeable { address initialAccount, uint256 initialBalance ) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name, symbol); __EIP712_init_unchained(name, "1"); __ERC20Permit_init_unchained(name); @@ -31,5 +30,11 @@ contract ERC20PermitMockUpgradeable is Initializable, ERC20PermitUpgradeable { function getChainId() external view returns (uint256) { return block.chainid; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC20SnapshotMockUpgradeable.sol b/contracts/mocks/ERC20SnapshotMockUpgradeable.sol index 89f54e3db..c45a684c1 100644 --- a/contracts/mocks/ERC20SnapshotMockUpgradeable.sol +++ b/contracts/mocks/ERC20SnapshotMockUpgradeable.sol @@ -12,9 +12,7 @@ contract ERC20SnapshotMockUpgradeable is Initializable, ERC20SnapshotUpgradeable address initialAccount, uint256 initialBalance ) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name, symbol); - __ERC20Snapshot_init_unchained(); __ERC20SnapshotMock_init_unchained(name, symbol, initialAccount, initialBalance); } @@ -38,5 +36,11 @@ contract ERC20SnapshotMockUpgradeable is Initializable, ERC20SnapshotUpgradeable function burn(address account, uint256 amount) public { _burn(account, amount); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC20VotesCompMockUpgradeable.sol b/contracts/mocks/ERC20VotesCompMockUpgradeable.sol index 894b51315..edc7f4556 100644 --- a/contracts/mocks/ERC20VotesCompMockUpgradeable.sol +++ b/contracts/mocks/ERC20VotesCompMockUpgradeable.sol @@ -7,13 +7,9 @@ import "../proxy/utils/Initializable.sol"; contract ERC20VotesCompMockUpgradeable is Initializable, ERC20VotesCompUpgradeable { function __ERC20VotesCompMock_init(string memory name, string memory symbol) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name, symbol); __EIP712_init_unchained(name, "1"); __ERC20Permit_init_unchained(name); - __ERC20Votes_init_unchained(); - __ERC20VotesComp_init_unchained(); - __ERC20VotesCompMock_init_unchained(name, symbol); } function __ERC20VotesCompMock_init_unchained(string memory, string memory) internal onlyInitializing {} @@ -29,5 +25,11 @@ contract ERC20VotesCompMockUpgradeable is Initializable, ERC20VotesCompUpgradeab function getChainId() external view returns (uint256) { return block.chainid; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC20VotesMockUpgradeable.sol b/contracts/mocks/ERC20VotesMockUpgradeable.sol index 966338020..cf2e048a4 100644 --- a/contracts/mocks/ERC20VotesMockUpgradeable.sol +++ b/contracts/mocks/ERC20VotesMockUpgradeable.sol @@ -7,12 +7,9 @@ import "../proxy/utils/Initializable.sol"; contract ERC20VotesMockUpgradeable is Initializable, ERC20VotesUpgradeable { function __ERC20VotesMock_init(string memory name, string memory symbol) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name, symbol); __EIP712_init_unchained(name, "1"); __ERC20Permit_init_unchained(name); - __ERC20Votes_init_unchained(); - __ERC20VotesMock_init_unchained(name, symbol); } function __ERC20VotesMock_init_unchained(string memory, string memory) internal onlyInitializing {} @@ -28,5 +25,11 @@ contract ERC20VotesMockUpgradeable is Initializable, ERC20VotesUpgradeable { function getChainId() external view returns (uint256) { return block.chainid; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC20WrapperMockUpgradeable.sol b/contracts/mocks/ERC20WrapperMockUpgradeable.sol index 1ee28977d..118f59845 100644 --- a/contracts/mocks/ERC20WrapperMockUpgradeable.sol +++ b/contracts/mocks/ERC20WrapperMockUpgradeable.sol @@ -11,10 +11,8 @@ contract ERC20WrapperMockUpgradeable is Initializable, ERC20WrapperUpgradeable { string memory name, string memory symbol ) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name, symbol); __ERC20Wrapper_init_unchained(_underlyingToken); - __ERC20WrapperMock_init_unchained(_underlyingToken, name, symbol); } function __ERC20WrapperMock_init_unchained( @@ -26,5 +24,11 @@ contract ERC20WrapperMockUpgradeable is Initializable, ERC20WrapperUpgradeable { function recover(address account) public returns (uint256) { return _recover(account); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC2771ContextMockUpgradeable.sol b/contracts/mocks/ERC2771ContextMockUpgradeable.sol index fce5bc8dc..957bf56c6 100644 --- a/contracts/mocks/ERC2771ContextMockUpgradeable.sol +++ b/contracts/mocks/ERC2771ContextMockUpgradeable.sol @@ -20,5 +20,11 @@ contract ERC2771ContextMockUpgradeable is Initializable, ContextMockUpgradeable, function _msgData() internal view virtual override(ContextUpgradeable, ERC2771ContextUpgradeable) returns (bytes calldata) { return ERC2771ContextUpgradeable._msgData(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC3156FlashBorrowerMockUpgradeable.sol b/contracts/mocks/ERC3156FlashBorrowerMockUpgradeable.sol index ade83f618..ab7f16d13 100644 --- a/contracts/mocks/ERC3156FlashBorrowerMockUpgradeable.sol +++ b/contracts/mocks/ERC3156FlashBorrowerMockUpgradeable.sol @@ -55,5 +55,11 @@ contract ERC3156FlashBorrowerMockUpgradeable is Initializable, IERC3156FlashBorr return _enableReturn ? _RETURN_VALUE : bytes32(0); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC721BurnableMockUpgradeable.sol b/contracts/mocks/ERC721BurnableMockUpgradeable.sol index a4c9bb6d3..a9e553e14 100644 --- a/contracts/mocks/ERC721BurnableMockUpgradeable.sol +++ b/contracts/mocks/ERC721BurnableMockUpgradeable.sol @@ -7,11 +7,7 @@ import "../proxy/utils/Initializable.sol"; contract ERC721BurnableMockUpgradeable is Initializable, ERC721BurnableUpgradeable { function __ERC721BurnableMock_init(string memory name, string memory symbol) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __ERC721_init_unchained(name, symbol); - __ERC721Burnable_init_unchained(); - __ERC721BurnableMock_init_unchained(name, symbol); } function __ERC721BurnableMock_init_unchained(string memory, string memory) internal onlyInitializing {} @@ -35,5 +31,11 @@ contract ERC721BurnableMockUpgradeable is Initializable, ERC721BurnableUpgradeab ) public { _safeMint(to, tokenId, _data); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC721EnumerableMockUpgradeable.sol b/contracts/mocks/ERC721EnumerableMockUpgradeable.sol index 647538335..9934609ab 100644 --- a/contracts/mocks/ERC721EnumerableMockUpgradeable.sol +++ b/contracts/mocks/ERC721EnumerableMockUpgradeable.sol @@ -13,11 +13,7 @@ contract ERC721EnumerableMockUpgradeable is Initializable, ERC721EnumerableUpgra string private _baseTokenURI; function __ERC721EnumerableMock_init(string memory name, string memory symbol) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __ERC721_init_unchained(name, symbol); - __ERC721Enumerable_init_unchained(); - __ERC721EnumerableMock_init_unchained(name, symbol); } function __ERC721EnumerableMock_init_unchained(string memory, string memory) internal onlyInitializing {} @@ -57,5 +53,11 @@ contract ERC721EnumerableMockUpgradeable is Initializable, ERC721EnumerableUpgra function burn(uint256 tokenId) public { _burn(tokenId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/ERC721MockUpgradeable.sol b/contracts/mocks/ERC721MockUpgradeable.sol index 432e270b3..b5073170b 100644 --- a/contracts/mocks/ERC721MockUpgradeable.sol +++ b/contracts/mocks/ERC721MockUpgradeable.sol @@ -11,10 +11,7 @@ import "../proxy/utils/Initializable.sol"; */ contract ERC721MockUpgradeable is Initializable, ERC721Upgradeable { function __ERC721Mock_init(string memory name, string memory symbol) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __ERC721_init_unchained(name, symbol); - __ERC721Mock_init_unchained(name, symbol); } function __ERC721Mock_init_unchained(string memory, string memory) internal onlyInitializing {} @@ -46,5 +43,11 @@ contract ERC721MockUpgradeable is Initializable, ERC721Upgradeable { function burn(uint256 tokenId) public { _burn(tokenId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC721PausableMockUpgradeable.sol b/contracts/mocks/ERC721PausableMockUpgradeable.sol index ba8dbc38e..c59043d98 100644 --- a/contracts/mocks/ERC721PausableMockUpgradeable.sol +++ b/contracts/mocks/ERC721PausableMockUpgradeable.sol @@ -11,12 +11,8 @@ import "../proxy/utils/Initializable.sol"; */ contract ERC721PausableMockUpgradeable is Initializable, ERC721PausableUpgradeable { function __ERC721PausableMock_init(string memory name, string memory symbol) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __ERC721_init_unchained(name, symbol); __Pausable_init_unchained(); - __ERC721Pausable_init_unchained(); - __ERC721PausableMock_init_unchained(name, symbol); } function __ERC721PausableMock_init_unchained(string memory, string memory) internal onlyInitializing {} @@ -52,5 +48,11 @@ contract ERC721PausableMockUpgradeable is Initializable, ERC721PausableUpgradeab function burn(uint256 tokenId) public { _burn(tokenId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC721ReceiverMockUpgradeable.sol b/contracts/mocks/ERC721ReceiverMockUpgradeable.sol index d0e1c199f..263b312af 100644 --- a/contracts/mocks/ERC721ReceiverMockUpgradeable.sol +++ b/contracts/mocks/ERC721ReceiverMockUpgradeable.sol @@ -44,5 +44,11 @@ contract ERC721ReceiverMockUpgradeable is Initializable, IERC721ReceiverUpgradea emit Received(operator, from, tokenId, data, gasleft()); return _retval; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC721RoyaltyMockUpgradeable.sol b/contracts/mocks/ERC721RoyaltyMockUpgradeable.sol index 119edc8b0..0c0b8045b 100644 --- a/contracts/mocks/ERC721RoyaltyMockUpgradeable.sol +++ b/contracts/mocks/ERC721RoyaltyMockUpgradeable.sol @@ -7,12 +7,7 @@ import "../proxy/utils/Initializable.sol"; contract ERC721RoyaltyMockUpgradeable is Initializable, ERC721RoyaltyUpgradeable { function __ERC721RoyaltyMock_init(string memory name, string memory symbol) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __ERC2981_init_unchained(); __ERC721_init_unchained(name, symbol); - __ERC721Royalty_init_unchained(); - __ERC721RoyaltyMock_init_unchained(name, symbol); } function __ERC721RoyaltyMock_init_unchained(string memory, string memory) internal onlyInitializing {} @@ -40,5 +35,11 @@ contract ERC721RoyaltyMockUpgradeable is Initializable, ERC721RoyaltyUpgradeable function deleteDefaultRoyalty() public { _deleteDefaultRoyalty(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC721URIStorageMockUpgradeable.sol b/contracts/mocks/ERC721URIStorageMockUpgradeable.sol index c84265e02..52f590235 100644 --- a/contracts/mocks/ERC721URIStorageMockUpgradeable.sol +++ b/contracts/mocks/ERC721URIStorageMockUpgradeable.sol @@ -13,11 +13,7 @@ contract ERC721URIStorageMockUpgradeable is Initializable, ERC721URIStorageUpgra string private _baseTokenURI; function __ERC721URIStorageMock_init(string memory name, string memory symbol) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __ERC721_init_unchained(name, symbol); - __ERC721URIStorage_init_unchained(); - __ERC721URIStorageMock_init_unchained(name, symbol); } function __ERC721URIStorageMock_init_unchained(string memory, string memory) internal onlyInitializing {} @@ -61,5 +57,11 @@ contract ERC721URIStorageMockUpgradeable is Initializable, ERC721URIStorageUpgra function burn(uint256 tokenId) public { _burn(tokenId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/ERC721VotesMockUpgradeable.sol b/contracts/mocks/ERC721VotesMockUpgradeable.sol index d3553a7de..4c78cb845 100644 --- a/contracts/mocks/ERC721VotesMockUpgradeable.sol +++ b/contracts/mocks/ERC721VotesMockUpgradeable.sol @@ -7,13 +7,8 @@ import "../proxy/utils/Initializable.sol"; contract ERC721VotesMockUpgradeable is Initializable, ERC721VotesUpgradeable { function __ERC721VotesMock_init(string memory name, string memory symbol) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __ERC721_init_unchained(name, symbol); __EIP712_init_unchained(name, "1"); - __Votes_init_unchained(); - __ERC721Votes_init_unchained(); - __ERC721VotesMock_init_unchained(name, symbol); } function __ERC721VotesMock_init_unchained(string memory, string memory) internal onlyInitializing {} @@ -33,5 +28,11 @@ contract ERC721VotesMockUpgradeable is Initializable, ERC721VotesUpgradeable { function getChainId() external view returns (uint256) { return block.chainid; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC777MockUpgradeable.sol b/contracts/mocks/ERC777MockUpgradeable.sol index 49dbf8705..aeb777cc1 100644 --- a/contracts/mocks/ERC777MockUpgradeable.sol +++ b/contracts/mocks/ERC777MockUpgradeable.sol @@ -16,7 +16,6 @@ contract ERC777MockUpgradeable is Initializable, ContextUpgradeable, ERC777Upgra string memory symbol, address[] memory defaultOperators ) internal onlyInitializing { - __Context_init_unchained(); __ERC777_init_unchained(name, symbol, defaultOperators); __ERC777Mock_init_unchained(initialHolder, initialBalance, name, symbol, defaultOperators); } @@ -66,5 +65,11 @@ contract ERC777MockUpgradeable is Initializable, ContextUpgradeable, ERC777Upgra ) internal override { emit BeforeTokenTransfer(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ERC777SenderRecipientMockUpgradeable.sol b/contracts/mocks/ERC777SenderRecipientMockUpgradeable.sol index 5f0324993..a90fbf979 100644 --- a/contracts/mocks/ERC777SenderRecipientMockUpgradeable.sol +++ b/contracts/mocks/ERC777SenderRecipientMockUpgradeable.sol @@ -12,8 +12,6 @@ import "../proxy/utils/Initializable.sol"; contract ERC777SenderRecipientMockUpgradeable is Initializable, ContextUpgradeable, IERC777SenderUpgradeable, IERC777RecipientUpgradeable, ERC1820ImplementerUpgradeable { function __ERC777SenderRecipientMock_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC1820Implementer_init_unchained(); __ERC777SenderRecipientMock_init_unchained(); } @@ -168,5 +166,11 @@ contract ERC777SenderRecipientMockUpgradeable is Initializable, ContextUpgradeab ) public { token.burn(amount, data); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/EnumerableMapMockUpgradeable.sol b/contracts/mocks/EnumerableMapMockUpgradeable.sol index 3c544f7cc..c71c93313 100644 --- a/contracts/mocks/EnumerableMapMockUpgradeable.sol +++ b/contracts/mocks/EnumerableMapMockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract EnumerableMapMockUpgradeable is Initializable { function __EnumerableMapMock_init() internal onlyInitializing { - __EnumerableMapMock_init_unchained(); } function __EnumerableMapMock_init_unchained() internal onlyInitializing { @@ -51,5 +50,11 @@ contract EnumerableMapMockUpgradeable is Initializable { function getWithMessage(uint256 key, string calldata errorMessage) public view returns (address) { return _map.get(key, errorMessage); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[47] private __gap; } diff --git a/contracts/mocks/EnumerableSetMockUpgradeable.sol b/contracts/mocks/EnumerableSetMockUpgradeable.sol index a581e75ea..92a7eb9a3 100644 --- a/contracts/mocks/EnumerableSetMockUpgradeable.sol +++ b/contracts/mocks/EnumerableSetMockUpgradeable.sol @@ -8,7 +8,6 @@ import "../proxy/utils/Initializable.sol"; // Bytes32Set contract EnumerableBytes32SetMockUpgradeable is Initializable { function __EnumerableBytes32SetMock_init() internal onlyInitializing { - __EnumerableBytes32SetMock_init_unchained(); } function __EnumerableBytes32SetMock_init_unchained() internal onlyInitializing { @@ -44,13 +43,18 @@ contract EnumerableBytes32SetMockUpgradeable is Initializable { function values() public view returns (bytes32[] memory) { return _set.values(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } // AddressSet contract EnumerableAddressSetMockUpgradeable is Initializable { function __EnumerableAddressSetMock_init() internal onlyInitializing { - __EnumerableAddressSetMock_init_unchained(); } function __EnumerableAddressSetMock_init_unchained() internal onlyInitializing { @@ -86,13 +90,18 @@ contract EnumerableAddressSetMockUpgradeable is Initializable { function values() public view returns (address[] memory) { return _set.values(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } // UintSet contract EnumerableUintSetMockUpgradeable is Initializable { function __EnumerableUintSetMock_init() internal onlyInitializing { - __EnumerableUintSetMock_init_unchained(); } function __EnumerableUintSetMock_init_unchained() internal onlyInitializing { @@ -128,5 +137,11 @@ contract EnumerableUintSetMockUpgradeable is Initializable { function values() public view returns (uint256[] memory) { return _set.values(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } diff --git a/contracts/mocks/EtherReceiverMockUpgradeable.sol b/contracts/mocks/EtherReceiverMockUpgradeable.sol index 08edb9f14..649b10ce1 100644 --- a/contracts/mocks/EtherReceiverMockUpgradeable.sol +++ b/contracts/mocks/EtherReceiverMockUpgradeable.sol @@ -5,7 +5,6 @@ import "../proxy/utils/Initializable.sol"; contract EtherReceiverMockUpgradeable is Initializable { function __EtherReceiverMock_init() internal onlyInitializing { - __EtherReceiverMock_init_unchained(); } function __EtherReceiverMock_init_unchained() internal onlyInitializing { @@ -21,5 +20,11 @@ contract EtherReceiverMockUpgradeable is Initializable { revert(); } } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/GovernorCompMockUpgradeable.sol b/contracts/mocks/GovernorCompMockUpgradeable.sol index 3ffed9972..37a43433c 100644 --- a/contracts/mocks/GovernorCompMockUpgradeable.sol +++ b/contracts/mocks/GovernorCompMockUpgradeable.sol @@ -8,14 +8,9 @@ import "../proxy/utils/Initializable.sol"; contract GovernorCompMockUpgradeable is Initializable, GovernorVotesCompUpgradeable, GovernorCountingSimpleUpgradeable { function __GovernorCompMock_init(string memory name_, ERC20VotesCompUpgradeable token_) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); __Governor_init_unchained(name_); __GovernorVotesComp_init_unchained(token_); - __GovernorCountingSimple_init_unchained(); - __GovernorCompMock_init_unchained(name_, token_); } function __GovernorCompMock_init_unchained(string memory, ERC20VotesCompUpgradeable) internal onlyInitializing {} @@ -50,5 +45,11 @@ contract GovernorCompMockUpgradeable is Initializable, GovernorVotesCompUpgradea { return super.getVotes(account, blockNumber); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/GovernorCompatibilityBravoMockUpgradeable.sol b/contracts/mocks/GovernorCompatibilityBravoMockUpgradeable.sol index bb554a5b9..3b886ad54 100644 --- a/contracts/mocks/GovernorCompatibilityBravoMockUpgradeable.sol +++ b/contracts/mocks/GovernorCompatibilityBravoMockUpgradeable.sol @@ -22,18 +22,11 @@ contract GovernorCompatibilityBravoMockUpgradeable is uint256 proposalThreshold_, ICompoundTimelockUpgradeable timelock_ ) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); - __IGovernorCompatibilityBravo_init_unchained(); __Governor_init_unchained(name_); - __GovernorCompatibilityBravo_init_unchained(); __GovernorSettings_init_unchained(votingDelay_, votingPeriod_, proposalThreshold_); __GovernorTimelockCompound_init_unchained(timelock_); __GovernorVotesComp_init_unchained(token_); - __GovernorCompatibilityBravoMock_init_unchained(name_, token_, votingDelay_, votingPeriod_, proposalThreshold_, timelock_); } function __GovernorCompatibilityBravoMock_init_unchained( @@ -155,5 +148,11 @@ contract GovernorCompatibilityBravoMockUpgradeable is function _executor() internal view virtual override(GovernorUpgradeable, GovernorTimelockCompoundUpgradeable) returns (address) { return super._executor(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/GovernorMockUpgradeable.sol b/contracts/mocks/GovernorMockUpgradeable.sol index 3c3e215b8..777ba026b 100644 --- a/contracts/mocks/GovernorMockUpgradeable.sol +++ b/contracts/mocks/GovernorMockUpgradeable.sol @@ -21,17 +21,11 @@ contract GovernorMockUpgradeable is uint256 votingPeriod_, uint256 quorumNumerator_ ) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); __Governor_init_unchained(name_); - __GovernorProposalThreshold_init_unchained(); __GovernorSettings_init_unchained(votingDelay_, votingPeriod_, 0); __GovernorVotes_init_unchained(token_); __GovernorVotesQuorumFraction_init_unchained(quorumNumerator_); - __GovernorCountingSimple_init_unchained(); - __GovernorMock_init_unchained(name_, token_, votingDelay_, votingPeriod_, quorumNumerator_); } function __GovernorMock_init_unchained( @@ -73,5 +67,11 @@ contract GovernorMockUpgradeable is ) public virtual override(GovernorUpgradeable, GovernorProposalThresholdUpgradeable) returns (uint256) { return super.propose(targets, values, calldatas, description); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/GovernorPreventLateQuorumMockUpgradeable.sol b/contracts/mocks/GovernorPreventLateQuorumMockUpgradeable.sol index e4c54d7fb..9da86ae69 100644 --- a/contracts/mocks/GovernorPreventLateQuorumMockUpgradeable.sol +++ b/contracts/mocks/GovernorPreventLateQuorumMockUpgradeable.sol @@ -24,14 +24,10 @@ contract GovernorPreventLateQuorumMockUpgradeable is uint256 quorum_, uint64 voteExtension_ ) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); __Governor_init_unchained(name_); __GovernorSettings_init_unchained(votingDelay_, votingPeriod_, 0); __GovernorVotes_init_unchained(token_); - __GovernorCountingSimple_init_unchained(); __GovernorPreventLateQuorum_init_unchained(voteExtension_); __GovernorPreventLateQuorumMock_init_unchained(name_, token_, votingDelay_, votingPeriod_, quorum_, voteExtension_); } @@ -73,5 +69,11 @@ contract GovernorPreventLateQuorumMockUpgradeable is ) internal virtual override(GovernorUpgradeable, GovernorPreventLateQuorumUpgradeable) returns (uint256) { return super._castVote(proposalId, account, support, reason); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/GovernorTimelockCompoundMockUpgradeable.sol b/contracts/mocks/GovernorTimelockCompoundMockUpgradeable.sol index bf8521861..6cc5fc4d1 100644 --- a/contracts/mocks/GovernorTimelockCompoundMockUpgradeable.sol +++ b/contracts/mocks/GovernorTimelockCompoundMockUpgradeable.sol @@ -22,18 +22,12 @@ contract GovernorTimelockCompoundMockUpgradeable is ICompoundTimelockUpgradeable timelock_, uint256 quorumNumerator_ ) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); __Governor_init_unchained(name_); __GovernorSettings_init_unchained(votingDelay_, votingPeriod_, 0); __GovernorTimelockCompound_init_unchained(timelock_); __GovernorVotes_init_unchained(token_); __GovernorVotesQuorumFraction_init_unchained(quorumNumerator_); - __GovernorCountingSimple_init_unchained(); - __GovernorTimelockCompoundMock_init_unchained(name_, token_, votingDelay_, votingPeriod_, timelock_, quorumNumerator_); } function __GovernorTimelockCompoundMock_init_unchained( @@ -122,5 +116,11 @@ contract GovernorTimelockCompoundMockUpgradeable is function _executor() internal view virtual override(GovernorUpgradeable, GovernorTimelockCompoundUpgradeable) returns (address) { return super._executor(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/GovernorTimelockControlMockUpgradeable.sol b/contracts/mocks/GovernorTimelockControlMockUpgradeable.sol index 8e54c2e3e..397f9a948 100644 --- a/contracts/mocks/GovernorTimelockControlMockUpgradeable.sol +++ b/contracts/mocks/GovernorTimelockControlMockUpgradeable.sol @@ -22,18 +22,12 @@ contract GovernorTimelockControlMockUpgradeable is TimelockControllerUpgradeable timelock_, uint256 quorumNumerator_ ) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); __Governor_init_unchained(name_); __GovernorSettings_init_unchained(votingDelay_, votingPeriod_, 0); __GovernorTimelockControl_init_unchained(timelock_); __GovernorVotes_init_unchained(token_); __GovernorVotesQuorumFraction_init_unchained(quorumNumerator_); - __GovernorCountingSimple_init_unchained(); - __GovernorTimelockControlMock_init_unchained(name_, token_, votingDelay_, votingPeriod_, timelock_, quorumNumerator_); } function __GovernorTimelockControlMock_init_unchained( @@ -122,5 +116,11 @@ contract GovernorTimelockControlMockUpgradeable is function _executor() internal view virtual override(GovernorUpgradeable, GovernorTimelockControlUpgradeable) returns (address) { return super._executor(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/GovernorVoteMockUpgradeable.sol b/contracts/mocks/GovernorVoteMockUpgradeable.sol index 5c27195bf..0575c0dd4 100644 --- a/contracts/mocks/GovernorVoteMockUpgradeable.sol +++ b/contracts/mocks/GovernorVoteMockUpgradeable.sol @@ -8,14 +8,9 @@ import "../proxy/utils/Initializable.sol"; contract GovernorVoteMocksUpgradeable is Initializable, GovernorVotesUpgradeable, GovernorCountingSimpleUpgradeable { function __GovernorVoteMocks_init(string memory name_, IVotesUpgradeable token_) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); __Governor_init_unchained(name_); __GovernorVotes_init_unchained(token_); - __GovernorCountingSimple_init_unchained(); - __GovernorVoteMocks_init_unchained(name_, token_); } function __GovernorVoteMocks_init_unchained(string memory, IVotesUpgradeable) internal onlyInitializing {} @@ -50,5 +45,11 @@ contract GovernorVoteMocksUpgradeable is Initializable, GovernorVotesUpgradeable { return super.getVotes(account, blockNumber); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/MathMockUpgradeable.sol b/contracts/mocks/MathMockUpgradeable.sol index 3157afdb9..1fcb9de05 100644 --- a/contracts/mocks/MathMockUpgradeable.sol +++ b/contracts/mocks/MathMockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract MathMockUpgradeable is Initializable { function __MathMock_init() internal onlyInitializing { - __MathMock_init_unchained(); } function __MathMock_init_unchained() internal onlyInitializing { @@ -31,5 +30,11 @@ contract MathMockUpgradeable is Initializable { function abs(int256 n) public pure returns (uint256) { return MathUpgradeable.abs(n); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/MerkleProofWrapperUpgradeable.sol b/contracts/mocks/MerkleProofWrapperUpgradeable.sol index 35d72b2da..b5e46cceb 100644 --- a/contracts/mocks/MerkleProofWrapperUpgradeable.sol +++ b/contracts/mocks/MerkleProofWrapperUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract MerkleProofWrapperUpgradeable is Initializable { function __MerkleProofWrapper_init() internal onlyInitializing { - __MerkleProofWrapper_init_unchained(); } function __MerkleProofWrapper_init_unchained() internal onlyInitializing { @@ -23,5 +22,11 @@ contract MerkleProofWrapperUpgradeable is Initializable { function processProof(bytes32[] memory proof, bytes32 leaf) public pure returns (bytes32) { return MerkleProofUpgradeable.processProof(proof, leaf); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/MulticallTestUpgradeable.sol b/contracts/mocks/MulticallTestUpgradeable.sol index 3ab0a25ec..bd4ee0cbe 100644 --- a/contracts/mocks/MulticallTestUpgradeable.sol +++ b/contracts/mocks/MulticallTestUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract MulticallTestUpgradeable is Initializable { function __MulticallTest_init() internal onlyInitializing { - __MulticallTest_init_unchained(); } function __MulticallTest_init_unchained() internal onlyInitializing { @@ -27,5 +26,11 @@ contract MulticallTestUpgradeable is Initializable { require(abi.decode(results[i], (bool))); } } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/MulticallTokenMockUpgradeable.sol b/contracts/mocks/MulticallTokenMockUpgradeable.sol index d48883468..5d4fc0089 100644 --- a/contracts/mocks/MulticallTokenMockUpgradeable.sol +++ b/contracts/mocks/MulticallTokenMockUpgradeable.sol @@ -8,13 +8,16 @@ import "../proxy/utils/Initializable.sol"; contract MulticallTokenMockUpgradeable is Initializable, ERC20MockUpgradeable, MulticallUpgradeable { function __MulticallTokenMock_init(uint256 initialBalance) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained("MulticallToken", "BCT"); __ERC20Mock_init_unchained("MulticallToken", "BCT", msg.sender, initialBalance); - __Multicall_init_unchained(); - __MulticallTokenMock_init_unchained(initialBalance); } function __MulticallTokenMock_init_unchained(uint256) internal onlyInitializing {} + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/OwnableMockUpgradeable.sol b/contracts/mocks/OwnableMockUpgradeable.sol index 5413cf8d0..8091b39ec 100644 --- a/contracts/mocks/OwnableMockUpgradeable.sol +++ b/contracts/mocks/OwnableMockUpgradeable.sol @@ -6,12 +6,16 @@ import "../access/OwnableUpgradeable.sol"; import "../proxy/utils/Initializable.sol"; contract OwnableMockUpgradeable is Initializable, OwnableUpgradeable { function __OwnableMock_init() internal onlyInitializing { - __Context_init_unchained(); __Ownable_init_unchained(); - __OwnableMock_init_unchained(); } function __OwnableMock_init_unchained() internal onlyInitializing { } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/PausableMockUpgradeable.sol b/contracts/mocks/PausableMockUpgradeable.sol index 1a4fb4dc3..41a59263a 100644 --- a/contracts/mocks/PausableMockUpgradeable.sol +++ b/contracts/mocks/PausableMockUpgradeable.sol @@ -10,7 +10,6 @@ contract PausableMockUpgradeable is Initializable, PausableUpgradeable { uint256 public count; function __PausableMock_init() internal onlyInitializing { - __Context_init_unchained(); __Pausable_init_unchained(); __PausableMock_init_unchained(); } @@ -35,5 +34,11 @@ contract PausableMockUpgradeable is Initializable, PausableUpgradeable { function unpause() external { _unpause(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } diff --git a/contracts/mocks/PullPaymentMockUpgradeable.sol b/contracts/mocks/PullPaymentMockUpgradeable.sol index 1ef898b28..213587871 100644 --- a/contracts/mocks/PullPaymentMockUpgradeable.sol +++ b/contracts/mocks/PullPaymentMockUpgradeable.sol @@ -9,7 +9,6 @@ import "../proxy/utils/Initializable.sol"; contract PullPaymentMockUpgradeable is Initializable, PullPaymentUpgradeable { function __PullPaymentMock_init() internal onlyInitializing { __PullPayment_init_unchained(); - __PullPaymentMock_init_unchained(); } function __PullPaymentMock_init_unchained() internal onlyInitializing {} @@ -18,5 +17,11 @@ contract PullPaymentMockUpgradeable is Initializable, PullPaymentUpgradeable { function callTransfer(address dest, uint256 amount) public { _asyncTransfer(dest, amount); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ReentrancyAttackUpgradeable.sol b/contracts/mocks/ReentrancyAttackUpgradeable.sol index 7d23c28f2..cb31dfc32 100644 --- a/contracts/mocks/ReentrancyAttackUpgradeable.sol +++ b/contracts/mocks/ReentrancyAttackUpgradeable.sol @@ -7,8 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract ReentrancyAttackUpgradeable is Initializable, ContextUpgradeable { function __ReentrancyAttack_init() internal onlyInitializing { - __Context_init_unchained(); - __ReentrancyAttack_init_unchained(); } function __ReentrancyAttack_init_unchained() internal onlyInitializing { @@ -17,5 +15,11 @@ contract ReentrancyAttackUpgradeable is Initializable, ContextUpgradeable { (bool success, ) = _msgSender().call(abi.encodeWithSelector(data)); require(success, "ReentrancyAttack: failed call"); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/ReentrancyMockUpgradeable.sol b/contracts/mocks/ReentrancyMockUpgradeable.sol index d123c8555..027d9c51a 100644 --- a/contracts/mocks/ReentrancyMockUpgradeable.sol +++ b/contracts/mocks/ReentrancyMockUpgradeable.sol @@ -46,5 +46,11 @@ contract ReentrancyMockUpgradeable is Initializable, ReentrancyGuardUpgradeable function _count() private { counter += 1; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/SafeCastMockUpgradeable.sol b/contracts/mocks/SafeCastMockUpgradeable.sol index 120421be9..4c1fe58db 100644 --- a/contracts/mocks/SafeCastMockUpgradeable.sol +++ b/contracts/mocks/SafeCastMockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract SafeCastMockUpgradeable is Initializable { function __SafeCastMock_init() internal onlyInitializing { - __SafeCastMock_init_unchained(); } function __SafeCastMock_init_unchained() internal onlyInitializing { @@ -70,5 +69,11 @@ contract SafeCastMockUpgradeable is Initializable { function toInt8(int256 a) public pure returns (int8) { return a.toInt8(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/SafeERC20HelperUpgradeable.sol b/contracts/mocks/SafeERC20HelperUpgradeable.sol index 5cc12a18a..1d0fc50ad 100644 --- a/contracts/mocks/SafeERC20HelperUpgradeable.sol +++ b/contracts/mocks/SafeERC20HelperUpgradeable.sol @@ -9,8 +9,6 @@ import "../proxy/utils/Initializable.sol"; contract ERC20ReturnFalseMockUpgradeable is Initializable, ContextUpgradeable { function __ERC20ReturnFalseMock_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC20ReturnFalseMock_init_unchained(); } function __ERC20ReturnFalseMock_init_unchained() internal onlyInitializing { @@ -44,13 +42,17 @@ contract ERC20ReturnFalseMockUpgradeable is Initializable, ContextUpgradeable { require(_dummy == 0); // Dummy read from a state variable so that the function is view return 0; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } contract ERC20ReturnTrueMockUpgradeable is Initializable, ContextUpgradeable { function __ERC20ReturnTrueMock_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC20ReturnTrueMock_init_unchained(); } function __ERC20ReturnTrueMock_init_unchained() internal onlyInitializing { @@ -87,13 +89,17 @@ contract ERC20ReturnTrueMockUpgradeable is Initializable, ContextUpgradeable { function allowance(address owner, address) public view returns (uint256) { return _allowances[owner]; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } contract ERC20NoReturnMockUpgradeable is Initializable, ContextUpgradeable { function __ERC20NoReturnMock_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC20NoReturnMock_init_unchained(); } function __ERC20NoReturnMock_init_unchained() internal onlyInitializing { @@ -127,6 +133,12 @@ contract ERC20NoReturnMockUpgradeable is Initializable, ContextUpgradeable { function allowance(address owner, address) public view returns (uint256) { return _allowances[owner]; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } @@ -136,7 +148,6 @@ contract SafeERC20WrapperUpgradeable is Initializable, ContextUpgradeable { IERC20Upgradeable private _token; function __SafeERC20Wrapper_init(IERC20Upgradeable token) internal onlyInitializing { - __Context_init_unchained(); __SafeERC20Wrapper_init_unchained(token); } @@ -171,5 +182,11 @@ contract SafeERC20WrapperUpgradeable is Initializable, ContextUpgradeable { function allowance() public view returns (uint256) { return _token.allowance(address(0), address(0)); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/SafeMathMockUpgradeable.sol b/contracts/mocks/SafeMathMockUpgradeable.sol index cdb27988e..df48a3206 100644 --- a/contracts/mocks/SafeMathMockUpgradeable.sol +++ b/contracts/mocks/SafeMathMockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract SafeMathMockUpgradeable is Initializable { function __SafeMathMock_init() internal onlyInitializing { - __SafeMathMock_init_unchained(); } function __SafeMathMock_init_unchained() internal onlyInitializing { @@ -142,5 +141,11 @@ contract SafeMathMockUpgradeable is Initializable { mem := sub(mload(0x40), mem) } } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/SignatureCheckerMockUpgradeable.sol b/contracts/mocks/SignatureCheckerMockUpgradeable.sol index a6750e39d..9b8735847 100644 --- a/contracts/mocks/SignatureCheckerMockUpgradeable.sol +++ b/contracts/mocks/SignatureCheckerMockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract SignatureCheckerMockUpgradeable is Initializable { function __SignatureCheckerMock_init() internal onlyInitializing { - __SignatureCheckerMock_init_unchained(); } function __SignatureCheckerMock_init_unchained() internal onlyInitializing { @@ -21,5 +20,11 @@ contract SignatureCheckerMockUpgradeable is Initializable { ) public view returns (bool) { return signer.isValidSignatureNow(hash, signature); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/SignedMathMockUpgradeable.sol b/contracts/mocks/SignedMathMockUpgradeable.sol index 3b0f80457..13e5c835f 100644 --- a/contracts/mocks/SignedMathMockUpgradeable.sol +++ b/contracts/mocks/SignedMathMockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract SignedMathMockUpgradeable is Initializable { function __SignedMathMock_init() internal onlyInitializing { - __SignedMathMock_init_unchained(); } function __SignedMathMock_init_unchained() internal onlyInitializing { @@ -23,5 +22,11 @@ contract SignedMathMockUpgradeable is Initializable { function average(int256 a, int256 b) public pure returns (int256) { return SignedMathUpgradeable.average(a, b); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/SignedSafeMathMockUpgradeable.sol b/contracts/mocks/SignedSafeMathMockUpgradeable.sol index 31becce0f..204f06681 100644 --- a/contracts/mocks/SignedSafeMathMockUpgradeable.sol +++ b/contracts/mocks/SignedSafeMathMockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract SignedSafeMathMockUpgradeable is Initializable { function __SignedSafeMathMock_init() internal onlyInitializing { - __SignedSafeMathMock_init_unchained(); } function __SignedSafeMathMock_init_unchained() internal onlyInitializing { @@ -27,5 +26,11 @@ contract SignedSafeMathMockUpgradeable is Initializable { function add(int256 a, int256 b) public pure returns (int256) { return SignedSafeMathUpgradeable.add(a, b); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/StorageSlotMockUpgradeable.sol b/contracts/mocks/StorageSlotMockUpgradeable.sol index f1c42ec06..606492c5d 100644 --- a/contracts/mocks/StorageSlotMockUpgradeable.sol +++ b/contracts/mocks/StorageSlotMockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract StorageSlotMockUpgradeable is Initializable { function __StorageSlotMock_init() internal onlyInitializing { - __StorageSlotMock_init_unchained(); } function __StorageSlotMock_init_unchained() internal onlyInitializing { @@ -45,5 +44,11 @@ contract StorageSlotMockUpgradeable is Initializable { function getUint256(bytes32 slot) public view returns (uint256) { return slot.getUint256Slot().value; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/StringsMockUpgradeable.sol b/contracts/mocks/StringsMockUpgradeable.sol index 05800f20a..fe6ef4e73 100644 --- a/contracts/mocks/StringsMockUpgradeable.sol +++ b/contracts/mocks/StringsMockUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract StringsMockUpgradeable is Initializable { function __StringsMock_init() internal onlyInitializing { - __StringsMock_init_unchained(); } function __StringsMock_init_unchained() internal onlyInitializing { @@ -23,5 +22,11 @@ contract StringsMockUpgradeable is Initializable { function fromUint256HexFixed(uint256 value, uint256 length) public pure returns (string memory) { return StringsUpgradeable.toHexString(value, length); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/TimersBlockNumberImplUpgradeable.sol b/contracts/mocks/TimersBlockNumberImplUpgradeable.sol index da3d07cd9..99fc25277 100644 --- a/contracts/mocks/TimersBlockNumberImplUpgradeable.sol +++ b/contracts/mocks/TimersBlockNumberImplUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract TimersBlockNumberImplUpgradeable is Initializable { function __TimersBlockNumberImpl_init() internal onlyInitializing { - __TimersBlockNumberImpl_init_unchained(); } function __TimersBlockNumberImpl_init_unchained() internal onlyInitializing { @@ -43,5 +42,11 @@ contract TimersBlockNumberImplUpgradeable is Initializable { function isExpired() public view returns (bool) { return _timer.isExpired(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/TimersTimestampImplUpgradeable.sol b/contracts/mocks/TimersTimestampImplUpgradeable.sol index 9ebcded75..2208d6b56 100644 --- a/contracts/mocks/TimersTimestampImplUpgradeable.sol +++ b/contracts/mocks/TimersTimestampImplUpgradeable.sol @@ -7,7 +7,6 @@ import "../proxy/utils/Initializable.sol"; contract TimersTimestampImplUpgradeable is Initializable { function __TimersTimestampImpl_init() internal onlyInitializing { - __TimersTimestampImpl_init_unchained(); } function __TimersTimestampImpl_init_unchained() internal onlyInitializing { @@ -43,5 +42,11 @@ contract TimersTimestampImplUpgradeable is Initializable { function isExpired() public view returns (bool) { return _timer.isExpired(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/mocks/UUPS/UUPSLegacyUpgradeable.sol b/contracts/mocks/UUPS/UUPSLegacyUpgradeable.sol index 4efd06baa..eeee45b70 100644 --- a/contracts/mocks/UUPS/UUPSLegacyUpgradeable.sol +++ b/contracts/mocks/UUPS/UUPSLegacyUpgradeable.sol @@ -9,11 +9,6 @@ import "../../proxy/utils/Initializable.sol"; // It's used to test that newer UUPS contracts are considered valid upgrades by older UUPS contracts. contract UUPSUpgradeableLegacyMockUpgradeable is Initializable, UUPSUpgradeableMockUpgradeable { function __UUPSUpgradeableLegacyMock_init() internal onlyInitializing { - __CountersImpl_init_unchained(); - __ERC1967Upgrade_init_unchained(); - __UUPSUpgradeable_init_unchained(); - __UUPSUpgradeableMock_init_unchained(); - __UUPSUpgradeableLegacyMock_init_unchained(); } function __UUPSUpgradeableLegacyMock_init_unchained() internal onlyInitializing { @@ -76,5 +71,11 @@ contract UUPSUpgradeableLegacyMockUpgradeable is Initializable, UUPSUpgradeableM (bool success, bytes memory returndata) = target.delegatecall(data); return AddressUpgradeable.verifyCallResult(success, returndata, "Address: low-level delegate call failed"); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/UUPS/UUPSUpgradeableMockUpgradeable.sol b/contracts/mocks/UUPS/UUPSUpgradeableMockUpgradeable.sol index cc6a2b69a..70d6dc495 100644 --- a/contracts/mocks/UUPS/UUPSUpgradeableMockUpgradeable.sol +++ b/contracts/mocks/UUPS/UUPSUpgradeableMockUpgradeable.sol @@ -8,26 +8,23 @@ import "../../proxy/utils/Initializable.sol"; contract UUPSUpgradeableMockUpgradeable is Initializable, CountersImplUpgradeable, UUPSUpgradeable { function __UUPSUpgradeableMock_init() internal onlyInitializing { - __CountersImpl_init_unchained(); - __ERC1967Upgrade_init_unchained(); - __UUPSUpgradeable_init_unchained(); - __UUPSUpgradeableMock_init_unchained(); } function __UUPSUpgradeableMock_init_unchained() internal onlyInitializing { } // Not having any checks in this function is dangerous! Do not do this outside tests! function _authorizeUpgrade(address) internal virtual override {} + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } contract UUPSUpgradeableUnsafeMockUpgradeable is Initializable, UUPSUpgradeableMockUpgradeable { function __UUPSUpgradeableUnsafeMock_init() internal onlyInitializing { - __CountersImpl_init_unchained(); - __ERC1967Upgrade_init_unchained(); - __UUPSUpgradeable_init_unchained(); - __UUPSUpgradeableMock_init_unchained(); - __UUPSUpgradeableUnsafeMock_init_unchained(); } function __UUPSUpgradeableUnsafeMock_init_unchained() internal onlyInitializing { @@ -39,5 +36,11 @@ contract UUPSUpgradeableUnsafeMockUpgradeable is Initializable, UUPSUpgradeableM function upgradeToAndCall(address newImplementation, bytes memory data) external payable virtual override { ERC1967UpgradeUpgradeable._upgradeToAndCall(newImplementation, data, false); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/VotesMockUpgradeable.sol b/contracts/mocks/VotesMockUpgradeable.sol index 987a8e8db..3753487a4 100644 --- a/contracts/mocks/VotesMockUpgradeable.sol +++ b/contracts/mocks/VotesMockUpgradeable.sol @@ -10,10 +10,7 @@ contract VotesMockUpgradeable is Initializable, VotesUpgradeable { mapping(uint256 => address) private _owners; function __VotesMock_init(string memory name) internal onlyInitializing { - __Context_init_unchained(); __EIP712_init_unchained(name, "1"); - __Votes_init_unchained(); - __VotesMock_init_unchained(name); } function __VotesMock_init_unchained(string memory) internal onlyInitializing {} @@ -45,5 +42,11 @@ contract VotesMockUpgradeable is Initializable, VotesUpgradeable { function getChainId() external view returns (uint256) { return block.chainid; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } diff --git a/contracts/mocks/compound/CompTimelockUpgradeable.sol b/contracts/mocks/compound/CompTimelockUpgradeable.sol index fd5faf813..82f9e0bf9 100644 --- a/contracts/mocks/compound/CompTimelockUpgradeable.sol +++ b/contracts/mocks/compound/CompTimelockUpgradeable.sol @@ -176,5 +176,11 @@ contract CompTimelockUpgradeable is Initializable { // solium-disable-next-line security/no-block-members return block.timestamp; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[46] private __gap; } diff --git a/contracts/mocks/wizard/MyGovernor1Upgradeable.sol b/contracts/mocks/wizard/MyGovernor1Upgradeable.sol index f6465f25b..741013652 100644 --- a/contracts/mocks/wizard/MyGovernor1Upgradeable.sol +++ b/contracts/mocks/wizard/MyGovernor1Upgradeable.sol @@ -16,17 +16,11 @@ contract MyGovernor1Upgradeable is GovernorCountingSimpleUpgradeable { function __MyGovernor1_init(IVotesUpgradeable _token, TimelockControllerUpgradeable _timelock) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __EIP712_init_unchained("MyGovernor", version()); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); __Governor_init_unchained("MyGovernor"); __GovernorTimelockControl_init_unchained(_timelock); __GovernorVotes_init_unchained(_token); __GovernorVotesQuorumFraction_init_unchained(4); - __GovernorCountingSimple_init_unchained(); - __MyGovernor1_init_unchained(_token, _timelock); } function __MyGovernor1_init_unchained(IVotesUpgradeable, TimelockControllerUpgradeable) internal onlyInitializing {} @@ -103,5 +97,11 @@ contract MyGovernor1Upgradeable is { return super.supportsInterface(interfaceId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/wizard/MyGovernor2Upgradeable.sol b/contracts/mocks/wizard/MyGovernor2Upgradeable.sol index d12b78682..a78f4e792 100644 --- a/contracts/mocks/wizard/MyGovernor2Upgradeable.sol +++ b/contracts/mocks/wizard/MyGovernor2Upgradeable.sol @@ -18,18 +18,11 @@ contract MyGovernor2Upgradeable is GovernorCountingSimpleUpgradeable { function __MyGovernor2_init(IVotesUpgradeable _token, TimelockControllerUpgradeable _timelock) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __EIP712_init_unchained("MyGovernor", version()); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); __Governor_init_unchained("MyGovernor"); __GovernorTimelockControl_init_unchained(_timelock); - __GovernorProposalThreshold_init_unchained(); __GovernorVotes_init_unchained(_token); __GovernorVotesQuorumFraction_init_unchained(4); - __GovernorCountingSimple_init_unchained(); - __MyGovernor2_init_unchained(_token, _timelock); } function __MyGovernor2_init_unchained(IVotesUpgradeable, TimelockControllerUpgradeable) internal onlyInitializing {} @@ -110,5 +103,11 @@ contract MyGovernor2Upgradeable is { return super.supportsInterface(interfaceId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/mocks/wizard/MyGovernor3Upgradeable.sol b/contracts/mocks/wizard/MyGovernor3Upgradeable.sol index 47bb3ed5e..d8aba0326 100644 --- a/contracts/mocks/wizard/MyGovernor3Upgradeable.sol +++ b/contracts/mocks/wizard/MyGovernor3Upgradeable.sol @@ -16,18 +16,11 @@ contract MyGovernorUpgradeable is GovernorVotesQuorumFractionUpgradeable { function __MyGovernor_init(IVotesUpgradeable _token, TimelockControllerUpgradeable _timelock) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __EIP712_init_unchained("MyGovernor", version()); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); - __IGovernorCompatibilityBravo_init_unchained(); __Governor_init_unchained("MyGovernor"); __GovernorTimelockControl_init_unchained(_timelock); - __GovernorCompatibilityBravo_init_unchained(); __GovernorVotes_init_unchained(_token); __GovernorVotesQuorumFraction_init_unchained(4); - __MyGovernor_init_unchained(_token, _timelock); } function __MyGovernor_init_unchained(IVotesUpgradeable, TimelockControllerUpgradeable) internal onlyInitializing {} @@ -113,5 +106,11 @@ contract MyGovernorUpgradeable is { return super.supportsInterface(interfaceId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol b/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol index 3c8771530..0c50e8f26 100644 --- a/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol +++ b/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol @@ -19,7 +19,6 @@ import "../utils/Initializable.sol"; */ abstract contract ERC1967UpgradeUpgradeable is Initializable { function __ERC1967Upgrade_init() internal onlyInitializing { - __ERC1967Upgrade_init_unchained(); } function __ERC1967Upgrade_init_unchained() internal onlyInitializing { @@ -203,5 +202,11 @@ abstract contract ERC1967UpgradeUpgradeable is Initializable { (bool success, bytes memory returndata) = target.delegatecall(data); return AddressUpgradeable.verifyCallResult(success, returndata, "Address: low-level delegate call failed"); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/proxy/utils/UUPSUpgradeable.sol b/contracts/proxy/utils/UUPSUpgradeable.sol index 64f2c2167..52fa445bb 100644 --- a/contracts/proxy/utils/UUPSUpgradeable.sol +++ b/contracts/proxy/utils/UUPSUpgradeable.sol @@ -21,8 +21,6 @@ import "./Initializable.sol"; */ abstract contract UUPSUpgradeable is Initializable, IERC1822ProxiableUpgradeable, ERC1967UpgradeUpgradeable { function __UUPSUpgradeable_init() internal onlyInitializing { - __ERC1967Upgrade_init_unchained(); - __UUPSUpgradeable_init_unchained(); } function __UUPSUpgradeable_init_unchained() internal onlyInitializing { @@ -100,5 +98,11 @@ abstract contract UUPSUpgradeable is Initializable, IERC1822ProxiableUpgradeable * ``` */ function _authorizeUpgrade(address newImplementation) internal virtual; + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/security/PausableUpgradeable.sol b/contracts/security/PausableUpgradeable.sol index 05ec40531..d6dd51a61 100644 --- a/contracts/security/PausableUpgradeable.sol +++ b/contracts/security/PausableUpgradeable.sol @@ -32,7 +32,6 @@ abstract contract PausableUpgradeable is Initializable, ContextUpgradeable { * @dev Initializes the contract in unpaused state. */ function __Pausable_init() internal onlyInitializing { - __Context_init_unchained(); __Pausable_init_unchained(); } @@ -94,5 +93,11 @@ abstract contract PausableUpgradeable is Initializable, ContextUpgradeable { _paused = false; emit Unpaused(_msgSender()); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/security/PullPaymentUpgradeable.sol b/contracts/security/PullPaymentUpgradeable.sol index 60f1f0be1..13f9ec79d 100644 --- a/contracts/security/PullPaymentUpgradeable.sol +++ b/contracts/security/PullPaymentUpgradeable.sol @@ -73,5 +73,11 @@ abstract contract PullPaymentUpgradeable is Initializable { function _asyncTransfer(address dest, uint256 amount) internal virtual { _escrow.deposit{value: amount}(dest); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/security/ReentrancyGuardUpgradeable.sol b/contracts/security/ReentrancyGuardUpgradeable.sol index 6a5164607..fba58dfdf 100644 --- a/contracts/security/ReentrancyGuardUpgradeable.sol +++ b/contracts/security/ReentrancyGuardUpgradeable.sol @@ -65,5 +65,11 @@ abstract contract ReentrancyGuardUpgradeable is Initializable { // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/token/ERC1155/ERC1155Upgradeable.sol b/contracts/token/ERC1155/ERC1155Upgradeable.sol index 12f047b9e..40417d143 100644 --- a/contracts/token/ERC1155/ERC1155Upgradeable.sol +++ b/contracts/token/ERC1155/ERC1155Upgradeable.sol @@ -34,8 +34,6 @@ contract ERC1155Upgradeable is Initializable, ContextUpgradeable, ERC165Upgradea * @dev See {_setURI}. */ function __ERC1155_init(string memory uri_) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __ERC1155_init_unchained(uri_); } @@ -468,5 +466,11 @@ contract ERC1155Upgradeable is Initializable, ContextUpgradeable, ERC165Upgradea return array; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[47] private __gap; } diff --git a/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol b/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol index 1355698a2..94147dcc4 100644 --- a/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol +++ b/contracts/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol @@ -14,9 +14,6 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC1155BurnableUpgradeable is Initializable, ERC1155Upgradeable { function __ERC1155Burnable_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __ERC1155Burnable_init_unchained(); } function __ERC1155Burnable_init_unchained() internal onlyInitializing { @@ -46,5 +43,11 @@ abstract contract ERC1155BurnableUpgradeable is Initializable, ERC1155Upgradeabl _burnBatch(account, ids, values); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC1155/extensions/ERC1155PausableUpgradeable.sol b/contracts/token/ERC1155/extensions/ERC1155PausableUpgradeable.sol index 5e6deeb43..d98158be0 100644 --- a/contracts/token/ERC1155/extensions/ERC1155PausableUpgradeable.sol +++ b/contracts/token/ERC1155/extensions/ERC1155PausableUpgradeable.sol @@ -18,10 +18,7 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC1155PausableUpgradeable is Initializable, ERC1155Upgradeable, PausableUpgradeable { function __ERC1155Pausable_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __Pausable_init_unchained(); - __ERC1155Pausable_init_unchained(); } function __ERC1155Pausable_init_unchained() internal onlyInitializing { @@ -45,5 +42,11 @@ abstract contract ERC1155PausableUpgradeable is Initializable, ERC1155Upgradeabl require(!paused(), "ERC1155Pausable: token transfer while paused"); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol b/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol index e5adc8b5c..6a3e9b646 100644 --- a/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol +++ b/contracts/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol @@ -16,9 +16,6 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC1155SupplyUpgradeable is Initializable, ERC1155Upgradeable { function __ERC1155Supply_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __ERC1155Supply_init_unchained(); } function __ERC1155Supply_init_unchained() internal onlyInitializing { @@ -64,5 +61,11 @@ abstract contract ERC1155SupplyUpgradeable is Initializable, ERC1155Upgradeable } } } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/token/ERC1155/presets/ERC1155PresetMinterPauserUpgradeable.sol b/contracts/token/ERC1155/presets/ERC1155PresetMinterPauserUpgradeable.sol index 0e57d54f7..31b551dac 100644 --- a/contracts/token/ERC1155/presets/ERC1155PresetMinterPauserUpgradeable.sol +++ b/contracts/token/ERC1155/presets/ERC1155PresetMinterPauserUpgradeable.sol @@ -38,14 +38,8 @@ contract ERC1155PresetMinterPauserUpgradeable is Initializable, ContextUpgradeab * deploys the contract. */ function __ERC1155PresetMinterPauser_init(string memory uri) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __AccessControl_init_unchained(); - __AccessControlEnumerable_init_unchained(); __ERC1155_init_unchained(uri); - __ERC1155Burnable_init_unchained(); __Pausable_init_unchained(); - __ERC1155Pausable_init_unchained(); __ERC1155PresetMinterPauser_init_unchained(uri); } @@ -141,5 +135,11 @@ contract ERC1155PresetMinterPauserUpgradeable is Initializable, ContextUpgradeab ) internal virtual override(ERC1155Upgradeable, ERC1155PausableUpgradeable) { super._beforeTokenTransfer(operator, from, to, ids, amounts, data); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol b/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol index bb8c6fe4c..fccc34678 100644 --- a/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol +++ b/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol @@ -16,9 +16,6 @@ import "../../../proxy/utils/Initializable.sol"; */ contract ERC1155HolderUpgradeable is Initializable, ERC1155ReceiverUpgradeable { function __ERC1155Holder_init() internal onlyInitializing { - __ERC165_init_unchained(); - __ERC1155Receiver_init_unchained(); - __ERC1155Holder_init_unchained(); } function __ERC1155Holder_init_unchained() internal onlyInitializing { @@ -42,5 +39,11 @@ contract ERC1155HolderUpgradeable is Initializable, ERC1155ReceiverUpgradeable { ) public virtual override returns (bytes4) { return this.onERC1155BatchReceived.selector; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC1155/utils/ERC1155ReceiverUpgradeable.sol b/contracts/token/ERC1155/utils/ERC1155ReceiverUpgradeable.sol index 63b39f2a5..1972bdf68 100644 --- a/contracts/token/ERC1155/utils/ERC1155ReceiverUpgradeable.sol +++ b/contracts/token/ERC1155/utils/ERC1155ReceiverUpgradeable.sol @@ -12,8 +12,6 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC1155ReceiverUpgradeable is Initializable, ERC165Upgradeable, IERC1155ReceiverUpgradeable { function __ERC1155Receiver_init() internal onlyInitializing { - __ERC165_init_unchained(); - __ERC1155Receiver_init_unchained(); } function __ERC1155Receiver_init_unchained() internal onlyInitializing { @@ -24,5 +22,11 @@ abstract contract ERC1155ReceiverUpgradeable is Initializable, ERC165Upgradeable function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165Upgradeable, IERC165Upgradeable) returns (bool) { return interfaceId == type(IERC1155ReceiverUpgradeable).interfaceId || super.supportsInterface(interfaceId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC20/ERC20Upgradeable.sol b/contracts/token/ERC20/ERC20Upgradeable.sol index 43f39abf1..9340555c8 100644 --- a/contracts/token/ERC20/ERC20Upgradeable.sol +++ b/contracts/token/ERC20/ERC20Upgradeable.sol @@ -53,7 +53,6 @@ contract ERC20Upgradeable is Initializable, ContextUpgradeable, IERC20Upgradeabl * construction. */ function __ERC20_init(string memory name_, string memory symbol_) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name_, symbol_); } @@ -367,5 +366,11 @@ contract ERC20Upgradeable is Initializable, ContextUpgradeable, IERC20Upgradeabl address to, uint256 amount ) internal virtual {} + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[45] private __gap; } diff --git a/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol b/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol index 047a976eb..c40c0b6d3 100644 --- a/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol +++ b/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol @@ -14,8 +14,6 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC20BurnableUpgradeable is Initializable, ContextUpgradeable, ERC20Upgradeable { function __ERC20Burnable_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC20Burnable_init_unchained(); } function __ERC20Burnable_init_unchained() internal onlyInitializing { @@ -48,5 +46,11 @@ abstract contract ERC20BurnableUpgradeable is Initializable, ContextUpgradeable, } _burn(account, amount); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC20/extensions/ERC20CappedUpgradeable.sol b/contracts/token/ERC20/extensions/ERC20CappedUpgradeable.sol index 91313d675..195046b05 100644 --- a/contracts/token/ERC20/extensions/ERC20CappedUpgradeable.sol +++ b/contracts/token/ERC20/extensions/ERC20CappedUpgradeable.sol @@ -17,7 +17,6 @@ abstract contract ERC20CappedUpgradeable is Initializable, ERC20Upgradeable { * set once during construction. */ function __ERC20Capped_init(uint256 cap_) internal onlyInitializing { - __Context_init_unchained(); __ERC20Capped_init_unchained(cap_); } @@ -40,5 +39,11 @@ abstract contract ERC20CappedUpgradeable is Initializable, ERC20Upgradeable { require(ERC20Upgradeable.totalSupply() + amount <= cap(), "ERC20Capped: cap exceeded"); super._mint(account, amount); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC20/extensions/ERC20FlashMintUpgradeable.sol b/contracts/token/ERC20/extensions/ERC20FlashMintUpgradeable.sol index f60620292..f76155d3e 100644 --- a/contracts/token/ERC20/extensions/ERC20FlashMintUpgradeable.sol +++ b/contracts/token/ERC20/extensions/ERC20FlashMintUpgradeable.sol @@ -18,8 +18,6 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC20FlashMintUpgradeable is Initializable, ERC20Upgradeable, IERC3156FlashLenderUpgradeable { function __ERC20FlashMint_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC20FlashMint_init_unchained(); } function __ERC20FlashMint_init_unchained() internal onlyInitializing { @@ -83,5 +81,11 @@ abstract contract ERC20FlashMintUpgradeable is Initializable, ERC20Upgradeable, _burn(address(receiver), amount + fee); return true; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC20/extensions/ERC20PausableUpgradeable.sol b/contracts/token/ERC20/extensions/ERC20PausableUpgradeable.sol index b0c44f363..0de587076 100644 --- a/contracts/token/ERC20/extensions/ERC20PausableUpgradeable.sol +++ b/contracts/token/ERC20/extensions/ERC20PausableUpgradeable.sol @@ -16,9 +16,7 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC20PausableUpgradeable is Initializable, ERC20Upgradeable, PausableUpgradeable { function __ERC20Pausable_init() internal onlyInitializing { - __Context_init_unchained(); __Pausable_init_unchained(); - __ERC20Pausable_init_unchained(); } function __ERC20Pausable_init_unchained() internal onlyInitializing { @@ -39,5 +37,11 @@ abstract contract ERC20PausableUpgradeable is Initializable, ERC20Upgradeable, P require(!paused(), "ERC20Pausable: token transfer while paused"); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC20/extensions/ERC20SnapshotUpgradeable.sol b/contracts/token/ERC20/extensions/ERC20SnapshotUpgradeable.sol index 200324c01..23d764f66 100644 --- a/contracts/token/ERC20/extensions/ERC20SnapshotUpgradeable.sol +++ b/contracts/token/ERC20/extensions/ERC20SnapshotUpgradeable.sol @@ -42,8 +42,6 @@ import "../../../proxy/utils/Initializable.sol"; abstract contract ERC20SnapshotUpgradeable is Initializable, ERC20Upgradeable { function __ERC20Snapshot_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC20Snapshot_init_unchained(); } function __ERC20Snapshot_init_unchained() internal onlyInitializing { @@ -200,5 +198,11 @@ abstract contract ERC20SnapshotUpgradeable is Initializable, ERC20Upgradeable { return ids[ids.length - 1]; } } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[46] private __gap; } diff --git a/contracts/token/ERC20/extensions/ERC20VotesCompUpgradeable.sol b/contracts/token/ERC20/extensions/ERC20VotesCompUpgradeable.sol index 647d1a66b..c80af3aa7 100644 --- a/contracts/token/ERC20/extensions/ERC20VotesCompUpgradeable.sol +++ b/contracts/token/ERC20/extensions/ERC20VotesCompUpgradeable.sol @@ -24,6 +24,9 @@ import "../../../proxy/utils/Initializable.sol"; * _Available since v4.2._ */ abstract contract ERC20VotesCompUpgradeable is Initializable, ERC20VotesUpgradeable { + function __ERC20VotesComp_init() internal onlyInitializing { + } + function __ERC20VotesComp_init_unchained() internal onlyInitializing { } /** @@ -46,5 +49,11 @@ abstract contract ERC20VotesCompUpgradeable is Initializable, ERC20VotesUpgradea function _maxSupply() internal view virtual override returns (uint224) { return type(uint96).max; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC20/extensions/ERC20VotesUpgradeable.sol b/contracts/token/ERC20/extensions/ERC20VotesUpgradeable.sol index c4cc48028..1b2190556 100644 --- a/contracts/token/ERC20/extensions/ERC20VotesUpgradeable.sol +++ b/contracts/token/ERC20/extensions/ERC20VotesUpgradeable.sol @@ -26,6 +26,9 @@ import "../../../proxy/utils/Initializable.sol"; * _Available since v4.2._ */ abstract contract ERC20VotesUpgradeable is Initializable, IVotesUpgradeable, ERC20PermitUpgradeable { + function __ERC20Votes_init() internal onlyInitializing { + } + function __ERC20Votes_init_unchained() internal onlyInitializing { } struct Checkpoint { @@ -249,5 +252,11 @@ abstract contract ERC20VotesUpgradeable is Initializable, IVotesUpgradeable, ERC function _subtract(uint256 a, uint256 b) private pure returns (uint256) { return a - b; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[47] private __gap; } diff --git a/contracts/token/ERC20/extensions/ERC20WrapperUpgradeable.sol b/contracts/token/ERC20/extensions/ERC20WrapperUpgradeable.sol index 99274d865..3dda5c28f 100644 --- a/contracts/token/ERC20/extensions/ERC20WrapperUpgradeable.sol +++ b/contracts/token/ERC20/extensions/ERC20WrapperUpgradeable.sol @@ -20,7 +20,6 @@ abstract contract ERC20WrapperUpgradeable is Initializable, ERC20Upgradeable { IERC20Upgradeable public underlying; function __ERC20Wrapper_init(IERC20Upgradeable underlyingToken) internal onlyInitializing { - __Context_init_unchained(); __ERC20Wrapper_init_unchained(underlyingToken); } @@ -55,5 +54,11 @@ abstract contract ERC20WrapperUpgradeable is Initializable, ERC20Upgradeable { _mint(account, value); return value; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC20/extensions/draft-ERC20PermitUpgradeable.sol b/contracts/token/ERC20/extensions/draft-ERC20PermitUpgradeable.sol index e42908d03..2bac94043 100644 --- a/contracts/token/ERC20/extensions/draft-ERC20PermitUpgradeable.sol +++ b/contracts/token/ERC20/extensions/draft-ERC20PermitUpgradeable.sol @@ -34,7 +34,6 @@ abstract contract ERC20PermitUpgradeable is Initializable, ERC20Upgradeable, IER * It's a good idea to use the same `name` that is defined as the ERC20 token name. */ function __ERC20Permit_init(string memory name) internal onlyInitializing { - __Context_init_unchained(); __EIP712_init_unchained(name, "1"); __ERC20Permit_init_unchained(name); } @@ -91,5 +90,11 @@ abstract contract ERC20PermitUpgradeable is Initializable, ERC20Upgradeable, IER current = nonce.current(); nonce.increment(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/token/ERC20/presets/ERC20PresetFixedSupplyUpgradeable.sol b/contracts/token/ERC20/presets/ERC20PresetFixedSupplyUpgradeable.sol index ddec50acc..8fafe159f 100644 --- a/contracts/token/ERC20/presets/ERC20PresetFixedSupplyUpgradeable.sol +++ b/contracts/token/ERC20/presets/ERC20PresetFixedSupplyUpgradeable.sol @@ -39,9 +39,7 @@ contract ERC20PresetFixedSupplyUpgradeable is Initializable, ERC20BurnableUpgrad uint256 initialSupply, address owner ) internal onlyInitializing { - __Context_init_unchained(); __ERC20_init_unchained(name, symbol); - __ERC20Burnable_init_unchained(); __ERC20PresetFixedSupply_init_unchained(name, symbol, initialSupply, owner); } @@ -53,5 +51,11 @@ contract ERC20PresetFixedSupplyUpgradeable is Initializable, ERC20BurnableUpgrad ) internal onlyInitializing { _mint(owner, initialSupply); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC20/presets/ERC20PresetMinterPauserUpgradeable.sol b/contracts/token/ERC20/presets/ERC20PresetMinterPauserUpgradeable.sol index d787a6e5a..c6eb9224e 100644 --- a/contracts/token/ERC20/presets/ERC20PresetMinterPauserUpgradeable.sol +++ b/contracts/token/ERC20/presets/ERC20PresetMinterPauserUpgradeable.sol @@ -40,14 +40,8 @@ contract ERC20PresetMinterPauserUpgradeable is Initializable, ContextUpgradeable * See {ERC20-constructor}. */ function __ERC20PresetMinterPauser_init(string memory name, string memory symbol) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __AccessControl_init_unchained(); - __AccessControlEnumerable_init_unchained(); __ERC20_init_unchained(name, symbol); - __ERC20Burnable_init_unchained(); __Pausable_init_unchained(); - __ERC20Pausable_init_unchained(); __ERC20PresetMinterPauser_init_unchained(name, symbol); } @@ -107,5 +101,11 @@ contract ERC20PresetMinterPauserUpgradeable is Initializable, ContextUpgradeable ) internal virtual override(ERC20Upgradeable, ERC20PausableUpgradeable) { super._beforeTokenTransfer(from, to, amount); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC20/utils/TokenTimelockUpgradeable.sol b/contracts/token/ERC20/utils/TokenTimelockUpgradeable.sol index 778d0f3a2..3ae5a93c3 100644 --- a/contracts/token/ERC20/utils/TokenTimelockUpgradeable.sol +++ b/contracts/token/ERC20/utils/TokenTimelockUpgradeable.sol @@ -82,5 +82,11 @@ contract TokenTimelockUpgradeable is Initializable { token().safeTransfer(beneficiary(), amount); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC721/ERC721Upgradeable.sol b/contracts/token/ERC721/ERC721Upgradeable.sol index dc19c0d25..08f7e755b 100644 --- a/contracts/token/ERC721/ERC721Upgradeable.sol +++ b/contracts/token/ERC721/ERC721Upgradeable.sol @@ -43,8 +43,6 @@ contract ERC721Upgradeable is Initializable, ContextUpgradeable, ERC165Upgradeab * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection. */ function __ERC721_init(string memory name_, string memory symbol_) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __ERC721_init_unchained(name_, symbol_); } @@ -451,5 +449,11 @@ contract ERC721Upgradeable is Initializable, ContextUpgradeable, ERC165Upgradeab address to, uint256 tokenId ) internal virtual {} + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[44] private __gap; } diff --git a/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol b/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol index 306d9b6ed..0c3f057de 100644 --- a/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol +++ b/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol @@ -13,9 +13,6 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC721BurnableUpgradeable is Initializable, ContextUpgradeable, ERC721Upgradeable { function __ERC721Burnable_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __ERC721Burnable_init_unchained(); } function __ERC721Burnable_init_unchained() internal onlyInitializing { @@ -32,5 +29,11 @@ abstract contract ERC721BurnableUpgradeable is Initializable, ContextUpgradeable require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721Burnable: caller is not owner nor approved"); _burn(tokenId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol b/contracts/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol index 31e097f85..7ecd0ac7f 100644 --- a/contracts/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol +++ b/contracts/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol @@ -14,9 +14,6 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC721EnumerableUpgradeable is Initializable, ERC721Upgradeable, IERC721EnumerableUpgradeable { function __ERC721Enumerable_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __ERC721Enumerable_init_unchained(); } function __ERC721Enumerable_init_unchained() internal onlyInitializing { @@ -169,5 +166,11 @@ abstract contract ERC721EnumerableUpgradeable is Initializable, ERC721Upgradeabl delete _allTokensIndex[tokenId]; _allTokens.pop(); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[46] private __gap; } diff --git a/contracts/token/ERC721/extensions/ERC721PausableUpgradeable.sol b/contracts/token/ERC721/extensions/ERC721PausableUpgradeable.sol index 38aa0c0fc..39845b53b 100644 --- a/contracts/token/ERC721/extensions/ERC721PausableUpgradeable.sol +++ b/contracts/token/ERC721/extensions/ERC721PausableUpgradeable.sol @@ -16,10 +16,7 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC721PausableUpgradeable is Initializable, ERC721Upgradeable, PausableUpgradeable { function __ERC721Pausable_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); __Pausable_init_unchained(); - __ERC721Pausable_init_unchained(); } function __ERC721Pausable_init_unchained() internal onlyInitializing { @@ -40,5 +37,11 @@ abstract contract ERC721PausableUpgradeable is Initializable, ERC721Upgradeable, require(!paused(), "ERC721Pausable: token transfer while paused"); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC721/extensions/ERC721RoyaltyUpgradeable.sol b/contracts/token/ERC721/extensions/ERC721RoyaltyUpgradeable.sol index 2d83d6369..30fc35432 100644 --- a/contracts/token/ERC721/extensions/ERC721RoyaltyUpgradeable.sol +++ b/contracts/token/ERC721/extensions/ERC721RoyaltyUpgradeable.sol @@ -23,10 +23,6 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC721RoyaltyUpgradeable is Initializable, ERC2981Upgradeable, ERC721Upgradeable { function __ERC721Royalty_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __ERC2981_init_unchained(); - __ERC721Royalty_init_unchained(); } function __ERC721Royalty_init_unchained() internal onlyInitializing { @@ -45,5 +41,11 @@ abstract contract ERC721RoyaltyUpgradeable is Initializable, ERC2981Upgradeable, super._burn(tokenId); _resetTokenRoyalty(tokenId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol b/contracts/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol index babdbad69..0d9193135 100644 --- a/contracts/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol +++ b/contracts/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol @@ -11,9 +11,6 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC721URIStorageUpgradeable is Initializable, ERC721Upgradeable { function __ERC721URIStorage_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __ERC721URIStorage_init_unchained(); } function __ERC721URIStorage_init_unchained() internal onlyInitializing { @@ -73,5 +70,11 @@ abstract contract ERC721URIStorageUpgradeable is Initializable, ERC721Upgradeabl delete _tokenURIs[tokenId]; } } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/token/ERC721/extensions/draft-ERC721VotesUpgradeable.sol b/contracts/token/ERC721/extensions/draft-ERC721VotesUpgradeable.sol index f49cc6d63..d1fc6ce81 100644 --- a/contracts/token/ERC721/extensions/draft-ERC721VotesUpgradeable.sol +++ b/contracts/token/ERC721/extensions/draft-ERC721VotesUpgradeable.sol @@ -19,10 +19,6 @@ import "../../../proxy/utils/Initializable.sol"; */ abstract contract ERC721VotesUpgradeable is Initializable, ERC721Upgradeable, VotesUpgradeable { function __ERC721Votes_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __Votes_init_unchained(); - __ERC721Votes_init_unchained(); } function __ERC721Votes_init_unchained() internal onlyInitializing { @@ -47,5 +43,11 @@ abstract contract ERC721VotesUpgradeable is Initializable, ERC721Upgradeable, Vo function _getVotingUnits(address account) internal virtual override returns (uint256) { return balanceOf(account); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoIdUpgradeable.sol b/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoIdUpgradeable.sol index c45dc3f38..dbaac35a5 100644 --- a/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoIdUpgradeable.sol +++ b/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoIdUpgradeable.sol @@ -64,15 +64,8 @@ contract ERC721PresetMinterPauserAutoIdUpgradeable is string memory symbol, string memory baseTokenURI ) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __AccessControl_init_unchained(); - __AccessControlEnumerable_init_unchained(); __ERC721_init_unchained(name, symbol); - __ERC721Enumerable_init_unchained(); - __ERC721Burnable_init_unchained(); __Pausable_init_unchained(); - __ERC721Pausable_init_unchained(); __ERC721PresetMinterPauserAutoId_init_unchained(name, symbol, baseTokenURI); } @@ -161,5 +154,11 @@ contract ERC721PresetMinterPauserAutoIdUpgradeable is { return super.supportsInterface(interfaceId); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } diff --git a/contracts/token/ERC721/utils/ERC721HolderUpgradeable.sol b/contracts/token/ERC721/utils/ERC721HolderUpgradeable.sol index 52c3db039..fcc8e50a7 100644 --- a/contracts/token/ERC721/utils/ERC721HolderUpgradeable.sol +++ b/contracts/token/ERC721/utils/ERC721HolderUpgradeable.sol @@ -14,7 +14,6 @@ import "../../../proxy/utils/Initializable.sol"; */ contract ERC721HolderUpgradeable is Initializable, IERC721ReceiverUpgradeable { function __ERC721Holder_init() internal onlyInitializing { - __ERC721Holder_init_unchained(); } function __ERC721Holder_init_unchained() internal onlyInitializing { @@ -32,5 +31,11 @@ contract ERC721HolderUpgradeable is Initializable, IERC721ReceiverUpgradeable { ) public virtual override returns (bytes4) { return this.onERC721Received.selector; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/ERC777/ERC777Upgradeable.sol b/contracts/token/ERC777/ERC777Upgradeable.sol index 8c1298ec5..6ce5edb7d 100644 --- a/contracts/token/ERC777/ERC777Upgradeable.sol +++ b/contracts/token/ERC777/ERC777Upgradeable.sol @@ -63,7 +63,6 @@ contract ERC777Upgradeable is Initializable, ContextUpgradeable, IERC777Upgradea string memory symbol_, address[] memory defaultOperators_ ) internal onlyInitializing { - __Context_init_unchained(); __ERC777_init_unchained(name_, symbol_, defaultOperators_); } @@ -556,5 +555,11 @@ contract ERC777Upgradeable is Initializable, ContextUpgradeable, IERC777Upgradea address to, uint256 amount ) internal virtual {} + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[41] private __gap; } diff --git a/contracts/token/ERC777/presets/ERC777PresetFixedSupplyUpgradeable.sol b/contracts/token/ERC777/presets/ERC777PresetFixedSupplyUpgradeable.sol index 3f56a2ad6..806a1319f 100644 --- a/contracts/token/ERC777/presets/ERC777PresetFixedSupplyUpgradeable.sol +++ b/contracts/token/ERC777/presets/ERC777PresetFixedSupplyUpgradeable.sol @@ -35,7 +35,6 @@ contract ERC777PresetFixedSupplyUpgradeable is Initializable, ERC777Upgradeable uint256 initialSupply, address owner ) internal onlyInitializing { - __Context_init_unchained(); __ERC777_init_unchained(name, symbol, defaultOperators); __ERC777PresetFixedSupply_init_unchained(name, symbol, defaultOperators, initialSupply, owner); } @@ -49,5 +48,11 @@ contract ERC777PresetFixedSupplyUpgradeable is Initializable, ERC777Upgradeable ) internal onlyInitializing { _mint(owner, initialSupply, "", ""); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/token/common/ERC2981Upgradeable.sol b/contracts/token/common/ERC2981Upgradeable.sol index ab26ded76..17e0865e8 100644 --- a/contracts/token/common/ERC2981Upgradeable.sol +++ b/contracts/token/common/ERC2981Upgradeable.sol @@ -24,8 +24,6 @@ import "../../proxy/utils/Initializable.sol"; */ abstract contract ERC2981Upgradeable is Initializable, IERC2981Upgradeable, ERC165Upgradeable { function __ERC2981_init() internal onlyInitializing { - __ERC165_init_unchained(); - __ERC2981_init_unchained(); } function __ERC2981_init_unchained() internal onlyInitializing { @@ -117,5 +115,11 @@ abstract contract ERC2981Upgradeable is Initializable, IERC2981Upgradeable, ERC1 function _resetTokenRoyalty(uint256 tokenId) internal virtual { delete _tokenRoyaltyInfo[tokenId]; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[48] private __gap; } diff --git a/contracts/utils/ContextUpgradeable.sol b/contracts/utils/ContextUpgradeable.sol index 045bc52d4..d41cc6080 100644 --- a/contracts/utils/ContextUpgradeable.sol +++ b/contracts/utils/ContextUpgradeable.sol @@ -16,7 +16,6 @@ import "../proxy/utils/Initializable.sol"; */ abstract contract ContextUpgradeable is Initializable { function __Context_init() internal onlyInitializing { - __Context_init_unchained(); } function __Context_init_unchained() internal onlyInitializing { @@ -28,5 +27,11 @@ abstract contract ContextUpgradeable is Initializable { function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/utils/MulticallUpgradeable.sol b/contracts/utils/MulticallUpgradeable.sol index feeffcafc..3a424044b 100644 --- a/contracts/utils/MulticallUpgradeable.sol +++ b/contracts/utils/MulticallUpgradeable.sol @@ -13,7 +13,6 @@ import "../proxy/utils/Initializable.sol"; */ abstract contract MulticallUpgradeable is Initializable { function __Multicall_init() internal onlyInitializing { - __Multicall_init_unchained(); } function __Multicall_init_unchained() internal onlyInitializing { @@ -42,5 +41,11 @@ abstract contract MulticallUpgradeable is Initializable { (bool success, bytes memory returndata) = target.delegatecall(data); return AddressUpgradeable.verifyCallResult(success, returndata, "Address: low-level delegate call failed"); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/utils/cryptography/SignatureCheckerUpgradeable.sol b/contracts/utils/cryptography/SignatureCheckerUpgradeable.sol index 69e958272..6f6e7ef31 100644 --- a/contracts/utils/cryptography/SignatureCheckerUpgradeable.sol +++ b/contracts/utils/cryptography/SignatureCheckerUpgradeable.sol @@ -8,16 +8,20 @@ import "../AddressUpgradeable.sol"; import "../../interfaces/IERC1271Upgradeable.sol"; /** - * @dev Signature verification helper: Provide a single mechanism to verify both private-key (EOA) ECDSA signature and - * ERC1271 contract signatures. Using this instead of ECDSA.recover in your contract will make them compatible with - * smart contract wallets such as Argent and Gnosis. - * - * Note: unlike ECDSA signatures, contract signature's are revocable, and the outcome of this function can thus change - * through time. It could return true at block N and false at block N+1 (or the opposite). + * @dev Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA + * signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like + * Argent and Gnosis Safe. * * _Available since v4.1._ */ library SignatureCheckerUpgradeable { + /** + * @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the + * signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECDSA.recover`. + * + * NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus + * change through time. It could return true at block N and false at block N+1 (or the opposite). + */ function isValidSignatureNow( address signer, bytes32 hash, diff --git a/contracts/utils/cryptography/draft-EIP712Upgradeable.sol b/contracts/utils/cryptography/draft-EIP712Upgradeable.sol index 083b89b05..e339a8da9 100644 --- a/contracts/utils/cryptography/draft-EIP712Upgradeable.sol +++ b/contracts/utils/cryptography/draft-EIP712Upgradeable.sol @@ -109,5 +109,11 @@ abstract contract EIP712Upgradeable is Initializable { function _EIP712VersionHash() internal virtual view returns (bytes32) { return _HASHED_VERSION; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/utils/escrow/ConditionalEscrowUpgradeable.sol b/contracts/utils/escrow/ConditionalEscrowUpgradeable.sol index a06ec7495..e683ba37e 100644 --- a/contracts/utils/escrow/ConditionalEscrowUpgradeable.sol +++ b/contracts/utils/escrow/ConditionalEscrowUpgradeable.sol @@ -13,10 +13,7 @@ import "../../proxy/utils/Initializable.sol"; */ abstract contract ConditionalEscrowUpgradeable is Initializable, EscrowUpgradeable { function __ConditionalEscrow_init() internal onlyInitializing { - __Context_init_unchained(); __Ownable_init_unchained(); - __Escrow_init_unchained(); - __ConditionalEscrow_init_unchained(); } function __ConditionalEscrow_init_unchained() internal onlyInitializing { @@ -32,5 +29,11 @@ abstract contract ConditionalEscrowUpgradeable is Initializable, EscrowUpgradeab require(withdrawalAllowed(payee), "ConditionalEscrow: payee is not allowed to withdraw"); super.withdraw(payee); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/utils/escrow/EscrowUpgradeable.sol b/contracts/utils/escrow/EscrowUpgradeable.sol index 27a08a0f9..cf16043f3 100644 --- a/contracts/utils/escrow/EscrowUpgradeable.sol +++ b/contracts/utils/escrow/EscrowUpgradeable.sol @@ -25,9 +25,7 @@ contract EscrowUpgradeable is Initializable, OwnableUpgradeable { __Escrow_init(); } function __Escrow_init() internal onlyInitializing { - __Context_init_unchained(); __Ownable_init_unchained(); - __Escrow_init_unchained(); } function __Escrow_init_unchained() internal onlyInitializing { @@ -72,5 +70,11 @@ contract EscrowUpgradeable is Initializable, OwnableUpgradeable { emit Withdrawn(payee, payment); } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/utils/escrow/RefundEscrowUpgradeable.sol b/contracts/utils/escrow/RefundEscrowUpgradeable.sol index 594969599..9b25eb607 100644 --- a/contracts/utils/escrow/RefundEscrowUpgradeable.sol +++ b/contracts/utils/escrow/RefundEscrowUpgradeable.sol @@ -36,10 +36,7 @@ contract RefundEscrowUpgradeable is Initializable, ConditionalEscrowUpgradeable * @param beneficiary_ The beneficiary of the deposits. */ function __RefundEscrow_init(address payable beneficiary_) internal onlyInitializing { - __Context_init_unchained(); __Ownable_init_unchained(); - __Escrow_init_unchained(); - __ConditionalEscrow_init_unchained(); __RefundEscrow_init_unchained(beneficiary_); } @@ -106,5 +103,11 @@ contract RefundEscrowUpgradeable is Initializable, ConditionalEscrowUpgradeable function withdrawalAllowed(address) public view override returns (bool) { return state() == State.Refunding; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/utils/introspection/ERC165StorageUpgradeable.sol b/contracts/utils/introspection/ERC165StorageUpgradeable.sol index ad74fc200..0293750b7 100644 --- a/contracts/utils/introspection/ERC165StorageUpgradeable.sol +++ b/contracts/utils/introspection/ERC165StorageUpgradeable.sol @@ -14,8 +14,6 @@ import "../../proxy/utils/Initializable.sol"; */ abstract contract ERC165StorageUpgradeable is Initializable, ERC165Upgradeable { function __ERC165Storage_init() internal onlyInitializing { - __ERC165_init_unchained(); - __ERC165Storage_init_unchained(); } function __ERC165Storage_init_unchained() internal onlyInitializing { @@ -47,5 +45,11 @@ abstract contract ERC165StorageUpgradeable is Initializable, ERC165Upgradeable { require(interfaceId != 0xffffffff, "ERC165: invalid interface id"); _supportedInterfaces[interfaceId] = true; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/contracts/utils/introspection/ERC165Upgradeable.sol b/contracts/utils/introspection/ERC165Upgradeable.sol index d73a81ca2..70ed8196b 100644 --- a/contracts/utils/introspection/ERC165Upgradeable.sol +++ b/contracts/utils/introspection/ERC165Upgradeable.sol @@ -22,7 +22,6 @@ import "../../proxy/utils/Initializable.sol"; */ abstract contract ERC165Upgradeable is Initializable, IERC165Upgradeable { function __ERC165_init() internal onlyInitializing { - __ERC165_init_unchained(); } function __ERC165_init_unchained() internal onlyInitializing { @@ -33,5 +32,11 @@ abstract contract ERC165Upgradeable is Initializable, IERC165Upgradeable { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165Upgradeable).interfaceId; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[50] private __gap; } diff --git a/contracts/utils/introspection/ERC1820ImplementerUpgradeable.sol b/contracts/utils/introspection/ERC1820ImplementerUpgradeable.sol index 78843c904..a5b775bd1 100644 --- a/contracts/utils/introspection/ERC1820ImplementerUpgradeable.sol +++ b/contracts/utils/introspection/ERC1820ImplementerUpgradeable.sol @@ -16,7 +16,6 @@ import "../../proxy/utils/Initializable.sol"; */ contract ERC1820ImplementerUpgradeable is Initializable, IERC1820ImplementerUpgradeable { function __ERC1820Implementer_init() internal onlyInitializing { - __ERC1820Implementer_init_unchained(); } function __ERC1820Implementer_init_unchained() internal onlyInitializing { @@ -48,5 +47,11 @@ contract ERC1820ImplementerUpgradeable is Initializable, IERC1820ImplementerUpgr function _registerInterfaceForAddress(bytes32 interfaceHash, address account) internal virtual { _supportedInterfaces[interfaceHash][account] = true; } + + /** + * This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ uint256[49] private __gap; } diff --git a/scripts/update-docs-branch.js b/scripts/update-docs-branch.js index 9a99b5c9a..82bb7e060 100644 --- a/scripts/update-docs-branch.js +++ b/scripts/update-docs-branch.js @@ -5,16 +5,16 @@ const tryRead = cmd => { try { return read(cmd); } catch (e) { return undefined; const releaseBranchRegex = /^release-v(?(?\d+)\.(?\d+)(?:\.(?\d+))?)$/; -const currentBranch = read(`git rev-parse --abbrev-ref HEAD`); +const currentBranch = read('git rev-parse --abbrev-ref HEAD'); const match = currentBranch.match(releaseBranchRegex); if (!match) { - console.error(`Not currently on a release branch`); + console.error('Not currently on a release branch'); process.exit(1); } if (/-.*$/.test(require('../package.json').version)) { - console.error(`Refusing to update docs: prerelease detected`); + console.error('Refusing to update docs: prerelease detected'); process.exit(0); } @@ -22,7 +22,7 @@ const current = match.groups; const docsBranch = `docs-v${current.major}.x`; // Fetch remotes and find the docs branch if it exists -run(`git fetch --all --no-tags`); +run('git fetch --all --no-tags'); const matchingDocsBranches = tryRead(`git rev-parse --glob='*/${docsBranch}'`); if (!matchingDocsBranches) { @@ -32,24 +32,24 @@ if (!matchingDocsBranches) { const [publishedRef, ...others] = new Set(matchingDocsBranches.split('\n')); if (others.length > 0) { console.error( - `Found conflicting ${docsBranch} branches.\n` - + `Either local branch is outdated or there are multiple matching remote branches.` + `Found conflicting ${docsBranch} branches.\n` + + 'Either local branch is outdated or there are multiple matching remote branches.', ); process.exit(1); } const publishedVersion = JSON.parse(read(`git show ${publishedRef}:package.json`)).version; const publishedMinor = publishedVersion.match(/\d+\.(?\d+)\.\d+/).groups.minor; if (current.minor < publishedMinor) { - console.error(`Refusing to update docs: newer version is published`); + console.error('Refusing to update docs: newer version is published'); process.exit(0); } - run(`git checkout --quiet --detach`); + run('git checkout --quiet --detach'); run(`git reset --soft ${publishedRef}`); run(`git checkout ${docsBranch}`); } -run(`npm run prepare-docs`); -run(`git add -f docs`); // --force needed because generated docs files are gitignored -run(`git commit -m "Update docs"`); +run('npm run prepare-docs'); +run('git add -f docs'); // --force needed because generated docs files are gitignored +run('git commit -m "Update docs"'); run(`git checkout ${currentBranch}`); diff --git a/scripts/upgradeable/patch/02-add-missing-mock-arguments.patch b/scripts/upgradeable/patch/02-add-missing-mock-arguments.patch index 900f824e7..74fc7bdb2 100644 --- a/scripts/upgradeable/patch/02-add-missing-mock-arguments.patch +++ b/scripts/upgradeable/patch/02-add-missing-mock-arguments.patch @@ -1,13 +1,13 @@ diff --git a/contracts/mocks/MulticallTokenMockUpgradeable.sol b/contracts/mocks/MulticallTokenMockUpgradeable.sol -index d06c8722..6211da1f 100644 +index 7bd4ae88..7be0c4ff 100644 --- a/contracts/mocks/MulticallTokenMockUpgradeable.sol +++ b/contracts/mocks/MulticallTokenMockUpgradeable.sol -@@ -9,7 +9,7 @@ import "../proxy/utils/Initializable.sol"; +@@ -8,7 +8,7 @@ import "../proxy/utils/Initializable.sol"; + contract MulticallTokenMockUpgradeable is Initializable, ERC20MockUpgradeable, MulticallUpgradeable { function __MulticallTokenMock_init(uint256 initialBalance) internal onlyInitializing { - __Context_init_unchained(); - __ERC20_init_unchained(name, symbol); + __ERC20_init_unchained("MulticallToken", "BCT"); __ERC20Mock_init_unchained("MulticallToken", "BCT", msg.sender, initialBalance); - __Multicall_init_unchained(); - __MulticallTokenMock_init_unchained(initialBalance); + } + diff --git a/scripts/upgradeable/patch/03-remove-erc20votes-chained-init.patch b/scripts/upgradeable/patch/03-remove-erc20votes-chained-init.patch deleted file mode 100644 index b0df26948..000000000 --- a/scripts/upgradeable/patch/03-remove-erc20votes-chained-init.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/contracts/token/ERC20/extensions/ERC20VotesUpgradeable.sol b/contracts/token/ERC20/extensions/ERC20VotesUpgradeable.sol -index a7a9af54..0b7f838d 100644 ---- a/contracts/token/ERC20/extensions/ERC20VotesUpgradeable.sol -+++ b/contracts/token/ERC20/extensions/ERC20VotesUpgradeable.sol -@@ -24,12 +24,6 @@ import "../../../proxy/utils/Initializable.sol"; - * _Available since v4.2._ - */ - abstract contract ERC20VotesUpgradeable is Initializable, IVotesUpgradeable, ERC20PermitUpgradeable { -- function __ERC20Votes_init() internal onlyInitializing { -- __Context_init_unchained(); -- __EIP712_init_unchained(name, "1"); -- __ERC20Votes_init_unchained(); -- } -- - function __ERC20Votes_init_unchained() internal onlyInitializing { - } - struct Checkpoint { diff --git a/scripts/upgradeable/patch/04-remove-erc20votes-comp-chained-init.patch b/scripts/upgradeable/patch/04-remove-erc20votes-comp-chained-init.patch deleted file mode 100644 index a7a67db6c..000000000 --- a/scripts/upgradeable/patch/04-remove-erc20votes-comp-chained-init.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/contracts/token/ERC20/extensions/ERC20VotesCompUpgradeable.sol b/contracts/token/ERC20/extensions/ERC20VotesCompUpgradeable.sol -index 6f1f8182..0f09ea48 100644 ---- a/contracts/token/ERC20/extensions/ERC20VotesCompUpgradeable.sol -+++ b/contracts/token/ERC20/extensions/ERC20VotesCompUpgradeable.sol -@@ -25,13 +25,6 @@ import "../../../proxy/utils/Initializable.sol"; - * _Available since v4.2._ - */ - abstract contract ERC20VotesCompUpgradeable is Initializable, ERC20VotesUpgradeable { -- function __ERC20VotesComp_init() internal onlyInitializing { -- __Context_init_unchained(); -- __EIP712_init_unchained(name, "1"); -- __ERC20Votes_init_unchained(); -- __ERC20VotesComp_init_unchained(); -- } -- - function __ERC20VotesComp_init_unchained() internal onlyInitializing { - } - /** diff --git a/scripts/upgradeable/patch/05-fix-governor-initializers.patch b/scripts/upgradeable/patch/05-fix-governor-initializers.patch index cf25f3c1f..f0e98f4b2 100644 --- a/scripts/upgradeable/patch/05-fix-governor-initializers.patch +++ b/scripts/upgradeable/patch/05-fix-governor-initializers.patch @@ -1,159 +1,39 @@ -diff --git a/contracts/governance/compatibility/GovernorCompatibilityBravoUpgradeable.sol b/contracts/governance/compatibility/GovernorCompatibilityBravoUpgradeable.sol -index 1f6895a6..86518b84 100644 ---- a/contracts/governance/compatibility/GovernorCompatibilityBravoUpgradeable.sol -+++ b/contracts/governance/compatibility/GovernorCompatibilityBravoUpgradeable.sol -@@ -21,7 +21,6 @@ abstract contract GovernorCompatibilityBravoUpgradeable is Initializable, IGover - function __GovernorCompatibilityBravo_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); -- __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); - __IGovernorCompatibilityBravo_init_unchained(); -diff --git a/contracts/governance/extensions/GovernorCountingSimpleUpgradeable.sol b/contracts/governance/extensions/GovernorCountingSimpleUpgradeable.sol -index 4873166b..6a88e6b4 100644 ---- a/contracts/governance/extensions/GovernorCountingSimpleUpgradeable.sol -+++ b/contracts/governance/extensions/GovernorCountingSimpleUpgradeable.sol -@@ -14,7 +14,6 @@ abstract contract GovernorCountingSimpleUpgradeable is Initializable, GovernorUp - function __GovernorCountingSimple_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); -- __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __GovernorCountingSimple_init_unchained(); - } -diff --git a/contracts/governance/extensions/GovernorTimelockCompoundUpgradeable.sol b/contracts/governance/extensions/GovernorTimelockCompoundUpgradeable.sol -index c6ed355a..9236c546 100644 ---- a/contracts/governance/extensions/GovernorTimelockCompoundUpgradeable.sol -+++ b/contracts/governance/extensions/GovernorTimelockCompoundUpgradeable.sol -@@ -96,7 +96,6 @@ abstract contract GovernorTimelockCompoundUpgradeable is Initializable, IGoverno - function __GovernorTimelockCompound_init(ICompoundTimelockUpgradeable timelockAddress) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); -- __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); - __GovernorTimelockCompound_init_unchained(timelockAddress); -diff --git a/contracts/governance/extensions/GovernorTimelockControlUpgradeable.sol b/contracts/governance/extensions/GovernorTimelockControlUpgradeable.sol -index 3d6a5de5..ad5f505e 100644 ---- a/contracts/governance/extensions/GovernorTimelockControlUpgradeable.sol -+++ b/contracts/governance/extensions/GovernorTimelockControlUpgradeable.sol -@@ -33,7 +33,6 @@ abstract contract GovernorTimelockControlUpgradeable is Initializable, IGovernor - function __GovernorTimelockControl_init(TimelockControllerUpgradeable timelockAddress) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); -- __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); - __GovernorTimelockControl_init_unchained(timelockAddress); -diff --git a/contracts/governance/extensions/GovernorVotesCompUpgradeable.sol b/contracts/governance/extensions/GovernorVotesCompUpgradeable.sol -index cc83b3ed..5398f15b 100644 ---- a/contracts/governance/extensions/GovernorVotesCompUpgradeable.sol -+++ b/contracts/governance/extensions/GovernorVotesCompUpgradeable.sol -@@ -17,7 +17,6 @@ abstract contract GovernorVotesCompUpgradeable is Initializable, GovernorUpgrade - function __GovernorVotesComp_init(ERC20VotesCompUpgradeable token_) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); -- __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __GovernorVotesComp_init_unchained(token_); - } -diff --git a/contracts/governance/extensions/GovernorVotesQuorumFractionUpgradeable.sol b/contracts/governance/extensions/GovernorVotesQuorumFractionUpgradeable.sol -index 5d7a88bc..39f97903 100644 ---- a/contracts/governance/extensions/GovernorVotesQuorumFractionUpgradeable.sol -+++ b/contracts/governance/extensions/GovernorVotesQuorumFractionUpgradeable.sol -@@ -19,7 +19,6 @@ abstract contract GovernorVotesQuorumFractionUpgradeable is Initializable, Gover - function __GovernorVotesQuorumFraction_init(uint256 quorumNumeratorValue) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); -- __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __GovernorVotesQuorumFraction_init_unchained(quorumNumeratorValue); - } -diff --git a/contracts/governance/extensions/GovernorVotesUpgradeable.sol b/contracts/governance/extensions/GovernorVotesUpgradeable.sol -index cdfd0ae7..48408d9c 100644 ---- a/contracts/governance/extensions/GovernorVotesUpgradeable.sol -+++ b/contracts/governance/extensions/GovernorVotesUpgradeable.sol -@@ -18,7 +18,6 @@ abstract contract GovernorVotesUpgradeable is Initializable, GovernorUpgradeable - function __GovernorVotes_init(IVotesUpgradeable tokenAddress) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); -- __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __GovernorVotes_init_unchained(tokenAddress); - } -diff --git a/contracts/governance/extensions/GovernorProposalThresholdUpgradeable.sol b/contracts/governance/extensions/GovernorProposalThresholdUpgradeable.sol -index c66ebc16..3bba9501 100644 ---- a/contracts/governance/extensions/GovernorProposalThresholdUpgradeable.sol -+++ b/contracts/governance/extensions/GovernorProposalThresholdUpgradeable.sol -@@ -14,7 +14,6 @@ abstract contract GovernorProposalThresholdUpgradeable is Initializable, Governo - function __GovernorProposalThreshold_init() internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); -- __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __GovernorProposalThreshold_init_unchained(); - } -diff --git a/contracts/governance/extensions/GovernorSettingsUpgradeable.sol b/contracts/governance/extensions/GovernorSettingsUpgradeable.sol -index fbbb5ec1..06e8b9dd 100644 ---- a/contracts/governance/extensions/GovernorSettingsUpgradeable.sol -+++ b/contracts/governance/extensions/GovernorSettingsUpgradeable.sol -@@ -30,7 +30,6 @@ abstract contract GovernorSettingsUpgradeable is Initializable, GovernorUpgradea - ) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); -- __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __GovernorSettings_init_unchained(initialVotingDelay, initialVotingPeriod, initialProposalThreshold); - } diff --git a/contracts/mocks/wizard/MyGovernor1Upgradeable.sol b/contracts/mocks/wizard/MyGovernor1Upgradeable.sol -index df6ccdaf..db9998ed 100644 +index 66662e9e..c53c6479 100644 --- a/contracts/mocks/wizard/MyGovernor1Upgradeable.sol +++ b/contracts/mocks/wizard/MyGovernor1Upgradeable.sol -@@ -18,7 +18,7 @@ contract MyGovernor1Upgradeable is +@@ -16,7 +16,7 @@ contract MyGovernor1Upgradeable is + GovernorCountingSimpleUpgradeable + { function __MyGovernor1_init(IVotesUpgradeable _token, TimelockControllerUpgradeable _timelock) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __EIP712_init_unchained(name_, version()); + __EIP712_init_unchained("MyGovernor", version()); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); __Governor_init_unchained("MyGovernor"); + __GovernorTimelockControl_init_unchained(_timelock); + __GovernorVotes_init_unchained(_token); diff --git a/contracts/mocks/wizard/MyGovernor2Upgradeable.sol b/contracts/mocks/wizard/MyGovernor2Upgradeable.sol -index b07261a4..4ec9b6ce 100644 +index 63bc024c..0f854226 100644 --- a/contracts/mocks/wizard/MyGovernor2Upgradeable.sol +++ b/contracts/mocks/wizard/MyGovernor2Upgradeable.sol -@@ -20,7 +20,7 @@ contract MyGovernor2Upgradeable is +@@ -18,7 +18,7 @@ contract MyGovernor2Upgradeable is + GovernorCountingSimpleUpgradeable + { function __MyGovernor2_init(IVotesUpgradeable _token, TimelockControllerUpgradeable _timelock) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __EIP712_init_unchained(name_, version()); + __EIP712_init_unchained("MyGovernor", version()); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); __Governor_init_unchained("MyGovernor"); + __GovernorTimelockControl_init_unchained(_timelock); + __GovernorVotes_init_unchained(_token); diff --git a/contracts/mocks/wizard/MyGovernor3Upgradeable.sol b/contracts/mocks/wizard/MyGovernor3Upgradeable.sol -index 223ccb94..e05b6ce7 100644 +index 27a8411c..2f59b8e5 100644 --- a/contracts/mocks/wizard/MyGovernor3Upgradeable.sol +++ b/contracts/mocks/wizard/MyGovernor3Upgradeable.sol -@@ -18,7 +18,7 @@ contract MyGovernorUpgradeable is +@@ -16,7 +16,7 @@ contract MyGovernorUpgradeable is + GovernorVotesQuorumFractionUpgradeable + { function __MyGovernor_init(IVotesUpgradeable _token, TimelockControllerUpgradeable _timelock) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); - __EIP712_init_unchained(name_, version()); + __EIP712_init_unchained("MyGovernor", version()); - __IGovernor_init_unchained(); - __IGovernorTimelock_init_unchained(); - __IGovernorCompatibilityBravo_init_unchained(); -diff --git a/contracts/governance/extensions/GovernorPreventLateQuorumUpgradeable.sol b/contracts/governance/extensions/GovernorPreventLateQuorumUpgradeable.sol -index 9b48de71..c28f3b50 100644 ---- a/contracts/governance/extensions/GovernorPreventLateQuorumUpgradeable.sol -+++ b/contracts/governance/extensions/GovernorPreventLateQuorumUpgradeable.sol -@@ -38,7 +38,6 @@ abstract contract GovernorPreventLateQuorumUpgradeable is Initializable, Governo - function __GovernorPreventLateQuorum_init(uint64 initialVoteExtension) internal onlyInitializing { - __Context_init_unchained(); - __ERC165_init_unchained(); -- __EIP712_init_unchained(name_, version()); - __IGovernor_init_unchained(); - __GovernorPreventLateQuorum_init_unchained(initialVoteExtension); - } + __Governor_init_unchained("MyGovernor"); + __GovernorTimelockControl_init_unchained(_timelock); + __GovernorVotes_init_unchained(_token);