Releases: OpenZeppelin/openzeppelin-contracts-upgradeable
Releases · OpenZeppelin/openzeppelin-contracts-upgradeable
v4.0.0
Read the full announcement in the blog or check out the changelog.
Note: Upgradeable contracts using OpenZeppelin Contracts 3.x cannot upgrade to 4.x.
Changelog
- Now targeting the 0.8.x line of Solidity compilers. For 0.6.x (resp 0.7.x) support, use version 3.4.0 (resp 3.4.0-solc-0.7) of OpenZeppelin.
Context: making_msgDatareturnbytes calldatainstead ofbytes memory(#2492)ERC20: removed the_setDecimalsfunction and the storage slot associated to decimals. (#2502)Strings: addition of atoHexStringfunction. (#2504)EnumerableMap: change implementation to optimize forkey → valuelookups instead of enumeration. (#2518)GSN: deprecate GSNv1 support in favor of upcoming support for GSNv2. (#2521)ERC165: remove uses of storage in the base ERC165 implementation. ERC165 based contracts now use storage-less virtual functions. Old behavior remains available in theERC165Storageextension. (#2505)Initializable: make initializer check stricter during construction. (#2531)ERC721: remove enumerability of tokens from the base implementation. This feature is now provided separately through theERC721Enumerableextension. (#2511)AccessControl: removed enumerability by default for a more lightweight contract. It is now opt-in throughAccessControlEnumerable. (#2512)- Meta Transactions: add
ERC2771Contextand aMinimalForwarderfor meta-transactions. (#2508) - Overall reorganization of the contract folder to improve clarity and discoverability. (#2503)
ERC20Capped: optimize gas usage by enforcing the check directly in_mint. (#2524)- Rename
UpgradeableProxytoERC1967Proxy. (#2547) ERC777: optimize the gas costs of the constructor. (#2551)ERC721URIStorage: add a new extension that implements the_setTokenURIbehavior as it was available in 3.4.0. (#2555)AccessControl: added ERC165 interface detection. (#2562)ERC1155: makeuripublic so overloading function can call it using super. (#2576)
v4.0.0-beta.0
A beta release for Solidity 0.8. Read the announcement in the forum.
v3.4.0
Read the full announcement in the blog or check out the changelog.
Security Fixes
ERC777: fix potential reentrancy issues for custom extensions toERC777. (#2483)
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 protected]. Read more in the pull request.
v3.3.0
Read the full announcement in the forum or check out the changelog.
- Now supports both Solidity 0.6 and 0.7. Compiling with solc 0.7 will result in warnings. Install the
solc-0.7tag to compile without warnings. TimelockController: added a contract to augment access control schemes with a delay. (#2354)Address: addedfunctionStaticCall, similar to the existingfunctionCall. (#2333)EnumerableSet: addedBytes32Set, for sets ofbytes32. (#2395)