[
{
"inputs": [
{
"internalType": "address",
"name": "owner_",
"type": "address"
},
{
"internalType": "contract IPoolManager",
"name": "_poolManager",
"type": "address"
},
{
"internalType": "contract IPositionManagerMinimal",
"name": "_positionManager",
"type": "address"
},
{
"internalType": "address",
"name": "_permit2",
"type": "address"
},
{
"internalType": "contract HooksFunTokenFactory",
"name": "_tokenFactory",
"type": "address"
},
{
"internalType": "contract HooksFunHookFactory",
"name": "_hookFactory",
"type": "address"
},
{
"internalType": "contract HooksFunRegistry",
"name": "_registry",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "liquidityAllocation",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalSupply",
"type": "uint256"
}
],
"name": "InvalidAllocation",
"type": "error"
},
{
"inputs": [],
"name": "MissingAllocationRecipient",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "OwnableInvalidOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "OwnableUnauthorizedAccount",
"type": "error"
},
{
"inputs": [],
"name": "PoolNotEth",
"type": "error"
},
{
"inputs": [],
"name": "ZeroAddress",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "launchFee",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "feeRecipient",
"type": "address"
}
],
"name": "LaunchFeeUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "hook",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "launcher",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "hookTemplate",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "PoolId",
"name": "poolId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "liquidityAllocation",
"type": "uint256"
}
],
"name": "Launched",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "hook",
"type": "address"
},
{
"components": [
{
"internalType": "uint24",
"name": "lpFee",
"type": "uint24"
},
{
"internalType": "int24",
"name": "tickSpacing",
"type": "int24"
},
{
"internalType": "uint160",
"name": "sqrtPriceX96",
"type": "uint160"
}
],
"internalType": "struct PoolParams",
"name": "pool",
"type": "tuple"
}
],
"name": "buildPoolKey",
"outputs": [
{
"components": [
{
"internalType": "Currency",
"name": "currency0",
"type": "address"
},
{
"internalType": "Currency",
"name": "currency1",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "int24",
"name": "tickSpacing",
"type": "int24"
},
{
"internalType": "contract IHooks",
"name": "hooks",
"type": "address"
}
],
"internalType": "struct PoolKey",
"name": "",
"type": "tuple"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "templateId",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
}
],
"name": "computeHookAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "uint256",
"name": "totalSupply",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "maxTxBps",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "maxWalletBps",
"type": "uint16"
},
{
"internalType": "bool",
"name": "burnable",
"type": "bool"
}
],
"internalType": "struct TokenParams",
"name": "token",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint24",
"name": "lpFee",
"type": "uint24"
},
{
"internalType": "int24",
"name": "tickSpacing",
"type": "int24"
},
{
"internalType": "uint160",
"name": "sqrtPriceX96",
"type": "uint160"
}
],
"internalType": "struct PoolParams",
"name": "pool",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "treasury",
"type": "address"
},
{
"internalType": "uint16",
"name": "buyFeeBps",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "sellFeeBps",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "snipeBuyFeeBps",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "snipeSellFeeBps",
"type": "uint16"
},
{
"internalType": "uint32",
"name": "snipeBlocks",
"type": "uint32"
},
{
"internalType": "uint128",
"name": "maxBuyWei",
"type": "uint128"
},
{
"internalType": "uint64",
"name": "lpLockDuration",
"type": "uint64"
},
{
"internalType": "bool",
"name": "restrictLiquidity",
"type": "bool"
},
{
"internalType": "bool",
"name": "autoEnableTrading",
"type": "bool"
}
],
"internalType": "struct HookInitParams",
"name": "hook",
"type": "tuple"
},
{
"internalType": "bytes32",
"name": "hookTemplate",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "tokenSalt",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "hookSalt",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "liquidityAllocation",
"type": "uint256"
},
{
"internalType": "address",
"name": "allocationRecipient",
"type": "address"
},
{
"internalType": "bool",
"name": "initializePool",
"type": "bool"
}
],
"internalType": "struct LaunchParams",
"name": "params",
"type": "tuple"
},
{
"internalType": "address",
"name": "launcher",
"type": "address"
}
],
"name": "computeTokenAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "feeRecipient",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "hookFactory",
"outputs": [
{
"internalType": "contract HooksFunHookFactory",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "templateId",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
}
],
"name": "isValidHookSalt",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "uint256",
"name": "totalSupply",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "maxTxBps",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "maxWalletBps",
"type": "uint16"
},
{
"internalType": "bool",
"name": "burnable",
"type": "bool"
}
],
"internalType": "struct TokenParams",
"name": "token",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint24",
"name": "lpFee",
"type": "uint24"
},
{
"internalType": "int24",
"name": "tickSpacing",
"type": "int24"
},
{
"internalType": "uint160",
"name": "sqrtPriceX96",
"type": "uint160"
}
],
"internalType": "struct PoolParams",
"name": "pool",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "treasury",
"type": "address"
},
{
"internalType": "uint16",
"name": "buyFeeBps",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "sellFeeBps",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "snipeBuyFeeBps",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "snipeSellFeeBps",
"type": "uint16"
},
{
"internalType": "uint32",
"name": "snipeBlocks",
"type": "uint32"
},
{
"internalType": "uint128",
"name": "maxBuyWei",
"type": "uint128"
},
{
"internalType": "uint64",
"name": "lpLockDuration",
"type": "uint64"
},
{
"internalType": "bool",
"name": "restrictLiquidity",
"type": "bool"
},
{
"internalType": "bool",
"name": "autoEnableTrading",
"type": "bool"
}
],
"internalType": "struct HookInitParams",
"name": "hook",
"type": "tuple"
},
{
"internalType": "bytes32",
"name": "hookTemplate",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "tokenSalt",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "hookSalt",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "liquidityAllocation",
"type": "uint256"
},
{
"internalType": "address",
"name": "allocationRecipient",
"type": "address"
},
{
"internalType": "bool",
"name": "initializePool",
"type": "bool"
}
],
"internalType": "struct LaunchParams",
"name": "params",
"type": "tuple"
}
],
"name": "launch",
"outputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "hook",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "launchFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "permit2",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "poolManager",
"outputs": [
{
"internalType": "contract IPoolManager",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "positionManager",
"outputs": [
{
"internalType": "contract IPositionManagerMinimal",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "registry",
"outputs": [
{
"internalType": "contract HooksFunRegistry",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newFee",
"type": "uint256"
},
{
"internalType": "address",
"name": "newRecipient",
"type": "address"
}
],
"name": "setLaunchFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "tokenFactory",
"outputs": [
{
"internalType": "contract HooksFunTokenFactory",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]0x610140604052348015610010575f80fd5b50604051611c39380380611c3983398101604081905261002f91610115565b866001600160a01b03811661005d57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610066816100af565b506001600160a01b0395861660805293851660a05291841660c052831660e052821661010052811661012052600280546001600160a01b031916929091169190911790556101ac565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610112575f80fd5b50565b5f805f805f805f60e0888a03121561012b575f80fd5b8751610136816100fe565b6020890151909750610147816100fe565b6040890151909650610158816100fe565b6060890151909550610169816100fe565b608089015190945061017a816100fe565b60a089015190935061018b816100fe565b60c089015190925061019c816100fe565b8091505092959891949750929550565b60805160a05160c05160e05161010051610120516119f96102405f395f81816101d60152610f0a01525f8181610280015281816104a2015281816106c90152610ade01525f81816103660152818161056d015261093701525f818161011e015261128101525f81816101a3015261122d01525f818161033301528181610bb801528181610de201526111d901526119f95ff3fe608060405260043610610109575f3560e01c8063b9349678116100a1578063d21784d211610071578063e77772fe11610057578063e77772fe14610355578063e86b47a114610388578063f2fde38b146103bb575f80fd5b8063d21784d214610303578063dc4c90d314610322575f80fd5b8063b93496781461026f578063bb64e4ef146102a2578063cf3cf573146102c1578063d0d9a2a1146102e4575f80fd5b80637b103999116100dc5780637b103999146101c55780638da5cb5b146101f857806394ea9f241461021457806394f6e05914610240575f80fd5b806312261ee71461010d578063469048401461015d578063715018a61461017c578063791b98bc14610192575b5f80fd5b348015610118575f80fd5b506101407f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610168575f80fd5b50600254610140906001600160a01b031681565b348015610187575f80fd5b506101906103da565b005b34801561019d575f80fd5b506101407f000000000000000000000000000000000000000000000000000000000000000081565b3480156101d0575f80fd5b506101407f000000000000000000000000000000000000000000000000000000000000000081565b348015610203575f80fd5b505f546001600160a01b0316610140565b34801561021f575f80fd5b5061023361022e3660046113fc565b6103ed565b6040516101549190611441565b34801561024b575f80fd5b5061025f61025a36600461149d565b610483565b6040519015158152602001610154565b34801561027a575f80fd5b506101407f000000000000000000000000000000000000000000000000000000000000000081565b3480156102ad575f80fd5b506101406102bc3660046114d4565b61051c565b3480156102cc575f80fd5b506102d660015481565b604051908152602001610154565b3480156102ef575f80fd5b506101906102fe366004611523565b61060d565b34801561030e575f80fd5b5061014061031d36600461149d565b6106aa565b34801561032d575f80fd5b506101407f000000000000000000000000000000000000000000000000000000000000000081565b348015610360575f80fd5b506101407f000000000000000000000000000000000000000000000000000000000000000081565b61039b610396366004611546565b61073a565b604080516001600160a01b03938416815292909116602083015201610154565b3480156103c6575f80fd5b506101906103d5366004611580565b611088565b6103e26110c5565b6103eb5f6110f1565b565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091526001600160a01b03841661043e5760405163d92e233d60e01b815260040160405180910390fd5b506040805160a0810182525f81526001600160a01b03948516602080830191909152835162ffffff169282019290925291015160020b60608201529116608082015290565b604051630160d75760e01b815260048101839052602481018290525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630160d75790604401602060405180830381865afa1580156104ef573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051391906115af565b90505b92915050565b5f808061052f60a0860160808701611580565b6001600160a01b0316146105525761054d60a0850160808601611580565b610554565b825b90505f610561848361114d565b90506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663098391d761059c87806115ca565b3030858a61022001356040518663ffffffff1660e01b81526004016105c59594939291906116b8565b602060405180830381865afa1580156105e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106049190611799565b95945050505050565b6106156110c5565b6001600160a01b03811661063c5760405163d92e233d60e01b815260040160405180910390fd5b60018290556002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040805184815260208101929092527fe2c660b57c2af5c9d221adbd8a693ffeb3c1f8a35875cdc7ed7bcc2c6bdb95d6910160405180910390a15050565b60405163690bc26960e11b815260048101839052602481018290525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d21784d290604401602060405180830381865afa158015610716573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105139190611799565b6001545f908190801561083e578034101561079c5760405162461bcd60e51b815260206004820152600a60248201527f6c61756e6368206665650000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6002546040515f916001600160a01b03169083908381818185875af1925050503d805f81146107e6576040519150601f19603f3d011682016040523d82523d5f602084013e6107eb565b606091505b505090508061083c5760405162461bcd60e51b815260206004820152600c60248201527f666565207472616e7366657200000000000000000000000000000000000000006044820152606401610793565b505b61084884806115ca565b60400135846102600135111561088d5761026084013561086885806115ca565b60408051632ca119f960e21b8152600481019390935201356024820152604401610793565b5f61026085013561089e86806115ca565b604001356108ac91906117b4565b905080158015906108d657505f6108cb6102a087016102808801611580565b6001600160a01b0316145b156108f457604051631309ae7960e01b815260040160405180910390fd5b5f8061090660a0880160808901611580565b6001600160a01b0316146109295761092460a0870160808801611580565b61092b565b335b90506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663527d6d5561096688806115ca565b3030610972338761114d565b8b61022001356040518663ffffffff1660e01b81526004016109989594939291906116b8565b6020604051808303815f875af11580156109b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d89190611799565b94505f6109ed3688900388016080890161181c565b6001600160a01b0387811660208301908152848216835260408051631542c07760e31b81526102008c013560048201526102408c0135602482015284518416604482015291518316606483015283015182166084820152606083015161ffff90811660a48301526080840151811660c483015260a0840151811660e483015260c08401511661010482015260e083015163ffffffff166101248201526101008301516fffffffffffffffffffffffffffffffff1661014482015261012083015167ffffffffffffffff16610164820152610140830151151561018482015261016083015115156101a48201529192507f0000000000000000000000000000000000000000000000000000000000000000169063aa1603b8906101c4016020604051808303815f875af1158015610b25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b499190611799565b6040516304080b1560e21b81526001600160a01b038083166004830152919650908716906310202c54906024015f604051808303815f87803b158015610b8d575f80fd5b505af1158015610b9f573d5f803e3d5ffd5b50506040516365fd08d160e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152600160248301528916925063cbfa11a291506044015f604051808303815f87803b158015610c0a575f80fd5b505af1158015610c1c573d5f803e3d5ffd5b5050505061026087013515610c9f5760405163a9059cbb60e01b815233600482015261026088013560248201526001600160a01b0387169063a9059cbb906044016020604051808303815f875af1158015610c79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9d91906115af565b505b8215610d4e576001600160a01b03861663a9059cbb610cc66102a08a016102808b01611580565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018690526044016020604051808303815f875af1158015610d28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4c91906115af565b505b60405163f2fde38b60e01b81526001600160a01b03838116600483015287169063f2fde38b906024015f604051808303815f87803b158015610d8e575f80fd5b505af1158015610da0573d5f803e3d5ffd5b505f9250610db99150506102c089016102a08a0161190c565b15610e7d575f610dd6888861022e368d90038d0160208e01611927565b90506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016636276cbbe82610e1860808d0160608e01611580565b6040518363ffffffff1660e01b8152600401610e35929190611941565b6020604051808303815f875af1158015610e51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7591906119b3565b5060a0902090505b6040805160c0810182526001600160a01b03898116825288811660208301908152338385019081526102008d01356060850190815267ffffffffffffffff4281166080870190815260a08701898152975163b80e302760e01b81529651861660048801529351851660248701529151841660448601525160648501529051166084830152915160a48201527f00000000000000000000000000000000000000000000000000000000000000009091169063b80e30279060c4016020604051808303815f875af1158015610f52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7691906119ce565b50604080516102008a01358152602081018390526102608a013581830152905133916001600160a01b0389811692908b16917fd15e336ee1f21918fbabb050c0547033a5b0157f81640cf53bedd6f41f9144c5919081900360600190a45f610fde86346117b4565b9050801561107d576040515f90339083908381818185875af1925050503d805f8114611025576040519150601f19603f3d011682016040523d82523d5f602084013e61102a565b606091505b505090508061107b5760405162461bcd60e51b815260206004820152600660248201527f726566756e6400000000000000000000000000000000000000000000000000006044820152606401610793565b505b505050505050915091565b6110906110c5565b6001600160a01b0381166110b957604051631e4fbdf760e01b81525f6004820152602401610793565b6110c2816110f1565b50565b5f546001600160a01b031633146103eb5760405163118cdaa760e01b8152336004820152602401610793565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051600680825260e082019092526060916020820160c08036833701905050905082815f81518110611183576111836119e5565b60200260200101906001600160a01b031690816001600160a01b03168152505081816001815181106111b7576111b76119e5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160028151811061120b5761120b6119e5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160038151811061125f5761125f6119e5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816004815181106112b3576112b36119e5565b60200260200101906001600160a01b031690816001600160a01b03168152505030816005815181106112e7576112e76119e5565b60200260200101906001600160a01b031690816001600160a01b03168152505092915050565b6001600160a01b03811681146110c2575f80fd5b803561132c8161130d565b919050565b604051610180810167ffffffffffffffff8111828210171561136157634e487b7160e01b5f52604160045260245ffd5b60405290565b8060020b81146110c2575f80fd5b5f60608284031215611385575f80fd5b6040516060810167ffffffffffffffff811182821017156113b457634e487b7160e01b5f52604160045260245ffd5b604052905080823562ffffff811681146113cc575f80fd5b815260208301356113dc81611367565b602082015260408301356113ef8161130d565b6040919091015292915050565b5f805f60a0848603121561140e575f80fd5b83356114198161130d565b925060208401356114298161130d565b91506114388560408601611375565b90509250925092565b60a0810161051682846001600160a01b0381511682526001600160a01b03602082015116602083015262ffffff6040820151166040830152606081015160020b60608301526001600160a01b0360808201511660808301525050565b5f80604083850312156114ae575f80fd5b50508035926020909101359150565b5f6102c082840312156114ce575f80fd5b50919050565b5f80604083850312156114e5575f80fd5b823567ffffffffffffffff8111156114fb575f80fd5b611507858286016114bd565b92505060208301356115188161130d565b809150509250929050565b5f8060408385031215611534575f80fd5b8235915060208301356115188161130d565b5f60208284031215611556575f80fd5b813567ffffffffffffffff81111561156c575f80fd5b611578848285016114bd565b949350505050565b5f60208284031215611590575f80fd5b813561159b8161130d565b9392505050565b80151581146110c2575f80fd5b5f602082840312156115bf575f80fd5b815161159b816115a2565b5f823560be198336030181126115de575f80fd5b9190910192915050565b5f808335601e198436030181126115fd575f80fd5b830160208101925035905067ffffffffffffffff81111561161c575f80fd5b80360382131561162a575f80fd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b803561ffff8116811461132c575f80fd5b803561132c816115a2565b5f8151808452602084019350602083015f5b828110156116ae5781516001600160a01b0316865260209586019590910190600101611687565b5093949350505050565b60a081525f6116c787886115e8565b60c060a08501526116dd61016085018284611631565b9150506116ed60208901896115e8565b848303609f190160c0860152611704838284611631565b60408b013560e0870152925061ffff9150611723905060608a01611659565b1661010084015261ffff61173960808a01611659565b1661012084015260a088013561174e816115a2565b15156101408401526001600160a01b03871660208401526001600160a01b038616604084015282810360608401526117868186611675565b9150508260808301529695505050505050565b5f602082840312156117a9575f80fd5b815161159b8161130d565b8181038181111561051657634e487b7160e01b5f52601160045260245ffd5b803563ffffffff8116811461132c575f80fd5b80356fffffffffffffffffffffffffffffffff8116811461132c575f80fd5b803567ffffffffffffffff8116811461132c575f80fd5b5f61018082840312801561182e575f80fd5b50611837611331565b61184083611321565b815261184e60208401611321565b602082015261185f60408401611321565b604082015261187060608401611659565b606082015261188160808401611659565b608082015261189260a08401611659565b60a08201526118a360c08401611659565b60c08201526118b460e084016117d3565b60e08201526118c661010084016117e6565b6101008201526118d96101208401611805565b6101208201526118ec610140840161166a565b6101408201526118ff610160840161166a565b6101608201529392505050565b5f6020828403121561191c575f80fd5b813561159b816115a2565b5f60608284031215611937575f80fd5b6105138383611375565b60c0810161199d82856001600160a01b0381511682526001600160a01b03602082015116602083015262ffffff6040820151166040830152606081015160020b60608301526001600160a01b0360808201511660808301525050565b6001600160a01b03831660a08301529392505050565b5f602082840312156119c3575f80fd5b815161159b81611367565b5f602082840312156119de575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd0000000000000000000000004b99efea53f6d7e5a7cafa6bc63e280c5caec57b000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000985fab8149390cadff437c1e0fa51fc7aecf0b5e000000000000000000000000cef8d7b834ca623c4b3120e5c933e6f50dfe865c000000000000000000000000db21ae5c2f31b9d0cdadc7c6197b8a7f4374032b
0x608060405260043610610109575f3560e01c8063b9349678116100a1578063d21784d211610071578063e77772fe11610057578063e77772fe14610355578063e86b47a114610388578063f2fde38b146103bb575f80fd5b8063d21784d214610303578063dc4c90d314610322575f80fd5b8063b93496781461026f578063bb64e4ef146102a2578063cf3cf573146102c1578063d0d9a2a1146102e4575f80fd5b80637b103999116100dc5780637b103999146101c55780638da5cb5b146101f857806394ea9f241461021457806394f6e05914610240575f80fd5b806312261ee71461010d578063469048401461015d578063715018a61461017c578063791b98bc14610192575b5f80fd5b348015610118575f80fd5b506101407f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba381565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610168575f80fd5b50600254610140906001600160a01b031681565b348015610187575f80fd5b506101906103da565b005b34801561019d575f80fd5b506101407f000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e81565b3480156101d0575f80fd5b506101407f000000000000000000000000db21ae5c2f31b9d0cdadc7c6197b8a7f4374032b81565b348015610203575f80fd5b505f546001600160a01b0316610140565b34801561021f575f80fd5b5061023361022e3660046113fc565b6103ed565b6040516101549190611441565b34801561024b575f80fd5b5061025f61025a36600461149d565b610483565b6040519015158152602001610154565b34801561027a575f80fd5b506101407f000000000000000000000000cef8d7b834ca623c4b3120e5c933e6f50dfe865c81565b3480156102ad575f80fd5b506101406102bc3660046114d4565b61051c565b3480156102cc575f80fd5b506102d660015481565b604051908152602001610154565b3480156102ef575f80fd5b506101906102fe366004611523565b61060d565b34801561030e575f80fd5b5061014061031d36600461149d565b6106aa565b34801561032d575f80fd5b506101407f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9081565b348015610360575f80fd5b506101407f000000000000000000000000985fab8149390cadff437c1e0fa51fc7aecf0b5e81565b61039b610396366004611546565b61073a565b604080516001600160a01b03938416815292909116602083015201610154565b3480156103c6575f80fd5b506101906103d5366004611580565b611088565b6103e26110c5565b6103eb5f6110f1565b565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091526001600160a01b03841661043e5760405163d92e233d60e01b815260040160405180910390fd5b506040805160a0810182525f81526001600160a01b03948516602080830191909152835162ffffff169282019290925291015160020b60608201529116608082015290565b604051630160d75760e01b815260048101839052602481018290525f907f000000000000000000000000cef8d7b834ca623c4b3120e5c933e6f50dfe865c6001600160a01b031690630160d75790604401602060405180830381865afa1580156104ef573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051391906115af565b90505b92915050565b5f808061052f60a0860160808701611580565b6001600160a01b0316146105525761054d60a0850160808601611580565b610554565b825b90505f610561848361114d565b90506001600160a01b037f000000000000000000000000985fab8149390cadff437c1e0fa51fc7aecf0b5e1663098391d761059c87806115ca565b3030858a61022001356040518663ffffffff1660e01b81526004016105c59594939291906116b8565b602060405180830381865afa1580156105e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106049190611799565b95945050505050565b6106156110c5565b6001600160a01b03811661063c5760405163d92e233d60e01b815260040160405180910390fd5b60018290556002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040805184815260208101929092527fe2c660b57c2af5c9d221adbd8a693ffeb3c1f8a35875cdc7ed7bcc2c6bdb95d6910160405180910390a15050565b60405163690bc26960e11b815260048101839052602481018290525f907f000000000000000000000000cef8d7b834ca623c4b3120e5c933e6f50dfe865c6001600160a01b03169063d21784d290604401602060405180830381865afa158015610716573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105139190611799565b6001545f908190801561083e578034101561079c5760405162461bcd60e51b815260206004820152600a60248201527f6c61756e6368206665650000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6002546040515f916001600160a01b03169083908381818185875af1925050503d805f81146107e6576040519150601f19603f3d011682016040523d82523d5f602084013e6107eb565b606091505b505090508061083c5760405162461bcd60e51b815260206004820152600c60248201527f666565207472616e7366657200000000000000000000000000000000000000006044820152606401610793565b505b61084884806115ca565b60400135846102600135111561088d5761026084013561086885806115ca565b60408051632ca119f960e21b8152600481019390935201356024820152604401610793565b5f61026085013561089e86806115ca565b604001356108ac91906117b4565b905080158015906108d657505f6108cb6102a087016102808801611580565b6001600160a01b0316145b156108f457604051631309ae7960e01b815260040160405180910390fd5b5f8061090660a0880160808901611580565b6001600160a01b0316146109295761092460a0870160808801611580565b61092b565b335b90506001600160a01b037f000000000000000000000000985fab8149390cadff437c1e0fa51fc7aecf0b5e1663527d6d5561096688806115ca565b3030610972338761114d565b8b61022001356040518663ffffffff1660e01b81526004016109989594939291906116b8565b6020604051808303815f875af11580156109b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d89190611799565b94505f6109ed3688900388016080890161181c565b6001600160a01b0387811660208301908152848216835260408051631542c07760e31b81526102008c013560048201526102408c0135602482015284518416604482015291518316606483015283015182166084820152606083015161ffff90811660a48301526080840151811660c483015260a0840151811660e483015260c08401511661010482015260e083015163ffffffff166101248201526101008301516fffffffffffffffffffffffffffffffff1661014482015261012083015167ffffffffffffffff16610164820152610140830151151561018482015261016083015115156101a48201529192507f000000000000000000000000cef8d7b834ca623c4b3120e5c933e6f50dfe865c169063aa1603b8906101c4016020604051808303815f875af1158015610b25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b499190611799565b6040516304080b1560e21b81526001600160a01b038083166004830152919650908716906310202c54906024015f604051808303815f87803b158015610b8d575f80fd5b505af1158015610b9f573d5f803e3d5ffd5b50506040516365fd08d160e11b81526001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9081166004830152600160248301528916925063cbfa11a291506044015f604051808303815f87803b158015610c0a575f80fd5b505af1158015610c1c573d5f803e3d5ffd5b5050505061026087013515610c9f5760405163a9059cbb60e01b815233600482015261026088013560248201526001600160a01b0387169063a9059cbb906044016020604051808303815f875af1158015610c79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9d91906115af565b505b8215610d4e576001600160a01b03861663a9059cbb610cc66102a08a016102808b01611580565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602481018690526044016020604051808303815f875af1158015610d28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4c91906115af565b505b60405163f2fde38b60e01b81526001600160a01b03838116600483015287169063f2fde38b906024015f604051808303815f87803b158015610d8e575f80fd5b505af1158015610da0573d5f803e3d5ffd5b505f9250610db99150506102c089016102a08a0161190c565b15610e7d575f610dd6888861022e368d90038d0160208e01611927565b90506001600160a01b037f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9016636276cbbe82610e1860808d0160608e01611580565b6040518363ffffffff1660e01b8152600401610e35929190611941565b6020604051808303815f875af1158015610e51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7591906119b3565b5060a0902090505b6040805160c0810182526001600160a01b03898116825288811660208301908152338385019081526102008d01356060850190815267ffffffffffffffff4281166080870190815260a08701898152975163b80e302760e01b81529651861660048801529351851660248701529151841660448601525160648501529051166084830152915160a48201527f000000000000000000000000db21ae5c2f31b9d0cdadc7c6197b8a7f4374032b9091169063b80e30279060c4016020604051808303815f875af1158015610f52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7691906119ce565b50604080516102008a01358152602081018390526102608a013581830152905133916001600160a01b0389811692908b16917fd15e336ee1f21918fbabb050c0547033a5b0157f81640cf53bedd6f41f9144c5919081900360600190a45f610fde86346117b4565b9050801561107d576040515f90339083908381818185875af1925050503d805f8114611025576040519150601f19603f3d011682016040523d82523d5f602084013e61102a565b606091505b505090508061107b5760405162461bcd60e51b815260206004820152600660248201527f726566756e6400000000000000000000000000000000000000000000000000006044820152606401610793565b505b505050505050915091565b6110906110c5565b6001600160a01b0381166110b957604051631e4fbdf760e01b81525f6004820152602401610793565b6110c2816110f1565b50565b5f546001600160a01b031633146103eb5760405163118cdaa760e01b8152336004820152602401610793565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051600680825260e082019092526060916020820160c08036833701905050905082815f81518110611183576111836119e5565b60200260200101906001600160a01b031690816001600160a01b03168152505081816001815181106111b7576111b76119e5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a908160028151811061120b5761120b6119e5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e8160038151811061125f5761125f6119e5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3816004815181106112b3576112b36119e5565b60200260200101906001600160a01b031690816001600160a01b03168152505030816005815181106112e7576112e76119e5565b60200260200101906001600160a01b031690816001600160a01b03168152505092915050565b6001600160a01b03811681146110c2575f80fd5b803561132c8161130d565b919050565b604051610180810167ffffffffffffffff8111828210171561136157634e487b7160e01b5f52604160045260245ffd5b60405290565b8060020b81146110c2575f80fd5b5f60608284031215611385575f80fd5b6040516060810167ffffffffffffffff811182821017156113b457634e487b7160e01b5f52604160045260245ffd5b604052905080823562ffffff811681146113cc575f80fd5b815260208301356113dc81611367565b602082015260408301356113ef8161130d565b6040919091015292915050565b5f805f60a0848603121561140e575f80fd5b83356114198161130d565b925060208401356114298161130d565b91506114388560408601611375565b90509250925092565b60a0810161051682846001600160a01b0381511682526001600160a01b03602082015116602083015262ffffff6040820151166040830152606081015160020b60608301526001600160a01b0360808201511660808301525050565b5f80604083850312156114ae575f80fd5b50508035926020909101359150565b5f6102c082840312156114ce575f80fd5b50919050565b5f80604083850312156114e5575f80fd5b823567ffffffffffffffff8111156114fb575f80fd5b611507858286016114bd565b92505060208301356115188161130d565b809150509250929050565b5f8060408385031215611534575f80fd5b8235915060208301356115188161130d565b5f60208284031215611556575f80fd5b813567ffffffffffffffff81111561156c575f80fd5b611578848285016114bd565b949350505050565b5f60208284031215611590575f80fd5b813561159b8161130d565b9392505050565b80151581146110c2575f80fd5b5f602082840312156115bf575f80fd5b815161159b816115a2565b5f823560be198336030181126115de575f80fd5b9190910192915050565b5f808335601e198436030181126115fd575f80fd5b830160208101925035905067ffffffffffffffff81111561161c575f80fd5b80360382131561162a575f80fd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b803561ffff8116811461132c575f80fd5b803561132c816115a2565b5f8151808452602084019350602083015f5b828110156116ae5781516001600160a01b0316865260209586019590910190600101611687565b5093949350505050565b60a081525f6116c787886115e8565b60c060a08501526116dd61016085018284611631565b9150506116ed60208901896115e8565b848303609f190160c0860152611704838284611631565b60408b013560e0870152925061ffff9150611723905060608a01611659565b1661010084015261ffff61173960808a01611659565b1661012084015260a088013561174e816115a2565b15156101408401526001600160a01b03871660208401526001600160a01b038616604084015282810360608401526117868186611675565b9150508260808301529695505050505050565b5f602082840312156117a9575f80fd5b815161159b8161130d565b8181038181111561051657634e487b7160e01b5f52601160045260245ffd5b803563ffffffff8116811461132c575f80fd5b80356fffffffffffffffffffffffffffffffff8116811461132c575f80fd5b803567ffffffffffffffff8116811461132c575f80fd5b5f61018082840312801561182e575f80fd5b50611837611331565b61184083611321565b815261184e60208401611321565b602082015261185f60408401611321565b604082015261187060608401611659565b606082015261188160808401611659565b608082015261189260a08401611659565b60a08201526118a360c08401611659565b60c08201526118b460e084016117d3565b60e08201526118c661010084016117e6565b6101008201526118d96101208401611805565b6101208201526118ec610140840161166a565b6101408201526118ff610160840161166a565b6101608201529392505050565b5f6020828403121561191c575f80fd5b813561159b816115a2565b5f60608284031215611937575f80fd5b6105138383611375565b60c0810161199d82856001600160a01b0381511682526001600160a01b03602082015116602083015262ffffff6040820151166040830152606081015160020b60608301526001600160a01b0360808201511660808301525050565b6001600160a01b03831660a08301529392505050565b5f602082840312156119c3575f80fd5b815161159b81611367565b5f602082840312156119de575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd
0x0000000000000000000000004b99efea53f6d7e5a7cafa6bc63e280c5caec57b000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000985fab8149390cadff437c1e0fa51fc7aecf0b5e000000000000000000000000cef8d7b834ca623c4b3120e5c933e6f50dfe865c000000000000000000000000db21ae5c2f31b9d0cdadc7c6197b8a7f4374032b
----Decoded View------------Arg [0] : owner_ (address): 0x4B99EfEa53F6d7E5a7cAFA6Bc63E280C5CAeC57bArg [1] : _poolManager (address): 0x000000000004444c5dc75cB358380D2e3dE08A90Arg [2] : _positionManager (address): 0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9eArg [3] : _permit2 (address): 0x000000000022D473030F116dDEE9F6B43aC78BA3Arg [4] : _tokenFactory (address): 0x985FAb8149390CADFf437c1e0fa51Fc7Aecf0b5EArg [5] : _hookFactory (address): 0xCef8d7b834cA623c4b3120e5c933E6F50dfe865cArg [6] : _registry (address): 0xdb21ae5C2f31b9D0CDaDc7C6197B8A7F4374032B
----Encoded View------------Arg [0] : 0x0000000000000000000000004b99efea53f6d7e5a7cafa6bc63e280c5caec57bArg [1] : 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90Arg [2] : 0x000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9eArg [3] : 0x000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3Arg [4] : 0x000000000000000000000000985fab8149390cadff437c1e0fa51fc7aecf0b5eArg [5] : 0x000000000000000000000000cef8d7b834ca623c4b3120e5c933e6f50dfe865cArg [6] : 0x000000000000000000000000db21ae5c2f31b9d0cdadc7c6197b8a7f4374032b