From 8d28bd445acdeef985262016001efd93c1493885 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Wed, 26 Sep 2018 17:46:54 -0300 Subject: [PATCH] covnert TokenTimelock into initializers --- contracts/mocks/TokenTimelockMock.sol | 14 ++++++++++++++ contracts/token/ERC20/TokenTimelock.sol | 6 ++++-- test/token/ERC20/TokenTimelock.test.js | 4 ++-- 3 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 contracts/mocks/TokenTimelockMock.sol diff --git a/contracts/mocks/TokenTimelockMock.sol b/contracts/mocks/TokenTimelockMock.sol new file mode 100644 index 000000000..d0c06cd59 --- /dev/null +++ b/contracts/mocks/TokenTimelockMock.sol @@ -0,0 +1,14 @@ +pragma solidity ^0.4.24; + +import "../Initializable.sol"; +import "../token/ERC20/TokenTimelock.sol"; + +contract TokenTimelockMock is Initializable, TokenTimelock { + constructor( + IERC20 token, + address beneficiary, + uint256 releaseTime + ) public { + TokenTimelock.initialize(token, beneficiary, releaseTime); + } +} diff --git a/contracts/token/ERC20/TokenTimelock.sol b/contracts/token/ERC20/TokenTimelock.sol index 9989ce77a..d98cb0b02 100644 --- a/contracts/token/ERC20/TokenTimelock.sol +++ b/contracts/token/ERC20/TokenTimelock.sol @@ -1,5 +1,6 @@ pragma solidity ^0.4.24; +import "../../Initializable.sol"; import "./SafeERC20.sol"; @@ -8,7 +9,7 @@ import "./SafeERC20.sol"; * @dev TokenTimelock is a token holder contract that will allow a * beneficiary to extract the tokens after a given release time */ -contract TokenTimelock { +contract TokenTimelock is Initializable { using SafeERC20 for IERC20; // ERC20 basic token contract being held @@ -20,12 +21,13 @@ contract TokenTimelock { // timestamp when token release is enabled uint256 private _releaseTime; - constructor( + function initialize( IERC20 token, address beneficiary, uint256 releaseTime ) public + initializer { // solium-disable-next-line security/no-block-members require(releaseTime > block.timestamp); diff --git a/test/token/ERC20/TokenTimelock.test.js b/test/token/ERC20/TokenTimelock.test.js index c10b1b821..b5c981858 100644 --- a/test/token/ERC20/TokenTimelock.test.js +++ b/test/token/ERC20/TokenTimelock.test.js @@ -8,8 +8,8 @@ require('chai') .use(require('chai-bignumber')(BigNumber)) .should(); -const ERC20Mintable = artifacts.require('ERC20Mintable'); -const TokenTimelock = artifacts.require('TokenTimelock'); +const ERC20Mintable = artifacts.require('ERC20MintableMock'); +const TokenTimelock = artifacts.require('TokenTimelockMock'); contract('TokenTimelock', function ([_, minter, beneficiary]) { const amount = new BigNumber(100);