|
@@ -58,12 +58,7 @@ contract ERC20 is IERC20 {
|
|
|
* @param value The amount to be transferred.
|
|
|
*/
|
|
|
function transfer(address to, uint256 value) public returns (bool) {
|
|
|
- require(value <= _balances[msg.sender]);
|
|
|
- require(to != address(0));
|
|
|
-
|
|
|
- _balances[msg.sender] = _balances[msg.sender].sub(value);
|
|
|
- _balances[to] = _balances[to].add(value);
|
|
|
- emit Transfer(msg.sender, to, value);
|
|
|
+ _transfer(msg.sender, to, value);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -98,14 +93,10 @@ contract ERC20 is IERC20 {
|
|
|
public
|
|
|
returns (bool)
|
|
|
{
|
|
|
- require(value <= _balances[from]);
|
|
|
require(value <= _allowed[from][msg.sender]);
|
|
|
- require(to != address(0));
|
|
|
|
|
|
- _balances[from] = _balances[from].sub(value);
|
|
|
- _balances[to] = _balances[to].add(value);
|
|
|
_allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
|
|
|
- emit Transfer(from, to, value);
|
|
|
+ _transfer(from, to, value);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -157,6 +148,21 @@ contract ERC20 is IERC20 {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @dev Transfer token for a specified addresses
|
|
|
+ * @param from The address to transfer from.
|
|
|
+ * @param to The address to transfer to.
|
|
|
+ * @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);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @dev Internal function that mints an amount of the token and assigns it to
|
|
|
* an account. This encapsulates the modification of balances such that the
|