# V3Migrator

이 컨트랙트를 통해 KLAYswap v2 풀에서 KLAYswap v3 풀로 유동성을 마이그레이션할 수 있습니다.

## Code

Github Link: (Will be updated after official launch)<br>

## Address

* Cypress : [0x689d8eA1BD4e02B9E9caD9dCc871a050Ff923593](https://scope.klaytn.com/account/0x689d8eA1BD4e02B9E9caD9dCc871a050Ff923593?tabId=txList)

## Events, Read-Only Functions, and State-Changing Functions

{% tabs %}
{% tab title="Parameter Structs" %}

## Parameter Structs

#### MigrateParams <a href="#migrate" id="migrate"></a>

```solidity
struct MigrateParams {
    address pair; // the KLAYswap v2 pair
    uint256 liquidityToMigrate; // expected to be balanceOf(msg.sender)
    uint8 percentageToMigrate; // represented as a numerator over 100
    address token0;
    address token1;
    uint24 fee;
    int24 tickLower;
    int24 tickUpper;
    uint256 amount0Min; // must be discounted by percentageToMigrate
    uint256 amount1Min; // must be discounted by percentageToMigrate
    address recipient;
    uint256 deadline;
    bool refundAsETH;
}
```

{% endtab %}

{% tab title="State-Changing Functions" %}

## **State-Changing Functions**

#### migrate[​](https://docs.uniswap.org/contracts/v3/reference/periphery/interfaces/IV3Migrator#migrate) <a href="#migrate" id="migrate"></a>

```solidity
function migrate(
    struct IV3Migrator.MigrateParams params
) external
```

v2 유동성을 소각하고 v3에 대한 새 위치를 생성하여 유동성을 v3로 마이그레이션합니다.&#x20;

슬리피지 보호는 `amount{0,1}Min`을 통해 적용되며, 이는 v2 유동성이 얻을 수 있는 최대 v3 유동성의 예상 값을 할인해야 합니다. 범위를 벗어난 위치로 이동하는 특별한 경우의 경우 `amount{0,1}Min`을 0으로 설정하여 위치가 범위를 벗어나도록 강제할 수 있습니다.

**Parameters:**[**​**](https://docs.uniswap.org/contracts/v3/reference/periphery/interfaces/IV3Migrator#parameters)

<table><thead><tr><th width="118.66666666666666">Name</th><th width="177">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>params</code></td><td><code>struct IV3Migrator.MigrateParams</code></td><td>calldata에서 MigrateParams로 인코딩된 v2 유동성을 마이그레이션하는 데 필요한 매개변수</td></tr></tbody></table>
{% endtab %}
{% endtabs %}
