diff --git a/src/PrizePool.sol b/src/PrizePool.sol index 3d137d0..4057f97 100644 --- a/src/PrizePool.sol +++ b/src/PrizePool.sol @@ -365,7 +365,7 @@ contract PrizePool is TieredLiquidityDistributor, Ownable { } uint24 lastClosedDrawId_ = _lastClosedDrawId; - uint24 nextDrawId = lastClosedDrawId_ + 1; + uint24 closingDrawId = lastClosedDrawId_ + 1; uint32 _claimCount = claimCount; uint8 _numTiers = numberOfTiers; uint8 _nextNumberOfTiers = _numTiers; @@ -376,7 +376,7 @@ contract PrizePool is TieredLiquidityDistributor, Ownable { uint48 openDrawStartedAt_ = _openDrawStartedAt(); - _nextDraw(_nextNumberOfTiers, _contributionsForDraw(nextDrawId)); + _nextDraw(_nextNumberOfTiers, _contributionsForDraw(closingDrawId)); _winningRandomNumber = winningRandomNumber_; if (_claimCount != 0) { @@ -386,7 +386,7 @@ contract PrizePool is TieredLiquidityDistributor, Ownable { _lastClosedDrawAwardedAt = uint48(block.timestamp); emit DrawClosed( - nextDrawId, + closingDrawId, winningRandomNumber_, _numTiers, _nextNumberOfTiers, @@ -395,7 +395,7 @@ contract PrizePool is TieredLiquidityDistributor, Ownable { openDrawStartedAt_ ); - return lastClosedDrawId_; + return closingDrawId; } /** diff --git a/test/PrizePool.t.sol b/test/PrizePool.t.sol index 9f9c0a2..d39331a 100644 --- a/test/PrizePool.t.sol +++ b/test/PrizePool.t.sol @@ -475,6 +475,18 @@ contract PrizePoolTest is Test { prizePool.closeDraw(winningRandomNumber); } + function testCloseAndOpenNextDraw_emittedDrawIdSameAsReturnedDrawId() public { + contribute(510e18); + uint24 expectedDrawId = 1; + + vm.expectEmit(true, true, true, false); + emit DrawClosed(expectedDrawId, 12345, 3, 3, 0, UD34x4.wrap(0), firstDrawStartsAt); + vm.warp(prizePool.openDrawEndsAt()); + uint24 closedDrawId = prizePool.closeDraw(12345); + + assertEq(closedDrawId, expectedDrawId, "closed draw ID matches expected"); + } + function testCloseAndOpenNextDraw_notElapsed_openDrawPartway() public { vm.warp(firstDrawStartsAt + drawPeriodSeconds); prizePool.closeDraw(winningRandomNumber);