PositionMigrator
This contract migrates position. This contract helps to deposit the assets deposited in the position and deposit them in the new position.
Code
Github Link: (Will be updated after official launch)
Address
Events, Read-Only Functions, and State-Changing Functions
Events
MigratePosition
event MigratePosition(
    address user, 
    address token0, 
    address token1, 
    uint24 fee, 
    uint256 burnId, 
    uint256 mintId
)Parameters:
user
address
user address
token0
address
token0 address
token1
address
token1 address
fee
uint24
fee
burnId
uint256
tokenId of migrated position
mintId
uint256
tokenId of the newly minted position
Zap
event Zap(
    address user, 
    address token0, 
    address token1, 
    uint24 fee, 
    uint256 amount, 
    bool zeroForOne, 
    uint256 tokenId
)Parameters:
user
address
user address
token0
address
token0 address
token1
address
token1 address
fee
uint24
fee
amount
uint256
amount to deposit
zeroForOne
bool
When depositing with token0: true 
When depositing with token1: false
tokenId
uint256
tokenId of the newly issued position
Parameter Struct
MigrationParams
struct MigrationParams {
    uint256 tokenId;
    // Burn
    uint256 burnAmount0Min;
    uint256 burnAmount1Min;
    // Swap
    address tokenIn;
    uint256 swapAmountIn;
    uint256 swapAmountOutMin;
    // Mint
    int24 tickLower;
    int24 tickUpper;
    uint256 mintAmount0Min;
    uint256 mintAmount1Min;
    uint256 deadline;
    bool compoundFee;
}Parameters:
tokenId
uint256
tokenId to migrate
burnAmount0Min
uint256
The minimum value of token0 you will receive upon withdrawal
burnAmount1Min
uint256
The minimum value of token1 you will receive upon withdrawal
tokenIn
address
Address of token to be swapped
swapAmountIn
uint256
token amount to be swapped
swapAmountOutMin
uint256
Minimum value of tokens to be received in swap
tickLower
int24
Minimum ticks of new positions to be minted
tickUpper
int24
Minimum ticks of new positions to be minted
mintAmount0Min
uint256
Minimum value of token0 to be minted in the new position
mintAmount1Min
uint256
Minimum value of token1 to be minted in the new position
deadline
uint256
deadline
compoundFee
bool
Whether to deposit with fees
ZappingParams
struct ZappingParams {
    contract IUniswapV3Pool pool;
    uint256 amount;
    int24 tickLower;
    int24 tickUpper;
    bool zeroForOne;
    uint256 mintAmount0Min;
    uint256 mintAmount1Min;
    uint256 tokenId;
    uint256 deadline;
}Parameters:
pool
contract IUniswapV3Pool
pool address to deposit
amount
uint256
token amount to deposit
tickLower
int24
Minimum tick of position to deposit
tickUpper
int24
Maximum tick of position to deposit
zeroForOne
bool
Whether the token to be deposited is token0
mintAmount0Min
uint256
Minimum value of token0 to be minted in the position to be minted
mintAmount1Min
uint256
Minimum value of token1 to be minted in the position to be minted
tokenId
uint256
tokenId to mint as Zap
'0' on first mint
deadline
uint256
deadline
State-Changing Functions
migrate
function migrate(
    struct MigrationParams calldata params
) externalDeposit the assets deposited in the position and deposit them in the new position.
zapWithETH
function zapWithETH(
    struct ZappingParams memory params
) externalA function that helps you deposit into a pool with ETH
zapWithToken
function zapWithToken(
    struct ZappingParams memory params
) external A function that helps you deposit into a pool with one asset token