From 5f674c6ee157fdb810cc98fef7605157cdc76230 Mon Sep 17 00:00:00 2001 From: Leechael Yim Date: Wed, 3 Apr 2024 12:47:55 +0800 Subject: [PATCH] fix: auction payout can be locked before execute --- .../marketplace/english-auctions/EnglishAuctionsLogic.sol | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contracts/prebuilts/marketplace/english-auctions/EnglishAuctionsLogic.sol b/contracts/prebuilts/marketplace/english-auctions/EnglishAuctionsLogic.sol index 89a56f756..ea5427bf0 100644 --- a/contracts/prebuilts/marketplace/english-auctions/EnglishAuctionsLogic.sol +++ b/contracts/prebuilts/marketplace/english-auctions/EnglishAuctionsLogic.sol @@ -149,7 +149,6 @@ contract EnglishAuctionsLogic is IEnglishAuctions, ReentrancyGuard, ERC2771Conte !_englishAuctionsStorage().payoutStatus[_auctionId].paidOutBidAmount, "Marketplace: payout already completed." ); - _englishAuctionsStorage().payoutStatus[_auctionId].paidOutBidAmount = true; Auction memory _targetAuction = _englishAuctionsStorage().auctions[_auctionId]; Bid memory _winningBid = _englishAuctionsStorage().winningBid[_auctionId]; @@ -158,6 +157,8 @@ contract EnglishAuctionsLogic is IEnglishAuctions, ReentrancyGuard, ERC2771Conte require(_targetAuction.endTimestamp <= block.timestamp, "Marketplace: auction still active."); require(_winningBid.bidder != address(0), "Marketplace: no bids were made."); + _englishAuctionsStorage().payoutStatus[_auctionId].paidOutBidAmount = true; + _closeAuctionForAuctionCreator(_targetAuction, _winningBid); if (_targetAuction.status != IEnglishAuctions.Status.COMPLETED) {