```\nfunction buyCollateralFromAuction(address token, uint amount) override external {\n    Auction memory auction = auctions[token];\n    // validate auction\n    require(_isAuctionOngoing(auction.startedAt, auction.expiryTime), "IF.no_ongoing_auction");\n\n    // transfer funds\n    uint vusdToTransfer = _calcVusdAmountForAuction(auction, token, amount);\n    address buyer = _msgSender();\n    vusd.safeTransferFrom(buyer, address(this), vusdToTransfer);\n    IERC20(token).safeTransfer(buyer, amount); // will revert if there wasn't enough amount as requested\n\n    // close auction if no collateral left\n    if (IERC20(token).balanceOf(address(this)) == 0) { <- @audit-issue only cancels auction if balance = 0\n        auctions[token].startedAt = 0;\n    }\n}\n```\n