TransferableToken.sol 667 B

12345678910111213141516171819202122
  1. pragma solidity ^0.4.8;
  2. import "./ERC20.sol";
  3. contract TransferableToken is ERC20 {
  4. modifier canTransfer(address _sender, uint _value) {
  5. if (_value > transferableTokens(_sender, uint64(now))) throw;
  6. _;
  7. }
  8. function transfer(address _to, uint _value) canTransfer(msg.sender, _value) returns (bool success) {
  9. return super.transfer(_to, _value);
  10. }
  11. function transferFrom(address _from, address _to, uint _value) canTransfer(_from, _value) returns (bool success) {
  12. return super.transferFrom(_from, _to, _value);
  13. }
  14. function transferableTokens(address holder, uint64 time) constant public returns (uint256) {
  15. return balanceOf(holder);
  16. }
  17. }