UniCreatePoolV3

Description

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

Notes

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.

Action ID

0xba6f48af

SDK Action

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

Action Type

STANDARD_ACTION

Input Parameters

    /// @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 and Logs

emit ActionEvent("UniCreatePoolV3", logData);
logger.logActionDirectEvent("UniCreatePoolV3", logData);
bytes memory logData = abi.encode(params);

Last updated

Was this helpful?