diff --git a/src/libraries/Errors.sol b/src/libraries/Errors.sol index f7a849f0..a2628daf 100644 --- a/src/libraries/Errors.sol +++ b/src/libraries/Errors.sol @@ -35,6 +35,7 @@ library Errors { error INVALID_DEBT_POSITION_ID(uint256 debtPositionId); error INVALID_CREDIT_POSITION_ID(uint256 creditPositionId); error INVALID_LENDER(address account); + error INVALID_BORROWER(address account); error INVALID_LOAN_OFFER(address lender); error INVALID_BORROW_OFFER(address borrower); diff --git a/src/libraries/actions/Repay.sol b/src/libraries/actions/Repay.sol index 8f6c7db5..6ed5db50 100644 --- a/src/libraries/actions/Repay.sol +++ b/src/libraries/actions/Repay.sol @@ -13,6 +13,7 @@ import {Events} from "@src/libraries/Events.sol"; struct RepayParams { uint256 debtPositionId; + address borrower; } /// @title Repay @@ -36,6 +37,11 @@ library Repay { revert Errors.LOAN_ALREADY_REPAID(params.debtPositionId); } + // validate borrower + if (state.getDebtPosition(params.debtPositionId).borrower != params.borrower) { + revert Errors.INVALID_BORROWER(params.borrower); + } + // validate msg.sender // N/A }