diff --git a/src/FilecoinPayV1.sol b/src/FilecoinPayV1.sol index 0d1dc78..ab65f0d 100644 --- a/src/FilecoinPayV1.sol +++ b/src/FilecoinPayV1.sol @@ -1463,13 +1463,14 @@ contract FilecoinPayV1 is ReentrancyGuard { Errors.InsufficientFundsForSettlement(rail.token, rail.from, grossSettledAmount, payer.funds) ); + uint256 actualSettledDuration = settledUntilEpoch - epochStart; + uint256 requiredLockup = rate * actualSettledDuration; + // Verify payer has sufficient lockup for the settlement require( - payer.lockupCurrent >= grossSettledAmount, - Errors.InsufficientLockupForSettlement(rail.token, rail.from, payer.lockupCurrent, grossSettledAmount) + payer.lockupCurrent >= requiredLockup, + Errors.InsufficientLockupForSettlement(rail.token, rail.from, payer.lockupCurrent, requiredLockup) ); - uint256 actualSettledDuration = settledUntilEpoch - epochStart; - uint256 requiredLockup = rate * actualSettledDuration; // Transfer funds from payer (always pays full settled amount) payer.funds -= grossSettledAmount;