@openzeppelin/contracts
Advanced tools
Changelog
4.3.3 (2021-11-08)
ERC1155Supply
: Handle totalSupply
changes by hooking into _beforeTokenTransfer
to ensure consistency of balances and supply during IERC1155Receiver.onERC1155Received
calls.Changelog
4.3.2 (2021-09-14)
UUPSUpgradeable
: Add modifiers to prevent upgradeTo
and upgradeToAndCall
being executed on any contract that is not the active ERC1967 proxy. This prevents these functions being called on implementation contracts or minimal ERC1167 clones, in particular.Changelog
4.3.0 (2021-08-17)
ERC2771Context
: use private variable from storage to store the forwarder address. Fixes issues where _msgSender()
was not callable from constructors. (#2754)EnumerableSet
: add values()
functions that returns an array containing all values in a single call. (#2768)Governor
: added a modular system of Governor
contracts based on GovernorAlpha
and GovernorBravo
. (#2672)interfaces
folder containing solidity interfaces to final ERCs. (#2517)ECDSA
: add tryRecover
functions that will not throw if the signature is invalid, and will return an error flag instead. (#2661)SignatureChecker
: Reduce gas usage of the isValidSignatureNow
function for the "signature by EOA" case. (#2661)Changelog
4.2.0 (2021-06-30)
ERC20Votes
: add a new extension of the ERC20
token with support for voting snapshots and delegation. (#2632)ERC20VotesComp
: Variant of ERC20Votes
that is compatible with Compound's Comp
token interface but restricts supply to uint96
. (#2706)ERC20Wrapper
: add a new extension of the ERC20
token which wraps an underlying token. Deposit and withdraw guarantee that the total supply is backed by a corresponding amount of underlying token. (#2633)EnumerableSet
and EnumerableMap
.EnumerableSet
and EnumerableMap
.Counter
: add a reset method. (#2678)unchecked
blocks.Math
: Add a ceilDiv
method for performing ceiling division.ERC1155Supply
: add a new ERC1155
extension that keeps track of the totalSupply of each tokenId. (#2593)BitMaps
: add a new BitMaps
library that provides a storage efficient datastructure for uint256
to bool
mapping with contiguous keys. (#2710)ERC20FlashMint
is no longer a Draft ERC. (#2673))How to update: Change your import paths by removing the draft-
prefix from @openzeppelin/contracts/token/ERC20/extensions/draft-ERC20FlashMint.sol
.