🦄UniCreatePoolV3

Description

Action ID: 0xba6f48af

Action for creating Uniswap V3 Pool and minting a position in it after that

SDK Action

    const uniCreatePoolAction = new dfs.actions.uniswapV3.UniswapV3CreatePoolAction(
        token0,
        token1,
        fee,
        tickLower,
        tickUpper,
        amount0Desired,
        amount1Desired,
        amount0Min,
        amount1Min,
        recipient,
        deadline,
        from,
        sqrtPriceX96,
    );

Contract

This is a DFS STANDARD_ACTION.

If pool already exists, it will only mint a position in pool

The address from which we're pulling token0 and token1 must approve proxy

If amount0Desired or amount1Desired is uint.max this will pull whole balance of _from

mints new NFT that represents a position with selected parameters

Input:

    /// @param token0 The contract address of token0 of the pool
    /// @param token1 The contract address of token1 of the pool
    /// @param fee The fee amount of the v3 pool for the specified token pair
    /// @param tickLower The lower end of the tick range for the position
    /// @param tickUpper The higher end of the tick range for the position
    /// @param amount0Desired The desired amount of token0 that should be supplied
    /// @param amount1Desired The desired amount of token1 that should be supplied
    /// @param amount0Min The minimum amount of token0 that should be supplied,
    /// @param amount1Min The minimum amount of token1 that should be supplied,
    /// @param recipient address which will receive the NFT
    /// @param deadline The time by which the transaction must be included to effect the change
    /// @param from account to take amounts from
    /// @param sqrtPriceX96 The initial square root price of the pool as a Q64.96 value
    struct Params {
        address token0;
        address token1;
        uint24 fee;
        int24 tickLower;
        int24 tickUpper;
        uint256 amount0Desired;
        uint256 amount1Desired;
        uint256 amount0Min;
        uint256 amount1Min;
        address recipient;
        uint256 deadline;
        address from;
        uint160 sqrtPriceX96;
    }

Return value:

return bytes32(tokenId);

Events:

emit ActionEvent("UniCreatePoolV3", logData);

logger.logActionDirectEvent("UniCreatePoolV3", logData);

Last updated