-
Notifications
You must be signed in to change notification settings - Fork 2
/
fund.sol
39 lines (29 loc) · 1000 Bytes
/
fund.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
pragma solidity ^0.4.19;
contract UNetworkToken {
function transfer(address _to, uint256 _value) public;
mapping (address => uint256) public balanceOf;
}
contract TokenTimelock {
UNetworkToken UUU;
// beneficiary of tokens after they are released
address public beneficiary;
// timestamp when token release is enabled
uint256 public releaseTime;
function TokenTimelock(address _tokenAddr, address _beneficiary, uint256 _releaseTime) public {
// solium-disable-next-line security/no-block-members
require(_releaseTime > block.timestamp);
UUU = UNetworkToken(_tokenAddr);
beneficiary = _beneficiary;
releaseTime = _releaseTime;
}
/**
* @notice Transfers tokens held by timelock to beneficiary.
*/
function release() public {
// solium-disable-next-line security/no-block-members
require(block.timestamp >= releaseTime);
uint256 amount = UUU.balanceOf(this);
require(amount > 0);
UUU.transfer(beneficiary, amount);
}
}