Bidder's payout claim could fail due to validation checks in LinearVesting
Bidder's payout claim will fail due to validation checks in LinearVesting after the expiry timestamp\\nBidder's payout are sent by internally calling the `_sendPayout` function. In case the payout is a derivative which has already expired, this will revert due to the validation check of `block.timestmap < expiry` present in the mint function of LinearVesting derivative\\n```\\n    function _sendPayout(\\n        address recipient_,\\n        uint256 payoutAmount_,\\n        Routing memory routingParams_,\\n        bytes memory\\n    ) internal {\\n        \\n        if (fromVeecode(derivativeReference) == bytes7("")) {\\n            Transfer.transfer(baseToken, recipient_, payoutAmount_, true);\\n        }\\n        else {\\n            \\n            DerivativeModule module = DerivativeModule(_getModuleIfInstalled(derivativeReference));\\n\\n            Transfer.approve(baseToken, address(module), payoutAmount_);\\n\\n=>          module.mint(\\n                recipient_,\\n                address(baseToken),\\n                routingParams_.derivativeParams,\\n                payoutAmount_,\\n                routingParams_.wrapDerivative\\n            );\\n```\\n\\n```\\n    function mint(\\n        address to_,\\n        address underlyingToken_,\\n        bytes memory params_,\\n        uint256 amount_,\\n        bool wrapped_\\n    )\\n        external\\n        virtual\\n        override\\n        returns (uint256 tokenId_, address wrappedAddress_, uint256 amountCreated_)\\n    {\\n        if (amount_ == 0) revert InvalidParams();\\n\\n        VestingParams memory params = _decodeVestingParams(params_);\\n\\n        if (_validate(underlyingToken_, params) == false) {\\n            revert InvalidParams();\\n        }\\n```\\n\\n```\\n    function _validate(\\n        address underlyingToken_,\\n        VestingParams memory data_\\n    ) internal view returns (bool) {\\n        \\n        // rest of code.\\n\\n=>      if (data_.expiry < block.timestamp) return false;\\n\\n\\n        // Check that the underlying token is not 0\\n        if (underlyingToken_ == address(0)) return false;\\n\\n\\n        return true;\\n    }\\n```\\n\\nHence the user's won't be able to claim their payouts of an auction once the derivative has expired. For EMPAM auctions, a seller can also wait till this timestmap passes before revealing their private key which will disallow bidders from claiming their rewards.
Allow to mint tokens even after expiry of the vesting token / deploy the derivative token first itself and when making the payout, transfer the base token directly incase the expiry time is passed
Bidder's won't be able claim payouts from auction after the derivative expiry timestamp
```\\n    function _sendPayout(\\n        address recipient_,\\n        uint256 payoutAmount_,\\n        Routing memory routingParams_,\\n        bytes memory\\n    ) internal {\\n        \\n        if (fromVeecode(derivativeReference) == bytes7("")) {\\n            Transfer.transfer(baseToken, recipient_, payoutAmount_, true);\\n        }\\n        else {\\n            \\n            DerivativeModule module = DerivativeModule(_getModuleIfInstalled(derivativeReference));\\n\\n            Transfer.approve(baseToken, address(module), payoutAmount_);\\n\\n=>          module.mint(\\n                recipient_,\\n                address(baseToken),\\n                routingParams_.derivativeParams,\\n                payoutAmount_,\\n                routingParams_.wrapDerivative\\n            );\\n```\\n