MaverickV2Factory
Last updated
Last updated
Inherits: , , Ownable
Pool Factory contract. Deploys both permissionless and permissioned Maverick V2 pools using deterministic create2 addresses. Deployed pools can be looked up by their parameters or by the token pair. This contract is ownable with the owner having permission to set protocol fee for all pools and collect protocol fee proceeds from pools.
Mapping elements are [tokenA][tokenB] -> list of pools.
Mapping elements are [accessor][tokenA][tokenB] -> list of pools.
Bool indicating whether the pool was deployed from this factory.
Bool indicating whether the pool was deployed from this factory.
Proportion of protocol fee to collect on each swap. Value is in 3-decimal format with a maximum value of 0.25e3.
Fee rate charged by the protocol for flashloans. Value is in 18-decimal format with a maximum value of 0.02e18.
Called by deployer library to initialize a pool.
Address that receives the protocol fee when users call claimProtocolFeeForPool
.
Array of all permissionless pools.
Array of all permissioned pools.
Set the protocol fee ratio.
Parameters
_protocolFeeRatioD3
uint8
The new protocol fee ratio to set in 3-decimal units.
Set the protocol lending fee rate.
Parameters
_protocolLendingFeeRateD18
uint256
The new protocol lending fee rate to set in 18-decimal units.
Set the protocol fee receiver address. If protocol fee is non-zero, user will be able to permissionlessly push protocol fee from a given pool to this address.
Transfer ownership of the contract to a new owner.
Parameters
newOwner
address
The address of the new owner.
Renounce ownership of the contract.
Claim protocol fee for a pool and transfer it to the protocolFeeReceiver.
Parameters
pool
IMaverickV2Pool
The pool from which to claim the protocol fee.
isTokenA
bool
A boolean indicating whether tokenA (true) or tokenB (false) is being collected.
Claim protocol fee for a pool and transfer it to the protocolFeeReceiver.
Parameters
pool
IMaverickV2Pool
The pool from which to claim the protocol fee.
Update the protocol fee ratio for a pool. Can be called permissionlessly allowing any user to sync the pool protocol fee value with the factory protocol fee value.
Parameters
pool
IMaverickV2Pool
The pool for which to update.
Update the protocol lending fee rate for a pool. Can be called permissionlessly allowing any user to sync the pool protocol lending fee rate value with the factory value.
Parameters
pool
IMaverickV2Pool
The pool for which to update.
Create a new MaverickV2Pool with symmetric swap fees.
Parameters
feeAIn
uint64
feeBIn
uint64
tickSpacing
uint16
Tick spacing of pool where 1.0001^tickSpacing is the bin width.
lookback
uint32
Pool lookback in second in D2 scale.
tokenA
IERC20
Address of tokenA.
tokenB
IERC20
Address of tokenB.
activeTick
int32
Tick position that contains the active bins.
kinds
uint8
1-15 number to represent the active kinds 0b0001 = static; 0b0010 = right; 0b0100 = left; 0b1000 = both. E.g. a pool with all 4 modes will have kinds = b1111 = 15
Create a new MaverickV2PoolPermissioned with symmetric swap fees.
Parameters
fee
uint64
Fraction of the pool swap amount that is retained as an LP in D18 scale.
tickSpacing
uint16
Tick spacing of pool where 1.0001^tickSpacing is the bin width.
lookback
uint32
Pool lookback in second in D2 scale.
tokenA
IERC20
Address of tokenA.
tokenB
IERC20
Address of tokenB.
activeTick
int32
Tick position that contains the active bins.
kinds
uint8
1-15 number to represent the active kinds 0b0001 = static; 0b0010 = right; 0b0100 = left; 0b1000 = both. E.g. a pool with all 4 modes will have kinds = b1111 = 15
accessor
address
Only address that can access the pool's public write functions.
Get the current factory owner.
Lookup a pool for given parameters.
Lookup a pool for given parameters.
Lookup a pool for given parameters.
Lookup a pool for given parameters.
Lookup a pool for given parameters.
Lookup a pool for given parameters.
Address of a permissionless pool.
Address of a permissionless pool.
Prune array from storage to subset of array with range [startIndex, endIndex).
Parameters
_pools
IMaverickV2Pool[]
Storage array of full pool list to be sliced.
startIndex
uint256
The first index of the pool list in storage to return.
endIndex
uint256
Upper bound index that is not included in the returned list.
Returns
returnPools
IMaverickV2Pool[]
An array of MaverickV2Pool addresses.
Check create pool parameters to ensure they are valid. Reverts on an invalid paramter sets.
Checks the validity of the protocol fee ratio.
Checks the validity of the protocol lending fee rate.