Skip to content

Commit f5edfc0

Browse files
github-actions[bot]ernestognwAmxx
authored
Release v5.5.0 (rc) (#5953)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: ernestognw <[email protected]> Co-authored-by: Hadrien Croubois <[email protected]>
1 parent 00e6272 commit f5edfc0

File tree

101 files changed

+201
-95
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+201
-95
lines changed

.changeset/pre.json

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,39 @@
44
"initialVersions": {
55
"openzeppelin-solidity": "5.4.0"
66
},
7-
"changesets": []
7+
"changesets": [
8+
"afraid-chicken-attack",
9+
"all-geese-stand",
10+
"angry-waves-film",
11+
"clear-tools-refuse",
12+
"dull-students-eat",
13+
"eight-radios-check",
14+
"fast-beans-pull",
15+
"funny-donuts-follow",
16+
"itchy-turkeys-allow",
17+
"loose-lamps-bake",
18+
"major-feet-write",
19+
"modern-moments-raise",
20+
"new-days-tease",
21+
"old-memes-dress",
22+
"petite-seas-shake",
23+
"plain-times-itch",
24+
"public-crabs-heal",
25+
"quick-pianos-press",
26+
"rich-cows-repair",
27+
"ripe-bears-hide",
28+
"sharp-scissors-drum",
29+
"shiny-dolphins-lick",
30+
"silent-zebras-press",
31+
"solid-cobras-talk",
32+
"ten-steaks-try",
33+
"tender-dolls-nail",
34+
"three-parents-argue",
35+
"violet-turtles-like",
36+
"whole-cats-find",
37+
"whole-plums-speak",
38+
"wild-baths-buy",
39+
"wise-webs-fly",
40+
"witty-hats-flow"
41+
]
842
}

CHANGELOG.md

Lines changed: 66 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,79 @@
11
# Changelog
22

3+
4+
## 5.5.0-rc.0 (2025-09-26)
5+
36
### Bug fixes
47

58
- `ERC165Checker`: Ensure the `supportsERC165` function returns false if the target reverts during the `supportsInterface(0xffffffff)` call. ([#5810](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5880))
69

710
### Breaking changes
811

9-
- `ERC6909` and the its extensions (`ERC6909ContentURI`, `ERC6909Metadata` and `ERC6909TokenSupply`) are no longer marked as draft since [EIP-6909](https://eips.ethereum.org/EIPS/eip-6909) is now final. Developers must update the import paths. Contracts behavior is not modified.
10-
- `SignerERC7702` is renamed as `SignerEIP7702`. Imports and inheritance must be updated to that new name and path. Behavior is unmodified.
11-
- `ERC721Holder`, `ERC1155Holder`, `ReentrancyGuard` and `ReentrancyGuardTransient` are flagged as stateless and are no longer transpiled. Developers using their upgradeable variants from `@openzeppelin/contracts-upgradeable` must update their imports to use the equivalent version available in `@openzeppelin/contracts`.
12+
- `ERC6909` and its extensions (`ERC6909ContentURI`, `ERC6909Metadata` and `ERC6909TokenSupply`) are no longer marked as draft since [EIP-6909](https://eips.ethereum.org/EIPS/eip-6909) is now final. Developers must update the import paths. Contracts behavior is not modified. ([#5929](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5929))
13+
- `SignerERC7702` is renamed as `SignerEIP7702`. Imports and inheritance must be updated to that new name and path. Behavior is unmodified. ([#5932](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5932))
14+
- `ERC721Holder`, `ERC1155Holder`, `ReentrancyGuard` and `ReentrancyGuardTransient` are flagged as stateless and are no longer transpiled. Developers using their upgradeable variants from `@openzeppelin/contracts-upgradeable` must update their imports to use the equivalent version available in `@openzeppelin/contracts`. ([#5944](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5944), [#5942](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5942))
1215
- Update minimum pragma to 0.8.24 in `Votes`, `VotesExtended`, `ERC20Votes`, `Strings`, `ERC1155URIStorage`, `MessageHashUtils`, `ERC721URIStorage`, `ERC721Votes`, `ERC721Wrapper`, `ERC721Burnable`, `ERC721Consecutive`, `ERC721Enumerable`, `ERC721Pausable`, `ERC721Royalty`, `ERC721Wrapper`, `EIP712`, `ERC4626` and `ERC7739`. ([#5726](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5726))
1316

1417
### Deprecation
1518

16-
- `Initializable` and `UUPSUpgradeable` are no longer transpiled. An alias is present in the `@openzeppelin/contracts-upgradeable` package that redirect to the corresponding file in `@openzeppelin/contracts`. These alias will be removed in the next major release. Developers are advised to update their imports to get these files directly from the `@openzeppelin/contracts` package.
17-
- `ECDSA` signature malleability protection is partly deprecated. See documentation for more details.
19+
- `Initializable` and `UUPSUpgradeable` are no longer transpiled. An alias is present in the `@openzeppelin/contracts-upgradeable` package that redirect to the corresponding file in `@openzeppelin/contracts`. These alias will be removed in the next major release. Developers are advised to update their imports to get these files directly from the `@openzeppelin/contracts` package. [#5941](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5941)
20+
- `ECDSA` signature malleability protection is partly deprecated. See documentation for more details. [#5814](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5814)
21+
22+
### Changes by category
23+
24+
#### Tokens
25+
26+
- `ERC4626`: compute `maxWithdraw` using `maxRedeem` and `previewRedeem` so that changes to the preview functions affect the max functions. ([#5130](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5130))
27+
28+
#### Cross-chain
29+
30+
- `InteroperableAddress`: Add a library for formatting and parsing ERC-7930 interoperable addresses. ([#5736](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5736))
31+
- `ERC7786Recipient`: Generic ERC-7786 cross-chain message recipient contract. ([#5904](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5904))
32+
- `IERC7786`: Add the (draft) interface for ERC-7786 "Cross-Chain Messaging Gateway" ([#5737](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5737))
33+
34+
#### Cryptography
35+
36+
##### Signers
37+
38+
- `SignerWebAuthn`: Add an abstract signer that verifies WebAuthn signatures, with a P256 fallback. ([#5809](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5809))
39+
- Add constructors to the different signers. ([#5757](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5757))
40+
41+
##### Verifiers
42+
43+
- `ERC7913WebAuthnVerifier`: Add an ERC-7913 verifier that verifies WebAuthn Authentication Assertions for P256 identities. ([#5809](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5809))
44+
45+
##### Other
46+
47+
- `WebAuthn`: Add a library for verifying WebAuthn Authentication Assertions. ([#5809](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5809))
48+
- `ECDSA`: Add `parse` and `parseCalldata` to parse bytes signatures of length 65 or 64 (erc-2098) into its v,r,s components. ([#5814](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5814))
49+
- `ECDSA`: Add `recoverCalldata` and `tryRecoverCalldata`, variants of `recover` and `tryRecover` that are more efficient when signatures are in calldata. ([#5788](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5788))
50+
- `SignatureChecker`: Add `isValidSignatureNowCalldata(address,bytes32,bytes calldata)` for efficient processing of calldata signatures. ([#5788](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5788))
51+
52+
#### Structures
53+
54+
- `Checkpoints`: Add a new checkpoint variant `Checkpoint256` using `uint256` type for the value and key. ([#5748](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5748))
55+
- `Accumulators`: A library for merging an arbitrary dynamic number of bytes buffers. ([#5680](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5680))
56+
57+
#### Utils
58+
59+
- `Base58`: Add a library for encoding and decoding bytes buffers into base58 strings. ([#5762](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5762))
60+
- `Base64`: Add a new `decode` function that parses base64 encoded strings. ([#5765](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5765))
61+
- `Bytes`: Add `concat` that merges a `bytes[]` array of buffers into a single `bytes` buffer. ([#5882](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5882))
62+
- `Bytes`: Add `reverseBytes32`, `reverseBytes16`, `reverseBytes8`, `reverseBytes4`, and `reverseBytes2` functions to reverse byte order for converting between little-endian and big-endian representations. ([#5724](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5724))
63+
- `Bytes`: Add `splice(bytes,uint256)` and `splice(bytes,uint256,uint256)` functions that move a specified range of bytes to the start of the buffer and truncate it in place, as an alternative to `slice`. ([#5733](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5733))
64+
- `Bytes`: Add a `clz` function to count the leading zero bits in a `bytes` buffer. ([#5725](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5725))
65+
- `Bytes`: Add an `equal` function to compare byte buffers. ([#5726](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5726))
66+
- `Bytes`: Fix `lastIndexOf(bytes,byte,uint256)` with empty buffers and finite position to correctly return `type(uint256).max` instead of accessing uninitialized memory sections. ([#5797](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5797))
67+
- `IERC7751`: Add the interface for custom error wrapping of bubbled up reverts. ([#5816](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5816))
68+
- `LowLevelCall`: Add a library to perform low-level calls and deal with the `returndata` more granularly. ([#5094](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5094))
69+
- `Math`: Add a `clz` function to count the leading zero bits in a `uint256` value. ([#5725](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5725))
70+
- `Memory`: Add library with utilities to manipulate memory ([#5189](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5189))
71+
- `Memory`: Add a UDVT for handling slices on memory space similarly to calldata slices. ([#5680](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5680))
72+
- `ReentrancyGuard` and `ReentrancyGuardTransient`: Add `nonReentrantView`, a read-only version of the `nonReentrant` modifier. ([#5800](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5800))
73+
- `ReentrancyGuard`, `ReentrancyGuardTransient`: Add an internal `_reentrancyGuardStorageSlot` function allowing slot customization via override. ([#5892](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5892))
74+
- `RelayedCall`: Add a library to perform indirect calls through minimal and predictable relayers. ([#5630](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5630))
75+
- `RLP`: Add a library for encoding and decoding data in Ethereum's Recursive Length Prefix format. ([#5680](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5680))
76+
- `Strings`: Add `toHexString(bytes)`. ([#5761](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5761))
1877

1978
## 5.4.0 (2025-07-17)
2079

@@ -42,7 +101,7 @@
42101

43102
#### Tokens
44103

45-
- `ERC20Bridgeable`: Implementation of ERC-7802 that makes an ERC-20 compatible with crosschain bridges. ([#5739](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5739))
104+
- `ERC20Bridgeable`: Implementation of ERC-7802 that makes an ERC-20 compatible with crosschain bridges. ([#5735](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5735))
46105

47106
#### Cryptography
48107

@@ -52,7 +111,7 @@
52111
- `SignerERC7702`: Implementation of `AbstractSigner` for Externally Owned Accounts (EOAs). Useful with ERC-7702. ([#5657](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5657))
53112
- `SignerERC7913`: Abstract signer that verifies signatures using the ERC-7913 workflow. ([#5659](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5659))
54113
- `MultiSignerERC7913`: Implementation of `AbstractSigner` that supports multiple ERC-7913 signers with a threshold-based signature verification system. ([#5659](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5659))
55-
- `MultiSignerERC7913Weighted`: Extension of `MultiSignerERC7913` that supports assigning different weights to each signer, enabling more flexible governance schemes. ([#5741](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5741))
114+
- `MultiSignerERC7913Weighted`: Extension of `MultiSignerERC7913` that supports assigning different weights to each signer, enabling more flexible governance schemes. ([#5718](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5718))
56115

57116
##### Verifiers
58117

contracts/access/extensions/AccessControlDefaultAdminRules.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
// OpenZeppelin Contracts (last updated v5.4.0) (access/extensions/AccessControlDefaultAdminRules.sol)
2+
// OpenZeppelin Contracts (last updated v5.5.0-rc.0) (access/extensions/AccessControlDefaultAdminRules.sol)
33

44
pragma solidity ^0.8.20;
55

contracts/access/extensions/IAccessControlDefaultAdminRules.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
// OpenZeppelin Contracts (last updated v5.4.0) (access/extensions/IAccessControlDefaultAdminRules.sol)
2+
// OpenZeppelin Contracts (last updated v5.5.0-rc.0) (access/extensions/IAccessControlDefaultAdminRules.sol)
33

44
pragma solidity >=0.8.4;
55

contracts/access/manager/AccessManager.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
// OpenZeppelin Contracts (last updated v5.1.0) (access/manager/AccessManager.sol)
2+
// OpenZeppelin Contracts (last updated v5.5.0-rc.0) (access/manager/AccessManager.sol)
33

44
pragma solidity ^0.8.20;
55

contracts/access/manager/IAccessManager.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
// OpenZeppelin Contracts (last updated v5.4.0) (access/manager/IAccessManager.sol)
2+
// OpenZeppelin Contracts (last updated v5.5.0-rc.0) (access/manager/IAccessManager.sol)
33

44
pragma solidity >=0.8.4;
55

contracts/account/Account.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
// OpenZeppelin Contracts (last updated v5.4.0) (account/Account.sol)
2+
// OpenZeppelin Contracts (last updated v5.5.0-rc.0) (account/Account.sol)
33

44
pragma solidity ^0.8.20;
55

contracts/account/extensions/draft-AccountERC7579.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
// OpenZeppelin Contracts (last updated v5.4.0) (account/extensions/draft-AccountERC7579.sol)
2+
// OpenZeppelin Contracts (last updated v5.5.0-rc.0) (account/extensions/draft-AccountERC7579.sol)
33

44
pragma solidity ^0.8.26;
55

contracts/account/extensions/draft-ERC7821.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
// OpenZeppelin Contracts (last updated v5.4.0) (account/extensions/draft-ERC7821.sol)
2+
// OpenZeppelin Contracts (last updated v5.5.0-rc.0) (account/extensions/draft-ERC7821.sol)
33

44
pragma solidity ^0.8.20;
55

contracts/account/utils/EIP7702Utils.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
// OpenZeppelin Contracts (last updated v5.4.0) (account/utils/EIP7702Utils.sol)
2+
// OpenZeppelin Contracts (last updated v5.5.0-rc.0) (account/utils/EIP7702Utils.sol)
33

44
pragma solidity ^0.8.20;
55

0 commit comments

Comments
 (0)