Bidders can not claim their bids if the auction creator claims the proceeds.
Before the batch `auction` begins, the `auction` creator should `prefund` `base` tokens to the `auction` house. During the `auction`, `bidders` transfer `quote` tokens to the `auction` house. After the `auction` settles,\\n`Bidders` can claim their `bids` and either to receive `base` tokens or `retrieve` their `quote` tokens.\\nThe `auction creator` can receive the `quote` tokens and `retrieve` the remaining `base` tokens.\\nThere is no specific order for these two operations.\\nHowever, if the `auction creator` claims the `proceeds`, `bidders` can not claim their `bids` anymore. Consequently, their `funds` will remain locked in the `auction house`.\\nWhen the `auction creator` claims `Proceeds`, the `auction status` changes to `Claimed`.\\n```\\nfunction _claimProceeds(uint96 lotId_)\\n    internal\\n    override\\n    returns (uint96 purchased, uint96 sold, uint96 payoutSent)\\n{\\n    auctionData[lotId_].status = Auction.Status.Claimed;\\n}\\n```\\n\\nOnce the `auction status` has transitioned to `Claimed`, there is indeed no way to change it back to `Settled`.\\nHowever, `bidders` can only claim their `bids` when the `auction status` is `Settled`.\\n```\\nfunction claimBids(\\n    uint96 lotId_,\\n    uint64[] calldata bidIds_\\n)\\n    external\\n    override\\n    onlyInternal\\n    returns (BidClaim[] memory bidClaims, bytes memory auctionOutput)\\n{\\n    _revertIfLotInvalid(lotId_);\\n    _revertIfLotNotSettled(lotId_);   // @audit, here\\n\\n    return _claimBids(lotId_, bidIds_);\\n}\\n```\\n\\nPlease add below test to the `test/modules/auctions/claimBids.t.sol`.\\n```\\nfunction test_claimProceeds_before_claimBids()\\n    external\\n    givenLotIsCreated\\n    givenLotHasStarted\\n    givenBidIsCreated(_BID_AMOUNT_UNSUCCESSFUL, _BID_AMOUNT_OUT_UNSUCCESSFUL)\\n    givenBidIsCreated(_BID_PRICE_TWO_AMOUNT, _BID_PRICE_TWO_AMOUNT_OUT)\\n    givenBidIsCreated(_BID_PRICE_TWO_AMOUNT, _BID_PRICE_TWO_AMOUNT_OUT)\\n    givenBidIsCreated(_BID_PRICE_TWO_AMOUNT, _BID_PRICE_TWO_AMOUNT_OUT)\\n    givenBidIsCreated(_BID_PRICE_TWO_AMOUNT, _BID_PRICE_TWO_AMOUNT_OUT)\\n    givenBidIsCreated(_BID_PRICE_TWO_AMOUNT, _BID_PRICE_TWO_AMOUNT_OUT)\\n    givenBidIsCreated(_BID_PRICE_TWO_AMOUNT, _BID_PRICE_TWO_AMOUNT_OUT)\\n    givenLotHasConcluded\\n    givenPrivateKeyIsSubmitted\\n    givenLotIsDecrypted\\n    givenLotIsSettled\\n{\\n    uint64 bidId = 1;\\n\\n    uint64[] memory bidIds = new uint64[](1);\\n    bidIds[0] = bidId;\\n\\n    // Call the function\\n    vm.prank(address(_auctionHouse));\\n    _module.claimProceeds(_lotId);\\n\\n\\n    bytes memory err = abi.encodeWithSelector(EncryptedMarginalPriceAuctionModule.Auction_WrongState.selector, _lotId);\\n    vm.expectRevert(err);\\n    vm.prank(address(_auctionHouse));\\n    _module.claimBids(_lotId, bidIds);\\n}\\n```\\n
Allow `bidders` to claim their `bids` even when the `auction status` is `Claimed`.
Users' funds could be locked.
```\\nfunction _claimProceeds(uint96 lotId_)\\n    internal\\n    override\\n    returns (uint96 purchased, uint96 sold, uint96 payoutSent)\\n{\\n    auctionData[lotId_].status = Auction.Status.Claimed;\\n}\\n```\\n