From fe01803c2717f8619829f081d0eac77c8bd27fa1 Mon Sep 17 00:00:00 2001 From: Brendan Chou Date: Thu, 11 Oct 2018 16:51:36 -0700 Subject: [PATCH 1/2] Remove redundant require statements Now that SafeMath uses require, the require statements are redundant. They were also previously inconsistent because they were only included in some functions, but not others --- contracts/token/ERC20/ERC20.sol | 6 ------ 1 file changed, 6 deletions(-) diff --git a/contracts/token/ERC20/ERC20.sol b/contracts/token/ERC20/ERC20.sol index 25b2694a24f..c9df247f006 100644 --- a/contracts/token/ERC20/ERC20.sol +++ b/contracts/token/ERC20/ERC20.sol @@ -93,8 +93,6 @@ contract ERC20 is IERC20 { public returns (bool) { - require(value <= _allowed[from][msg.sender]); - _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value); _transfer(from, to, value); return true; @@ -155,9 +153,7 @@ contract ERC20 is IERC20 { * @param value The amount to be transferred. */ function _transfer(address from, address to, uint256 value) internal { - require(value <= _balances[from]); require(to != address(0)); - _balances[from] = _balances[from].sub(value); _balances[to] = _balances[to].add(value); emit Transfer(from, to, value); @@ -185,8 +181,6 @@ contract ERC20 is IERC20 { */ function _burn(address account, uint256 value) internal { require(account != 0); - require(value <= _balances[account]); - _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); emit Transfer(account, address(0), value); From dd2843a2033d0dce760b9b7712fc7b0b9653fb37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Venturo?= Date: Fri, 2 Nov 2018 11:12:54 +0100 Subject: [PATCH 2/2] Update ERC20.sol --- contracts/token/ERC20/ERC20.sol | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contracts/token/ERC20/ERC20.sol b/contracts/token/ERC20/ERC20.sol index da8f1b4f4d5..6af8708658e 100644 --- a/contracts/token/ERC20/ERC20.sol +++ b/contracts/token/ERC20/ERC20.sol @@ -154,6 +154,7 @@ contract ERC20 is IERC20 { */ function _transfer(address from, address to, uint256 value) internal { require(to != address(0)); + _balances[from] = _balances[from].sub(value); _balances[to] = _balances[to].add(value); emit Transfer(from, to, value); @@ -168,6 +169,7 @@ contract ERC20 is IERC20 { */ function _mint(address account, uint256 value) internal { require(account != address(0)); + _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); emit Transfer(address(0), account, value); @@ -181,6 +183,7 @@ contract ERC20 is IERC20 { */ function _burn(address account, uint256 value) internal { require(account != address(0)); + _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); emit Transfer(account, address(0), value);