> For the complete documentation index, see [llms.txt](https://leon2.gitbook.io/arcade.xyz-cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://leon2.gitbook.io/arcade.xyz-cn/smart-contracts/dai-kuan-yan-qi.md).

# 贷款延期

{% hint style="info" %}
贷款延期（也称为展期）过程可以由与原始贷款相同的贷方商定，也可以由新的贷方初始化。

借款人必须全额支付原始贷款所欠的利息，以完成/资助此交易。

请注意，根据交易条款，新旧贷款的本金（和还款）金额可能有所不同。借款人可能会收到或被要求支付，以弥补新旧贷款（包括利息）之间的数额差（净付款）金额。
{% endhint %}

1. 借款人与现有或新贷款人就新贷款延期的条款达成一致。完成后，借款人发起贷款展期请求。
2. OriginationController 将贷款展期请求传达给 LoanCore。

```sol
rolloverLoan(), rolloverLoanWithItems()
```

3\. 然后，Origination Controller 向 LoanCore 发出额外的调用，以验证借款人和贷款人，并通过商定的贷款条款。

```sol
validateLoanTerms(), validateRollover(), validateCounterparties()
```

4\. 一旦通过验证，LoanCore 将启动展期功能，以便自动偿还和关闭旧贷款，并使用相同的基础抵押品重新开启新贷款。

```
rollover()
```

5\. Origination Controller计算与贷款延期相关的净付款，以在展期交易完成时向借款人支付（或提取）旧贷款欠原始贷方的任何款项。

```
calculateRolloverAmounts()
```

6\. LoanCore 然后销毁与旧贷款相关的 PromissoryNotes（BorrowerNote 和 LenderNote）。

```sol
burnLoanNotes()
```

7\. LoanCore 参考 OriginationController 中的条款设置新贷款并铸造 PromissoryNotes（BorrowerNote 和 LenderNote）。

```sol
mintLoanNotes()
```

8\. LoanCore 通过将新贷款的相应 PromissoryNotes 转移给借款人和贷款人来完成该过程。最后，与展期交易相关的净付款可能会根据新旧贷款的条款分配给原始贷款人。

```
safeTransferFrom(), transferIfNonzero()
```
