IUniswapV3Factory

Git Source

The Uniswap V3 Factory facilitates creation of Uniswap V3 pools and control over the protocol fees

Functions

owner

Returns the current owner of the factory

Can be changed by the current owner via setOwner

function owner() external view returns (address);

Returns

NameTypeDescription
<none>addressThe address of the factory owner

feeAmountTickSpacing

Returns the tick spacing for a given fee amount, if enabled, or 0 if not enabled

A fee amount can never be removed, so this value should be hard coded or cached in the calling context

function feeAmountTickSpacing(uint24 fee) external view returns (int24);

Parameters

NameTypeDescription
feeuint24The enabled fee, denominated in hundredths of a bip. Returns 0 in case of unenabled fee

Returns

NameTypeDescription
<none>int24The tick spacing

getPool

Returns the pool address for a given pair of tokens and a fee, or address 0 if it does not exist

tokenA and tokenB may be passed in either token0/token1 or token1/token0 order

function getPool(address tokenA, address tokenB, uint24 fee) external view returns (address pool);

Parameters

NameTypeDescription
tokenAaddressThe contract address of either token0 or token1
tokenBaddressThe contract address of the other token
feeuint24The fee collected upon every swap in the pool, denominated in hundredths of a bip

Returns

NameTypeDescription
pooladdressThe pool address

createPool

Creates a pool for the given two tokens and fee

tokenA and tokenB may be passed in either order: token0/token1 or token1/token0. tickSpacing is retrieved from the fee. The call will revert if the pool already exists, the fee is invalid, or the token arguments are invalid.

function createPool(address tokenA, address tokenB, uint24 fee) external returns (address pool);

Parameters

NameTypeDescription
tokenAaddressOne of the two tokens in the desired pool
tokenBaddressThe other of the two tokens in the desired pool
feeuint24The desired fee for the pool

Returns

NameTypeDescription
pooladdressThe address of the newly created pool

setOwner

Updates the owner of the factory

Must be called by the current owner

function setOwner(address _owner) external;

Parameters

NameTypeDescription
_owneraddressThe new owner of the factory

enableFeeAmount

Enables a fee amount with the given tickSpacing

Fee amounts may never be removed once enabled

function enableFeeAmount(uint24 fee, int24 tickSpacing) external;

Parameters

NameTypeDescription
feeuint24The fee amount to enable, denominated in hundredths of a bip (i.e. 1e-6)
tickSpacingint24The spacing between ticks to be enforced for all pools created with the given fee amount

Events

OwnerChanged

Emitted when the owner of the factory is changed

event OwnerChanged(address indexed oldOwner, address indexed newOwner);

Parameters

NameTypeDescription
oldOwneraddressThe owner before the owner was changed
newOwneraddressThe owner after the owner was changed

PoolCreated

Emitted when a pool is created

event PoolCreated(address indexed token0, address indexed token1, uint24 indexed fee, int24 tickSpacing, address pool);

Parameters

NameTypeDescription
token0addressThe first token of the pool by address sort order
token1addressThe second token of the pool by address sort order
feeuint24The fee collected upon every swap in the pool, denominated in hundredths of a bip
tickSpacingint24The minimum number of ticks between initialized ticks
pooladdressThe address of the created pool

FeeAmountEnabled

Emitted when a new fee amount is enabled for pool creation via the factory

event FeeAmountEnabled(uint24 indexed fee, int24 indexed tickSpacing);

Parameters

NameTypeDescription
feeuint24The enabled fee, denominated in hundredths of a bip
tickSpacingint24The minimum number of ticks between initialized ticks for pools created with the given fee