# 还清一笔贷款



<figure><img src="https://files.readme.io/6ea7417-Pay_Off_a_Loan.png" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
贷款偿还过程由借款人（借款人票据持有人）初始化。
{% endhint %}

1. 借款人通过调用 RepaymentController 上的 repay 或 repayPart() 函数来启动贷款还款。

```sol
repay(), repayPart()
```

{% hint style="info" %}
对于没有分期付款的借款人，单次还款贷款使用 repay() 函数来偿还贷款。
{% endhint %}

2\. 从 LoanCore 检索贷款数据，并从借款人那里收集指定的还款金额。

3\. RepaymentController 然后将还款信息传递给 LoanCore 以更新链上的贷款状态。偿还单笔还款贷款时，用户必须全额偿还贷款（加利息）。然后，还款控制器将指定的 ERC20 应付货币转移到 LoanCore。

```sol
repayPart(), repayPartMiniumum() closeLoan()
```

```sol
safeTransferFrom()
```

4\. 还款后，LoanCore 会执行调用并销毁贷方和借方票据。

```sol
burnLoanNotes()
```

5\. 在借款人方面，如果未偿还的抵押品是单个 NFT，则资产将重新分配给被烧毁的 BorrowerNote 的所有者。如果未偿还的抵押品在 AssetVault 中，则代表资产包的 AssetVault 的 ERC721 代币将重新分配给已销毁的 BorrowerNote 的所有者，他们能够提取资产。

```sol
transferFrom()
```

6\. 在贷款人方面，贷款的本金和利息以贷款条款中规定的应付 ERC20 代币的形式重新分配给被烧毁的 LenderNote 的所有者。

```sol
transfer()
```
