Build
Architecture
contracts
contracts
evm
testing
TestUniswapV3Contracts.sol
Interface.ipoolinitializer

Git Source (opens in a new tab)

createAndInitializePoolIfNecessary

Creates a new pool if it does not exist, then initializes if not initialized

This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool

function createAndInitializePoolIfNecessary(address token0, address token1, uint24 fee, uint160 sqrtPriceX96)
    external
    payable
    returns (address pool);

Parameters

NameTypeDescription
token0addressThe contract address of token0 of the pool
token1addressThe contract address of token1 of the pool
feeuint24The fee amount of the v3 pool for the specified token pair
sqrtPriceX96uint160The initial square root price of the pool as a Q64.96 value

Returns

NameTypeDescription
pooladdressReturns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary