diff --git a/x/lending/keeper/msg_server.go b/x/lending/keeper/msg_server.go index 97880e57..d45a3b60 100644 --- a/x/lending/keeper/msg_server.go +++ b/x/lending/keeper/msg_server.go @@ -191,6 +191,10 @@ func (m msgServer) Redeem(goCtx context.Context, msg *types.MsgRedeem) (*types.M loan := m.GetLoan(ctx, msg.LoanId) + if msg.Borrower != loan.Borrower { + return nil, types.ErrMismatchedBorrower + } + if types.HashLoanSecret(msg.LoanSecret) != loan.HashLoanSecret { return nil, types.ErrMismatchLoanSecret } diff --git a/x/lending/types/errors.go b/x/lending/types/errors.go index 803304df..336cba58 100644 --- a/x/lending/types/errors.go +++ b/x/lending/types/errors.go @@ -34,8 +34,9 @@ var ( ErrInvalidProof = errorsmod.Register(ModuleName, 4002, "invalid proof") ErrDepositTxNotExists = errorsmod.Register(ModuleName, 4002, "deposit not exists") - ErrEmptyLoanSecret = errorsmod.Register(ModuleName, 5001, "invalid loan secret") - ErrMismatchLoanSecret = errorsmod.Register(ModuleName, 5001, "mismatch loan secret") + ErrMismatchedBorrower = errorsmod.Register(ModuleName, 5001, "mismatched borrower") + ErrEmptyLoanSecret = errorsmod.Register(ModuleName, 5002, "invalid loan secret") + ErrMismatchLoanSecret = errorsmod.Register(ModuleName, 5003, "mismatch loan secret") ErrEmptyAdaptorPoint = errorsmod.Register(ModuleName, 6001, "invalid adaptor point") ErrInvalidRepayment = errorsmod.Register(ModuleName, 6002, "invalid repayment")