[Snyk] Upgrade @openzeppelin/contracts from 5.4.0 to 5.5.0 #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Snyk has created this PR to upgrade @openzeppelin/contracts from 5.4.0 to 5.5.0.
ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.
The recommended version is 3 versions ahead of your current version.
The recommended version was released 2 months ago.
Release notes
Package name: @openzeppelin/contracts
-
5.5.0 - 2025-10-31
- Update minimum pragma to 0.8.24 in
- Add constructors to the different signers. (#5757)
-
5.5.0-rc.1 - 2025-10-10
-
5.5.0-rc.0 - 2025-09-26
- Update minimum pragma to 0.8.24 in
- Add constructors to the different signers. (#5757)
-
5.4.0 - 2025-07-17
- Update minimum pragma to 0.8.24 in
- Reduced pragma requirement of interface files
from @openzeppelin/contracts GitHub release notesBug fixes
AccountERC7579: Prevent revert inisModuleInstalledfor fallback modules whenadditionalContexthas fewer than 4 bytes. The function now returnsfalseinstead of reverting, ensuring ERC-7579 compliance. (#5961)ERC165Checker: Ensure thesupportsERC165function returns false if the target reverts during thesupportsInterface(0xffffffff)call. (#5810)Breaking changes
Account: Addsignatureargument to the internal_validateUserOpfunction for custom signature handling logic. Developers overriding it must now provide the signature from the user operation (i.e.userOp.signature) to keep compatibility. (#5976)AccountERC7579: Installing and uninstalling fallback modules now require the correspondinginitDataanddeInitDataarguments to be at least 4 bytes long (matching the selector to which the fallback module is registered). It now reverts withERC7579CannotDecodeFallbackDatainstead of treating the missing bytes as0x00. (#5974)ERC6909and its extensions (ERC6909ContentURI,ERC6909MetadataandERC6909TokenSupply) are no longer marked as draft since EIP-6909 is now final. Developers must update the import paths. Contracts behavior is not modified. (#5929)SignerERC7702is renamed asSignerEIP7702. Imports and inheritance must be updated to that new name and path. Behavior is unmodified. (#5932)ERC721Holder,ERC1155Holder,ReentrancyGuardandReentrancyGuardTransientare flagged as stateless and are no longer transpiled. Developers using their upgradeable variants from@ openzeppelin/contracts-upgradeablemust update their imports to use the equivalent version available in@ openzeppelin/contracts. (#5944, #5942)AccessControlEnumerable,Arrays,CircularBuffer,EIP712,EnumerableMap,EnumerableSet,ERC1155,ERC1155Burnable,ERC1155Pausable,ERC1155Supply,ERC1155URIStorage,ERC20Votes,ERC4626,ERC721Burnable,ERC721Consecutive,ERC721Enumerable,ERC721Pausable,ERC721Royalty,ERC721URIStorage,ERC721Votes,ERC721Wrapper,ERC7739,Heap,MerkleTree,MessageHashUtils,Strings,VotesandVotesExtended. (#5723, #5726, #5965)Deprecation
InitializableandUUPSUpgradeableare no longer transpiled. An alias is present in the@ openzeppelin/contracts-upgradeablepackage 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/contractspackage. #5941ECDSAsignature malleability protection is partly deprecated. See documentation for more details. #5814Changes by category
Tokens
ERC4626: computemaxWithdrawusingmaxRedeemandpreviewRedeemso that changes to the preview functions affect the max functions. (#5130)Cross-chain
InteroperableAddress: Add a library for formatting and parsing ERC-7930 interoperable addresses. (#5736)ERC7786Recipient: Generic ERC-7786 cross-chain message recipient contract. (#5904)IERC7786: Add the (draft) interface for ERC-7786 "Cross-Chain Messaging Gateway" (#5737)Cryptography
Signers
SignerWebAuthn: Add an abstract signer that verifies WebAuthn signatures, with a P256 fallback. (#5809)Verifiers
ERC7913WebAuthnVerifier: Add an ERC-7913 verifier that verifies WebAuthn Authentication Assertions for P256 identities. (#5809)Other
WebAuthn: Add a library for verifying WebAuthn Authentication Assertions. (#5809)ECDSA: AddparseandparseCalldatato parse bytes signatures of length 65 or 64 (erc-2098) into its v,r,s components. (#5814)ECDSA: AddrecoverCalldataandtryRecoverCalldata, variants ofrecoverandtryRecoverthat are more efficient when signatures are in calldata. (#5788)SignatureChecker: AddisValidSignatureNowCalldata(address,bytes32,bytes calldata)for efficient processing of calldata signatures. (#5788)Structures
Checkpoints: Add a new checkpoint variantCheckpoint256usinguint256type for the value and key. (#5748)Accumulators: A library for merging an arbitrary dynamic number of bytes buffers. (#5680)Utils
Arrays: Addsliceandsplicefunctions for value types (uint256[],bytes32[],address[]). (#5983)Base58: Add a library for encoding and decoding bytes buffers into base58 strings. (#5762)Base64: Add a newdecodefunction that parses base64 encoded strings. (#5765)Bytes: Addconcatthat merges abytes[]array of buffers into a singlebytesbuffer. (#5882)Bytes: AddreverseBytes32,reverseBytes16,reverseBytes8,reverseBytes4, andreverseBytes2functions to reverse byte order for converting between little-endian and big-endian representations. (#5724)Bytes: Addsplice(bytes,uint256)andsplice(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 toslice. (#5733)Bytes: Add aclzfunction to count the leading zero bits in abytesbuffer. (#5725)Bytes: Add anequalfunction to compare byte buffers. (#5726)Bytes: FixlastIndexOf(bytes,byte,uint256)with empty buffers and finite position to correctly returntype(uint256).maxinstead of accessing uninitialized memory sections. (#5797)IERC7751: Add the interface for custom error wrapping of bubbled up reverts. (#5816)LowLevelCall: Add a library to perform low-level calls and deal with thereturndatamore granularly. (#5094)Math: Add aclzfunction to count the leading zero bits in auint256value. (#5725)Memory: Add library with utilities to manipulate memory (#5189)Memory: Add a UDVT for handling slices on memory space similarly to calldata slices. (#5680)ReentrancyGuardandReentrancyGuardTransient: AddnonReentrantView, a read-only version of thenonReentrantmodifier. (#5800)ReentrancyGuard,ReentrancyGuardTransient: Add an internal_reentrancyGuardStorageSlotfunction allowing slot customization via override. (#5892)RelayedCall: Add a library to perform indirect calls through minimal and predictable relayers. (#5630)RLP: Add a library for encoding and decoding data in Ethereum's Recursive Length Prefix format. (#5680)Strings: AddtoHexString(bytes). (#5761)Bug fixes
AccountERC7579: Prevent revert inisModuleInstalledfor fallback modules whenadditionalContexthas fewer than 4 bytes. The function now returnsfalseinstead of reverting, ensuring ERC-7579 compliance. (#5961)Breaking changes
Account: Addsignatureargument to the internal_validateUserOpfunction for custom signature handling logic. Developers overriding it must now provide the signature from the user operation (i.e.userOp.signature) to keep compatibility. (#5976)AccountERC7579: Installing and uninstalling fallback modules now require the correspondinginitDataanddeInitDataarguments to be at least 4 bytes long (matching the selector to which the fallback module is registered). It now reverts withERC7579CannotDecodeFallbackDatainstead of treating the missing bytes as0x00. (#5974)Changes by category
Utils
Arrays: Addsliceandsplicefunctions for value types (uint256[],bytes32[],address[]). (#5983)Bug fixes
ERC165Checker: Ensure thesupportsERC165function returns false if the target reverts during thesupportsInterface(0xffffffff)call. (#5810)Breaking changes
ERC6909and its extensions (ERC6909ContentURI,ERC6909MetadataandERC6909TokenSupply) are no longer marked as draft since EIP-6909 is now final. Developers must update the import paths. Contracts behavior is not modified. (#5929)SignerERC7702is renamed asSignerEIP7702. Imports and inheritance must be updated to that new name and path. Behavior is unmodified. (#5932)ERC721Holder,ERC1155Holder,ReentrancyGuardandReentrancyGuardTransientare flagged as stateless and are no longer transpiled. Developers using their upgradeable variants from@ openzeppelin/contracts-upgradeablemust update their imports to use the equivalent version available in@ openzeppelin/contracts. (#5944, #5942)Votes,VotesExtended,ERC20Votes,Strings,ERC1155URIStorage,MessageHashUtils,ERC721URIStorage,ERC721Votes,ERC721Wrapper,ERC721Burnable,ERC721Consecutive,ERC721Enumerable,ERC721Pausable,ERC721Royalty,ERC721Wrapper,EIP712,ERC4626andERC7739. (#5726)Deprecation
InitializableandUUPSUpgradeableare no longer transpiled. An alias is present in the@ openzeppelin/contracts-upgradeablepackage 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/contractspackage. #5941ECDSAsignature malleability protection is partly deprecated. See documentation for more details. #5814Changes by category
Tokens
ERC4626: computemaxWithdrawusingmaxRedeemandpreviewRedeemso that changes to the preview functions affect the max functions. (#5130)Cross-chain
InteroperableAddress: Add a library for formatting and parsing ERC-7930 interoperable addresses. (#5736)ERC7786Recipient: Generic ERC-7786 cross-chain message recipient contract. (#5904)IERC7786: Add the (draft) interface for ERC-7786 "Cross-Chain Messaging Gateway" (#5737)Cryptography
Signers
SignerWebAuthn: Add an abstract signer that verifies WebAuthn signatures, with a P256 fallback. (#5809)Verifiers
ERC7913WebAuthnVerifier: Add an ERC-7913 verifier that verifies WebAuthn Authentication Assertions for P256 identities. (#5809)Other
WebAuthn: Add a library for verifying WebAuthn Authentication Assertions. (#5809)ECDSA: AddparseandparseCalldatato parse bytes signatures of length 65 or 64 (erc-2098) into its v,r,s components. (#5814)ECDSA: AddrecoverCalldataandtryRecoverCalldata, variants ofrecoverandtryRecoverthat are more efficient when signatures are in calldata. (#5788)SignatureChecker: AddisValidSignatureNowCalldata(address,bytes32,bytes calldata)for efficient processing of calldata signatures. (#5788)Structures
Checkpoints: Add a new checkpoint variantCheckpoint256usinguint256type for the value and key. (#5748)Accumulators: A library for merging an arbitrary dynamic number of bytes buffers. (#5680)Utils
Base58: Add a library for encoding and decoding bytes buffers into base58 strings. (#5762)Base64: Add a newdecodefunction that parses base64 encoded strings. (#5765)Bytes: Addconcatthat merges abytes[]array of buffers into a singlebytesbuffer. (#5882)Bytes: AddreverseBytes32,reverseBytes16,reverseBytes8,reverseBytes4, andreverseBytes2functions to reverse byte order for converting between little-endian and big-endian representations. (#5724)Bytes: Addsplice(bytes,uint256)andsplice(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 toslice. (#5733)Bytes: Add aclzfunction to count the leading zero bits in abytesbuffer. (#5725)Bytes: Add anequalfunction to compare byte buffers. (#5726)Bytes: FixlastIndexOf(bytes,byte,uint256)with empty buffers and finite position to correctly returntype(uint256).maxinstead of accessing uninitialized memory sections. (#5797)IERC7751: Add the interface for custom error wrapping of bubbled up reverts. (#5816)LowLevelCall: Add a library to perform low-level calls and deal with thereturndatamore granularly. (#5094)Math: Add aclzfunction to count the leading zero bits in auint256value. (#5725)Memory: Add library with utilities to manipulate memory (#5189)Memory: Add a UDVT for handling slices on memory space similarly to calldata slices. (#5680)ReentrancyGuardandReentrancyGuardTransient: AddnonReentrantView, a read-only version of thenonReentrantmodifier. (#5800)ReentrancyGuard,ReentrancyGuardTransient: Add an internal_reentrancyGuardStorageSlotfunction allowing slot customization via override. (#5892)RelayedCall: Add a library to perform indirect calls through minimal and predictable relayers. (#5630)RLP: Add a library for encoding and decoding data in Ethereum's Recursive Length Prefix format. (#5680)Strings: AddtoHexString(bytes). (#5761)Breaking changes
SignatureChecker,Governorand Governor's extensions. (#5716).Pragma changes
Changes by category
Account
Account: Added a simple ERC-4337 account implementation with minimal logic to process user operations. (#5657)AccountERC7579: Extension ofAccountthat implements support for ERC-7579 modules of type executor, validator, and fallback handler. (#5657)AccountERC7579Hooked: Extension ofAccountERC7579that implements support for ERC-7579 hook modules. (#5657)EIP7702Utils: Add a library for checking if an address has an EIP-7702 delegation in place. (#5587)IERC7821,ERC7821: Interface and logic for minimal batch execution. No support for additionalopDatais included. (#5657)Governance
GovernorNoncesKeyed: Extension ofGovernorthat adds support for keyed nonces when voting by sig. (#5574)Tokens
ERC20Bridgeable: Implementation of ERC-7802 that makes an ERC-20 compatible with crosschain bridges. (#5739)Cryptography
Signers
AbstractSigner,SignerECDSA,SignerP256, andSignerRSA: Add an abstract contract and various implementations for contracts that deal with signature verification. (#5657)SignerERC7702: Implementation ofAbstractSignerfor Externally Owned Accounts (EOAs). Useful with ERC-7702. (#5657)SignerERC7913: Abstract signer that verifies signatures using the ERC-7913 workflow. (#5659)MultiSignerERC7913: Implementation ofAbstractSignerthat supports multiple ERC-7913 signers with a threshold-based signature verification system. (#5659)MultiSignerERC7913Weighted: Extension ofMultiSignerERC7913that supports assigning different weights to each signer, enabling more flexible governance schemes. (#5741)Verifiers
ERC7913P256VerifierandERC7913RSAVerifier: Ready to use ERC-7913 verifiers that implement key verification for P256 (secp256r1) and RSA keys. (#5659)Other
SignatureChecker: Add support for ERC-7913 signatures alongside existing ECDSA and ERC-1271 signature verification. (#5659)ERC7739: An abstract contract to validate signatures following the rehashing scheme fromERC7739Utils. (#5664)ERC7739Utils: Add a library that implements a defensive rehashing mechanism to prevent replayability of smart contract signatures based on the ERC-7739. (#5664)Structures
EnumerableMap: Add support forBytesToBytesMaptype. (#5658)EnumerableMap: Addkeys(uint256,uint256)that returns a subset (slice) of the keys in the map. (#5713)EnumerableSet: Add support forStringSetandBytesSettypes. (#5658)EnumerableSet: Addvalues(uint256,uint256)that returns a subset (slice) of the values in the set. (#5713)Utils
Arrays: AddunsafeAccess,unsafeMemoryAccessandunsafeSetLengthforbytes[]andstring[]. (#5568)Blockhash: Add a library that provides access to historical block hashes using EIP-2935's history storage, extending the standard 256-block limit to 8191 blocks. (#5642)Bytes: FixlastIndexOf(bytes,byte,uint256)with empty buffers and finite position to correctly returntype(uint256).maxinstead of accessing uninitialized memory sections. (#5797)Important
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information: