Sfoglia il codice sorgente

Check if tokens are transaferable on approve

Jorge Izquierdo 8 anni fa
parent
commit
23703280ee
1 ha cambiato i file con 13 aggiunte e 8 eliminazioni
  1. 13 8
      contracts/token/VestedToken.sol

+ 13 - 8
contracts/token/VestedToken.sol

@@ -15,6 +15,19 @@ contract VestedToken is StandardToken {
 
   mapping (address => TokenGrant[]) public grants;
 
+  modifier canTransfer(uint _value) {
+    if (_value > transferableTokens(msg.sender, uint64(now))) throw;
+    _;
+  }
+
+  function transfer(address _to, uint _value) canTransfer(_value) returns (bool success) {
+    return super.transfer(_to, _value);
+  }
+
+  function approve(address _spender, uint _value) canTransfer(_value) returns (bool success) {
+    return super.approve(_spender, _value);
+  }
+
   function grantVestedTokens(
     address _to,
     uint256 _value,
@@ -126,12 +139,4 @@ contract VestedToken is StandardToken {
 
     return safeSub(balances[holder], nonVested);
   }
-
-  function transfer(address _to, uint _value) returns (bool success) {
-    if (_value > transferableTokens(msg.sender, uint64(now))) {
-      throw;
-    }
-
-    return super.transfer(_to, _value);
-  }
 }