Owners will incur loss and bad debt if the value of a token crashes
If the value of the swapped tokens crash, many users will choose not to claim the orders, which result in the owner being unable to recoup back the gas fee the owner has already paid for automating the fulfillment of the orders, incurring loss and bad debt.\\n```\\nFile: LimitOrderRegistry.sol\\n    function claimOrder(uint128 batchId, address user) external payable returns (ERC20, uint256) {\\n..SNIP..\\n        // Transfer fee in.\\n        address sender = _msgSender();\\n        if (msg.value >= userClaim.feePerUser) {\\n            // refund if necessary.\\n            uint256 refund = msg.value - userClaim.feePerUser;\\n            if (refund > 0) sender.safeTransferETH(refund);\\n        } else {\\n            WRAPPED_NATIVE.safeTransferFrom(sender, address(this), userClaim.feePerUser);\\n            // If value is non zero send it back to caller.\\n            if (msg.value > 0) sender.safeTransferETH(msg.value);\\n        }\\n```\\n\\nUsers only need to pay for the gas cost for fulfilling the order when they claim the order to retrieve the swapped tokens. When the order is fulfilled, the swapped tokens will be sent to and stored in the `LimitOrderRegistry` contract.\\nHowever, in the event that the value of the swapped tokens crash (e.g., Terra's LUNA crash), it makes more economic sense for the users to abandon (similar to defaulting in traditional finance) the orders without claiming the worthless tokens to avoid paying the more expensive fee to the owner.\\nAs a result, many users will choose not to claim the orders, which result in the owner being unable to recoup back the gas fee the owner has already paid for automating the fulfillment of the orders, incurring loss and bad debt.
Consider collecting the fee in advance based on a rough estimation of the expected gas fee. When the users claim the order, any excess fee will be refunded, or any deficit will be collected from the users.\\nIn this case, if many users choose to abandon the orders, the owner will not incur any significant losses.
Owners might be unable to recoup back the gas fee the owner has already paid for automating the fulfillment of the orders, incurring loss and bad debt.
```\\nFile: LimitOrderRegistry.sol\\n    function claimOrder(uint128 batchId, address user) external payable returns (ERC20, uint256) {\\n..SNIP..\\n        // Transfer fee in.\\n        address sender = _msgSender();\\n        if (msg.value >= userClaim.feePerUser) {\\n            // refund if necessary.\\n            uint256 refund = msg.value - userClaim.feePerUser;\\n            if (refund > 0) sender.safeTransferETH(refund);\\n        } else {\\n            WRAPPED_NATIVE.safeTransferFrom(sender, address(this), userClaim.feePerUser);\\n            // If value is non zero send it back to caller.\\n            if (msg.value > 0) sender.safeTransferETH(msg.value);\\n        }\\n```\\n