OpenZeppelin Contracts 3.4 is around the corner!
Here are the changelog entries.
ERC777: fix potential reentrancy issues for custom extensions to
If you’re using our implementation of ERC777 from version 3.3.0 or earlier, and you define a custom
_beforeTokenTransfer function that writes to a storage variable, you may be vulnerable to a reentrancy attack. If you’re affected and would like assistance please write to email@example.com. Read more in the pull request.
BeaconProxy: added new kind of proxy that allows simultaneous atomic upgrades. (#2411)
EIP712: added helpers to verify EIP712 typed data signatures on chain. (#2418)
ERC20Permit: added an implementation of the ERC20 permit extension for gasless token approvals. (#2237)
- Presets: added token presets with preminted fixed supply
functionDelegateCall, similar to the existing
Clones: added a library for deploying EIP 1167 minimal proxies. (#2449)
Context: moved from
PaymentSplitter: replace usage of
Address.sendValuefor improved compatibility with smart wallets. (#2455)
UpgradeableProxy: bubble revert reasons from initialization calls. (#2454)
SafeMath: fix a memory allocation issue by adding new
SafeMath.op(uint,uint,string)→uintare now deprecated. (#2462)
EnumerableMap: fix a memory allocation issue by adding new
EnumerableMap.get(uint)→stringis now deprecated. (#2462)
ERC165Checker: added batch
beneficiaryWithdrawwill forward all available gas to the beneficiary. (#2480)
- Many view and pure functions have been made virtual to customize them via overrides. In many cases this will not imply that other functions in the contract will automatically adapt to the overridden definitions. People who wish to override should consult the source code to understand the impact and if they need to override any additional functions to achieve the desired behavior.
The upgradeable and solc-0.7 variants will be released together with the final release at the end of the release candidate period in about a week.