Pool Factory
Methods
constructor(address _master)
constructor(address _master)constructor(address _master) BasePoolFactory(_master) {
}_createPool(address token0, address token1)
_createPool(address token0, address token1)function _createPool(address token0, address token1) internal override returns (address pool) {
// Tokens with decimals more than 18 are not supported and will lead to reverts.
uint token0PrecisionMultiplier = 10 ** (18 - IERC20(token0).decimals());
uint token1PrecisionMultiplier = 10 ** (18 - IERC20(token1).decimals());
bytes memory deployData = abi.encode(token0, token1, token0PrecisionMultiplier, token1PrecisionMultiplier);
cachedDeployData = deployData;
// Remove precision multipliers from salt and config.
deployData = abi.encode(token0, token1);
bytes32 salt = keccak256(deployData);
pool = address(new SyncSwapStablePool{salt: salt}()); // this will prevent duplicated pools.
// Register the pool with config.
IPoolMaster(master).registerPool(pool, 2, deployData, token0, token1);
}getDeployData()
getDeployData()getSwapFee(address pool, address sender, address tokenIn, address tokenOut, bytes calldata data)
getSwapFee(address pool, address sender, address tokenIn, address tokenOut, bytes calldata data)createPool(bytes calldata data)
createPool(bytes calldata data)Events
PoolCreated
PoolCreatedSetFactoryWhitelisted
SetFactoryWhitelistedRegisterPool
RegisterPoolUpdateForwarderRegistry
UpdateForwarderRegistryUpdateFeeManager
UpdateFeeManagerExample Usage
Creating a New Stable Pool
Last updated