BasicToken.sol 746 B

1234567891011121314151617181920212223242526272829303132333435
  1. pragma solidity ^0.4.8;
  2. import './ERC20Basic.sol';
  3. import '../SafeMath.sol';
  4. /*
  5. * Basic token
  6. * Basic version of StandardToken, with no allowances
  7. */
  8. contract BasicToken is ERC20Basic {
  9. using SafeMath for uint;
  10. mapping(address => uint) balances;
  11. /*
  12. * Fix for the ERC20 short address attack
  13. */
  14. modifier onlyPayloadSize(uint size) {
  15. assert(msg.data.length >= size + 4);
  16. _;
  17. }
  18. function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) {
  19. balances[msg.sender] = balances[msg.sender].safeSub(_value);
  20. balances[_to] = balances[_to].safeAdd(_value);
  21. Transfer(msg.sender, _to, _value);
  22. }
  23. function balanceOf(address _owner) constant returns (uint balance) {
  24. return balances[_owner];
  25. }
  26. }