-
Notifications
You must be signed in to change notification settings - Fork 5
/
ihc_time_lock.sol
35 lines (27 loc) · 1.04 KB
/
ihc_time_lock.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
pragma solidity ^0.5.16;
import {IHC} from 'ihc_token.sol';
contract IHC_TIME_LOCK {
uint public end;
address payable public owner;
address public ihcTokenAddress;
constructor(address payable _owner, uint _daysAfter) public payable {
require(_owner != address(0),"_owner: zero address!");
end = block.timestamp + (_daysAfter * 1 days);
owner = _owner;
ihcTokenAddress = 0x86a53fcd199212FEa44FA7e16EB1f28812be911D;
}
function deposit(uint amount) external returns(bool) {
return IHC(ihcTokenAddress).transferFrom(msg.sender, address(this), amount);
}
function withdraw(uint amount) external returns(bool) {
require(msg.sender == owner, 'only owner');
require(block.timestamp >= end, 'too early');
return IHC(ihcTokenAddress).transfer(owner, amount);
}
function getEndOfTime() external view returns (uint256) {
return end;
}
function getOwner() external view returns (address payable) {
return owner;
}
}