735546619e
Signed-off-by: T-Hax <>
23 lines
1.1 KiB
Solidity
23 lines
1.1 KiB
Solidity
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
pragma solidity >=0.7.5;
|
|
pragma abicoder v2;
|
|
|
|
/// @title Creates and initializes V3 Pools
|
|
/// @notice Provides a method for creating and initializing a pool, if necessary, for bundling with other methods that
|
|
/// require the pool to exist.
|
|
interface IPoolInitializer {
|
|
/// @notice Creates a new pool if it does not exist, then initializes if not initialized
|
|
/// @dev This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool
|
|
/// @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 sqrtPriceX96 The initial square root price of the pool as a Q64.96 value
|
|
/// @return pool Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary
|
|
function createAndInitializePoolIfNecessary(
|
|
address token0,
|
|
address token1,
|
|
uint24 fee,
|
|
uint160 sqrtPriceX96
|
|
) external payable returns (address pool);
|
|
}
|