Skip to content

Instantly share code, notes, and snippets.

@bakasura980
Last active October 12, 2021 08:37
Show Gist options
  • Save bakasura980/539827f56aeb9983ff293deb4dd927ff to your computer and use it in GitHub Desktop.
Save bakasura980/539827f56aeb9983ff293deb4dd927ff to your computer and use it in GitHub Desktop.
create2
function createPool(address token0, address token1) external override returns (IPool pool) {
(address tokenA, address tokenB) = token0 < token1 ? (token0, token1) : (token1, token0);
bytes memory bytecode = type(Pool).creationCode;
bytes32 salt = keccak256(abi.encodePacked(tokenA, tokenB));
assembly {
pool := create2(0, add(bytecode, 32), mload(bytecode), salt)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment