- Renamed package to
@openzeppelin/contracts-ethereum-package
. (#54)
ERC20Snapshot
: create snapshots on demand of the token balances and total supply, to later retrieve and e.g. calculate dividends at a past time. (#1617)SafeERC20
:ERC20
contracts with no return value (i.e. that revert on failure) are now supported. (#1655)ERC20
: added internal_approve(address owner, address spender, uint256 value)
, allowing derived contracts to set the allowance of arbitrary accounts. (#1609)ERC20Metadata
: added internal_setTokenURI(string memory tokenURI)
. (#1618)TimedCrowdsale
: added internal_extendTime(uint256 newClosingTime)
as well asTimedCrowdsaleExtended(uint256 prevClosingTime, uint256 newClosingTime)
event allowing to extend the crowdsale, as long as it hasn't already closed.
- Upgraded the minimum compiler version to v0.5.2: this removes many Solidity warnings that were false positives. (#1606)
ECDSA
:recover
no longer accepts malleable signatures (those using upper-range values fors
, or 0/1 forv
). (#1622)ERC721
's transfers are now more gas efficient due to removal of unnecessarySafeMath
calls. (#1610)Counter
's API has been improved, and is now used byERC721
(though it is still indrafts
). (#1610)- Fixed variable shadowing issues. (#1606)
- (minor)
SafeERC20
:safeApprove
wasn't properly checking for a zero allowance when attempting to set a non-zero allowance. (#1647)
TokenMetadata
(in drafts) has been renamed toERC20Metadata
. (#1618)
- Backported
SafeERC20.safeApprove
bugfix. (#1647)
- Removed most of the test suite from the npm package, except
PublicRole.behavior.js
, which may be useful to users testing their ownRoles
.
- Version bump to avoid conflict in the npm registry.
- Now targeting the 0.5.x line of Solidity compilers. For 0.4.24 support, use version 2.0 of OpenZeppelin.
WhitelistCrowdsale
: a crowdsale where only whitelisted accounts (WhitelistedRole
) can purchase tokens. Adding or removing accounts from the whitelist is done by whitelist admins (WhitelistAdminRole
). Similar to the pre-2.0WhitelistedCrowdsale
. (#1525, #1589)RefundablePostDeliveryCrowdsale
: replacement forRefundableCrowdsale
(deprecated, see below) where tokens are only granted once the crowdsale ends (if it meets its goal). (#1543)PausableCrowdsale
: allows for pausers (PauserRole
) to pause token purchases. Other crowdsale operations (e.g. withdrawals and refunds, if applicable) are not affected. (#832)ERC20
:transferFrom
and_burnFrom
now emitApproval
events, to represent the token's state comprehensively through events. (#1524)ERC721
: added_burn(uint256 tokenId)
, replacing the similar deprecated function (see below). (#1550)ERC721
: added_tokensOfOwner(address owner)
, allowing to internally retrieve the array of an account's owned tokens. (#1522)- Crowdsales: all constructors are now
public
, meaning it is not necessary to extend these contracts in order to deploy them. The exception isFinalizableCrowdsale
, since it is meaningless unless extended. (#1564) SignedSafeMath
: added overflow-safe operations for signed integers (int256
). (#1559, #1588)
- The compiler version required by
Array
was behind the rest of the libray so it was updated tov0.4.24
. (#1553) - Now conforming to a 4-space indentation code style. (1508)
ERC20
: more gas efficient due to removed redundantrequire
s. (#1409)ERC721
: fixed a bug that prevented internal data structures from being properly cleaned, missing potential gas refunds. (#1539 and #1549)ERC721
: general gas savings ontransferFrom
,_mint
and_burn
, due to redudantrequire
s andSSTORE
s. (#1549)