Base Sepolia Testnet

Contract

0x24F7c9ea6B5be5227caAeB61366b56052386eae4
Source Code Source Code

Overview

ETH Balance

0 ETH

More Info

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Amount
Set Swap Router230163882025-03-12 17:37:44454 days ago1741801064IN
0x24F7c9ea...52386eae4
0 ETH0.000048471.00001292
Set Hook Fee Ena...217633962025-02-11 17:31:20483 days ago1739295080IN
0x24F7c9ea...52386eae4
0 ETH0.000054271.00000045
Withdraw Fees217566382025-02-11 13:46:04483 days ago1739281564IN
0x24F7c9ea...52386eae4
0 ETH0.000059671.00000043
Set Hook Fee215958162025-02-07 20:25:20487 days ago1738959920IN
0x24F7c9ea...52386eae4
0 ETH0.000048171.00000033
Set Hook Fee Ena...215958162025-02-07 20:25:20487 days ago1738959920IN
0x24F7c9ea...52386eae4
0 ETH0.000054261.00000033
Set Position Man...215505462025-02-06 19:16:20488 days ago1738869380IN
0x24F7c9ea...52386eae4
0 ETH0.000048491.00000038
Set Position Man...215505312025-02-06 19:15:50488 days ago1738869350IN
0x24F7c9ea...52386eae4
0 ETH0.000031371.00000038
Set Position Man...214972222025-02-05 13:38:52489 days ago1738762732IN
0x24F7c9ea...52386eae4
0 ETH0.000048671.00000036

Latest 1 internal transaction

Parent Transaction Hash Block From To Amount
203245602025-01-09 10:10:08517 days ago1736417408  Contract Creation0 ETH

Loading...
Loading
Source Code Verified Exact Match

Contract Name

VerifiedPoolsBasicHook

Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled
Yes with 200 runs
Other Settings
cancun EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract ABI
API
[{"inputs":[{"internalType":"contract IPoolManager","name":"poolManager_","type":"address"},{"internalType":"address","name":"defaultAdmin","type":"address"},{"internalType":"address","name":"defaultFeeManager","type":"address"},{"internalType":"address","name":"defaultPauser","type":"address"},{"internalType":"contract IHookPolicy","name":"beforeAddLiquidityPolicy","type":"address"},{"internalType":"contract IHookPolicy","name":"beforeRemoveLiquidityPolicy","type":"address"},{"internalType":"contract IHookPolicy","name":"beforeSwapPolicy","type":"address"},{"internalType":"contract IHookPolicy","name":"beforeDonatePolicy","type":"address"},{"internalType":"address","name":"positionManager","type":"address"},{"internalType":"address","name":"poolSwapRouter","type":"address"},{"internalType":"address","name":"poolDonateRouter_","type":"address"},{"internalType":"address","name":"quoter_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"FeeExceedsCap","type":"error"},{"inputs":[],"name":"HookNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"InitializerNotAllowed","type":"error"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidPolicy","type":"error"},{"inputs":[],"name":"InvalidPool","type":"error"},{"inputs":[],"name":"InvalidPositionManager","type":"error"},{"inputs":[],"name":"InvalidRouter","type":"error"},{"inputs":[],"name":"LockFailure","type":"error"},{"inputs":[],"name":"NotPoolManager","type":"error"},{"inputs":[],"name":"NotSelf","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"PolicyCheckFailed","type":"error"},{"inputs":[],"name":"PoolNotInitialized","type":"error"},{"inputs":[{"internalType":"address","name":"positionManager","type":"address"}],"name":"PositionManagerNotAllowed","type":"error"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"RouterNotAllowed","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"policy","type":"address"}],"name":"BeforeAddLiquidityPolicyUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"policy","type":"address"}],"name":"BeforeDonatePolicyUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"policy","type":"address"}],"name":"BeforeRemoveLiquidityPolicyUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"policy","type":"address"}],"name":"BeforeSwapPolicyUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"FeeToggled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"FeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":true,"internalType":"Currency","name":"currency","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FeesWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"}],"name":"InitializerAllowed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"}],"name":"InitializerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"router","type":"address"}],"name":"PoolDonateRouterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"positionManager","type":"address"},{"indexed":false,"internalType":"bool","name":"allowed","type":"bool"}],"name":"PositionManagerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"quoter","type":"address"},{"indexed":false,"internalType":"bool","name":"allowed","type":"bool"}],"name":"QuoterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"router","type":"address"},{"indexed":false,"internalType":"bool","name":"allowed","type":"bool"}],"name":"SwapRouterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_POOL","outputs":[{"internalType":"PoolId","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_MANAGER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HOOK_FEE_CAP","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTAL_FEE_BIPS","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZERO_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IPoolManager.ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"internalType":"uint160","name":"","type":"uint160"},{"internalType":"int24","name":"","type":"int24"}],"name":"afterInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IPoolManager.ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"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":"key","type":"tuple"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct IPoolManager.SwapParams","name":"params","type":"tuple"},{"internalType":"BalanceDelta","name":"delta","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"int128","name":"","type":"int128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"initializer","type":"address"}],"name":"allowInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"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":"key","type":"tuple"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IPoolManager.ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"beforeAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"pool","type":"bytes32"}],"name":"beforeAddLiquidityPolicies","outputs":[{"internalType":"address","name":"policy","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"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":"key","type":"tuple"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"beforeDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"pool","type":"bytes32"}],"name":"beforeDonatePolicies","outputs":[{"internalType":"address","name":"policy","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"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"},{"internalType":"uint160","name":"","type":"uint160"}],"name":"beforeInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"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":"key","type":"tuple"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IPoolManager.ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"beforeRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"pool","type":"bytes32"}],"name":"beforeRemoveLiquidityPolicies","outputs":[{"internalType":"address","name":"policy","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"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":"key","type":"tuple"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct IPoolManager.SwapParams","name":"","type":"tuple"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"beforeSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BeforeSwapDelta","name":"","type":"int256"},{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"pool","type":"bytes32"}],"name":"beforeSwapPolicies","outputs":[{"internalType":"address","name":"policy","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHookPermissions","outputs":[{"components":[{"internalType":"bool","name":"beforeInitialize","type":"bool"},{"internalType":"bool","name":"afterInitialize","type":"bool"},{"internalType":"bool","name":"beforeAddLiquidity","type":"bool"},{"internalType":"bool","name":"afterAddLiquidity","type":"bool"},{"internalType":"bool","name":"beforeRemoveLiquidity","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidity","type":"bool"},{"internalType":"bool","name":"beforeSwap","type":"bool"},{"internalType":"bool","name":"afterSwap","type":"bool"},{"internalType":"bool","name":"beforeDonate","type":"bool"},{"internalType":"bool","name":"afterDonate","type":"bool"},{"internalType":"bool","name":"beforeSwapReturnDelta","type":"bool"},{"internalType":"bool","name":"afterSwapReturnDelta","type":"bool"},{"internalType":"bool","name":"afterAddLiquidityReturnDelta","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidityReturnDelta","type":"bool"}],"internalType":"struct Hooks.Permissions","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"Currency","name":"currency","type":"address"}],"name":"handleWithdrawFee","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"pool","type":"bytes32"}],"name":"hookFees","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"pool","type":"bytes32"}],"name":"hookFeesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"initializer","type":"address"}],"name":"initializers","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolDonateRouter","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":[{"internalType":"address","name":"posm","type":"address"}],"name":"positionManagers","outputs":[{"internalType":"enum VerifiedPoolsBasicHook.PositionManagerStatus","name":"positionManagerStatus","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"quoters","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"initializer","type":"address"}],"name":"removeInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"contract IHookPolicy","name":"policy","type":"address"}],"name":"setBeforeAddLiquidityPolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"contract IHookPolicy","name":"policy","type":"address"}],"name":"setBeforeDonatePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"contract IHookPolicy","name":"policy","type":"address"}],"name":"setBeforeRemoveLiquidityPolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"contract IHookPolicy","name":"policy","type":"address"}],"name":"setBeforeSwapPolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"uint128","name":"hookFee","type":"uint128"}],"name":"setHookFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setHookFeeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"setPoolDonateRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"positionManager","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"setPositionManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"quoter_","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"setQuoter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"setSwapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"swapRouters","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"Currency","name":"currency","type":"address"}],"name":"withdrawFees","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
60a060405234801561000f575f80fd5b50604051613d61380380613d6183398101604081905261002e91610bfe565b6001600160a01b038c166080528b610045306101b8565b506001805460ff191690556001600160a01b038b1661008757604051634726455360e11b81526001600160a01b038c1660048201526024015b60405180910390fd5b6001600160a01b038a166100b957604051634726455360e11b81526001600160a01b038b16600482015260240161007e565b6001600160a01b0389166100eb57604051634726455360e11b81526001600160a01b038a16600482015260240161007e565b6100f48b6102ab565b6100fe5f8961034b565b6101085f886103d1565b6101125f87610457565b61011c5f866104dd565b610127846001610563565b61013283600161065d565b61013d816001610706565b610146826107ba565b6101505f8c610843565b5061017b7fc9427259795fbc38fba3c2cee3d5b9149dbd8568750d94c8c1e55097205722a68b610843565b506101a67fe53c482cb40ad90cfac9dc9d5aa54fd4e0437f8fb656379b0186088cb5d260ce8a610843565b50505050505050505050505050610d0c565b6102a8816102a3604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c08101825260018082525f60208301819052928201819052606082018390526080820181905260a0820183905260c0820181905260e0820181905261010082018190526101208201839052610140820183905261016082015261018081018290526101a081019190915290565b6108ec565b50565b6001600160a01b0381166102dd57604051634726455360e11b81526001600160a01b038216600482015260240161007e565b6001600160a01b0381165f9081526002602052604090205460ff16156103005750565b6001600160a01b0381165f81815260026020526040808220805460ff19166001179055517fdea1b5ebf18d250dcec234b617f5dd005bcf385708eccae26415e69fba8518329190a250565b6103558282610a3c565b5f828152600460205260409020546001600160a01b03808316911603610379575050565b5f8281526004602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917f049b2e8c14c54c1786e7fee55d3f23af6eec9448db2a50f99655494b6093a5f89190a35050565b6103db8282610a3c565b5f828152600560205260409020546001600160a01b038083169116036103ff575050565b5f8281526005602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917fa4038cc74bd9271b2f2c3897c69bf3e383e9339b5acc0ed0456e64511ea321b59190a35050565b6104618282610a3c565b5f828152600360205260409020546001600160a01b03808316911603610485575050565b5f8281526003602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917fea6f60635e9b747853542d01586a726907a3598f171e19eb713f1ff25705978f9190a35050565b6104e78282610a3c565b5f828152600660205260409020546001600160a01b0380831691160361050b575050565b5f8281526006602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917fc9b64dd51fd24a57be436d9a285f812ec3ecabc2fdafc60c1e5f31cc49767d099190a35050565b6001600160a01b03821661058a5760405163ed5f09f160e01b815260040160405180910390fd5b60016001600160a01b0383165f9081526007602052604090205460ff1660028111156105b8576105b8610ce1565b146105c45780156105c6565b805b156105cf575050565b806105db5760026105de565b60015b6001600160a01b0383165f908152600760205260409020805460ff1916600183600281111561060f5761060f610ce1565b0217905550816001600160a01b03167f95f28d5f3b25ba2ec0ace967a30ee05f0ff47e77f8c63e8fe5fc009f95894a1682604051610651911515815260200190565b60405180910390a25050565b6001600160a01b0382166106845760405163466d7fef60e01b815260040160405180910390fd5b6001600160a01b0382165f9081526008602052604090205481151560ff9091161515036106af575050565b6001600160a01b0382165f81815260086020908152604091829020805460ff191685151590811790915591519182527f84926d32ee42a569126e484b37c5170e8d0fb9245a81556a691f66a0340bcf909101610651565b6001600160a01b03821661073857604051634726455360e11b81526001600160a01b038316600482015260240161007e565b6001600160a01b0382165f9081526009602052604090205481151560ff909116151503610763575050565b6001600160a01b0382165f81815260096020908152604091829020805460ff191685151590811790915591519182527ff93faf43b5ba529bc6a7b92ea3fe1550011e7be17a68f9df5d6f165efb162ff59101610651565b6001600160a01b0381166107e15760405163466d7fef60e01b815260040160405180910390fd5b600a546001600160a01b03908116908216036107fa5750565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517f5e5c7a638f7994d7323bd42a8b935b23b02f684bbd240a50a2e1a1f7b62d03f6905f90a250565b5f828152602081815260408083206001600160a01b038516845290915281205460ff166108e3575f838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561089b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016108e6565b505f5b92915050565b80511515612000831615151415806109105750602081015115156110008316151514155b806109275750604081015115156108008316151514155b8061093e5750606081015115156104008316151514155b806109555750608081015115156102008316151514155b8061096c575060a081015115156101008316151514155b80610982575060c0810151151560808316151514155b80610998575060e0810151151560408316151514155b806109af5750610100810151151560208316151514155b806109c65750610120810151151560108316151514155b806109dd5750610140810151151560088316151514155b806109f45750610160810151151560048316151514155b80610a0b5750610180810151151560028316151514155b80610a2257506101a0810151151560018316151514155b15610a3857610a38630732d7b560e51b83610a4e565b5050565b610a4582610a63565b610a3881610a96565b815f526001600160a01b03811660045260245ffd5b8015158015610a785750610a7681610abd565b155b156102a85760405163486aa30760e01b815260040160405180910390fd5b6001600160a01b0381166102a85760405163d06b96b160e01b815260040160405180910390fd5b6080515f908190610ad7906001600160a01b031684610aec565b5050506001600160a01b031615159392505050565b5f80808080610afa86610b9e565b604051631e2eaeaf60e01b8152600481018290529091505f906001600160a01b03891690631e2eaeaf90602401602060405180830381865afa158015610b42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b669190610cf5565b90506001600160a01b03811695508060a01c60020b945062ffffff8160b81c16935062ffffff8160d01c169250505092959194509250565b6040515f90610bbd908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b6001600160a01b03811681146102a8575f80fd5b8051610bf981610bda565b919050565b5f805f805f805f805f805f806101808d8f031215610c1a575f80fd5b8c51610c2581610bda565b60208e0151909c50610c3681610bda565b60408e0151909b50610c4781610bda565b60608e0151909a50610c5881610bda565b60808e0151909950610c6981610bda565b9750610c7760a08e01610bee565b9650610c8560c08e01610bee565b9550610c9360e08e01610bee565b9450610ca26101008e01610bee565b9350610cb16101208e01610bee565b9250610cc06101408e01610bee565b9150610ccf6101608e01610bee565b90509295989b509295989b509295989b565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215610d05575f80fd5b5051919050565b608051612fe9610d785f395f81816108a801528181610a7501528181610bcc01528181610df001528181610eb301528181610f86015281816110070152818161131e0152818161137a0152818161154501528181611620015281816118d301526125060152612fe95ff3fe608060405234801561000f575f80fd5b5060043610610333575f3560e01c806373f557b8116101af578063cb9cd078116100fe578063dc98354e1161009e578063ea82a45811610079578063ea82a4581461093f578063eb33b29d14610952578063ef02422e14610965578063f255527814610978575f80fd5b8063dc98354e146108f7578063e1b4af691461090a578063e63ab1e914610918575f80fd5b8063d7684324116100d9578063d76843241461084c578063d8d232a214610874578063dc4c90d3146108a3578063dc5a6855146108ca575f80fd5b8063cb9cd07814610830578063cd950fe7146106d9578063d547741f14610839575f80fd5b80639358bd4f11610169578063b47b2fb111610144578063b47b2fb1146106e0578063b6a8b0fa14610716578063c4e833ce14610729578063ca3c24921461081d575f80fd5b80639358bd4f146106b75780639f063efc146105cc578063a217fddf146106d9575f80fd5b806373f557b8146106125780638456cb591461063457806389f24cee1461063c5780638a1297d61461066457806391d148541461068457806391dd734614610697575f80fd5b80633b24fd7a116102855780635894068d116102255780636474dbe5116102005780636474dbe5146105915780636ae23015146105b95780636c2bbe7e146105cc5780636fe7e6eb146105ff575f80fd5b80635894068d146105515780635933dd2b146105645780635c975abb14610586575f80fd5b80634628fdd1116102605780634628fdd1146104e6578063538ba4f9146104f9578063575e24b41461050057806358833a141461053e575f80fd5b80633b24fd7a146104b85780633f4ba83a146104cb5780634546ec9a146104d3575f80fd5b80632171dcc9116102f0578063259982e5116102cb578063259982e51461046c5780632f2ff15d1461047f57806332551a201461049257806336568abe146104a5575f80fd5b80632171dcc91461040b57806321d0ee701461041e578063248a9ca31461044a575f80fd5b806301ffc9a71461033757806305db2f411461035f5780630dab589b14610381578063102b351b146103a357806311f3626e146103ce57806315596462146103f6575b5f80fd5b61034a610345366004612693565b61098b565b60405190151581526020015b60405180910390f35b6103735f80516020612fbd83398151915281565b604051908152602001610356565b61034a61038f3660046126ce565b60026020525f908152604090205460ff1681565b600a546103b6906001600160a01b031681565b6040516001600160a01b039091168152602001610356565b6103b66103dc3660046126e9565b60066020525f90815260409020546001600160a01b031681565b61040961040436600461270d565b6109c1565b005b61040961041936600461273b565b610a55565b61043161042c3660046127d2565b610a69565b6040516001600160e01b03199091168152602001610356565b6103736104583660046126e9565b5f9081526020819052604090206001015490565b61043161047a3660046127d2565b610bc0565b61040961048d366004612849565b610d0e565b6104096104a0366004612849565b610d38565b6104096104b3366004612849565b610d4c565b6104096104c63660046126ce565b610d7f565b610409610d96565b6103736104e136600461286c565b610dcb565b6104096104f436600461273b565b610fe5565b6103b65f81565b61051361050e3660046128a8565b610ff9565b604080516001600160e01b03199094168452602084019290925262ffffff1690820152606001610356565b61040961054c366004612849565b611173565b61040961055f3660046126ce565b611187565b61034a6105723660046126ce565b60096020525f908152604090205460ff1681565b60015460ff1661034a565b6103b661059f3660046126e9565b60056020525f90815260409020546001600160a01b031681565b6104096105c7366004612902565b61119a565b6105df6105da366004612930565b611282565b604080516001600160e01b03199093168352602083019190915201610356565b61043161060d3660046129d1565b61129d565b61034a6106203660046126e9565b5f908152600b602052604090205460ff1690565b6104096112b7565b6103b661064a3660046126e9565b60046020525f90815260409020546001600160a01b031681565b61066c606481565b6040516001600160801b039091168152602001610356565b61034a610692366004612849565b6112e9565b6106aa6106a5366004612a28565b611311565b6040516103569190612a67565b61034a6106c53660046126ce565b60086020525f908152604090205460ff1681565b6103735f81565b6106f36106ee366004612a9c565b61136d565b604080516001600160e01b03199093168352600f9190910b602083015201610356565b610431610724366004612b1d565b611614565b610810604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c08101825260018082525f60208301819052928201819052606082018390526080820181905260a0820183905260c0820181905260e0820181905261010082018190526101208201839052610140820183905261016082015261018081018290526101a081019190915290565b6040516103569190612b77565b61040961082b3660046126ce565b611745565b61066c61271081565b610409610847366004612849565b611758565b6103b661085a3660046126e9565b60036020525f90815260409020546001600160a01b031681565b6108966108823660046126ce565b60076020525f908152604090205460ff1681565b6040516103569190612cac565b6103b67f000000000000000000000000000000000000000000000000000000000000000081565b61066c6108d83660046126e9565b5f908152600b602052604090205461010090046001600160801b031690565b610431610905366004612cd2565b61177c565b61043161060d366004612b1d565b6103737fe53c482cb40ad90cfac9dc9d5aa54fd4e0437f8fb656379b0186088cb5d260ce81565b61040961094d36600461273b565b6117ec565b610409610960366004612849565b611800565b610409610973366004612849565b611814565b61037361098636600461286c565b611828565b5f6001600160e01b03198216637965db0b60e01b14806109bb57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f80516020612fbd8339815191526109d8816119b3565b6109e1836119bd565b5f838152600b602052604090205460ff16151582151514610a50575f838152600b6020908152604091829020805460ff1916851515908117909155915191825284917ff7517fdf09c623ebddf6543668dd7ffde1ade4185320bc5d2fac0b52e25df75c91015b60405180910390a25b505050565b5f610a5f816119b3565b610a5083836119f0565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ab35760405163570c108560e11b815260040160405180910390fd5b610abb611aa1565b6001600160a01b0386161580610afa57506001600160a01b0386165f9081526007602052604081205460ff166002811115610af857610af8612c98565b145b15610b2857604051630ebdd12f60e21b81526001600160a01b03871660048201526024015b60405180910390fd5b5f610b42610b3b36889003880188612d5e565b60a0902090565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc545f82815260409020549192506001600160a01b03908116911615610ba057505f818152600560205260409020546001600160a01b03165b610bac88828787611ac7565b5063021d0ee760e41b979650505050505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c0a5760405163570c108560e11b815260040160405180910390fd5b610c12611aa1565b6001600160a01b0386161580610c54575060016001600160a01b0387165f9081526007602052604090205460ff166002811115610c5157610c51612c98565b14155b15610c7d57604051630ebdd12f60e21b81526001600160a01b0387166004820152602401610b1f565b5f610c90610b3b36889003880188612d5e565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec545f82815260409020549192506001600160a01b03908116911615610cee57505f818152600460205260409020546001600160a01b03165b610cfa88828787611ac7565b5063259982e560e01b979650505050505050565b5f82815260208190526040902060010154610d28816119b3565b610d328383611cfd565b50505050565b5f610d42816119b3565b610a508383611d8c565b6001600160a01b0381163314610d755760405163334bd91960e11b815260040160405180910390fd5b610a508282611e12565b5f610d89816119b3565b610d9282611e7b565b5050565b7fe53c482cb40ad90cfac9dc9d5aa54fd4e0437f8fb656379b0186088cb5d260ce610dc0816119b3565b610dc8611f1b565b50565b5f333014610dee5760405163472511eb60e11b8152336004820152602401610b1f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662fdd58e30610e36856001600160a01b03166001600160a01b031690565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa158015610e7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea19190612dfb565b9050805f03610eb157505f6109bb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f5298aca30610efa856001600160a01b03166001600160a01b031690565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604481018490526064015f604051808303815f87803b158015610f44575f80fd5b505af1158015610f56573d5f803e3d5ffd5b5050604051630b0d9c0960e01b81526001600160a01b0385811660048301528681166024830152604482018590527f0000000000000000000000000000000000000000000000000000000000000000169250630b0d9c0991506064015f604051808303815f87803b158015610fc9575f80fd5b505af1158015610fdb573d5f803e3d5ffd5b5050505092915050565b5f610fef816119b3565b610a508383611f6d565b5f8080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110455760405163570c108560e11b815260040160405180910390fd5b61104d611aa1565b6001600160a01b0388165f9081526009602052604090205460ff161561108157506315d7892d60e21b91505f905080611168565b6001600160a01b03881615806110af57506001600160a01b0388165f9081526008602052604090205460ff16155b156110d85760405163c665406f60e01b81526001600160a01b0389166004820152602401610b1f565b5f6110eb610b3b368a90038a018a612d5e565b60036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff545f82815260409020549192506001600160a01b0390811691161561114957505f818152600360205260409020546001600160a01b03165b6111558a828989611ac7565b506315d7892d60e21b93505f9250829150505b955095509592505050565b5f61117d816119b3565b610a50838361205b565b5f611191816119b3565b610d92826120e1565b5f80516020612fbd8339815191526111b1816119b3565b6111ba836119bd565b60646001600160801b03831611156111f05760405163e54cceef60e01b81526001600160801b0383166004820152602401610b1f565b5f838152600b60205260409020546001600160801b038381166101009092041614610a50575f838152600b6020908152604091829020805470ffffffffffffffffffffffffffffffff0019166101006001600160801b03871690810291909117909155915191825284917f6ff8895cab9b0756060f51407ed2675e887fdbddebb7c41ce5de2ea3c23da3609101610a47565b5f80604051630a85dc2960e01b815260040160405180910390fd5b5f604051630a85dc2960e01b815260040160405180910390fd5b7fe53c482cb40ad90cfac9dc9d5aa54fd4e0437f8fb656379b0186088cb5d260ce6112e1816119b3565b610dc8612181565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461135c5760405163570c108560e11b815260040160405180910390fd5b61136683836121bc565b9392505050565b5f80336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113b85760405163570c108560e11b815260040160405180910390fd5b6113c0611aa1565b5f6113d3610b3b368a90038a018a612d5e565b5f818152600b602090815260409182902082518084019093525460ff811615158084526101009091046001600160801b03169183019190915291925090611429575063b47b2fb160e01b92505f91506116099050565b5f81602001516001600160801b03165f14611448578160200151611481565b5f8052600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f765461010090046001600160801b03165b9050806001600160801b03165f036114a9575063b47b2fb160e01b93505f9250611609915050565b5f6114b760208b018b612e12565b15155f8b602001351215151490505f80826114e8576114d960208e018e6126ce565b6114e38c60801d90565b611502565b6114f860408e0160208f016126ce565b6115028c600f0b90565b915091505f81600f0b121561151d5761151a81612e41565b90505b5f6127106115376001600160801b03878116908516612e6e565b6115419190612e85565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663156e29f63061158c866001600160a01b03166001600160a01b031690565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604481018490526064015f604051808303815f87803b1580156115d6575f80fd5b505af11580156115e8573d5f803e3d5ffd5b5050505063b47b2fb160e01b6115fd82612255565b98509850505050505050505b965096945050505050565b5f336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461165e5760405163570c108560e11b815260040160405180910390fd5b611666611aa1565b6001600160a01b038716158061168a5750600a546001600160a01b03888116911614155b156116b35760405163c665406f60e01b81526001600160a01b0388166004820152602401610b1f565b5f6116c6610b3b36899003890189612d5e565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8545f82815260409020549192506001600160a01b0390811691161561172457505f818152600660205260409020546001600160a01b03165b61173089828787611ac7565b50635b54587d60e11b98975050505050505050565b5f61174f816119b3565b610d9282612275565b5f82815260208190526040902060010154611772816119b3565b610d328383611e12565b5f611785611aa1565b6001600160a01b03841615806117b357506001600160a01b0384165f9081526002602052604090205460ff16155b156117dc576040516375285cfd60e11b81526001600160a01b0385166004820152602401610b1f565b50636e4c1aa760e11b9392505050565b5f6117f6816119b3565b610a5083836122fe565b5f61180a816119b3565b610a5083836123b2565b5f61181e816119b3565b610a508383612438565b5f5f80516020612fbd833981519152611840816119b3565b611848611aa1565b6001600160a01b03841661187a57604051634726455360e11b81526001600160a01b0385166004820152602401610b1f565b604080516001600160a01b03868116602483015285811660448084019190915283518084039091018152606490920183526020820180516001600160e01b03166322a3764d60e11b17905291516348c8949160e01b81527f0000000000000000000000000000000000000000000000000000000000000000909216916348c894919161190891600401612a67565b5f604051808303815f875af1158015611923573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261194a9190810190612ea4565b80602001905181019061195d9190612dfb565b9150826001600160a01b0316846001600160a01b03167f5e110f8bc8a20b65dcc87f224bdf1cc039346e267118bae2739847f07321ffa8846040516119a491815260200190565b60405180910390a35092915050565b610dc881336124be565b80151580156119d257506119d0816124f7565b155b15610dc85760405163486aa30760e01b815260040160405180910390fd5b6001600160a01b038216611a175760405163466d7fef60e01b815260040160405180910390fd5b6001600160a01b0382165f9081526008602052604090205481151560ff909116151503611a42575050565b6001600160a01b0382165f81815260086020908152604091829020805460ff191685151590811790915591519182527f84926d32ee42a569126e484b37c5170e8d0fb9245a81556a691f66a0340bcf9091015b60405180910390a25050565b60015460ff1615611ac55760405163d93c066560e01b815260040160405180910390fd5b565b5f846001600160a01b031663d737d0c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b289190612f38565b604051631290746b60e21b81529091506001600160a01b03851690634a41d1ac90611b5b90849087908790600401612f53565b602060405180830381865afa158015611b76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b9a9190612f92565b15611ba55750610d32565b6001600160a01b0381165f9081526008602052604090205460ff1680611bf557506001600160a01b0381165f9081526007602052604081205460ff166002811115611bf257611bf2612c98565b14155b15611cd9575f816001600160a01b031663d737d0c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5b9190612f38565b604051631290746b60e21b81529091506001600160a01b03861690634a41d1ac90611c8e90849088908890600401612f53565b602060405180830381865afa158015611ca9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ccd9190612f92565b15611cd9575050610d32565b604051630b31971560e41b81526001600160a01b0382166004820152602401610b1f565b5f611d0883836112e9565b611d85575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611d3d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016109bb565b505f6109bb565b611d968282612541565b5f828152600560205260409020546001600160a01b03808316911603611dba575050565b5f8281526005602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917fa4038cc74bd9271b2f2c3897c69bf3e383e9339b5acc0ed0456e64511ea321b59190a35050565b5f611e1d83836112e9565b15611d85575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016109bb565b6001600160a01b038116611ead57604051634726455360e11b81526001600160a01b0382166004820152602401610b1f565b6001600160a01b0381165f9081526002602052604090205460ff1615611ed05750565b6001600160a01b0381165f81815260026020526040808220805460ff19166001179055517fdea1b5ebf18d250dcec234b617f5dd005bcf385708eccae26415e69fba8518329190a250565b611f23612553565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216611f945760405163ed5f09f160e01b815260040160405180910390fd5b60016001600160a01b0383165f9081526007602052604090205460ff166002811115611fc257611fc2612c98565b14611fce578015611fd0565b805b15611fd9575050565b80611fe5576002611fe8565b60015b6001600160a01b0383165f908152600760205260409020805460ff1916600183600281111561201957612019612c98565b0217905550816001600160a01b03167f95f28d5f3b25ba2ec0ace967a30ee05f0ff47e77f8c63e8fe5fc009f95894a1682604051611a95911515815260200190565b6120658282612541565b5f828152600360205260409020546001600160a01b03808316911603612089575050565b5f8281526003602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917fea6f60635e9b747853542d01586a726907a3598f171e19eb713f1ff25705978f9190a35050565b6001600160a01b03811661211357604051634726455360e11b81526001600160a01b0382166004820152602401610b1f565b6001600160a01b0381165f9081526002602052604081205460ff16151590036121395750565b6001600160a01b0381165f81815260026020526040808220805460ff19169055517ffc203717571a1dba8b690395bdf5fa609bb4bb0119f7f43431b9bc1b63b64a099190a250565b612189611aa1565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611f50565b60605f80306001600160a01b031685856040516121da929190612fad565b5f604051808303815f865af19150503d805f8114612213576040519150601f19603f3d011682016040523d82523d5f602084013e612218565b606091505b5091509150811561222c5791506109bb9050565b80515f0361224d576040516314815f4760e31b815260040160405180910390fd5b805160208201fd5b5f6001607f1b8210612271576122716393dafdf160e01b612576565b5090565b6001600160a01b03811661229c5760405163466d7fef60e01b815260040160405180910390fd5b600a546001600160a01b03908116908216036122b55750565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517f5e5c7a638f7994d7323bd42a8b935b23b02f684bbd240a50a2e1a1f7b62d03f6905f90a250565b6001600160a01b03821661233057604051634726455360e11b81526001600160a01b0383166004820152602401610b1f565b6001600160a01b0382165f9081526009602052604090205481151560ff90911615150361235b575050565b6001600160a01b0382165f81815260096020908152604091829020805460ff191685151590811790915591519182527ff93faf43b5ba529bc6a7b92ea3fe1550011e7be17a68f9df5d6f165efb162ff59101611a95565b6123bc8282612541565b5f828152600660205260409020546001600160a01b038083169116036123e0575050565b5f8281526006602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917fc9b64dd51fd24a57be436d9a285f812ec3ecabc2fdafc60c1e5f31cc49767d099190a35050565b6124428282612541565b5f828152600460205260409020546001600160a01b03808316911603612466575050565b5f8281526004602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917f049b2e8c14c54c1786e7fee55d3f23af6eec9448db2a50f99655494b6093a5f89190a35050565b6124c882826112e9565b610d925760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610b1f565b5f8061252c6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168461257e565b5050506001600160a01b031615159392505050565b61254a826119bd565b610d9281612630565b60015460ff16611ac557604051638dfc202b60e01b815260040160405180910390fd5b805f5260045ffd5b5f805f805f61258c86612657565b604051631e2eaeaf60e01b8152600481018290529091505f906001600160a01b03891690631e2eaeaf90602401602060405180830381865afa1580156125d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125f89190612dfb565b90506001600160a01b03811695508060a01c60020b945062ffffff8160b81c16935062ffffff8160d01c169250505092959194509250565b6001600160a01b038116610dc85760405163d06b96b160e01b815260040160405180910390fd5b6040515f90612676908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b5f602082840312156126a3575f80fd5b81356001600160e01b031981168114611366575f80fd5b6001600160a01b0381168114610dc8575f80fd5b5f602082840312156126de575f80fd5b8135611366816126ba565b5f602082840312156126f9575f80fd5b5035919050565b8015158114610dc8575f80fd5b5f806040838503121561271e575f80fd5b82359150602083013561273081612700565b809150509250929050565b5f806040838503121561274c575f80fd5b8235612757816126ba565b9150602083013561273081612700565b5f60a08284031215612777575f80fd5b50919050565b5f60808284031215612777575f80fd5b5f8083601f84011261279d575f80fd5b50813567ffffffffffffffff8111156127b4575f80fd5b6020830191508360208285010111156127cb575f80fd5b9250929050565b5f805f805f61016086880312156127e7575f80fd5b85356127f2816126ba565b94506128018760208801612767565b93506128108760c0880161277d565b925061014086013567ffffffffffffffff81111561282c575f80fd5b6128388882890161278d565b969995985093965092949392505050565b5f806040838503121561285a575f80fd5b823591506020830135612730816126ba565b5f806040838503121561287d575f80fd5b8235612888816126ba565b91506020830135612730816126ba565b5f60608284031215612777575f80fd5b5f805f805f61014086880312156128bd575f80fd5b85356128c8816126ba565b94506128d78760208801612767565b93506128e68760c08801612898565b925061012086013567ffffffffffffffff81111561282c575f80fd5b5f8060408385031215612913575f80fd5b8235915060208301356001600160801b0381168114612730575f80fd5b5f805f805f805f6101a0888a031215612947575f80fd5b8735612952816126ba565b96506129618960208a01612767565b95506129708960c08a0161277d565b94506101408801359350610160880135925061018088013567ffffffffffffffff81111561299c575f80fd5b6129a88a828b0161278d565b989b979a50959850939692959293505050565b8035600281900b81146129cc575f80fd5b919050565b5f805f8061010085870312156129e5575f80fd5b84356129f0816126ba565b93506129ff8660208701612767565b925060c0850135612a0f816126ba565b9150612a1d60e086016129bb565b905092959194509250565b5f8060208385031215612a39575f80fd5b823567ffffffffffffffff811115612a4f575f80fd5b612a5b8582860161278d565b90969095509350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f805f805f806101608789031215612ab2575f80fd5b8635612abd816126ba565b9550612acc8860208901612767565b9450612adb8860c08901612898565b9350610120870135925061014087013567ffffffffffffffff811115612aff575f80fd5b612b0b89828a0161278d565b979a9699509497509295939492505050565b5f805f805f806101208789031215612b33575f80fd5b8635612b3e816126ba565b9550612b4d8860208901612767565b945060c0870135935060e0870135925061010087013567ffffffffffffffff811115612aff575f80fd5b8151151581526101c081016020830151612b95602084018215159052565b506040830151612ba9604084018215159052565b506060830151612bbd606084018215159052565b506080830151612bd1608084018215159052565b5060a0830151612be560a084018215159052565b5060c0830151612bf960c084018215159052565b5060e0830151612c0d60e084018215159052565b50610100830151612c2361010084018215159052565b50610120830151612c3961012084018215159052565b50610140830151612c4f61014084018215159052565b50610160830151612c6561016084018215159052565b50610180830151612c7b61018084018215159052565b506101a0830151612c916101a084018215159052565b5092915050565b634e487b7160e01b5f52602160045260245ffd5b6020810160038310612ccc57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f805f60e08486031215612ce4575f80fd5b8335612cef816126ba565b9250612cfe8560208601612767565b915060c0840135612d0e816126ba565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d5657612d56612d19565b604052919050565b5f60a0828403128015612d6f575f80fd5b5060405160a0810167ffffffffffffffff81118282101715612d9357612d93612d19565b6040528235612da1816126ba565b81526020830135612db1816126ba565b6020820152604083013562ffffff81168114612dcb575f80fd5b6040820152612ddc606084016129bb565b60608201526080830135612def816126ba565b60808201529392505050565b5f60208284031215612e0b575f80fd5b5051919050565b5f60208284031215612e22575f80fd5b813561136681612700565b634e487b7160e01b5f52601160045260245ffd5b5f81600f0b6f7fffffffffffffffffffffffffffffff198103612e6657612e66612e2d565b5f0392915050565b80820281158282048414176109bb576109bb612e2d565b5f82612e9f57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612eb4575f80fd5b815167ffffffffffffffff811115612eca575f80fd5b8201601f81018413612eda575f80fd5b805167ffffffffffffffff811115612ef457612ef4612d19565b612f07601f8201601f1916602001612d2d565b818152856020838501011115612f1b575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f60208284031215612f48575f80fd5b8151611366816126ba565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215612fa2575f80fd5b815161136681612700565b818382375f910190815291905056fec9427259795fbc38fba3c2cee3d5b9149dbd8568750d94c8c1e55097205722a6a164736f6c634300081a000a00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa034080000000000000000000000004c2ffb45988bc61bfcebdaa2146ad66dafd930d2000000000000000000000000e84bfc354c5df540fc3191951271363eb50b449d000000000000000000000000f870cff05da17b05234f057ad0247deae7dfbc5d0000000000000000000000007b4aa78dbb7820177c77c2452d1eac4c94231085000000000000000000000000f272039463641d0c2a40b0977197fa33767857390000000000000000000000007b4aa78dbb7820177c77c2452d1eac4c942310850000000000000000000000007b4aa78dbb7820177c77c2452d1eac4c942310850000000000000000000000003a4f9f7f250675f5e7e877ffbb2aec5c4a5d9270000000000000000000000000492e6456d9528771018deb9e87ef7750ef184104000000000000000000000000492e6456d9528771018deb9e87ef7750ef1841040000000000000000000000004a6513c898fe1b2d0e78d3b0e0a4a151589b1cba
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610333575f3560e01c806373f557b8116101af578063cb9cd078116100fe578063dc98354e1161009e578063ea82a45811610079578063ea82a4581461093f578063eb33b29d14610952578063ef02422e14610965578063f255527814610978575f80fd5b8063dc98354e146108f7578063e1b4af691461090a578063e63ab1e914610918575f80fd5b8063d7684324116100d9578063d76843241461084c578063d8d232a214610874578063dc4c90d3146108a3578063dc5a6855146108ca575f80fd5b8063cb9cd07814610830578063cd950fe7146106d9578063d547741f14610839575f80fd5b80639358bd4f11610169578063b47b2fb111610144578063b47b2fb1146106e0578063b6a8b0fa14610716578063c4e833ce14610729578063ca3c24921461081d575f80fd5b80639358bd4f146106b75780639f063efc146105cc578063a217fddf146106d9575f80fd5b806373f557b8146106125780638456cb591461063457806389f24cee1461063c5780638a1297d61461066457806391d148541461068457806391dd734614610697575f80fd5b80633b24fd7a116102855780635894068d116102255780636474dbe5116102005780636474dbe5146105915780636ae23015146105b95780636c2bbe7e146105cc5780636fe7e6eb146105ff575f80fd5b80635894068d146105515780635933dd2b146105645780635c975abb14610586575f80fd5b80634628fdd1116102605780634628fdd1146104e6578063538ba4f9146104f9578063575e24b41461050057806358833a141461053e575f80fd5b80633b24fd7a146104b85780633f4ba83a146104cb5780634546ec9a146104d3575f80fd5b80632171dcc9116102f0578063259982e5116102cb578063259982e51461046c5780632f2ff15d1461047f57806332551a201461049257806336568abe146104a5575f80fd5b80632171dcc91461040b57806321d0ee701461041e578063248a9ca31461044a575f80fd5b806301ffc9a71461033757806305db2f411461035f5780630dab589b14610381578063102b351b146103a357806311f3626e146103ce57806315596462146103f6575b5f80fd5b61034a610345366004612693565b61098b565b60405190151581526020015b60405180910390f35b6103735f80516020612fbd83398151915281565b604051908152602001610356565b61034a61038f3660046126ce565b60026020525f908152604090205460ff1681565b600a546103b6906001600160a01b031681565b6040516001600160a01b039091168152602001610356565b6103b66103dc3660046126e9565b60066020525f90815260409020546001600160a01b031681565b61040961040436600461270d565b6109c1565b005b61040961041936600461273b565b610a55565b61043161042c3660046127d2565b610a69565b6040516001600160e01b03199091168152602001610356565b6103736104583660046126e9565b5f9081526020819052604090206001015490565b61043161047a3660046127d2565b610bc0565b61040961048d366004612849565b610d0e565b6104096104a0366004612849565b610d38565b6104096104b3366004612849565b610d4c565b6104096104c63660046126ce565b610d7f565b610409610d96565b6103736104e136600461286c565b610dcb565b6104096104f436600461273b565b610fe5565b6103b65f81565b61051361050e3660046128a8565b610ff9565b604080516001600160e01b03199094168452602084019290925262ffffff1690820152606001610356565b61040961054c366004612849565b611173565b61040961055f3660046126ce565b611187565b61034a6105723660046126ce565b60096020525f908152604090205460ff1681565b60015460ff1661034a565b6103b661059f3660046126e9565b60056020525f90815260409020546001600160a01b031681565b6104096105c7366004612902565b61119a565b6105df6105da366004612930565b611282565b604080516001600160e01b03199093168352602083019190915201610356565b61043161060d3660046129d1565b61129d565b61034a6106203660046126e9565b5f908152600b602052604090205460ff1690565b6104096112b7565b6103b661064a3660046126e9565b60046020525f90815260409020546001600160a01b031681565b61066c606481565b6040516001600160801b039091168152602001610356565b61034a610692366004612849565b6112e9565b6106aa6106a5366004612a28565b611311565b6040516103569190612a67565b61034a6106c53660046126ce565b60086020525f908152604090205460ff1681565b6103735f81565b6106f36106ee366004612a9c565b61136d565b604080516001600160e01b03199093168352600f9190910b602083015201610356565b610431610724366004612b1d565b611614565b610810604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c08101825260018082525f60208301819052928201819052606082018390526080820181905260a0820183905260c0820181905260e0820181905261010082018190526101208201839052610140820183905261016082015261018081018290526101a081019190915290565b6040516103569190612b77565b61040961082b3660046126ce565b611745565b61066c61271081565b610409610847366004612849565b611758565b6103b661085a3660046126e9565b60036020525f90815260409020546001600160a01b031681565b6108966108823660046126ce565b60076020525f908152604090205460ff1681565b6040516103569190612cac565b6103b67f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa0340881565b61066c6108d83660046126e9565b5f908152600b602052604090205461010090046001600160801b031690565b610431610905366004612cd2565b61177c565b61043161060d366004612b1d565b6103737fe53c482cb40ad90cfac9dc9d5aa54fd4e0437f8fb656379b0186088cb5d260ce81565b61040961094d36600461273b565b6117ec565b610409610960366004612849565b611800565b610409610973366004612849565b611814565b61037361098636600461286c565b611828565b5f6001600160e01b03198216637965db0b60e01b14806109bb57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f80516020612fbd8339815191526109d8816119b3565b6109e1836119bd565b5f838152600b602052604090205460ff16151582151514610a50575f838152600b6020908152604091829020805460ff1916851515908117909155915191825284917ff7517fdf09c623ebddf6543668dd7ffde1ade4185320bc5d2fac0b52e25df75c91015b60405180910390a25b505050565b5f610a5f816119b3565b610a5083836119f0565b5f336001600160a01b037f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa034081614610ab35760405163570c108560e11b815260040160405180910390fd5b610abb611aa1565b6001600160a01b0386161580610afa57506001600160a01b0386165f9081526007602052604081205460ff166002811115610af857610af8612c98565b145b15610b2857604051630ebdd12f60e21b81526001600160a01b03871660048201526024015b60405180910390fd5b5f610b42610b3b36889003880188612d5e565b60a0902090565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc545f82815260409020549192506001600160a01b03908116911615610ba057505f818152600560205260409020546001600160a01b03165b610bac88828787611ac7565b5063021d0ee760e41b979650505050505050565b5f336001600160a01b037f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa034081614610c0a5760405163570c108560e11b815260040160405180910390fd5b610c12611aa1565b6001600160a01b0386161580610c54575060016001600160a01b0387165f9081526007602052604090205460ff166002811115610c5157610c51612c98565b14155b15610c7d57604051630ebdd12f60e21b81526001600160a01b0387166004820152602401610b1f565b5f610c90610b3b36889003880188612d5e565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec545f82815260409020549192506001600160a01b03908116911615610cee57505f818152600460205260409020546001600160a01b03165b610cfa88828787611ac7565b5063259982e560e01b979650505050505050565b5f82815260208190526040902060010154610d28816119b3565b610d328383611cfd565b50505050565b5f610d42816119b3565b610a508383611d8c565b6001600160a01b0381163314610d755760405163334bd91960e11b815260040160405180910390fd5b610a508282611e12565b5f610d89816119b3565b610d9282611e7b565b5050565b7fe53c482cb40ad90cfac9dc9d5aa54fd4e0437f8fb656379b0186088cb5d260ce610dc0816119b3565b610dc8611f1b565b50565b5f333014610dee5760405163472511eb60e11b8152336004820152602401610b1f565b7f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa034086001600160a01b031662fdd58e30610e36856001600160a01b03166001600160a01b031690565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa158015610e7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea19190612dfb565b9050805f03610eb157505f6109bb565b7f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa034086001600160a01b031663f5298aca30610efa856001600160a01b03166001600160a01b031690565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604481018490526064015f604051808303815f87803b158015610f44575f80fd5b505af1158015610f56573d5f803e3d5ffd5b5050604051630b0d9c0960e01b81526001600160a01b0385811660048301528681166024830152604482018590527f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa03408169250630b0d9c0991506064015f604051808303815f87803b158015610fc9575f80fd5b505af1158015610fdb573d5f803e3d5ffd5b5050505092915050565b5f610fef816119b3565b610a508383611f6d565b5f8080336001600160a01b037f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa0340816146110455760405163570c108560e11b815260040160405180910390fd5b61104d611aa1565b6001600160a01b0388165f9081526009602052604090205460ff161561108157506315d7892d60e21b91505f905080611168565b6001600160a01b03881615806110af57506001600160a01b0388165f9081526008602052604090205460ff16155b156110d85760405163c665406f60e01b81526001600160a01b0389166004820152602401610b1f565b5f6110eb610b3b368a90038a018a612d5e565b60036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff545f82815260409020549192506001600160a01b0390811691161561114957505f818152600360205260409020546001600160a01b03165b6111558a828989611ac7565b506315d7892d60e21b93505f9250829150505b955095509592505050565b5f61117d816119b3565b610a50838361205b565b5f611191816119b3565b610d92826120e1565b5f80516020612fbd8339815191526111b1816119b3565b6111ba836119bd565b60646001600160801b03831611156111f05760405163e54cceef60e01b81526001600160801b0383166004820152602401610b1f565b5f838152600b60205260409020546001600160801b038381166101009092041614610a50575f838152600b6020908152604091829020805470ffffffffffffffffffffffffffffffff0019166101006001600160801b03871690810291909117909155915191825284917f6ff8895cab9b0756060f51407ed2675e887fdbddebb7c41ce5de2ea3c23da3609101610a47565b5f80604051630a85dc2960e01b815260040160405180910390fd5b5f604051630a85dc2960e01b815260040160405180910390fd5b7fe53c482cb40ad90cfac9dc9d5aa54fd4e0437f8fb656379b0186088cb5d260ce6112e1816119b3565b610dc8612181565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060336001600160a01b037f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa03408161461135c5760405163570c108560e11b815260040160405180910390fd5b61136683836121bc565b9392505050565b5f80336001600160a01b037f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa0340816146113b85760405163570c108560e11b815260040160405180910390fd5b6113c0611aa1565b5f6113d3610b3b368a90038a018a612d5e565b5f818152600b602090815260409182902082518084019093525460ff811615158084526101009091046001600160801b03169183019190915291925090611429575063b47b2fb160e01b92505f91506116099050565b5f81602001516001600160801b03165f14611448578160200151611481565b5f8052600b6020527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f765461010090046001600160801b03165b9050806001600160801b03165f036114a9575063b47b2fb160e01b93505f9250611609915050565b5f6114b760208b018b612e12565b15155f8b602001351215151490505f80826114e8576114d960208e018e6126ce565b6114e38c60801d90565b611502565b6114f860408e0160208f016126ce565b6115028c600f0b90565b915091505f81600f0b121561151d5761151a81612e41565b90505b5f6127106115376001600160801b03878116908516612e6e565b6115419190612e85565b90507f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa034086001600160a01b031663156e29f63061158c866001600160a01b03166001600160a01b031690565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604481018490526064015f604051808303815f87803b1580156115d6575f80fd5b505af11580156115e8573d5f803e3d5ffd5b5050505063b47b2fb160e01b6115fd82612255565b98509850505050505050505b965096945050505050565b5f336001600160a01b037f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa03408161461165e5760405163570c108560e11b815260040160405180910390fd5b611666611aa1565b6001600160a01b038716158061168a5750600a546001600160a01b03888116911614155b156116b35760405163c665406f60e01b81526001600160a01b0388166004820152602401610b1f565b5f6116c6610b3b36899003890189612d5e565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8545f82815260409020549192506001600160a01b0390811691161561172457505f818152600660205260409020546001600160a01b03165b61173089828787611ac7565b50635b54587d60e11b98975050505050505050565b5f61174f816119b3565b610d9282612275565b5f82815260208190526040902060010154611772816119b3565b610d328383611e12565b5f611785611aa1565b6001600160a01b03841615806117b357506001600160a01b0384165f9081526002602052604090205460ff16155b156117dc576040516375285cfd60e11b81526001600160a01b0385166004820152602401610b1f565b50636e4c1aa760e11b9392505050565b5f6117f6816119b3565b610a5083836122fe565b5f61180a816119b3565b610a5083836123b2565b5f61181e816119b3565b610a508383612438565b5f5f80516020612fbd833981519152611840816119b3565b611848611aa1565b6001600160a01b03841661187a57604051634726455360e11b81526001600160a01b0385166004820152602401610b1f565b604080516001600160a01b03868116602483015285811660448084019190915283518084039091018152606490920183526020820180516001600160e01b03166322a3764d60e11b17905291516348c8949160e01b81527f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa03408909216916348c894919161190891600401612a67565b5f604051808303815f875af1158015611923573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261194a9190810190612ea4565b80602001905181019061195d9190612dfb565b9150826001600160a01b0316846001600160a01b03167f5e110f8bc8a20b65dcc87f224bdf1cc039346e267118bae2739847f07321ffa8846040516119a491815260200190565b60405180910390a35092915050565b610dc881336124be565b80151580156119d257506119d0816124f7565b155b15610dc85760405163486aa30760e01b815260040160405180910390fd5b6001600160a01b038216611a175760405163466d7fef60e01b815260040160405180910390fd5b6001600160a01b0382165f9081526008602052604090205481151560ff909116151503611a42575050565b6001600160a01b0382165f81815260086020908152604091829020805460ff191685151590811790915591519182527f84926d32ee42a569126e484b37c5170e8d0fb9245a81556a691f66a0340bcf9091015b60405180910390a25050565b60015460ff1615611ac55760405163d93c066560e01b815260040160405180910390fd5b565b5f846001600160a01b031663d737d0c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b289190612f38565b604051631290746b60e21b81529091506001600160a01b03851690634a41d1ac90611b5b90849087908790600401612f53565b602060405180830381865afa158015611b76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b9a9190612f92565b15611ba55750610d32565b6001600160a01b0381165f9081526008602052604090205460ff1680611bf557506001600160a01b0381165f9081526007602052604081205460ff166002811115611bf257611bf2612c98565b14155b15611cd9575f816001600160a01b031663d737d0c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5b9190612f38565b604051631290746b60e21b81529091506001600160a01b03861690634a41d1ac90611c8e90849088908890600401612f53565b602060405180830381865afa158015611ca9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ccd9190612f92565b15611cd9575050610d32565b604051630b31971560e41b81526001600160a01b0382166004820152602401610b1f565b5f611d0883836112e9565b611d85575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055611d3d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016109bb565b505f6109bb565b611d968282612541565b5f828152600560205260409020546001600160a01b03808316911603611dba575050565b5f8281526005602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917fa4038cc74bd9271b2f2c3897c69bf3e383e9339b5acc0ed0456e64511ea321b59190a35050565b5f611e1d83836112e9565b15611d85575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016109bb565b6001600160a01b038116611ead57604051634726455360e11b81526001600160a01b0382166004820152602401610b1f565b6001600160a01b0381165f9081526002602052604090205460ff1615611ed05750565b6001600160a01b0381165f81815260026020526040808220805460ff19166001179055517fdea1b5ebf18d250dcec234b617f5dd005bcf385708eccae26415e69fba8518329190a250565b611f23612553565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216611f945760405163ed5f09f160e01b815260040160405180910390fd5b60016001600160a01b0383165f9081526007602052604090205460ff166002811115611fc257611fc2612c98565b14611fce578015611fd0565b805b15611fd9575050565b80611fe5576002611fe8565b60015b6001600160a01b0383165f908152600760205260409020805460ff1916600183600281111561201957612019612c98565b0217905550816001600160a01b03167f95f28d5f3b25ba2ec0ace967a30ee05f0ff47e77f8c63e8fe5fc009f95894a1682604051611a95911515815260200190565b6120658282612541565b5f828152600360205260409020546001600160a01b03808316911603612089575050565b5f8281526003602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917fea6f60635e9b747853542d01586a726907a3598f171e19eb713f1ff25705978f9190a35050565b6001600160a01b03811661211357604051634726455360e11b81526001600160a01b0382166004820152602401610b1f565b6001600160a01b0381165f9081526002602052604081205460ff16151590036121395750565b6001600160a01b0381165f81815260026020526040808220805460ff19169055517ffc203717571a1dba8b690395bdf5fa609bb4bb0119f7f43431b9bc1b63b64a099190a250565b612189611aa1565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611f50565b60605f80306001600160a01b031685856040516121da929190612fad565b5f604051808303815f865af19150503d805f8114612213576040519150601f19603f3d011682016040523d82523d5f602084013e612218565b606091505b5091509150811561222c5791506109bb9050565b80515f0361224d576040516314815f4760e31b815260040160405180910390fd5b805160208201fd5b5f6001607f1b8210612271576122716393dafdf160e01b612576565b5090565b6001600160a01b03811661229c5760405163466d7fef60e01b815260040160405180910390fd5b600a546001600160a01b03908116908216036122b55750565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517f5e5c7a638f7994d7323bd42a8b935b23b02f684bbd240a50a2e1a1f7b62d03f6905f90a250565b6001600160a01b03821661233057604051634726455360e11b81526001600160a01b0383166004820152602401610b1f565b6001600160a01b0382165f9081526009602052604090205481151560ff90911615150361235b575050565b6001600160a01b0382165f81815260096020908152604091829020805460ff191685151590811790915591519182527ff93faf43b5ba529bc6a7b92ea3fe1550011e7be17a68f9df5d6f165efb162ff59101611a95565b6123bc8282612541565b5f828152600660205260409020546001600160a01b038083169116036123e0575050565b5f8281526006602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917fc9b64dd51fd24a57be436d9a285f812ec3ecabc2fdafc60c1e5f31cc49767d099190a35050565b6124428282612541565b5f828152600460205260409020546001600160a01b03808316911603612466575050565b5f8281526004602052604080822080546001600160a01b0319166001600160a01b0385169081179091559051909184917f049b2e8c14c54c1786e7fee55d3f23af6eec9448db2a50f99655494b6093a5f89190a35050565b6124c882826112e9565b610d925760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610b1f565b5f8061252c6001600160a01b037f00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa03408168461257e565b5050506001600160a01b031615159392505050565b61254a826119bd565b610d9281612630565b60015460ff16611ac557604051638dfc202b60e01b815260040160405180910390fd5b805f5260045ffd5b5f805f805f61258c86612657565b604051631e2eaeaf60e01b8152600481018290529091505f906001600160a01b03891690631e2eaeaf90602401602060405180830381865afa1580156125d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125f89190612dfb565b90506001600160a01b03811695508060a01c60020b945062ffffff8160b81c16935062ffffff8160d01c169250505092959194509250565b6001600160a01b038116610dc85760405163d06b96b160e01b815260040160405180910390fd5b6040515f90612676908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b5f602082840312156126a3575f80fd5b81356001600160e01b031981168114611366575f80fd5b6001600160a01b0381168114610dc8575f80fd5b5f602082840312156126de575f80fd5b8135611366816126ba565b5f602082840312156126f9575f80fd5b5035919050565b8015158114610dc8575f80fd5b5f806040838503121561271e575f80fd5b82359150602083013561273081612700565b809150509250929050565b5f806040838503121561274c575f80fd5b8235612757816126ba565b9150602083013561273081612700565b5f60a08284031215612777575f80fd5b50919050565b5f60808284031215612777575f80fd5b5f8083601f84011261279d575f80fd5b50813567ffffffffffffffff8111156127b4575f80fd5b6020830191508360208285010111156127cb575f80fd5b9250929050565b5f805f805f61016086880312156127e7575f80fd5b85356127f2816126ba565b94506128018760208801612767565b93506128108760c0880161277d565b925061014086013567ffffffffffffffff81111561282c575f80fd5b6128388882890161278d565b969995985093965092949392505050565b5f806040838503121561285a575f80fd5b823591506020830135612730816126ba565b5f806040838503121561287d575f80fd5b8235612888816126ba565b91506020830135612730816126ba565b5f60608284031215612777575f80fd5b5f805f805f61014086880312156128bd575f80fd5b85356128c8816126ba565b94506128d78760208801612767565b93506128e68760c08801612898565b925061012086013567ffffffffffffffff81111561282c575f80fd5b5f8060408385031215612913575f80fd5b8235915060208301356001600160801b0381168114612730575f80fd5b5f805f805f805f6101a0888a031215612947575f80fd5b8735612952816126ba565b96506129618960208a01612767565b95506129708960c08a0161277d565b94506101408801359350610160880135925061018088013567ffffffffffffffff81111561299c575f80fd5b6129a88a828b0161278d565b989b979a50959850939692959293505050565b8035600281900b81146129cc575f80fd5b919050565b5f805f8061010085870312156129e5575f80fd5b84356129f0816126ba565b93506129ff8660208701612767565b925060c0850135612a0f816126ba565b9150612a1d60e086016129bb565b905092959194509250565b5f8060208385031215612a39575f80fd5b823567ffffffffffffffff811115612a4f575f80fd5b612a5b8582860161278d565b90969095509350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f805f805f806101608789031215612ab2575f80fd5b8635612abd816126ba565b9550612acc8860208901612767565b9450612adb8860c08901612898565b9350610120870135925061014087013567ffffffffffffffff811115612aff575f80fd5b612b0b89828a0161278d565b979a9699509497509295939492505050565b5f805f805f806101208789031215612b33575f80fd5b8635612b3e816126ba565b9550612b4d8860208901612767565b945060c0870135935060e0870135925061010087013567ffffffffffffffff811115612aff575f80fd5b8151151581526101c081016020830151612b95602084018215159052565b506040830151612ba9604084018215159052565b506060830151612bbd606084018215159052565b506080830151612bd1608084018215159052565b5060a0830151612be560a084018215159052565b5060c0830151612bf960c084018215159052565b5060e0830151612c0d60e084018215159052565b50610100830151612c2361010084018215159052565b50610120830151612c3961012084018215159052565b50610140830151612c4f61014084018215159052565b50610160830151612c6561016084018215159052565b50610180830151612c7b61018084018215159052565b506101a0830151612c916101a084018215159052565b5092915050565b634e487b7160e01b5f52602160045260245ffd5b6020810160038310612ccc57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f805f60e08486031215612ce4575f80fd5b8335612cef816126ba565b9250612cfe8560208601612767565b915060c0840135612d0e816126ba565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d5657612d56612d19565b604052919050565b5f60a0828403128015612d6f575f80fd5b5060405160a0810167ffffffffffffffff81118282101715612d9357612d93612d19565b6040528235612da1816126ba565b81526020830135612db1816126ba565b6020820152604083013562ffffff81168114612dcb575f80fd5b6040820152612ddc606084016129bb565b60608201526080830135612def816126ba565b60808201529392505050565b5f60208284031215612e0b575f80fd5b5051919050565b5f60208284031215612e22575f80fd5b813561136681612700565b634e487b7160e01b5f52601160045260245ffd5b5f81600f0b6f7fffffffffffffffffffffffffffffff198103612e6657612e66612e2d565b5f0392915050565b80820281158282048414176109bb576109bb612e2d565b5f82612e9f57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612eb4575f80fd5b815167ffffffffffffffff811115612eca575f80fd5b8201601f81018413612eda575f80fd5b805167ffffffffffffffff811115612ef457612ef4612d19565b612f07601f8201601f1916602001612d2d565b818152856020838501011115612f1b575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f60208284031215612f48575f80fd5b8151611366816126ba565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215612fa2575f80fd5b815161136681612700565b818382375f910190815291905056fec9427259795fbc38fba3c2cee3d5b9149dbd8568750d94c8c1e55097205722a6a164736f6c634300081a000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa034080000000000000000000000004c2ffb45988bc61bfcebdaa2146ad66dafd930d2000000000000000000000000e84bfc354c5df540fc3191951271363eb50b449d000000000000000000000000f870cff05da17b05234f057ad0247deae7dfbc5d0000000000000000000000007b4aa78dbb7820177c77c2452d1eac4c94231085000000000000000000000000f272039463641d0c2a40b0977197fa33767857390000000000000000000000007b4aa78dbb7820177c77c2452d1eac4c942310850000000000000000000000007b4aa78dbb7820177c77c2452d1eac4c942310850000000000000000000000003a4f9f7f250675f5e7e877ffbb2aec5c4a5d9270000000000000000000000000492e6456d9528771018deb9e87ef7750ef184104000000000000000000000000492e6456d9528771018deb9e87ef7750ef1841040000000000000000000000004a6513c898fe1b2d0e78d3b0e0a4a151589b1cba

-----Decoded View---------------
Arg [0] : poolManager_ (address): 0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408
Arg [1] : defaultAdmin (address): 0x4C2Ffb45988BC61BFCebDAA2146Ad66dAFD930d2
Arg [2] : defaultFeeManager (address): 0xE84BfC354C5df540FC3191951271363eb50b449D
Arg [3] : defaultPauser (address): 0xF870cfF05DA17b05234f057Ad0247DEAe7DfbC5d
Arg [4] : beforeAddLiquidityPolicy (address): 0x7b4Aa78DBb7820177C77C2452D1EaC4c94231085
Arg [5] : beforeRemoveLiquidityPolicy (address): 0xf272039463641d0C2A40B0977197Fa3376785739
Arg [6] : beforeSwapPolicy (address): 0x7b4Aa78DBb7820177C77C2452D1EaC4c94231085
Arg [7] : beforeDonatePolicy (address): 0x7b4Aa78DBb7820177C77C2452D1EaC4c94231085
Arg [8] : positionManager (address): 0x3A4F9F7F250675F5E7E877FfbB2aec5C4a5D9270
Arg [9] : poolSwapRouter (address): 0x492E6456D9528771018DeB9E87ef7750EF184104
Arg [10] : poolDonateRouter_ (address): 0x492E6456D9528771018DeB9E87ef7750EF184104
Arg [11] : quoter_ (address): 0x4A6513c898fe1B2d0E78d3b0e0A4a151589B1cBa

-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 00000000000000000000000005e73354cfdd6745c338b50bcfdfa3aa6fa03408
Arg [1] : 0000000000000000000000004c2ffb45988bc61bfcebdaa2146ad66dafd930d2
Arg [2] : 000000000000000000000000e84bfc354c5df540fc3191951271363eb50b449d
Arg [3] : 000000000000000000000000f870cff05da17b05234f057ad0247deae7dfbc5d
Arg [4] : 0000000000000000000000007b4aa78dbb7820177c77c2452d1eac4c94231085
Arg [5] : 000000000000000000000000f272039463641d0c2a40b0977197fa3376785739
Arg [6] : 0000000000000000000000007b4aa78dbb7820177c77c2452d1eac4c94231085
Arg [7] : 0000000000000000000000007b4aa78dbb7820177c77c2452d1eac4c94231085
Arg [8] : 0000000000000000000000003a4f9f7f250675f5e7e877ffbb2aec5c4a5d9270
Arg [9] : 000000000000000000000000492e6456d9528771018deb9e87ef7750ef184104
Arg [10] : 000000000000000000000000492e6456d9528771018deb9e87ef7750ef184104
Arg [11] : 0000000000000000000000004a6513c898fe1b2d0e78d3b0e0a4a151589b1cba

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0x24F7c9ea6B5be5227caAeB61366b56052386eae4
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.