openzeppelin-solidity
Advanced tools
Changelog
3.2.0 (2020-09-10)
Aside from upgrading them from Solidity 0.5 to 0.6, we've changed a few minor things from the proxy contracts as they were found in OpenZeppelin SDK.
UpgradeabilityProxy
was renamed to UpgradeableProxy
.AdminUpgradeabilityProxy
was renamed to TransparentUpgradeableProxy
.Proxy._willFallback
was renamed to Proxy._beforeFallback
.UpgradeabilityProxy._setImplementation
and AdminUpgradeabilityProxy._setAdmin
were made private.Address.isContract
: switched from extcodehash
to extcodesize
for less gas usage. (#2311)ERC20Snapshot
: switched to using _beforeTokenTransfer
hook instead of overriding ERC20 operations. (#2312)This small change in the way we implemented ERC20Snapshot
may affect users who are combining this contract with
other ERC20 flavors, since it no longer overrides _transfer
, _mint
, and _burn
. This can result in having to remove Solidity override(...)
specifiers in derived contracts for these functions, and to instead have to add it for _beforeTokenTransfer
. See Using Hooks in the documentation.
Changelog
3.1.0 (2020-06-23)
SafeCast
: added functions to downcast signed integers (e.g. toInt32
), improving usability of SignedSafeMath
. (#2243)functionCall
: new helpers that replicate Solidity's function call semantics, reducing the need to rely on call
. (#2264)ERC1155
: added support for a base implementation, non-standard extensions and a preset contract. (#2014, #2230)ReentrancyGuard
: reduced overhead of using the nonReentrant
modifier. (#2171)AccessControl
: added a RoleAdminChanged
event to _setAdminRole
. (#2214)public
functions in the token preset contracts virtual
. (#2257)SafeERC20
: deprecated safeApprove
. (#2268)Changelog
3.0.0 (2020-04-20)
AccessControl
: new contract for managing permissions in a system, replacement for Ownable
and Roles
. (#2112)SafeCast
: new functions to convert to and from signed and unsigned values: toUint256
and toInt256
. (#2123)EnumerableMap
: a new data structure for key-value pairs (like mapping
) that can be iterated over. (#2160)ERC721
: burn(owner, tokenId)
was removed, use burn(tokenId)
instead. (#2125)ERC721
: _checkOnERC721Received
was removed. (#2125)ERC721
: _transferFrom
and _safeTransferFrom
were renamed to _transfer
and _safeTransfer
. (#2162)Ownable
: removed _transferOwnership
. (#2162)PullPayment
, Escrow
: withdrawWithGas
was removed. The old withdraw
function now forwards all gas. (#2125)Roles
was removed, use AccessControl
as a replacement. (#2112)ECDSA
: when receiving an invalid signature, recover
now reverts instead of returning the zero address. (#2114)Create2
: added an amount
argument to deploy
for contracts with payable
constructors. (#2117)Pausable
: moved to the utils
directory. (#2122)Strings
: moved to the utils
directory. (#2122)Counters
: moved to the utils
directory. (#2122)SignedSafeMath
: moved to the math
directory. (#2122)ERC20Snapshot
: moved to the token/ERC20
directory. snapshot
was changed into an internal
function. (#2122)Ownable
: moved to the access
directory. (#2120)Ownable
: removed isOwner
. (#2120)Secondary
: removed from the library, use Ownable
instead. (#2120)Escrow
, ConditionalEscrow
, RefundEscrow
: these now use Ownable
instead of Secondary
, their external API changed accordingly. (#2120)ERC20
: removed _burnFrom
. (#2119)Address
: removed toPayable
, use payable(address)
instead. (#2133)ERC777
: _send
, _mint
and _burn
now use the caller as the operator. (#2134)ERC777
: removed _callsTokensToSend
and _callTokensReceived
. (#2134)EnumerableSet
: renamed get
to at
. (#2151)ERC165Checker
: functions no longer have a leading underscore. (#2150)ERC721Metadata
, ERC721Enumerable
: these contracts were removed, and their functionality merged into ERC721
. (#2160)ERC721
: added a constructor for name
and symbol
. (#2160)ERC20Detailed
: this contract was removed and its functionality merged into ERC20
. (#2161)ERC20
: added a constructor for name
and symbol
. decimals
now defaults to 18. (#2161)Strings
: renamed fromUint256
to toString
(#2188)