Creates and initializes V3 Pools

Provides a method for creating and initializing a pool, if necessary, for bundling with other methods that require the pool to exist.

Developer note: Credit to Uniswap Labs under GPL-2.0-or-later license: https://github.com/Uniswap/v3-periphery



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

Creates a new pool if it does not exist, then initializes if not initialized Developer note: This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool