From 355a5d852a55209bea7e7620e34f60eb542e66d9 Mon Sep 17 00:00:00 2001 From: weiqiushi Date: Tue, 14 May 2024 21:27:38 +0800 Subject: [PATCH] Start first cycle when first time enable prod mode --- contracts/exchange.sol | 7 ++++++- test/test_exchange.ts | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/contracts/exchange.sol b/contracts/exchange.sol index 3ae5246..748b461 100644 --- a/contracts/exchange.sol +++ b/contracts/exchange.sol @@ -77,7 +77,7 @@ contract Exchange is Initializable, UUPSUpgradeable, OwnableUpgradeable { test_mode = true; - _newCycle(); + //_newCycle(); } function getCircleBalance(uint256 circle) public view returns (uint256) { @@ -207,6 +207,11 @@ contract Exchange is Initializable, UUPSUpgradeable, OwnableUpgradeable { // 将剩余的DMC还给owner DMC(dmcToken).transfer(msg.sender, DMC(dmcToken).balanceOf(address(this))); + + // 如果是首次开启生产模式,初始化第一个周期 + if (current_circle == 0) { + _newCycle(); + } } function addFreeDMCTestMintBalance(uint256 amount) public onlyOwner testEnabled { diff --git a/test/test_exchange.ts b/test/test_exchange.ts index a474bfc..a24a39f 100644 --- a/test/test_exchange.ts +++ b/test/test_exchange.ts @@ -58,6 +58,8 @@ describe("Exchange", function () { }) it("enable prod mode", async () => { + // 模拟在开启生产模式之前过了很久,超过一个周期的情况 + mine(20, {interval: 1000}); await (await exchange.enableProdMode()).wait(); await expect(exchange.enableProdMode()).to.revertedWith("contract not in test mode");