V3Migrator
This contract enables migration of liqudity from KLAYswap v2 pairs into KLAYswap v3 pools
Code
Github Link: (Will be updated after official launch)
Address
Events, Read-Only Functions, and State-Changing Functions
Parameter Structs
MigrateParams
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;
}State-Changing Functions
migrate
function migrate(
    struct IV3Migrator.MigrateParams params
) externalMigrates liquidity to v3 by burning v2 liquidity and minting a new position for v3
Slippage protection is enforced via amount{0,1}Min, which should be a discount of the expected values of the maximum amount of v3 liquidity that the v2 liquidity can get. For the special case of migrating to an out-of-range position, amount{0,1}Min may be set to 0, enforcing that the position remains out of range
Parameters:
Name
Type
Description
params
struct IV3Migrator.MigrateParams
The params necessary to migrate v2 liquidity, encoded as MigrateParams in calldata