Răsfoiți Sursa

Release v5.0.0 (rc) (#4614)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
github-actions[bot] 2 ani în urmă
părinte
comite
b55b47d421
100 a modificat fișierele cu 262 adăugiri și 88 ștergeri
  1. 78 1
      .changeset/pre.json
  2. 86 1
      CHANGELOG.md
  3. 1 1
      contracts/access/AccessControl.sol
  4. 1 1
      contracts/access/IAccessControl.sol
  5. 1 1
      contracts/access/Ownable.sol
  6. 1 1
      contracts/access/Ownable2Step.sol
  7. 1 1
      contracts/access/extensions/AccessControlDefaultAdminRules.sol
  8. 1 1
      contracts/access/extensions/AccessControlEnumerable.sol
  9. 1 1
      contracts/access/extensions/IAccessControlDefaultAdminRules.sol
  10. 1 1
      contracts/access/extensions/IAccessControlEnumerable.sol
  11. 1 0
      contracts/access/manager/AccessManaged.sol
  12. 1 0
      contracts/access/manager/AccessManager.sol
  13. 1 0
      contracts/access/manager/AuthorityUtils.sol
  14. 1 0
      contracts/access/manager/IAccessManaged.sol
  15. 1 0
      contracts/access/manager/IAccessManager.sol
  16. 1 0
      contracts/access/manager/IAuthority.sol
  17. 1 1
      contracts/finance/VestingWallet.sol
  18. 1 1
      contracts/governance/Governor.sol
  19. 1 1
      contracts/governance/IGovernor.sol
  20. 1 1
      contracts/governance/TimelockController.sol
  21. 1 1
      contracts/governance/extensions/GovernorCountingSimple.sol
  22. 1 1
      contracts/governance/extensions/GovernorPreventLateQuorum.sol
  23. 1 1
      contracts/governance/extensions/GovernorSettings.sol
  24. 1 0
      contracts/governance/extensions/GovernorStorage.sol
  25. 1 0
      contracts/governance/extensions/GovernorTimelockAccess.sol
  26. 1 1
      contracts/governance/extensions/GovernorTimelockCompound.sol
  27. 1 1
      contracts/governance/extensions/GovernorTimelockControl.sol
  28. 1 1
      contracts/governance/extensions/GovernorVotes.sol
  29. 1 1
      contracts/governance/extensions/GovernorVotesQuorumFraction.sol
  30. 1 1
      contracts/governance/utils/IVotes.sol
  31. 1 1
      contracts/governance/utils/Votes.sol
  32. 1 1
      contracts/interfaces/IERC1155.sol
  33. 1 1
      contracts/interfaces/IERC1155MetadataURI.sol
  34. 1 1
      contracts/interfaces/IERC1155Receiver.sol
  35. 1 1
      contracts/interfaces/IERC1271.sol
  36. 1 1
      contracts/interfaces/IERC1363.sol
  37. 1 1
      contracts/interfaces/IERC1363Receiver.sol
  38. 1 1
      contracts/interfaces/IERC1363Spender.sol
  39. 1 1
      contracts/interfaces/IERC165.sol
  40. 1 1
      contracts/interfaces/IERC1820Implementer.sol
  41. 1 1
      contracts/interfaces/IERC1820Registry.sol
  42. 1 1
      contracts/interfaces/IERC1967.sol
  43. 1 1
      contracts/interfaces/IERC20.sol
  44. 1 1
      contracts/interfaces/IERC20Metadata.sol
  45. 1 1
      contracts/interfaces/IERC2309.sol
  46. 1 1
      contracts/interfaces/IERC2612.sol
  47. 1 1
      contracts/interfaces/IERC2981.sol
  48. 1 1
      contracts/interfaces/IERC3156.sol
  49. 1 1
      contracts/interfaces/IERC3156FlashBorrower.sol
  50. 1 1
      contracts/interfaces/IERC3156FlashLender.sol
  51. 1 1
      contracts/interfaces/IERC4626.sol
  52. 1 1
      contracts/interfaces/IERC4906.sol
  53. 1 1
      contracts/interfaces/IERC5267.sol
  54. 1 1
      contracts/interfaces/IERC5313.sol
  55. 1 1
      contracts/interfaces/IERC5805.sol
  56. 1 1
      contracts/interfaces/IERC6372.sol
  57. 1 1
      contracts/interfaces/IERC721.sol
  58. 1 1
      contracts/interfaces/IERC721Enumerable.sol
  59. 1 1
      contracts/interfaces/IERC721Metadata.sol
  60. 1 1
      contracts/interfaces/IERC721Receiver.sol
  61. 1 0
      contracts/interfaces/IERC777.sol
  62. 1 0
      contracts/interfaces/IERC777Recipient.sol
  63. 1 0
      contracts/interfaces/IERC777Sender.sol
  64. 1 1
      contracts/interfaces/draft-IERC1822.sol
  65. 1 0
      contracts/interfaces/draft-IERC6093.sol
  66. 1 1
      contracts/metatx/ERC2771Context.sol
  67. 1 1
      contracts/metatx/ERC2771Forwarder.sol
  68. 1 1
      contracts/package.json
  69. 1 1
      contracts/proxy/Clones.sol
  70. 1 1
      contracts/proxy/ERC1967/ERC1967Proxy.sol
  71. 1 1
      contracts/proxy/ERC1967/ERC1967Utils.sol
  72. 1 1
      contracts/proxy/Proxy.sol
  73. 1 1
      contracts/proxy/beacon/BeaconProxy.sol
  74. 1 1
      contracts/proxy/beacon/IBeacon.sol
  75. 1 1
      contracts/proxy/beacon/UpgradeableBeacon.sol
  76. 1 1
      contracts/proxy/transparent/ProxyAdmin.sol
  77. 1 1
      contracts/proxy/transparent/TransparentUpgradeableProxy.sol
  78. 1 1
      contracts/proxy/utils/Initializable.sol
  79. 1 1
      contracts/proxy/utils/UUPSUpgradeable.sol
  80. 1 1
      contracts/token/ERC1155/ERC1155.sol
  81. 1 1
      contracts/token/ERC1155/IERC1155.sol
  82. 1 1
      contracts/token/ERC1155/IERC1155Receiver.sol
  83. 1 1
      contracts/token/ERC1155/extensions/ERC1155Burnable.sol
  84. 1 1
      contracts/token/ERC1155/extensions/ERC1155Pausable.sol
  85. 1 1
      contracts/token/ERC1155/extensions/ERC1155Supply.sol
  86. 1 1
      contracts/token/ERC1155/extensions/ERC1155URIStorage.sol
  87. 1 1
      contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol
  88. 1 1
      contracts/token/ERC1155/utils/ERC1155Holder.sol
  89. 1 1
      contracts/token/ERC20/ERC20.sol
  90. 1 1
      contracts/token/ERC20/IERC20.sol
  91. 1 1
      contracts/token/ERC20/extensions/ERC20Burnable.sol
  92. 1 1
      contracts/token/ERC20/extensions/ERC20Capped.sol
  93. 1 1
      contracts/token/ERC20/extensions/ERC20FlashMint.sol
  94. 1 1
      contracts/token/ERC20/extensions/ERC20Pausable.sol
  95. 1 1
      contracts/token/ERC20/extensions/ERC20Permit.sol
  96. 1 1
      contracts/token/ERC20/extensions/ERC20Votes.sol
  97. 1 1
      contracts/token/ERC20/extensions/ERC20Wrapper.sol
  98. 1 1
      contracts/token/ERC20/extensions/ERC4626.sol
  99. 1 1
      contracts/token/ERC20/extensions/IERC20Metadata.sol
  100. 1 1
      contracts/token/ERC20/extensions/IERC20Permit.sol

+ 78 - 1
.changeset/pre.json

@@ -4,5 +4,82 @@
   "initialVersions": {
     "openzeppelin-solidity": "4.9.2"
   },
-  "changesets": []
+  "changesets": [
+    "afraid-walls-smell",
+    "angry-ties-switch",
+    "big-plums-cover",
+    "blue-horses-do",
+    "blue-scissors-design",
+    "brave-lobsters-punch",
+    "bright-tomatoes-sing",
+    "chilled-spiders-attack",
+    "clever-bats-kick",
+    "clever-pumas-beg",
+    "eight-peaches-guess",
+    "eighty-crabs-listen",
+    "eighty-lemons-shake",
+    "empty-cheetahs-hunt",
+    "empty-taxis-kiss",
+    "fair-humans-peel",
+    "fifty-owls-retire",
+    "flat-bottles-wonder",
+    "fluffy-countries-buy",
+    "four-adults-knock",
+    "fresh-birds-kiss",
+    "green-pumpkins-end",
+    "grumpy-bulldogs-call",
+    "grumpy-worms-tease",
+    "happy-falcons-walk",
+    "healthy-gorillas-applaud",
+    "heavy-drinks-fail",
+    "hip-beds-provide",
+    "hip-goats-fail",
+    "hot-coins-judge",
+    "hot-dingos-kiss",
+    "hot-plums-approve",
+    "large-humans-remain",
+    "lazy-rice-joke",
+    "little-falcons-build",
+    "loud-shrimps-play",
+    "lovely-geckos-hide",
+    "mean-walls-watch",
+    "mighty-donuts-smile",
+    "orange-apes-draw",
+    "pink-suns-mix",
+    "popular-deers-raise",
+    "proud-seals-complain",
+    "proud-spiders-attend",
+    "purple-cats-cheer",
+    "quiet-trainers-kick",
+    "red-dots-fold",
+    "rotten-insects-wash",
+    "serious-books-lie",
+    "short-eels-enjoy",
+    "silly-bees-beam",
+    "six-frogs-turn",
+    "sixty-numbers-reply",
+    "slimy-penguins-attack",
+    "smooth-books-wink",
+    "smooth-cougars-jump",
+    "spicy-sheep-eat",
+    "spotty-hotels-type",
+    "strong-poems-thank",
+    "swift-bags-divide",
+    "swift-numbers-cry",
+    "tasty-tomatoes-turn",
+    "tender-shirts-turn",
+    "thick-pumpkins-exercise",
+    "thin-camels-matter",
+    "tough-drinks-hammer",
+    "two-wasps-punch",
+    "unlucky-beans-obey",
+    "violet-dancers-cough",
+    "violet-melons-press",
+    "warm-guests-rule",
+    "wet-bears-heal",
+    "wild-beds-visit",
+    "wild-peas-remain",
+    "wild-rockets-rush",
+    "wild-windows-trade"
+  ]
 }

+ 86 - 1
CHANGELOG.md

@@ -1,5 +1,90 @@
 # Changelog
 
+
+## 5.0.0-rc.0 (2023-09-19)
+
+- `ERC1155Receiver`: Removed in favor of `ERC1155Holder`. ([#4450](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4450))
+- `TimelockController`: Changed the role architecture to use `DEFAULT_ADMIN_ROLE` as the admin for all roles, instead of the bespoke `TIMELOCK_ADMIN_ROLE` that was used previously. This aligns with the general recommendation for `AccessControl` and makes the addition of new roles easier. Accordingly, the `admin` parameter and timelock will now be granted `DEFAULT_ADMIN_ROLE` instead of `TIMELOCK_ADMIN_ROLE`. ([#3799](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3799))
+
+- Use `abi.encodeCall` in place of `abi.encodeWithSelector` and `abi.encodeWithSignature` for improved type-checking of parameters ([#4293](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4293))
+- `ERC2771Forwarder`: Added `deadline` for expiring transactions, batching, and more secure handling of `msg.value`. ([#4346](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4346))
+- `Governor`: Refactored internals to implement common queuing logic in the core module of the Governor. Added `queue` and `_queueOperations` functions that act at different levels. Modules that implement queuing via timelocks are expected to override `_queueOperations` to implement the timelock-specific logic. Added `_executeOperations` as the equivalent for execution. ([#4360](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4360))
+- `ERC20`, `ERC721`, `ERC1155`: Deleted `_beforeTokenTransfer` and `_afterTokenTransfer` hooks, added a new internal `_update` function for customizations, and refactored all extensions using those hooks to use `_update` instead. ([#3838](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3838), [#3876](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3876), [#4377](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4377))
+
+- `ERC1155Supply`: add a `totalSupply()` function that returns the total amount of token circulating, this change will restrict the total tokens minted across all ids to 2\*\*256-1 . ([#3962](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3962))
+- `Ownable`: Add an `initialOwner` parameter to the constructor, making the ownership initialization explicit. ([#4267](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4267))
+- `ERC721`: `_approve` no longer allows approving the owner of the tokenId. `_setApprovalForAll` no longer allows setting address(0) as an operator. ([#4377](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4377))
+- `ERC721URIStorage`: Allow setting the token URI prior to minting. ([#4559](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4559))
+- `UUPSUpgradeable`, `TransparentUpgradeableProxy` and `ProxyAdmin`: Removed `upgradeTo` and `upgrade` functions, and made `upgradeToAndCall` and `upgradeAndCall` ignore the data argument if it is empty. It is no longer possible to invoke the receive function (or send value with empty data) along with an upgrade. ([#4382](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4382))
+- `ERC721URIStorage`, `ERC721Royalty`: Stop resetting token-specific URI and royalties when burning. ([#4561](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4561))
+- `Address`: Removed the ability to customize error messages. A common custom error is always used if the underlying revert reason cannot be bubbled up. ([#4502](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4502))
+- `Checkpoints`: library moved from `utils` to `utils/structs` ([#4275](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4275))
+- `SafeERC20`: Removed `safePermit` in favor of documentation-only `permit` recommendations. ([#4582](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4582))
+- `Governor`: Optimized use of storage for proposal data ([#4268](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4268))
+- `ERC1967Utils`: Refactor the `ERC1967Upgrade` abstract contract as a library. ([#4325](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4325))
+- `TransparentUpgradeableProxy`: Admin is now stored in an immutable variable (set during construction) to avoid unnecessary storage reads on every proxy call. This removed the ability to ever change the admin. Transfer of the upgrade capability is exclusively handled through the ownership of the `ProxyAdmin`. ([#4354](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4354))
+- `VestingWallet`: Use `Ownable` instead of an immutable `beneficiary`. ([#4508](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4508))
+- `ERC20`: Remove `Approval` event previously emitted in `transferFrom` to indicate that part of the allowance was consumed. With this change, allowances are no longer reconstructible from events. See the code for guidelines on how to re-enable this event if needed. ([#4370](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4370))
+- Move the logic to validate ERC-1822 during an upgrade from `ERC1967Utils` to `UUPSUpgradeable`. ([#4356](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4356))
+- `MessageHashUtils`: Add a new library for creating message digest to be used along with signing or recovery such as ECDSA or ERC-1271. These functions are moved from the `ECDSA` library. ([#4430](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4430))
+- Replace revert strings and require statements with custom errors. ([#4261](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4261))
+- `Nonces`: Added a new contract to keep track of user nonces. Used for signatures in `ERC20Permit`, `ERC20Votes`, and `ERC721Votes`. ([#3816](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3816))
+
+- Switched to using explicit Solidity import statements. Some previously available symbols may now have to be separately imported. ([#4399](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4399))
+- `Governor`: Add support for casting votes with ERC-1271 signatures by using a `bytes memory signature` instead of `r`, `s` and `v` arguments in the `castVoteBySig` and `castVoteWithReasonAndParamsBySig` functions. ([#4418](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4418))
+- `ERC721`: Renamed `_requireMinted` to `_requireOwned` and added a return value with the current owner. Implemented `ownerOf` in terms of `_requireOwned`. ([#4566](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4566))
+- `GovernorTimelockControl`: Add the Governor instance address as part of the TimelockController operation `salt` to avoid operation id collisions between governors using the same TimelockController.
+- Overrides are now used internally for a number of functions that were previously hardcoded to their default implementation in certain locations: `ERC1155Supply.totalSupply`, `ERC721.ownerOf`, `ERC721.balanceOf` and `ERC721.totalSupply` in `ERC721Enumerable`, `ERC20.totalSupply` in `ERC20FlashMint`, and `ERC1967._getImplementation` in `ERC1967Proxy`. ([#4299](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4299))
+- `ProxyAdmin`: Removed `getProxyAdmin` and `getProxyImplementation` getters. ([#3820](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3820))
+
+- Bump minimum compiler version required to 0.8.20 ([#4288](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4288))
+- `ERC20Votes`: Changed internal vote accounting to reusable `Votes` module previously used by `ERC721Votes`. Removed implicit `ERC20Permit` inheritance. Note that the `DOMAIN_SEPARATOR` getter was previously guaranteed to be available for `ERC20Votes` contracts, but is no longer available unless `ERC20Permit` is explicitly used; ERC-5267 support is included in `ERC20Votes` with `EIP712` and is recommended as an alternative. ([#3816](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3816))
+- `ERC20`: Remove the non-standard `increaseAllowance` and `decreaseAllowance` functions. ([#4585](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4585))
+- `Governor`: Add `voter` and `nonce` parameters in signed ballots, to avoid forging signatures for random addresses, prevent signature replay, and allow invalidating signatures. Add `voter` as a new parameter in the `castVoteBySig` and `castVoteWithReasonAndParamsBySig` functions. ([#4378](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4378))
+- `TransparentUpgradeableProxy`: Removed `admin` and `implementation` getters, which were only callable by the proxy owner and thus not very useful. ([#3820](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3820))
+
+- `ERC1155`: Remove check for address zero in `balanceOf`. ([#4263](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4263))
+- `ReentrancyGuard`, `Pausable`: Moved to `utils` directory. ([#4551](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4551))
+- `access`: Move `AccessControl` extensions to a dedicated directory. ([#4359](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4359))
+- `DoubleEndedQueue`: refactor internal structure to use `uint128` instead of `int128`. This has no effect on the library interface. ([#4150](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4150))
+- `Strings`: Rename `toString(int256)` to `toStringSigned(int256)`. ([#4330](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4330))
+- `BeaconProxy`: Reject value in initialization unless a payable function is explicitly invoked. ([#4382](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4382))
+- `Initializable`: Use the namespaced storage pattern to avoid putting critical variables in slot 0. Allow reinitializer versions greater than 256. ([#4460](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4460))
+- `GovernorTimelockAccess`: Added a module to connect a governor with an instance of `AccessManager`, allowing the governor to make calls that are delay-restricted by the manager using the normal `queue` workflow. ([#4523](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4523))
+- Upgradeable contracts now use namespaced storage (EIP-7201). ([#4534](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4534))
+- `GovernorStorage`: Added a new governor extension that stores the proposal details in storage, with an interface that operates on `proposalId`, as well as proposal enumerability. This replaces the old `GovernorCompatibilityBravo` module. ([#4360](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4360))
+- `Votes`: Use Trace208 for checkpoints. This enables EIP-6372 clock support for keys but reduces the max supported voting power to uint208. ([#4539](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4539))
+- `Math`: Renamed members of `Rounding` enum, and added a new rounding mode for "away from zero". ([#4455](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4455))
+- `SafeERC20`: Refactor `safeDecreaseAllowance` and `safeIncreaseAllowance` to support USDT-like tokens. ([#4260](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4260))
+- `Math`: Make `ceilDiv` to revert on 0 division even if the numerator is 0 ([#4348](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4348))
+- `Proxy`: Removed redundant `receive` function. ([#4434](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4434))
+- Replace some uses of `abi.encodePacked` with clearer alternatives (e.g. `bytes.concat`, `string.concat`). (#4504)[https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4504] ([#4296](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4296))
+- `Arrays`: Optimize `findUpperBound` by removing redundant SLOAD. ([#4442](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4442))
+- `Arrays`: Add `unsafeMemoryAccess` helpers to read from a memory array without checking the length. ([#4300](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4300))
+- `GovernorTimelockControl`: Clean up timelock id on execution for gas refund. ([#4118](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4118))
+- `Initializable`: Use intermediate variables to improve readability. ([#4576](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4576))
+- `EIP712`: Add internal getters for the name and version strings ([#4303](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4303))
+- `TimelockController`: Add a state getter that returns an `OperationState` enum. ([#4358](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4358))
+- `AccessManager`: Added a new contract for managing access control of complex systems in a consolidated location. ([#4121](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4121))
+- `Governor`, `Initializable`, and `UUPSUpgradeable`: Use internal functions in modifiers to optimize bytecode size. ([#4472](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4472))
+- `ERC1155`: Bubble errors triggered in the `onERC1155Received` and `onERC1155BatchReceived` hooks. ([#4314](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4314))
+- `AccessControl`: Add a boolean return value to the internal `_grantRole` and `_revokeRole` functions indicating whether the role was granted or revoked. ([#4241](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4241))
+- Remove the `override` specifier from functions that only override a single interface function. ([#4315](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4315))
+- `Ownable`: Prevent using address(0) as the initial owner. ([#4531](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4531))
+- Optimize `Strings.equal` ([#4262](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4262))
+- `ECDSA`: Use unchecked arithmetic for the `tryRecover` function that receives the `r` and `vs` short-signature fields separately. ([#4301](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4301))
+- `VestingWallet`: Fix revert during 1 second time window when duration is 0. ([#4502](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4502))
+- `MerkleProof`: Use custom error to report invalid multiproof instead of reverting with overflow panic. ([#4564](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4564))
+- `Governor`: Add validation in ERC1155 and ERC721 receiver hooks to ensure Governor is the executor. ([#4314](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4314))
+- `Math`: Optimized stack operations in `mulDiv`. ([#4494](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4494))
+- `BeaconProxy`: Use an immutable variable to store the address of the beacon. It is no longer possible for a `BeaconProxy` to upgrade by changing to another beacon. ([#4435](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4435))
+- `ERC1155`: Optimize array allocation. ([#4196](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4196))
+- `ERC721Consecutive`: Add a `_firstConsecutiveId` internal function that can be overridden to change the id of the first token minted through `_mintConsecutive`. ([#4097](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4097))
+- `Governor`: Add a mechanism to restrict the address of the proposer using a suffix in the description.
+- `ERC1155`: Optimize array accesses by skipping bounds checking when unnecessary. ([#4300](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4300))
+- `ERC2771Context`: Return the forwarder address whenever the `msg.data` of a call originating from a trusted forwarder is not long enough to contain the request signer address (i.e. `msg.data.length` is less than 20 bytes), as specified by ERC-2771. ([#4481](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4481))
+- `ERC2771Context`: Prevent revert in `_msgData()` when a call originating from a trusted forwarder is not long enough to contain the request signer address (i.e. `msg.data.length` is less than 20 bytes). Return the full calldata in that case. ([#4484](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4484))
+
 ## Unreleased
 
 > **Warning** Version 5.0 is under active development and should not be used. Install the releases from npm or use the version tags in the repository.
@@ -71,7 +156,7 @@ Users that were registering EIP-165 interfaces with `_registerInterface` from `E
 
 ```solidity
 function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
-    return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
+  return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
 }
 ```
 

+ 1 - 1
contracts/access/AccessControl.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/AccessControl.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/access/IAccessControl.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/IAccessControl.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/access/Ownable.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/Ownable.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/access/Ownable2Step.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/Ownable2Step.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/access/extensions/AccessControlDefaultAdminRules.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControlDefaultAdminRules.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/extensions/AccessControlDefaultAdminRules.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/access/extensions/AccessControlEnumerable.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.5.0) (access/AccessControlEnumerable.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/extensions/AccessControlEnumerable.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/access/extensions/IAccessControlDefaultAdminRules.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (access/IAccessControlDefaultAdminRules.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/extensions/IAccessControlDefaultAdminRules.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/access/extensions/IAccessControlEnumerable.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/extensions/IAccessControlEnumerable.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 0
contracts/access/manager/AccessManaged.sol

@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/manager/AccessManaged.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 0
contracts/access/manager/AccessManager.sol

@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/manager/AccessManager.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 0
contracts/access/manager/AuthorityUtils.sol

@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/manager/AuthorityUtils.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 0
contracts/access/manager/IAccessManaged.sol

@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/manager/IAccessManaged.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 0
contracts/access/manager/IAccessManager.sol

@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/manager/IAccessManager.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 0
contracts/access/manager/IAuthority.sol

@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (access/manager/IAuthority.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/finance/VestingWallet.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (finance/VestingWallet.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (finance/VestingWallet.sol)
 pragma solidity ^0.8.20;
 
 import {IERC20} from "../token/ERC20/IERC20.sol";

+ 1 - 1
contracts/governance/Governor.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.1) (governance/Governor.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/Governor.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/governance/IGovernor.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (governance/IGovernor.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/IGovernor.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/governance/TimelockController.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (governance/TimelockController.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/TimelockController.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/governance/extensions/GovernorCountingSimple.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorCountingSimple.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/extensions/GovernorCountingSimple.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/governance/extensions/GovernorPreventLateQuorum.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorPreventLateQuorum.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/extensions/GovernorPreventLateQuorum.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/governance/extensions/GovernorSettings.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorSettings.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/extensions/GovernorSettings.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 0
contracts/governance/extensions/GovernorStorage.sol

@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/extensions/GovernorStorage.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 0
contracts/governance/extensions/GovernorTimelockAccess.sol

@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/extensions/GovernorTimelockAccess.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/governance/extensions/GovernorTimelockCompound.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorTimelockCompound.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/extensions/GovernorTimelockCompound.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/governance/extensions/GovernorTimelockControl.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorTimelockControl.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/extensions/GovernorTimelockControl.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/governance/extensions/GovernorVotes.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorVotes.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/extensions/GovernorVotes.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/governance/extensions/GovernorVotesQuorumFraction.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (governance/extensions/GovernorVotesQuorumFraction.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/extensions/GovernorVotesQuorumFraction.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/governance/utils/IVotes.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (governance/utils/IVotes.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/utils/IVotes.sol)
 pragma solidity ^0.8.20;
 
 /**

+ 1 - 1
contracts/governance/utils/Votes.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (governance/utils/Votes.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (governance/utils/Votes.sol)
 pragma solidity ^0.8.20;
 
 import {IERC5805} from "../../interfaces/IERC5805.sol";

+ 1 - 1
contracts/interfaces/IERC1155.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC1155.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC1155MetadataURI.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155MetadataURI.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC1155MetadataURI.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC1155Receiver.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1155Receiver.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC1155Receiver.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC1271.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1271.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC1271.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC1363.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1363.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC1363.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC1363Receiver.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1363Receiver.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC1363Receiver.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC1363Spender.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1363Spender.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC1363Spender.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC165.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC165.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC165.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC1820Implementer.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC1820Implementer.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC1820Implementer.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC1820Registry.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.8.0) (utils/introspection/IERC1820Registry.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC1820Registry.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC1967.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1967.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC1967.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC20.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC20.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC20Metadata.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20Metadata.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC20Metadata.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC2309.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.8.0) (interfaces/IERC2309.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC2309.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC2612.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC2612.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC2612.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC2981.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC2981.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC2981.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC3156.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC3156.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC3156.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC3156FlashBorrower.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC3156FlashBorrower.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC3156FlashBorrower.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC3156FlashLender.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC3156FlashLender.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC3156FlashLender.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC4626.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC4626.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC4626.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC4906.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC4906.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC4906.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC5267.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5267.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC5267.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC5313.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5313.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC5313.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC5805.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5805.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC5805.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC6372.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC6372.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC6372.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC721.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC721.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC721Enumerable.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Enumerable.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC721Enumerable.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC721Metadata.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Metadata.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC721Metadata.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/IERC721Receiver.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (interfaces/IERC721Receiver.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC721Receiver.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 0
contracts/interfaces/IERC777.sol

@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC777.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 0
contracts/interfaces/IERC777Recipient.sol

@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC777Recipient.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 0
contracts/interfaces/IERC777Sender.sol

@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/IERC777Sender.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/interfaces/draft-IERC1822.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/draft-IERC1822.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 0
contracts/interfaces/draft-IERC6093.sol

@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: MIT
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (interfaces/draft-IERC6093.sol)
 pragma solidity ^0.8.20;
 
 /**

+ 1 - 1
contracts/metatx/ERC2771Context.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.7.0) (metatx/ERC2771Context.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (metatx/ERC2771Context.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/metatx/ERC2771Forwarder.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (metatx/ERC2771Forwarder.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (metatx/ERC2771Forwarder.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/package.json

@@ -1,7 +1,7 @@
 {
   "name": "@openzeppelin/contracts",
   "description": "Secure Smart Contract library for Solidity",
-  "version": "4.9.2",
+  "version": "5.0.0-rc.0",
   "files": [
     "**/*.sol",
     "/build/contracts/*.json",

+ 1 - 1
contracts/proxy/Clones.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (proxy/Clones.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (proxy/Clones.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/proxy/ERC1967/ERC1967Proxy.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (proxy/ERC1967/ERC1967Proxy.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/proxy/ERC1967/ERC1967Utils.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (proxy/ERC1967/ERC1967Utils.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (proxy/ERC1967/ERC1967Utils.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/proxy/Proxy.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (proxy/Proxy.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/proxy/beacon/BeaconProxy.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.7.0) (proxy/beacon/BeaconProxy.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (proxy/beacon/BeaconProxy.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/proxy/beacon/IBeacon.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (proxy/beacon/IBeacon.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/proxy/beacon/UpgradeableBeacon.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (proxy/beacon/UpgradeableBeacon.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (proxy/beacon/UpgradeableBeacon.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/proxy/transparent/ProxyAdmin.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.8.3) (proxy/transparent/ProxyAdmin.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (proxy/transparent/ProxyAdmin.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/proxy/transparent/TransparentUpgradeableProxy.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (proxy/transparent/TransparentUpgradeableProxy.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (proxy/transparent/TransparentUpgradeableProxy.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/proxy/utils/Initializable.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (proxy/utils/Initializable.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/proxy/utils/UUPSUpgradeable.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/UUPSUpgradeable.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (proxy/utils/UUPSUpgradeable.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC1155/ERC1155.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC1155/ERC1155.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC1155/ERC1155.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC1155/IERC1155.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC1155/IERC1155.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC1155/IERC1155.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC1155/IERC1155Receiver.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC1155/IERC1155Receiver.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC1155/extensions/ERC1155Burnable.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC1155/extensions/ERC1155Burnable.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC1155/extensions/ERC1155Burnable.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC1155/extensions/ERC1155Pausable.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.8.2) (token/ERC1155/extensions/ERC1155Pausable.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC1155/extensions/ERC1155Pausable.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC1155/extensions/ERC1155Supply.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC1155/extensions/ERC1155Supply.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC1155/extensions/ERC1155Supply.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC1155/extensions/ERC1155URIStorage.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC1155/extensions/ERC1155URIStorage.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC1155/extensions/ERC1155URIStorage.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (token/ERC1155/extensions/IERC1155MetadataURI.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC1155/extensions/IERC1155MetadataURI.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC1155/utils/ERC1155Holder.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/utils/ERC1155Holder.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC1155/utils/ERC1155Holder.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC20/ERC20.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC20/ERC20.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC20/IERC20.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC20/IERC20.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC20/extensions/ERC20Burnable.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC20/extensions/ERC20Burnable.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC20/extensions/ERC20Capped.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/ERC20Capped.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC20/extensions/ERC20Capped.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC20/extensions/ERC20FlashMint.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/extensions/ERC20FlashMint.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC20/extensions/ERC20FlashMint.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC20/extensions/ERC20Pausable.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC20Pausable.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC20/extensions/ERC20Pausable.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC20/extensions/ERC20Permit.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC20Permit.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC20/extensions/ERC20Permit.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC20/extensions/ERC20Votes.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC20Votes.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC20/extensions/ERC20Votes.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC20/extensions/ERC20Wrapper.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC20Wrapper.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC20/extensions/ERC20Wrapper.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC20/extensions/ERC4626.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC4626.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC20/extensions/ERC4626.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC20/extensions/IERC20Metadata.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC20/extensions/IERC20Metadata.sol)
 
 pragma solidity ^0.8.20;
 

+ 1 - 1
contracts/token/ERC20/extensions/IERC20Permit.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
-// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/IERC20Permit.sol)
+// OpenZeppelin Contracts (last updated v5.0.0-rc.0) (token/ERC20/extensions/IERC20Permit.sol)
 
 pragma solidity ^0.8.20;
 

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff