OpenZeppelin/openzeppelin-contracts (@openzeppelin/contracts)
### [`v5.1.0`](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/blob/HEAD/CHANGELOG.md#510-2024-10-17)
[Compare Source](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/compare/v5.0.2...v5.1.0)
##### 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
This version comes with changes to the custom error identifiers. Contracts previously depending on the following errors should be replaced accordingly:
- Replace `Address.FailedInnerCall` with `Errors.FailedCall`
- Replace `Address.AddressInsufficientBalance` with `Errors.InsufficientBalance`
- Replace `Clones.Create2InsufficientBalance` with `Errors.InsufficientBalance`
- Replace `Clones.ERC1167FailedCreateClone` with `Errors.FailedDeployment`
- Replace `Clones.Create2FailedDeployment` with `Errors.FailedDeployment`
- `SafeERC20`: Replace `Address.AddressEmptyCode` with `SafeERC20FailedOperation` if there is no code at the token's address.
- `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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5008))
##### Access
- `AccessControlEnumerable`: Add a `getRoleMembers` method to return all accounts that have `role`. ([#4546](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4546))
- `AccessManager`: Allow the `onlyAuthorized` modifier to restrict functions added to the manager. ([#5014](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5014))
##### Finance
- `VestingWalletCliff`: Add an extension of the `VestingWallet` contract with an added cliff. ([#4870](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5045))
- `Votes`: Set `_moveDelegateVotes` visibility to internal instead of private. ([#5007](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5007))
##### Proxy
- `Clones`: Add version of `clone` and `cloneDeterministic` that support sending value at creation. ([#4936](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4936))
- `TransparentUpgradeableProxy`: Make internal `_proxyAdmin()` getter have `view` visibility. ([#4688](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4688))
- `ProxyAdmin`: Fixed documentation for `UPGRADE_INTERFACE_VERSION` getter. ([#5031](https://redirect.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://redirect.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://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4631))
- `SafeERC20`: Document risks of `safeIncreaseAllowance` and `safeDecreaseAllowance` when associated with ERC-7674. ([#5262](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4845))
- `ERC1363Utils`: Add helper similar to the existing ERC721Utils and ERC1155Utils. ([#5133](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5133))
##### Utils
- `Arrays`: add a `sort` functions for `address[]`, `bytes32[]` and `uint256[]` memory arrays. ([#4846](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4842))
- `Arrays`: deprecate `findUpperBound` in favor of the new `lowerBound`. ([#4842](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4842))
- `Base64`: Add `encodeURL` following section 5 of RFC4648 for URL encoding ([#4822](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4822))
- `Comparator`: A library of comparator functions, useful for customizing the behavior of the Heap structure. ([#5084](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5084))
- `Create2`: Bubbles up returndata from a deployed contract that reverted during construction. ([#5052](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4941))
- `Errors`: New library of common custom errors. ([#4936](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4936))
- `Hashes`: A library with commonly used hash functions. ([#3617](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3617))
- `Packing`: Added a new utility for packing, extracting and replacing bytesXX values. ([#4992](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4992))
- `Panic`: Add a library for reverting with panic codes. ([#3298](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3298))
- `ReentrancyGuardTransient`: Added a variant of `ReentrancyGuard` that uses transient storage. ([#4988](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4988))
- `Strings`: Added a utility function for converting an address to checksummed string. ([#5067](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5067))
- `SlotDerivation`: Add a library of methods for derivating common storage slots. ([#4975](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4975))
- `TransientSlot`: Add primitives for operating on the transient storage space using a typed-slot representation. ([#4980](https://redirect.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://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4887))
- `P256`: Library for verification and public key recovery of P256 (aka secp256r1) signatures. ([#4881](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4881))
- `RSA`: Library to verify signatures according to RFC 8017 Signature Verification Operation ([#4952](https://redirect.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://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3298))
- `Math`: Custom errors replaced with native panic codes. ([#3298](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4976))
- `SafeCast`: Add `toUint(bool)` for operating on `bool` values as `uint256`. ([#4878](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4878))
##### Structures
- `CircularBuffer`: Add a data structure that stores the last `N` values pushed to it. ([#4913](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4913))
- `DoubleEndedQueue`: Custom errors replaced with native panic codes. ([#4872](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4872))
- `EnumerableMap`: add `UintToBytes32Map`, `AddressToAddressMap`, `AddressToBytes32Map` and `Bytes32ToAddressMap`. ([#4843](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4843))
- `Heap`: A data structure that implements a heap-based priority queue. ([#5084](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3617))
OpenZeppelin/openzeppelin-contracts-upgradeable (@openzeppelin/contracts-upgradeable5)
### [`v5.1.0`](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/blob/HEAD/CHANGELOG.md#510-2024-10-17)
[Compare Source](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/compare/v5.0.2...v5.1.0)
##### 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
This version comes with changes to the custom error identifiers. Contracts previously depending on the following errors should be replaced accordingly:
- Replace `Address.FailedInnerCall` with `Errors.FailedCall`
- Replace `Address.AddressInsufficientBalance` with `Errors.InsufficientBalance`
- Replace `Clones.Create2InsufficientBalance` with `Errors.InsufficientBalance`
- Replace `Clones.ERC1167FailedCreateClone` with `Errors.FailedDeployment`
- Replace `Clones.Create2FailedDeployment` with `Errors.FailedDeployment`
- `SafeERC20`: Replace `Address.AddressEmptyCode` with `SafeERC20FailedOperation` if there is no code at the token's address.
- `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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5008))
##### Access
- `AccessControlEnumerable`: Add a `getRoleMembers` method to return all accounts that have `role`. ([#4546](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4546))
- `AccessManager`: Allow the `onlyAuthorized` modifier to restrict functions added to the manager. ([#5014](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5014))
##### Finance
- `VestingWalletCliff`: Add an extension of the `VestingWallet` contract with an added cliff. ([#4870](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5045))
- `Votes`: Set `_moveDelegateVotes` visibility to internal instead of private. ([#5007](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5007))
##### Proxy
- `Clones`: Add version of `clone` and `cloneDeterministic` that support sending value at creation. ([#4936](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4936))
- `TransparentUpgradeableProxy`: Make internal `_proxyAdmin()` getter have `view` visibility. ([#4688](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4688))
- `ProxyAdmin`: Fixed documentation for `UPGRADE_INTERFACE_VERSION` getter. ([#5031](https://redirect.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://redirect.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://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4631))
- `SafeERC20`: Document risks of `safeIncreaseAllowance` and `safeDecreaseAllowance` when associated with ERC-7674. ([#5262](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4845))
- `ERC1363Utils`: Add helper similar to the existing ERC721Utils and ERC1155Utils. ([#5133](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5133))
##### Utils
- `Arrays`: add a `sort` functions for `address[]`, `bytes32[]` and `uint256[]` memory arrays. ([#4846](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4842))
- `Arrays`: deprecate `findUpperBound` in favor of the new `lowerBound`. ([#4842](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4842))
- `Base64`: Add `encodeURL` following section 5 of RFC4648 for URL encoding ([#4822](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4822))
- `Comparator`: A library of comparator functions, useful for customizing the behavior of the Heap structure. ([#5084](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5084))
- `Create2`: Bubbles up returndata from a deployed contract that reverted during construction. ([#5052](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4941))
- `Errors`: New library of common custom errors. ([#4936](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4936))
- `Hashes`: A library with commonly used hash functions. ([#3617](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3617))
- `Packing`: Added a new utility for packing, extracting and replacing bytesXX values. ([#4992](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4992))
- `Panic`: Add a library for reverting with panic codes. ([#3298](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3298))
- `ReentrancyGuardTransient`: Added a variant of `ReentrancyGuard` that uses transient storage. ([#4988](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4988))
- `Strings`: Added a utility function for converting an address to checksummed string. ([#5067](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5067))
- `SlotDerivation`: Add a library of methods for derivating common storage slots. ([#4975](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4975))
- `TransientSlot`: Add primitives for operating on the transient storage space using a typed-slot representation. ([#4980](https://redirect.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://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4887))
- `P256`: Library for verification and public key recovery of P256 (aka secp256r1) signatures. ([#4881](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4881))
- `RSA`: Library to verify signatures according to RFC 8017 Signature Verification Operation ([#4952](https://redirect.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://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3298))
- `Math`: Custom errors replaced with native panic codes. ([#3298](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4976))
- `SafeCast`: Add `toUint(bool)` for operating on `bool` values as `uint256`. ([#4878](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4878))
##### Structures
- `CircularBuffer`: Add a data structure that stores the last `N` values pushed to it. ([#4913](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4913))
- `DoubleEndedQueue`: Custom errors replaced with native panic codes. ([#4872](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4872))
- `EnumerableMap`: add `UintToBytes32Map`, `AddressToAddressMap`, `AddressToBytes32Map` and `Bytes32ToAddressMap`. ([#4843](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4843))
- `Heap`: A data structure that implements a heap-based priority queue. ([#5084](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3617))
OpenZeppelin/openzeppelin-upgrades (@openzeppelin/hardhat-upgrades)
### [`v3.5.0`](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/blob/HEAD/packages/plugin-hardhat/CHANGELOG.md#350-2024-10-10)
[Compare Source](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/compare/@openzeppelin/hardhat-upgrades@3.4.0...@openzeppelin/hardhat-upgrades@3.5.0)
- Support ignoring Hardhat compile errors when extracting detailed namespaced storage layouts for validations. ([#1090](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/pull/1090))
OpenZeppelin/openzeppelin-upgrades (@openzeppelin/upgrades-core)
### [`v1.40.0`](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/blob/HEAD/packages/core/CHANGELOG.md#1400-2024-10-10)
[Compare Source](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/compare/@openzeppelin/upgrades-core@1.39.0...@openzeppelin/upgrades-core@1.40.0)
- Fix Hardhat compile error when overriding interface functions with public constant variables. ([#1091](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/pull/1091))
- Support ignoring Hardhat compile errors when extracting detailed namespaced storage layouts for validations. ([#1090](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/pull/1090))
eslint/eslint (eslint)
### [`v9.14.0`](https://redirect.github.com/eslint/eslint/compare/v9.13.0...db0b844a66ee25483f9619d04346de1a2a0d79fa)
[Compare Source](https://redirect.github.com/eslint/eslint/compare/v9.13.0...v9.14.0)
### [`v9.13.0`](https://redirect.github.com/eslint/eslint/compare/v9.12.0...1a7cdbfad8d3355132aab3201c7dd3f2e879b19d)
[Compare Source](https://redirect.github.com/eslint/eslint/compare/v9.12.0...v9.13.0)
### [`v9.12.0`](https://redirect.github.com/eslint/eslint/releases/tag/v9.12.0)
[Compare Source](https://redirect.github.com/eslint/eslint/compare/v9.11.1...v9.12.0)
#### Features
- [`5a6a053`](https://redirect.github.com/eslint/eslint/commit/5a6a05321ca34480c780be8c2cb7946e4c299001) feat: update to `jiti` v2 ([#18954](https://redirect.github.com/eslint/eslint/issues/18954)) (Arya Emami)
- [`17a07fb`](https://redirect.github.com/eslint/eslint/commit/17a07fb548ecce24b88e8b2b07491c24ed1111a9) feat: Hooks for test cases (RuleTester) ([#18771](https://redirect.github.com/eslint/eslint/issues/18771)) (Anna Bocharova)
- [`2ff0e51`](https://redirect.github.com/eslint/eslint/commit/2ff0e51cedaab967b7ce383437f64b4a6df8608d) feat: Implement alternate config lookup ([#18742](https://redirect.github.com/eslint/eslint/issues/18742)) (Nicholas C. Zakas)
- [`2d17453`](https://redirect.github.com/eslint/eslint/commit/2d174532ae96bcaecf6fd7de78755164378b3a2d) feat: Implement modified cyclomatic complexity ([#18896](https://redirect.github.com/eslint/eslint/issues/18896)) (Dmitry Pashkevich)
#### Bug Fixes
- [`ea380ca`](https://redirect.github.com/eslint/eslint/commit/ea380cac6f598c86b25a2726c2783636c4169957) fix: Upgrade retry to avoid EMFILE errors ([#18986](https://redirect.github.com/eslint/eslint/issues/18986)) (Nicholas C. Zakas)
- [`fdd6319`](https://redirect.github.com/eslint/eslint/commit/fdd631964aee250bc5520770bc1fc3f2f2872813) fix: Issues with type definitions ([#18940](https://redirect.github.com/eslint/eslint/issues/18940)) (Arya Emami)
#### Documentation
- [`ecbd522`](https://redirect.github.com/eslint/eslint/commit/ecbd52291d7c118b77016c6bf1c60b7d263c44f0) docs: Mention code explorer ([#18978](https://redirect.github.com/eslint/eslint/issues/18978)) (Nicholas C. Zakas)
- [`7ea4ecc`](https://redirect.github.com/eslint/eslint/commit/7ea4ecc6e3320a74c960cb78acc94c0140d15f55) docs: Clarifying the Use of Meta Objects ([#18697](https://redirect.github.com/eslint/eslint/issues/18697)) (Amaresh S M)
- [`d3e4b2e`](https://redirect.github.com/eslint/eslint/commit/d3e4b2ea4a8f76d4d49345c242f013f49635274f) docs: Clarify how to exclude `.js` files ([#18976](https://redirect.github.com/eslint/eslint/issues/18976)) (Milos Djermanovic)
- [`57232ff`](https://redirect.github.com/eslint/eslint/commit/57232ff3d50412586df094f052b47adb38f8d9ae) docs: Mention plugin-kit in language docs ([#18973](https://redirect.github.com/eslint/eslint/issues/18973)) (Nicholas C. Zakas)
- [`b80ed00`](https://redirect.github.com/eslint/eslint/commit/b80ed007cefee086db1ff17cde9f7dd6690459f0) docs: Update README (GitHub Actions Bot)
- [`cb69ab3`](https://redirect.github.com/eslint/eslint/commit/cb69ab374c149eb725b2fc5a8f0ff33fd7268a46) docs: Update README (GitHub Actions Bot)
- [`7fb0d95`](https://redirect.github.com/eslint/eslint/commit/7fb0d957c102be499d5358a74928e0ea93913371) docs: Update README (GitHub Actions Bot)
- [`493348a`](https://redirect.github.com/eslint/eslint/commit/493348a9a5dcca29d7fbbe13c67ce13a7a38413b) docs: Update README (GitHub Actions Bot)
- [`87a582c`](https://redirect.github.com/eslint/eslint/commit/87a582c8b537d133c140781aa9e3ff0201a3c10f) docs: fix typo in `id-match` rule ([#18944](https://redirect.github.com/eslint/eslint/issues/18944)) (Jay)
#### Chores
- [`555aafd`](https://redirect.github.com/eslint/eslint/commit/555aafd06f6dddc743acff06111dc72dd8ea4c4e) chore: upgrade to `@eslint/js@9.12.0` ([#18987](https://redirect.github.com/eslint/eslint/issues/18987)) (Francesco Trotta)
- [`873ae60`](https://redirect.github.com/eslint/eslint/commit/873ae608c15a0a386f022076b5aab6112b56b59b) chore: package.json update for [@eslint/js](https://redirect.github.com/eslint/js) release (Jenkins)
- [`d0a5414`](https://redirect.github.com/eslint/eslint/commit/d0a5414c30421e5dbe313790502dbf13b9330fef) refactor: replace strip-ansi with native module ([#18982](https://redirect.github.com/eslint/eslint/issues/18982)) (Cristopher)
- [`b827029`](https://redirect.github.com/eslint/eslint/commit/b8270299abe777bb80a065d537aa1d4be74be705) chore: Enable JSON5 linting ([#18979](https://redirect.github.com/eslint/eslint/issues/18979)) (Milos Djermanovic)
- [`8f55ca2`](https://redirect.github.com/eslint/eslint/commit/8f55ca22d94c1b0ff3be323b97949edef8d880b0) chore: Upgrade espree, eslint-visitor-keys, eslint-scope ([#18962](https://redirect.github.com/eslint/eslint/issues/18962)) (Nicholas C. Zakas)
- [`c1a2725`](https://redirect.github.com/eslint/eslint/commit/c1a2725e9c776d6845d94c866c7f7b1fe0315090) chore: update dependency mocha to ^10.7.3 ([#18945](https://redirect.github.com/eslint/eslint/issues/18945)) (Milos Djermanovic)
Configuration
📅 Schedule: Branch creation - "on the first day of the month" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Never, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
5.0.2
->5.1.0
5.0.2
->5.1.0
5.0.2
->5.1.0
3.4.0
->3.5.0
1.39.0
->1.40.0
9.11.1
->9.14.0
Release Notes
OpenZeppelin/openzeppelin-contracts (@openzeppelin/contracts)
### [`v5.1.0`](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/blob/HEAD/CHANGELOG.md#510-2024-10-17) [Compare Source](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/compare/v5.0.2...v5.1.0) ##### 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 This version comes with changes to the custom error identifiers. Contracts previously depending on the following errors should be replaced accordingly: - Replace `Address.FailedInnerCall` with `Errors.FailedCall` - Replace `Address.AddressInsufficientBalance` with `Errors.InsufficientBalance` - Replace `Clones.Create2InsufficientBalance` with `Errors.InsufficientBalance` - Replace `Clones.ERC1167FailedCreateClone` with `Errors.FailedDeployment` - Replace `Clones.Create2FailedDeployment` with `Errors.FailedDeployment` - `SafeERC20`: Replace `Address.AddressEmptyCode` with `SafeERC20FailedOperation` if there is no code at the token's address. - `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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5008)) ##### Access - `AccessControlEnumerable`: Add a `getRoleMembers` method to return all accounts that have `role`. ([#4546](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4546)) - `AccessManager`: Allow the `onlyAuthorized` modifier to restrict functions added to the manager. ([#5014](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5014)) ##### Finance - `VestingWalletCliff`: Add an extension of the `VestingWallet` contract with an added cliff. ([#4870](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5045)) - `Votes`: Set `_moveDelegateVotes` visibility to internal instead of private. ([#5007](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5007)) ##### Proxy - `Clones`: Add version of `clone` and `cloneDeterministic` that support sending value at creation. ([#4936](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4936)) - `TransparentUpgradeableProxy`: Make internal `_proxyAdmin()` getter have `view` visibility. ([#4688](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4688)) - `ProxyAdmin`: Fixed documentation for `UPGRADE_INTERFACE_VERSION` getter. ([#5031](https://redirect.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://redirect.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://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4631)) - `SafeERC20`: Document risks of `safeIncreaseAllowance` and `safeDecreaseAllowance` when associated with ERC-7674. ([#5262](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4845)) - `ERC1363Utils`: Add helper similar to the existing ERC721Utils and ERC1155Utils. ([#5133](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5133)) ##### Utils - `Arrays`: add a `sort` functions for `address[]`, `bytes32[]` and `uint256[]` memory arrays. ([#4846](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4842)) - `Arrays`: deprecate `findUpperBound` in favor of the new `lowerBound`. ([#4842](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4842)) - `Base64`: Add `encodeURL` following section 5 of RFC4648 for URL encoding ([#4822](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4822)) - `Comparator`: A library of comparator functions, useful for customizing the behavior of the Heap structure. ([#5084](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5084)) - `Create2`: Bubbles up returndata from a deployed contract that reverted during construction. ([#5052](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4941)) - `Errors`: New library of common custom errors. ([#4936](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4936)) - `Hashes`: A library with commonly used hash functions. ([#3617](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3617)) - `Packing`: Added a new utility for packing, extracting and replacing bytesXX values. ([#4992](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4992)) - `Panic`: Add a library for reverting with panic codes. ([#3298](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3298)) - `ReentrancyGuardTransient`: Added a variant of `ReentrancyGuard` that uses transient storage. ([#4988](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4988)) - `Strings`: Added a utility function for converting an address to checksummed string. ([#5067](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5067)) - `SlotDerivation`: Add a library of methods for derivating common storage slots. ([#4975](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4975)) - `TransientSlot`: Add primitives for operating on the transient storage space using a typed-slot representation. ([#4980](https://redirect.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://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4887)) - `P256`: Library for verification and public key recovery of P256 (aka secp256r1) signatures. ([#4881](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4881)) - `RSA`: Library to verify signatures according to RFC 8017 Signature Verification Operation ([#4952](https://redirect.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://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3298)) - `Math`: Custom errors replaced with native panic codes. ([#3298](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4976)) - `SafeCast`: Add `toUint(bool)` for operating on `bool` values as `uint256`. ([#4878](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4878)) ##### Structures - `CircularBuffer`: Add a data structure that stores the last `N` values pushed to it. ([#4913](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4913)) - `DoubleEndedQueue`: Custom errors replaced with native panic codes. ([#4872](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4872)) - `EnumerableMap`: add `UintToBytes32Map`, `AddressToAddressMap`, `AddressToBytes32Map` and `Bytes32ToAddressMap`. ([#4843](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4843)) - `Heap`: A data structure that implements a heap-based priority queue. ([#5084](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3617))OpenZeppelin/openzeppelin-contracts-upgradeable (@openzeppelin/contracts-upgradeable5)
### [`v5.1.0`](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/blob/HEAD/CHANGELOG.md#510-2024-10-17) [Compare Source](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/compare/v5.0.2...v5.1.0) ##### 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 This version comes with changes to the custom error identifiers. Contracts previously depending on the following errors should be replaced accordingly: - Replace `Address.FailedInnerCall` with `Errors.FailedCall` - Replace `Address.AddressInsufficientBalance` with `Errors.InsufficientBalance` - Replace `Clones.Create2InsufficientBalance` with `Errors.InsufficientBalance` - Replace `Clones.ERC1167FailedCreateClone` with `Errors.FailedDeployment` - Replace `Clones.Create2FailedDeployment` with `Errors.FailedDeployment` - `SafeERC20`: Replace `Address.AddressEmptyCode` with `SafeERC20FailedOperation` if there is no code at the token's address. - `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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5008)) ##### Access - `AccessControlEnumerable`: Add a `getRoleMembers` method to return all accounts that have `role`. ([#4546](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4546)) - `AccessManager`: Allow the `onlyAuthorized` modifier to restrict functions added to the manager. ([#5014](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5014)) ##### Finance - `VestingWalletCliff`: Add an extension of the `VestingWallet` contract with an added cliff. ([#4870](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5045)) - `Votes`: Set `_moveDelegateVotes` visibility to internal instead of private. ([#5007](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5007)) ##### Proxy - `Clones`: Add version of `clone` and `cloneDeterministic` that support sending value at creation. ([#4936](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4936)) - `TransparentUpgradeableProxy`: Make internal `_proxyAdmin()` getter have `view` visibility. ([#4688](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4688)) - `ProxyAdmin`: Fixed documentation for `UPGRADE_INTERFACE_VERSION` getter. ([#5031](https://redirect.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://redirect.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://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4631)) - `SafeERC20`: Document risks of `safeIncreaseAllowance` and `safeDecreaseAllowance` when associated with ERC-7674. ([#5262](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4845)) - `ERC1363Utils`: Add helper similar to the existing ERC721Utils and ERC1155Utils. ([#5133](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5133)) ##### Utils - `Arrays`: add a `sort` functions for `address[]`, `bytes32[]` and `uint256[]` memory arrays. ([#4846](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4842)) - `Arrays`: deprecate `findUpperBound` in favor of the new `lowerBound`. ([#4842](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4842)) - `Base64`: Add `encodeURL` following section 5 of RFC4648 for URL encoding ([#4822](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4822)) - `Comparator`: A library of comparator functions, useful for customizing the behavior of the Heap structure. ([#5084](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5084)) - `Create2`: Bubbles up returndata from a deployed contract that reverted during construction. ([#5052](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4941)) - `Errors`: New library of common custom errors. ([#4936](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4936)) - `Hashes`: A library with commonly used hash functions. ([#3617](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3617)) - `Packing`: Added a new utility for packing, extracting and replacing bytesXX values. ([#4992](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4992)) - `Panic`: Add a library for reverting with panic codes. ([#3298](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3298)) - `ReentrancyGuardTransient`: Added a variant of `ReentrancyGuard` that uses transient storage. ([#4988](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4988)) - `Strings`: Added a utility function for converting an address to checksummed string. ([#5067](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/5067)) - `SlotDerivation`: Add a library of methods for derivating common storage slots. ([#4975](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4975)) - `TransientSlot`: Add primitives for operating on the transient storage space using a typed-slot representation. ([#4980](https://redirect.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://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4887)) - `P256`: Library for verification and public key recovery of P256 (aka secp256r1) signatures. ([#4881](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4881)) - `RSA`: Library to verify signatures according to RFC 8017 Signature Verification Operation ([#4952](https://redirect.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://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3298)) - `Math`: Custom errors replaced with native panic codes. ([#3298](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4976)) - `SafeCast`: Add `toUint(bool)` for operating on `bool` values as `uint256`. ([#4878](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4878)) ##### Structures - `CircularBuffer`: Add a data structure that stores the last `N` values pushed to it. ([#4913](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4913)) - `DoubleEndedQueue`: Custom errors replaced with native panic codes. ([#4872](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4872)) - `EnumerableMap`: add `UintToBytes32Map`, `AddressToAddressMap`, `AddressToBytes32Map` and `Bytes32ToAddressMap`. ([#4843](https://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/4843)) - `Heap`: A data structure that implements a heap-based priority queue. ([#5084](https://redirect.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://redirect.github.com/OpenZeppelin/openzeppelin-contracts/pull/3617))OpenZeppelin/openzeppelin-upgrades (@openzeppelin/hardhat-upgrades)
### [`v3.5.0`](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/blob/HEAD/packages/plugin-hardhat/CHANGELOG.md#350-2024-10-10) [Compare Source](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/compare/@openzeppelin/hardhat-upgrades@3.4.0...@openzeppelin/hardhat-upgrades@3.5.0) - Support ignoring Hardhat compile errors when extracting detailed namespaced storage layouts for validations. ([#1090](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/pull/1090))OpenZeppelin/openzeppelin-upgrades (@openzeppelin/upgrades-core)
### [`v1.40.0`](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/blob/HEAD/packages/core/CHANGELOG.md#1400-2024-10-10) [Compare Source](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/compare/@openzeppelin/upgrades-core@1.39.0...@openzeppelin/upgrades-core@1.40.0) - Fix Hardhat compile error when overriding interface functions with public constant variables. ([#1091](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/pull/1091)) - Support ignoring Hardhat compile errors when extracting detailed namespaced storage layouts for validations. ([#1090](https://redirect.github.com/OpenZeppelin/openzeppelin-upgrades/pull/1090))eslint/eslint (eslint)
### [`v9.14.0`](https://redirect.github.com/eslint/eslint/compare/v9.13.0...db0b844a66ee25483f9619d04346de1a2a0d79fa) [Compare Source](https://redirect.github.com/eslint/eslint/compare/v9.13.0...v9.14.0) ### [`v9.13.0`](https://redirect.github.com/eslint/eslint/compare/v9.12.0...1a7cdbfad8d3355132aab3201c7dd3f2e879b19d) [Compare Source](https://redirect.github.com/eslint/eslint/compare/v9.12.0...v9.13.0) ### [`v9.12.0`](https://redirect.github.com/eslint/eslint/releases/tag/v9.12.0) [Compare Source](https://redirect.github.com/eslint/eslint/compare/v9.11.1...v9.12.0) #### Features - [`5a6a053`](https://redirect.github.com/eslint/eslint/commit/5a6a05321ca34480c780be8c2cb7946e4c299001) feat: update to `jiti` v2 ([#18954](https://redirect.github.com/eslint/eslint/issues/18954)) (Arya Emami) - [`17a07fb`](https://redirect.github.com/eslint/eslint/commit/17a07fb548ecce24b88e8b2b07491c24ed1111a9) feat: Hooks for test cases (RuleTester) ([#18771](https://redirect.github.com/eslint/eslint/issues/18771)) (Anna Bocharova) - [`2ff0e51`](https://redirect.github.com/eslint/eslint/commit/2ff0e51cedaab967b7ce383437f64b4a6df8608d) feat: Implement alternate config lookup ([#18742](https://redirect.github.com/eslint/eslint/issues/18742)) (Nicholas C. Zakas) - [`2d17453`](https://redirect.github.com/eslint/eslint/commit/2d174532ae96bcaecf6fd7de78755164378b3a2d) feat: Implement modified cyclomatic complexity ([#18896](https://redirect.github.com/eslint/eslint/issues/18896)) (Dmitry Pashkevich) #### Bug Fixes - [`ea380ca`](https://redirect.github.com/eslint/eslint/commit/ea380cac6f598c86b25a2726c2783636c4169957) fix: Upgrade retry to avoid EMFILE errors ([#18986](https://redirect.github.com/eslint/eslint/issues/18986)) (Nicholas C. Zakas) - [`fdd6319`](https://redirect.github.com/eslint/eslint/commit/fdd631964aee250bc5520770bc1fc3f2f2872813) fix: Issues with type definitions ([#18940](https://redirect.github.com/eslint/eslint/issues/18940)) (Arya Emami) #### Documentation - [`ecbd522`](https://redirect.github.com/eslint/eslint/commit/ecbd52291d7c118b77016c6bf1c60b7d263c44f0) docs: Mention code explorer ([#18978](https://redirect.github.com/eslint/eslint/issues/18978)) (Nicholas C. Zakas) - [`7ea4ecc`](https://redirect.github.com/eslint/eslint/commit/7ea4ecc6e3320a74c960cb78acc94c0140d15f55) docs: Clarifying the Use of Meta Objects ([#18697](https://redirect.github.com/eslint/eslint/issues/18697)) (Amaresh S M) - [`d3e4b2e`](https://redirect.github.com/eslint/eslint/commit/d3e4b2ea4a8f76d4d49345c242f013f49635274f) docs: Clarify how to exclude `.js` files ([#18976](https://redirect.github.com/eslint/eslint/issues/18976)) (Milos Djermanovic) - [`57232ff`](https://redirect.github.com/eslint/eslint/commit/57232ff3d50412586df094f052b47adb38f8d9ae) docs: Mention plugin-kit in language docs ([#18973](https://redirect.github.com/eslint/eslint/issues/18973)) (Nicholas C. Zakas) - [`b80ed00`](https://redirect.github.com/eslint/eslint/commit/b80ed007cefee086db1ff17cde9f7dd6690459f0) docs: Update README (GitHub Actions Bot) - [`cb69ab3`](https://redirect.github.com/eslint/eslint/commit/cb69ab374c149eb725b2fc5a8f0ff33fd7268a46) docs: Update README (GitHub Actions Bot) - [`7fb0d95`](https://redirect.github.com/eslint/eslint/commit/7fb0d957c102be499d5358a74928e0ea93913371) docs: Update README (GitHub Actions Bot) - [`493348a`](https://redirect.github.com/eslint/eslint/commit/493348a9a5dcca29d7fbbe13c67ce13a7a38413b) docs: Update README (GitHub Actions Bot) - [`87a582c`](https://redirect.github.com/eslint/eslint/commit/87a582c8b537d133c140781aa9e3ff0201a3c10f) docs: fix typo in `id-match` rule ([#18944](https://redirect.github.com/eslint/eslint/issues/18944)) (Jay) #### Chores - [`555aafd`](https://redirect.github.com/eslint/eslint/commit/555aafd06f6dddc743acff06111dc72dd8ea4c4e) chore: upgrade to `@eslint/js@9.12.0` ([#18987](https://redirect.github.com/eslint/eslint/issues/18987)) (Francesco Trotta) - [`873ae60`](https://redirect.github.com/eslint/eslint/commit/873ae608c15a0a386f022076b5aab6112b56b59b) chore: package.json update for [@eslint/js](https://redirect.github.com/eslint/js) release (Jenkins) - [`d0a5414`](https://redirect.github.com/eslint/eslint/commit/d0a5414c30421e5dbe313790502dbf13b9330fef) refactor: replace strip-ansi with native module ([#18982](https://redirect.github.com/eslint/eslint/issues/18982)) (Cristopher) - [`b827029`](https://redirect.github.com/eslint/eslint/commit/b8270299abe777bb80a065d537aa1d4be74be705) chore: Enable JSON5 linting ([#18979](https://redirect.github.com/eslint/eslint/issues/18979)) (Milos Djermanovic) - [`8f55ca2`](https://redirect.github.com/eslint/eslint/commit/8f55ca22d94c1b0ff3be323b97949edef8d880b0) chore: Upgrade espree, eslint-visitor-keys, eslint-scope ([#18962](https://redirect.github.com/eslint/eslint/issues/18962)) (Nicholas C. Zakas) - [`c1a2725`](https://redirect.github.com/eslint/eslint/commit/c1a2725e9c776d6845d94c866c7f7b1fe0315090) chore: update dependency mocha to ^10.7.3 ([#18945](https://redirect.github.com/eslint/eslint/issues/18945)) (Milos Djermanovic)Configuration
📅 Schedule: Branch creation - "on the first day of the month" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Never, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.