Merge release-v5.1 branch (#5266)

Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
Co-authored-by: cairo <cairoeth@protonmail.com>
Co-authored-by: Ernesto García <ernestognw@gmail.com>
Co-authored-by: sudo rm -rf --no-preserve-root / <pcaversaccio@users.noreply.github.com>
Co-authored-by: danilo neves cruz <cruzdanilo@gmail.com>
Co-authored-by: omahs <73983677+omahs@users.noreply.github.com>
Co-authored-by: skyge <1506186404li@gmail.com>
Co-authored-by: PurrProof <149718167+PurrProof@users.noreply.github.com>
Co-authored-by: Eric Lau <ericglau@outlook.com>
Co-authored-by: plooten <sunxingzhecrypto@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Md Zartaj Afser <91191500+Zartaj0@users.noreply.github.com>
pull/5268/head
github-actions[bot] 4 months ago committed by GitHub
parent 3291252c86
commit 0034c30224
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 5
      .changeset/chilled-walls-develop.md
  2. 5
      .changeset/chilly-humans-warn.md
  3. 5
      .changeset/cold-cheetahs-check.md
  4. 5
      .changeset/cool-mangos-compare.md
  5. 5
      .changeset/curvy-crabs-repeat.md
  6. 5
      .changeset/dirty-cobras-smile.md
  7. 5
      .changeset/eight-eyes-burn.md
  8. 5
      .changeset/eleven-planets-relax.md
  9. 5
      .changeset/flat-turtles-repeat.md
  10. 5
      .changeset/fluffy-buses-jump.md
  11. 5
      .changeset/fluffy-steaks-exist.md
  12. 5
      .changeset/forty-dodos-visit.md
  13. 5
      .changeset/friendly-nails-push.md
  14. 5
      .changeset/gentle-bulldogs-turn.md
  15. 5
      .changeset/gorgeous-badgers-vanish.md
  16. 5
      .changeset/great-pianos-work.md
  17. 5
      .changeset/heavy-baboons-give.md
  18. 5
      .changeset/kind-planets-cough.md
  19. 5
      .changeset/light-news-listen.md
  20. 5
      .changeset/lucky-crews-eat.md
  21. 5
      .changeset/nervous-eyes-teach.md
  22. 5
      .changeset/nervous-pans-grow.md
  23. 5
      .changeset/nice-paws-pull.md
  24. 5
      .changeset/odd-files-protect.md
  25. 5
      .changeset/odd-lobsters-wash.md
  26. 5
      .changeset/poor-chefs-cheat.md
  27. 5
      .changeset/serious-carrots-provide.md
  28. 5
      .changeset/shiny-poets-whisper.md
  29. 5
      .changeset/silver-swans-promise.md
  30. 5
      .changeset/smart-bugs-switch.md
  31. 5
      .changeset/spotty-falcons-explain.md
  32. 5
      .changeset/spotty-queens-own.md
  33. 5
      .changeset/strong-singers-talk.md
  34. 5
      .changeset/thick-pumpkins-report.md
  35. 5
      .changeset/thin-walls-drop.md
  36. 5
      .changeset/twenty-feet-grin.md
  37. 5
      .changeset/violet-moons-tell.md
  38. 5
      .changeset/warm-sheep-cover.md
  39. 5
      .changeset/wise-bobcats-speak.md
  40. 5
      .changeset/witty-chicken-smile.md
  41. 5
      .changeset/yellow-deers-walk.md
  42. 5
      .changeset/yellow-moles-hammer.md
  43. 81
      CHANGELOG.md
  44. 2
      contracts/access/IAccessControl.sol
  45. 2
      contracts/access/Ownable2Step.sol
  46. 2
      contracts/access/extensions/AccessControlEnumerable.sol
  47. 2
      contracts/access/extensions/IAccessControlDefaultAdminRules.sol
  48. 2
      contracts/access/extensions/IAccessControlEnumerable.sol
  49. 2
      contracts/access/manager/AccessManaged.sol
  50. 2
      contracts/access/manager/AccessManager.sol
  51. 2
      contracts/access/manager/IAccessManager.sol
  52. 2
      contracts/finance/VestingWallet.sol
  53. 1
      contracts/finance/VestingWalletCliff.sol
  54. 2
      contracts/governance/Governor.sol
  55. 2
      contracts/governance/IGovernor.sol
  56. 1
      contracts/governance/extensions/GovernorCountingFractional.sol
  57. 2
      contracts/governance/extensions/GovernorCountingSimple.sol
  58. 2
      contracts/governance/extensions/GovernorStorage.sol
  59. 2
      contracts/governance/extensions/GovernorTimelockAccess.sol
  60. 2
      contracts/governance/extensions/GovernorTimelockCompound.sol
  61. 2
      contracts/governance/extensions/GovernorTimelockControl.sol
  62. 2
      contracts/governance/extensions/GovernorVotes.sol
  63. 2
      contracts/governance/utils/Votes.sol
  64. 2
      contracts/interfaces/IERC1271.sol
  65. 2
      contracts/interfaces/IERC1363.sol
  66. 2
      contracts/interfaces/IERC1363Receiver.sol
  67. 2
      contracts/interfaces/IERC1363Spender.sol
  68. 2
      contracts/interfaces/IERC1820Implementer.sol
  69. 2
      contracts/interfaces/IERC1820Registry.sol
  70. 2
      contracts/interfaces/IERC2981.sol
  71. 2
      contracts/interfaces/IERC3156FlashBorrower.sol
  72. 2
      contracts/interfaces/IERC3156FlashLender.sol
  73. 2
      contracts/interfaces/IERC4626.sol
  74. 2
      contracts/interfaces/IERC4906.sol
  75. 2
      contracts/interfaces/IERC777.sol
  76. 2
      contracts/interfaces/IERC777Recipient.sol
  77. 2
      contracts/interfaces/IERC777Sender.sol
  78. 2
      contracts/interfaces/draft-IERC1822.sol
  79. 2
      contracts/interfaces/draft-IERC6093.sol
  80. 1
      contracts/interfaces/draft-IERC7674.sol
  81. 2
      contracts/metatx/ERC2771Context.sol
  82. 2
      contracts/metatx/ERC2771Forwarder.sol
  83. 2
      contracts/package.json
  84. 2
      contracts/proxy/Clones.sol
  85. 2
      contracts/proxy/ERC1967/ERC1967Proxy.sol
  86. 2
      contracts/proxy/ERC1967/ERC1967Utils.sol
  87. 2
      contracts/proxy/beacon/BeaconProxy.sol
  88. 2
      contracts/proxy/transparent/ProxyAdmin.sol
  89. 2
      contracts/proxy/transparent/TransparentUpgradeableProxy.sol
  90. 2
      contracts/proxy/utils/UUPSUpgradeable.sol
  91. 2
      contracts/token/ERC1155/ERC1155.sol
  92. 2
      contracts/token/ERC1155/IERC1155.sol
  93. 2
      contracts/token/ERC1155/IERC1155Receiver.sol
  94. 2
      contracts/token/ERC1155/extensions/ERC1155Pausable.sol
  95. 2
      contracts/token/ERC1155/extensions/ERC1155Supply.sol
  96. 2
      contracts/token/ERC1155/extensions/ERC1155URIStorage.sol
  97. 2
      contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol
  98. 2
      contracts/token/ERC1155/utils/ERC1155Holder.sol
  99. 1
      contracts/token/ERC1155/utils/ERC1155Utils.sol
  100. 2
      contracts/token/ERC20/ERC20.sol
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Clones`: Add version of `clone` and `cloneDeterministic` that support sending value at creation.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': patch
---
`ProxyAdmin`: Fixed documentation for `UPGRADE_INTERFACE_VERSION` getter.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`CircularBuffer`: Add a data structure that stores the last `N` values pushed to it.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Math`: add an `invMod` function to get the modular multiplicative inverse of a number in Z/nZ.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`RSA`: Library to verify signatures according to RFC 8017 Signature Verification Operation

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Arrays`: add a `sort` functions for `address[]`, `bytes32[]` and `uint256[]` memory arrays.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`GovernorCountingFractional`: Add a governor counting module that allows distributing voting power amongst 3 options (For, Against, Abstain).

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': patch
---
`TransparentUpgradeableProxy`: Make internal `_proxyAdmin()` getter have `view` visibility.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Arrays`: deprecate `findUpperBound` in favor of the new `lowerBound`.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Comparator`: A library of comparator functions, useful for customizing the behavior of the Heap structure.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': patch
---
`Create2`, `Clones`: Mask `computeAddress` and `cloneDeterministic` outputs to produce a clean value for an `address` type (i.e. only use 20 bytes)

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Strings`: Added a utility function for converting an address to checksummed string.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`ERC1363`: Add implementation of the token payable standard allowing execution of contract code after transfers and approvals.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`DoubleEndedQueue`: Custom errors replaced with native panic codes.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`SlotDerivation`: Add a library of methods for derivating common storage slots.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Heap`: A data structure that implements a heap-based priority queue.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Packing`: Added a new utility for packing, extracting and replacing bytesXX values.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`StorageSlot`: Add primitives for operating on the transient storage space using a typed-slot representation.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`AccessManager`: Allow the `onlyAuthorized` modifier to restrict functions added to the manager.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Votes`: Set `_moveDelegateVotes` visibility to internal instead of private.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Create2`: Bubbles up returndata from a deployed contract that reverted during construction.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': patch
---
`SafeCast`: Add `toUint(bool)` for operating on `bool` values as `uint256`.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`SafeERC20`: Add "relaxed" function for interacting with ERC-1363 functions in a way that is compatible with EOAs.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Hashes`: A library with commonly used hash functions.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`P256`: Library for verification and public key recovery of P256 (aka secp256r1) signatures.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`ERC721Utils` and `ERC1155Utils`: Add reusable libraries with functions to perform acceptance checks on `IERC721Receiver` and `IERC1155Receiver` implementers.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`ERC20TemporaryApproval`: Add an ERC-20 extension that implements temporary approval using transient storage, based on ERC7674 (draft).

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Math`: Add `modExp` function that exposes the `EIP-198` precompile. Includes `uint256` and `bytes memory` versions.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Panic`: Add a library for reverting with panic codes.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Math`: Custom errors replaced with native panic codes.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Math`, `SignedMath`: Add a branchless `ternary` function that computes`cond ? a : b` in constant gas cost.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`MerkleProof`: Add variations of `verify`, `processProof`, `multiProofVerify` and `processMultiProof` (and equivalent calldata version) with support for custom hashing functions.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Errors`: New library of common custom errors.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Arrays`: add new functions `lowerBound`, `upperBound`, `lowerBoundMemory` and `upperBoundMemory` for lookups in sorted arrays with potential duplicates.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`AccessManager`, `VestingWallet`, `TimelockController` and `ERC2771Forwarder`: Added a public `initializer` function in their corresponding upgradeable variants.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`Base64`: Add `encodeURL` following section 5 of RFC4648 for URL encoding

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`AccessControlEnumerable`: Add a `getRoleMembers` method to return all accounts that have `role`.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`MerkleTree`: A data structure that allows inserting elements into a merkle tree and updating its root hash.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`VestingWalletCliff`: Add an extension of the `VestingWallet` contract with an added cliff.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`ReentrancyGuardTransient`: Added a variant of `ReentrancyGuard` that uses transient storage.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`EnumerableMap`: add `UintToBytes32Map`, `AddressToAddressMap`, `AddressToBytes32Map` and `Bytes32ToAddressMap`.

@ -1,5 +0,0 @@
---
'openzeppelin-solidity': minor
---
`SignatureChecker`: refactor `isValidSignatureNow` to avoid validating ECDSA signatures if there is code deployed at the signer's address.

@ -1,11 +1,14 @@
# Changelog
## 5.1.0 (2024-10-17)
### Breaking changes
- `ERC1967Utils`: Removed duplicate declaration of the `Upgraded`, `AdminChanged` and `BeaconUpgraded` events. These events are still available through the `IERC1967` interface located under the `contracts/interfaces/` directory. Minimum pragma version is now 0.8.21.
- `Governor`, `GovernorCountingSimple`: The `_countVote` virtual function now returns an `uint256` with the total votes casted. This change allows for more flexibility for partial and fractional voting. Upgrading users may get a compilation error that can be fixed by adding a return statement to the `_countVote` function.
### Custom error changes
#### Custom error changes
This version comes with changes to the custom error identifiers. Contracts previously depending on the following errors should be replaced accordingly:
@ -18,6 +21,82 @@ This version comes with changes to the custom error identifiers. Contracts previ
- `SafeERC20`: Replace generic `Error(string)` with `SafeERC20FailedOperation` if the returned data can't be decoded as `bool`.
- `SafeERC20`: Replace generic `SafeERC20FailedOperation` with the revert message from the contract call if it fails.
### Changes by category
#### General
- `AccessManager`, `VestingWallet`, `TimelockController` and `ERC2771Forwarder`: Added a public `initializer` function in their corresponding upgradeable variants. ([#5008](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5008))
#### Access
- `AccessControlEnumerable`: Add a `getRoleMembers` method to return all accounts that have `role`. ([#4546](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4546))
- `AccessManager`: Allow the `onlyAuthorized` modifier to restrict functions added to the manager. ([#5014](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5014))
#### Finance
- `VestingWalletCliff`: Add an extension of the `VestingWallet` contract with an added cliff. ([#4870](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4870))
#### Governance
- `GovernorCountingFractional`: Add a governor counting module that allows distributing voting power amongst 3 options (For, Against, Abstain). ([#5045](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5045))
- `Votes`: Set `_moveDelegateVotes` visibility to internal instead of private. ([#5007](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5007))
#### Proxy
- `Clones`: Add version of `clone` and `cloneDeterministic` that support sending value at creation. ([#4936](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4936))
- `TransparentUpgradeableProxy`: Make internal `_proxyAdmin()` getter have `view` visibility. ([#4688](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4688))
- `ProxyAdmin`: Fixed documentation for `UPGRADE_INTERFACE_VERSION` getter. ([#5031](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5031))
#### Tokens
- `ERC1363`: Add implementation of the token payable standard allowing execution of contract code after transfers and approvals. ([#4631](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4631))
- `ERC20TemporaryApproval`: Add an ERC-20 extension that implements temporary approval using transient storage, based on ERC7674 (draft). ([#5071](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5071))
- `SafeERC20`: Add "relaxed" function for interacting with ERC-1363 functions in a way that is compatible with EOAs. ([#4631](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4631))
- `SafeERC20`: Document risks of `safeIncreaseAllowance` and `safeDecreaseAllowance` when associated with ERC-7674. ([#5262](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5262))
- `ERC721Utils` and `ERC1155Utils`: Add reusable libraries with functions to perform acceptance checks on `IERC721Receiver` and `IERC1155Receiver` implementers. ([#4845](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4845))
- `ERC1363Utils`: Add helper similar to the existing ERC721Utils and ERC1155Utils. ([#5133](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5133))
#### Utils
- `Arrays`: add a `sort` functions for `address[]`, `bytes32[]` and `uint256[]` memory arrays. ([#4846](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4846))
- `Arrays`: add new functions `lowerBound`, `upperBound`, `lowerBoundMemory` and `upperBoundMemory` for lookups in sorted arrays with potential duplicates. ([#4842](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4842))
- `Arrays`: deprecate `findUpperBound` in favor of the new `lowerBound`. ([#4842](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4842))
- `Base64`: Add `encodeURL` following section 5 of RFC4648 for URL encoding ([#4822](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4822))
- `Comparator`: A library of comparator functions, useful for customizing the behavior of the Heap structure. ([#5084](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5084))
- `Create2`: Bubbles up returndata from a deployed contract that reverted during construction. ([#5052](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5052))
- `Create2`, `Clones`: Mask `computeAddress` and `cloneDeterministic` outputs to produce a clean value for an `address` type (i.e. only use 20 bytes) ([#4941](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4941))
- `Errors`: New library of common custom errors. ([#4936](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4936))
- `Hashes`: A library with commonly used hash functions. ([#3617](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3617))
- `Packing`: Added a new utility for packing, extracting and replacing bytesXX values. ([#4992](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4992))
- `Panic`: Add a library for reverting with panic codes. ([#3298](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3298))
- `ReentrancyGuardTransient`: Added a variant of `ReentrancyGuard` that uses transient storage. ([#4988](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4988))
- `Strings`: Added a utility function for converting an address to checksummed string. ([#5067](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5067))
- `SlotDerivation`: Add a library of methods for derivating common storage slots. ([#4975](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4975))
- `TransientSlot`: Add primitives for operating on the transient storage space using a typed-slot representation. ([#4980](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4980))
##### Cryptography
- `SignatureChecker`: refactor `isValidSignatureNow` to avoid validating ECDSA signatures if there is code deployed at the signer's address. ([#4951](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4951))
- `MerkleProof`: Add variations of `verify`, `processProof`, `multiProofVerify` and `processMultiProof` (and equivalent calldata version) with support for custom hashing functions. ([#4887](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4887))
- `P256`: Library for verification and public key recovery of P256 (aka secp256r1) signatures. ([#4881](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4881))
- `RSA`: Library to verify signatures according to RFC 8017 Signature Verification Operation ([#4952](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4952))
#### Math
- `Math`: add an `invMod` function to get the modular multiplicative inverse of a number in Z/nZ. ([#4839](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4839))
- `Math`: Add `modExp` function that exposes the `EIP-198` precompile. Includes `uint256` and `bytes memory` versions. ([#3298](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3298))
- `Math`: Custom errors replaced with native panic codes. ([#3298](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3298))
- `Math`, `SignedMath`: Add a branchless `ternary` function that computes`cond ? a : b` in constant gas cost. ([#4976](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4976))
- `SafeCast`: Add `toUint(bool)` for operating on `bool` values as `uint256`. ([#4878](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4878))
#### Structures
- `CircularBuffer`: Add a data structure that stores the last `N` values pushed to it. ([#4913](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4913))
- `DoubleEndedQueue`: Custom errors replaced with native panic codes. ([#4872](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4872))
- `EnumerableMap`: add `UintToBytes32Map`, `AddressToAddressMap`, `AddressToBytes32Map` and `Bytes32ToAddressMap`. ([#4843](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4843))
- `Heap`: A data structure that implements a heap-based priority queue. ([#5084](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5084))
- `MerkleTree`: A data structure that allows inserting elements into a merkle tree and updating its root hash. ([#3617](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3617))
## 5.0.2 (2024-02-29)
- `Base64`: Fix issue where dirty memory located just after the input buffer is affecting the result. ([#4926](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/4926))

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

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

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

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

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

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

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

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

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

@ -1,4 +1,5 @@
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.1.0) (finance/VestingWalletCliff.sol)
pragma solidity ^0.8.20;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -1,4 +1,5 @@
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC1155/utils/ERC1155Utils.sol)
pragma solidity ^0.8.20;

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

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save