source/contracts/libraries/token/BasicToken.sol
pragma solidity 0.4.20;
import 'libraries/token/ERC20Basic.sol';
import 'libraries/math/SafeMathUint256.sol';
/**
* @title Basic token
* @dev Basic version of StandardToken, with no allowances.
*/
contract BasicToken is ERC20Basic {
using SafeMathUint256 for uint256;
uint256 internal supply;
mapping(address => uint256) internal balances;
/**
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
*/
function transfer(address _to, uint256 _value) public returns(bool) {
return internalTransfer(msg.sender, _to, _value);
}
/**
* @dev allows internal token transfers
* @param _from The source address
* @param _to The destination address
*/
function internalTransfer(address _from, address _to, uint256 _value) internal returns (bool) {
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(_from, _to, _value);
onTokenTransfer(_from, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _owner The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
*/
function balanceOf(address _owner) public view returns (uint256) {
return balances[_owner];
}
function totalSupply() public view returns (uint256) {
return supply;
}
// Subclasses of this token generally want to send additional logs through the centralized Augur log emitter contract
function onTokenTransfer(address _from, address _to, uint256 _value) internal returns (bool);
}