minOfferCost can be bypassed in certain scenarios
minOfferCost is designed to prevent spam loan requests that can cause the lender to have positions that cost more gas to claim than interest. Due to how interest is calculated right after this minimum is passed it is still possible for the lender to receive less than the minimum.\\nClaimFacet.sol#L94-L106\\n```\\nfunction sendInterests(Loan storage loan, Provision storage provision) internal returns (uint256 sent) {\\n    uint256 interests = loan.payment.paid - loan.lent;\\n    if (interests == loan.payment.minInterestsToRepay) {\\n        // this is the case if the loan is repaid shortly after issuance\\n        // each lender gets its minimal interest, as an anti ddos measure to spam offer\\n        sent = provision.amount + (interests / loan.nbOfPositions);\\n    } else {\\n        /* provision.amount / lent = share of the interests belonging to the lender. The parenthesis make the\\n        calculus in the order that maximizes precison */\\n        sent = provision.amount + (interests * (provision.amount)) / loan.lent; <- audit-issue minimal interest isn't guaranteed\\n    }\\n    loan.assetLent.checkedTransfer(msg.sender, sent);\\n}\\n```\\n\\nWhen a loan has generated more than the minimum interest amount the method for calculating the interest paid is different and depending on the size of the provisions it may lead to provisions that are under the guaranteed minimum.\\nExample: Assume the minimum interest is 1e18. A loan is filled with 2 provisions. The first provision is 25% and the second is 75%. Since there are two loans the total minimum interest for the loan is 2e18. After some time the paid interest reaches 2.001e18 and the loan is paid back. Since it is above the minimum interest rate, it is paid out proportionally. This gives 0.5e18 to the first provision and 1.5e18 to the second provision. This violates the minimum guaranteed interest amount.
Minimum interest should be set based on the percentage of the lowest provision and provision shouldn't be allowed to be lower than some amount. Since this problem occurs when the percentage is less than 1/n (where n is the number of provisions), any single provision should be allowed to be lower than 1/(2n).
Minimum interest guarantee can be violated
```\\nfunction sendInterests(Loan storage loan, Provision storage provision) internal returns (uint256 sent) {\\n    uint256 interests = loan.payment.paid - loan.lent;\\n    if (interests == loan.payment.minInterestsToRepay) {\\n        // this is the case if the loan is repaid shortly after issuance\\n        // each lender gets its minimal interest, as an anti ddos measure to spam offer\\n        sent = provision.amount + (interests / loan.nbOfPositions);\\n    } else {\\n        /* provision.amount / lent = share of the interests belonging to the lender. The parenthesis make the\\n        calculus in the order that maximizes precison */\\n        sent = provision.amount + (interests * (provision.amount)) / loan.lent; <- audit-issue minimal interest isn't guaranteed\\n    }\\n    loan.assetLent.checkedTransfer(msg.sender, sent);\\n}\\n```\\n