ERC721Consecutive: Fixed a bug when _mintConsecutive is used for batches of size 1 that could lead to balance overflow. Refer to the breaking changes section in the changelog for a note on the behavior of ERC721._beforeTokenTransfer.
Breaking changes
ERC721: The internal function _beforeTokenTransfer no longer updates balances, which it previously did when batchSize was greater than 1. This change has no consequence unless a custom ERC721 extension is explicitly invoking _beforeTokenTransfer. Balance updates in extensions must now be done explicitly using __unsafe_increaseBalance, with a name that indicates that there is an invariant that has to be manually verified.
v4.8.1
ERC4626: Use staticcall instead of call when fetching underlying ERC-20 decimals. (#3943)
v4.8.0
Note
Don't miss the section on Breaking changes at the end.
TimelockController: Added a new admin constructor parameter that is assigned the admin role instead of the deployer account. (#3722)
Initializable: add internal functions _getInitializedVersion and _isInitializing (#3598)
ERC165Checker: add supportsERC165InterfaceUnchecked for consulting individual interfaces without the full ERC165 protocol. (#3339)
Address: optimize functionCall by calling functionCallWithValue directly. (#3468)
Address: optimize functionCall functions by checking contract size only if there is no returned data. (#3469)
Governor: make the relay function payable, and add support for EOA payments. (#3730)
GovernorCompatibilityBravo: remove unused using statements. (#3506)
ERC20: optimize _transfer, _mint and _burn by using unchecked arithmetic when possible. (#3513)
ERC20Votes, ERC721Votes: optimize getPastVotes for looking up recent checkpoints. (#3673)
ERC20FlashMint: add an internal _flashFee function for overriding. (#3551)
ERC4626: use the same decimals() as the underlying asset by default (if available). (#3639)
ERC4626: add internal _initialConvertToShares and _initialConvertToAssets functions to customize empty vaults behavior. (#3639)
ERC721: optimize transfers by making approval clearing implicit instead of emitting an event. (#3481)
ERC721: optimize burn by making approval clearing implicit instead of emitting an event. (#3538)
ERC721: Fix balance accounting when a custom _beforeTokenTransfer hook results in a transfer of the token under consideration. (#3611)
ERC721: use unchecked arithmetic for balance updates. (#3524)
ERC721Consecutive: Implementation of EIP-2309 that allows batch minting of ERC721 tokens during construction. (#3311)
ReentrancyGuard: Reduce code size impact of the modifier by using internal functions. (#3515)
SafeCast: optimize downcasting of signed integers. (#3565)
ECDSA: Remove redundant check on the v value. (#3591)
Create2: optimize address computation by using assembly instead of abi.encodePacked. (#3600)
Clones: optimized the assembly to use only the scratch space during deployments, and optimized predictDeterministicAddress to use fewer operations. (#3640)
Checkpoints: Use procedural generation to support multiple key/value lengths. (#3589)
GovernorCompatibilityBravo: Fix encoding of proposal data when signatures are missing.
TransparentUpgradeableProxy: Fix transparency in case of selector clash with non-decodable calldata or payable mutability. (#4154)
4.8.2 (2023-03-02)
ERC721Consecutive: Fixed a bug when _mintConsecutive is used for batches of size 1 that could lead to balance overflow. Refer to the breaking changes section in the changelog for a note on the behavior of ERC721._beforeTokenTransfer.
Breaking changes
ERC721: The internal function _beforeTokenTransfer no longer updates balances, which it previously did when batchSize was greater than 1. This change has no consequence unless a custom ERC721 extension is explicitly invoking _beforeTokenTransfer. Balance updates in extensions must now be done explicitly using __unsafe_increaseBalance, with a name that indicates that there is an invariant that has to be manually verified.
4.8.1 (2023-01-12)
ERC4626: Use staticcall instead of call when fetching underlying ERC-20 decimals. (#3943)
4.8.0 (2022-11-08)
TimelockController: Added a new admin constructor parameter that is assigned the admin role instead of the deployer account. (#3722)
Initializable: add internal functions _getInitializedVersion and _isInitializing (#3598)
ERC165Checker: add supportsERC165InterfaceUnchecked for consulting individual interfaces without the full ERC165 protocol. (#3339)
Address: optimize functionCall by calling functionCallWithValue directly. (#3468)
Address: optimize functionCall functions by checking contract size only if there is no returned data. (#3469)
Governor: make the relay function payable, and add support for EOA payments. (#3730)
GovernorCompatibilityBravo: remove unused using statements. (#3506)
ERC20: optimize _transfer, _mint and _burn by using unchecked arithmetic when possible. (#3513)
ERC20Votes, ERC721Votes: optimize getPastVotes for looking up recent checkpoints. (#3673)
ERC20FlashMint: add an internal _flashFee function for overriding. (#3551)
ERC4626: use the same decimals() as the underlying asset by default (if available). (#3639)
ERC4626: add internal _initialConvertToShares and _initialConvertToAssets functions to customize empty vaults behavior. (#3639)
ERC721: optimize transfers by making approval clearing implicit instead of emitting an event. (#3481)
ERC721: optimize burn by making approval clearing implicit instead of emitting an event. (#3538)
ERC721: Fix balance accounting when a custom _beforeTokenTransfer hook results in a transfer of the token under consideration. (#3611)
ERC721: use unchecked arithmetic for balance updates. (#3524)
ERC721Consecutive: Implementation of EIP-2309 that allows batch minting of ERC721 tokens during construction. (#3311)
ReentrancyGuard: Reduce code size impact of the modifier by using internal functions. (#3515)
SafeCast: optimize downcasting of signed integers. (#3565)
ECDSA: Remove redundant check on the v value. (#3591)
Create2: optimize address computation by using assembly instead of abi.encodePacked. (#3600)
Clones: optimized the assembly to use only the scratch space during deployments, and optimized predictDeterministicAddress to use fewer operations. (#3640)
Checkpoints: Use procedural generation to support multiple key/value lengths. (#3589)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/bancorprotocol/contracts-solidity/network/alerts).
Bumps @openzeppelin/contracts from 3.4.0 to 4.8.3.
Release notes
Sourced from
@openzeppelin/contracts
's releases.... (truncated)
Changelog
Sourced from
@openzeppelin/contracts
's changelog.... (truncated)
Commits
0a25c19
4.8.37bdd255
Update changelogea595f5
Merge pull request from GHSA-93hq-5wgc-jc8261b45a2
Improve docs for transparent proxy (#4181)db9ee95
Merge changesets for transparency improvements (#4165)c01ea99
Fix TransparentUpgradeableProxy's transparency (#4154)8dfeb5d
Improve TransparentUpgradeableProxy's transparency (#3977)9eee01c
Bump and pin Forge Std submodule (#4102)d00acef
4.8.2ab9cc4c
Ignore reentrancy inexecuteBatch
and update Slither config (#3955)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/bancorprotocol/contracts-solidity/network/alerts).