|
@@ -8,6 +8,9 @@ import "./LimitedTransferToken.sol";
|
|
|
* @dev Tokens that can be vested for a group of addresses.
|
|
|
*/
|
|
|
contract VestedToken is StandardToken, LimitedTransferToken {
|
|
|
+
|
|
|
+ uint256 MAX_GRANTS_PER_ADDRESS = 20;
|
|
|
+
|
|
|
struct TokenGrant {
|
|
|
address granter; // 20 bytes
|
|
|
uint256 value; // 32 bytes
|
|
@@ -45,6 +48,8 @@ contract VestedToken is StandardToken, LimitedTransferToken {
|
|
|
throw;
|
|
|
}
|
|
|
|
|
|
+ if (tokenGrantsCount(_to) > MAX_GRANTS_PER_ADDRESS) throw; // To prevent a user being spammed and have his balance locked (out of gas attack when calculating vesting).
|
|
|
+
|
|
|
uint count = grants[_to].push(
|
|
|
TokenGrant(
|
|
|
_revokable ? msg.sender : 0, // avoid storing an extra 20 bytes when it is non-revokable
|