From 25e2ccd4b08d0c7ed5fd809d2120a8c8a076a3b1 Mon Sep 17 00:00:00 2001 From: owen05 Date: Thu, 1 Jul 2021 11:39:11 +0800 Subject: [PATCH] improve dropsV2 --- contracts/DODODrops/DODODropsV2/DODODrops.sol | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/contracts/DODODrops/DODODropsV2/DODODrops.sol b/contracts/DODODrops/DODODropsV2/DODODrops.sol index b000330..44fa228 100644 --- a/contracts/DODODrops/DODODropsV2/DODODrops.sol +++ b/contracts/DODODrops/DODODropsV2/DODODrops.sol @@ -67,6 +67,11 @@ contract DODODrops is InitializableMintableERC20, ReentrancyGuard { _; } + modifier buyTicketsFinish() { + require(block.timestamp > _SELLING_TIME_INTERVAL_[_SELLING_TIME_INTERVAL_.length - 1] && _SELLING_TIME_INTERVAL_[0] != 0, "BUY_TICKETS_NOT_FINISH"); + _; + } + modifier canTransfer() { require(_CAN_TRANSFER_, "DropsTickets: not allowed transfer"); _; @@ -197,6 +202,10 @@ contract DODODrops is InitializableMintableERC20, ReentrancyGuard { require(sellingTimeIntervals[i] < sellingTimeIntervals[i + 1], "INTERVAL_INVALID"); require(sellingPrice[i] != 0, "PRICE_INVALID"); } + if(_IS_REVEAL_MODE_) { + require(sellingAmount[sellingTimeIntervals.length - 1] == 0, "AMOUNT_INVALID"); + require(sellingPrice[sellingTimeIntervals.length - 1] == 0, "PRICE_INVALID"); + } _SELLING_TIME_INTERVAL_ = sellingTimeIntervals; _SELLING_PRICE_SET_ = sellingPrice; _SELLING_AMOUNT_SET_ = sellingAmount; @@ -255,7 +264,7 @@ contract DODODrops is InitializableMintableERC20, ReentrancyGuard { emit Withdraw(msg.sender, amount); } - function setRevealRn() external onlyOwner { + function setRevealRn() buyTicketsFinish external onlyOwner { require(_REVEAL_RN_ == 0, "ALREADY_SET"); require(!_CAN_TRANSFER_, "NEED_CLOSE_TRANSFER"); _REVEAL_RN_ = uint256(keccak256(abi.encodePacked(blockhash(block.number - 1))));