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");