From ab133796535590db5fb234db34ccb93ddddf5785 Mon Sep 17 00:00:00 2001 From: Leo Arias Date: Thu, 6 Sep 2018 12:06:28 -0600 Subject: [PATCH] Improve encapsulation on TimedCrowdsale (#1281) * Improve encapsulation on ERC165 * Improve encapsulation on ERC20 * Improve encapsulation on ERC721 * Add tests, use standard getters * fix tests * Fix lint * move interface ids to implementation contracts * Do not prefix getters * Improve encapsulation on Crowdsales * add missing tests * remove only * Improve encapsulation on Pausable * add the underscore * Improve encapsulation on ownership * fix rebase * fix ownership * Improve encapsulation on payments * Add missing tests * add missing test * Do not prefix getters * Do not prefix getters * Fix tests. * Update modifiers to call public view functions. Fixes #1179. * remove isMinter * fix is owner call * fix isOpen * Fix merge * Improve encapsulation on TimedCrowdsale * Add missing parentheses * remove duplicate function definition --- .../price/IncreasingPriceCrowdsale.sol | 4 +-- .../crowdsale/validation/TimedCrowdsale.sol | 26 ++++++++++++++----- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/contracts/crowdsale/price/IncreasingPriceCrowdsale.sol b/contracts/crowdsale/price/IncreasingPriceCrowdsale.sol index 7cc07f083..ad448b319 100644 --- a/contracts/crowdsale/price/IncreasingPriceCrowdsale.sol +++ b/contracts/crowdsale/price/IncreasingPriceCrowdsale.sol @@ -49,8 +49,8 @@ contract IncreasingPriceCrowdsale is TimedCrowdsale { */ function getCurrentRate() public view returns (uint256) { // solium-disable-next-line security/no-block-members - uint256 elapsedTime = block.timestamp.sub(openingTime); - uint256 timeRange = closingTime.sub(openingTime); + uint256 elapsedTime = block.timestamp.sub(openingTime()); + uint256 timeRange = closingTime().sub(openingTime()); uint256 rateRange = initialRate_.sub(finalRate_); return initialRate_.sub(elapsedTime.mul(rateRange).div(timeRange)); } diff --git a/contracts/crowdsale/validation/TimedCrowdsale.sol b/contracts/crowdsale/validation/TimedCrowdsale.sol index 23f0e6e87..c9726d940 100644 --- a/contracts/crowdsale/validation/TimedCrowdsale.sol +++ b/contracts/crowdsale/validation/TimedCrowdsale.sol @@ -11,8 +11,8 @@ import "../Crowdsale.sol"; contract TimedCrowdsale is Crowdsale { using SafeMath for uint256; - uint256 public openingTime; - uint256 public closingTime; + uint256 private openingTime_; + uint256 private closingTime_; /** * @dev Reverts if not in crowdsale time range. @@ -32,8 +32,22 @@ contract TimedCrowdsale is Crowdsale { require(_openingTime >= block.timestamp); require(_closingTime >= _openingTime); - openingTime = _openingTime; - closingTime = _closingTime; + openingTime_ = _openingTime; + closingTime_ = _closingTime; + } + + /** + * @return the crowdsale opening time. + */ + function openingTime() public view returns(uint256) { + return openingTime_; + } + + /** + * @return the crowdsale closing time. + */ + function closingTime() public view returns(uint256) { + return closingTime_; } /** @@ -41,7 +55,7 @@ contract TimedCrowdsale is Crowdsale { */ function isOpen() public view returns (bool) { // solium-disable-next-line security/no-block-members - return block.timestamp >= openingTime && block.timestamp <= closingTime; + return block.timestamp >= openingTime_ && block.timestamp <= closingTime_; } /** @@ -50,7 +64,7 @@ contract TimedCrowdsale is Crowdsale { */ function hasClosed() public view returns (bool) { // solium-disable-next-line security/no-block-members - return block.timestamp > closingTime; + return block.timestamp > closingTime_; } /**