From dfde0b0320d6d0064f53982fe1ac2c73797da79d Mon Sep 17 00:00:00 2001 From: Aadi Desai <21363892+supleed2@users.noreply.github.com> Date: Tue, 21 Feb 2023 12:40:18 +0000 Subject: [PATCH] Fix expiry boundry condition --- src/contracts/TicketNFT.sol | 8 ++++---- test/TicketNFT.t.sol | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/contracts/TicketNFT.sol b/src/contracts/TicketNFT.sol index 0e0b0c6..5768d72 100644 --- a/src/contracts/TicketNFT.sol +++ b/src/contracts/TicketNFT.sol @@ -121,7 +121,7 @@ contract TicketNFT is ITicketNFT, IPrimaryMarket, ISecondaryMarket { require(ticketID <= _totalSupply, "setUsed: ticket doesn't exist"); require(_ticketUsed[ticketID] == false, "setUsed: ticket already used"); require( - _expiryTimes[ticketID] > block.timestamp, + _expiryTimes[ticketID] >= block.timestamp, "setUsed: ticket expired" ); _ticketUsed[ticketID] = true; @@ -133,7 +133,7 @@ contract TicketNFT is ITicketNFT, IPrimaryMarket, ISecondaryMarket { "isExpiredOrUsed: ticket doesn't exist" ); return (_ticketUsed[ticketID] || - _expiryTimes[ticketID] <= block.timestamp); + _expiryTimes[ticketID] < block.timestamp); } function admin() external view returns (address) { @@ -159,7 +159,7 @@ contract TicketNFT is ITicketNFT, IPrimaryMarket, ISecondaryMarket { ); require( _ticketUsed[ticketID] == false && - _expiryTimes[ticketID] > block.timestamp, + _expiryTimes[ticketID] >= block.timestamp, "listTicket: ticket is expired/used" ); require(price > 0, "listTicket: price cannot be 0"); @@ -179,7 +179,7 @@ contract TicketNFT is ITicketNFT, IPrimaryMarket, ISecondaryMarket { uint256 ticketRevenue = ticketPrice - ticketFee; require( _ticketUsed[ticketID] == false && - _expiryTimes[ticketID] > block.timestamp, + _expiryTimes[ticketID] >= block.timestamp, "purchase: ticket is expired/used" ); require( diff --git a/test/TicketNFT.t.sol b/test/TicketNFT.t.sol index 84a6475..0b8b22e 100644 --- a/test/TicketNFT.t.sol +++ b/test/TicketNFT.t.sol @@ -220,7 +220,7 @@ contract TicketNFTTest is BaseTicketNFTTest { function testExpiry() public { _buyTicket(alice, "alice"); assertEq(nft.isExpiredOrUsed(1), false); - vm.warp(block.timestamp + 10 days - 1); + vm.warp(block.timestamp + 10 days); assertEq(nft.isExpiredOrUsed(1), false); vm.warp(block.timestamp + 1); assertEq(nft.isExpiredOrUsed(1), true); @@ -253,7 +253,7 @@ contract TicketNFTTest is BaseTicketNFTTest { function testSetUsedExpired() public { _buyTicket(alice, "alice"); assertEq(nft.isExpiredOrUsed(1), false); - vm.warp(block.timestamp + 10 days); + vm.warp(block.timestamp + 10 days + 1); vm.prank(address(this)); vm.expectRevert("setUsed: ticket expired"); nft.setUsed(1); @@ -377,7 +377,7 @@ contract SecondaryMarketTest is BaseTicketNFTTest { function testListExpired() public { _buyTicket(alice, "alice"); - vm.warp(block.timestamp + 10 days); + vm.warp(block.timestamp + 10 days + 1); vm.prank(alice); vm.expectRevert("listTicket: ticket is expired/used"); nft.listTicket(1, 200e19); @@ -473,7 +473,7 @@ contract SecondaryMarketTest is BaseTicketNFTTest { vm.prank(alice); nft.listTicket(1, 200e18); _topUpTokens(bob, 2); - vm.warp(block.timestamp + 10 days); + vm.warp(block.timestamp + 10 days + 1); vm.prank(bob); token.approve(address(nft), 200e18); vm.prank(bob);