0 txs
0 calls
constructor
constructor(address coinDatFactory, address uniswapV4PoolManager)
functions
ACCUMULATION_FEE
viewfunction ACCUMULATION_FEE() view returns (uint256)
calculateSwapFee
viewfunction calculateSwapFee(address cdToken) view returns (uint128)
CD_FACTORY
viewfunction CD_FACTORY() view returns (address)
DEPLOYER_FEE
viewfunction DEPLOYER_FEE() view returns (uint256)
FEE_REDUCTION_RATE
viewfunction FEE_REDUCTION_RATE() view returns (uint256)
getHookPermissions
purefunction getHookPermissions() pure returns (tuple)
MAX_FEE
viewfunction MAX_FEE() view returns (uint128)
MIN_FEE
viewfunction MIN_FEE() view returns (uint128)
POOL_MANAGER
viewfunction POOL_MANAGER() view returns (address)
poolManager
viewfunction poolManager() view returns (address)
TREASURY_FEE
viewfunction TREASURY_FEE() view returns (uint256)
afterAddLiquidity
nonpayablefunction afterAddLiquidity(address sender, tuple key, tuple params, int256 delta, int256 feesAccrued, bytes hookData) returns (bytes4, int256)
afterDonate
nonpayablefunction afterDonate(address sender, tuple key, uint256 amount0, uint256 amount1, bytes hookData) returns (bytes4)
afterInitialize
nonpayablefunction afterInitialize(address sender, tuple key, uint160 sqrtPriceX96, int24 tick) returns (bytes4)
afterRemoveLiquidity
nonpayablefunction afterRemoveLiquidity(address sender, tuple key, tuple params, int256 delta, int256 feesAccrued, bytes hookData) returns (bytes4, int256)
afterSwap
nonpayablefunction afterSwap(address sender, tuple key, tuple params, int256 delta, bytes hookData) returns (bytes4, int128)
beforeAddLiquidity
nonpayablefunction beforeAddLiquidity(address sender, tuple key, tuple params, bytes hookData) returns (bytes4)
beforeDonate
nonpayablefunction beforeDonate(address sender, tuple key, uint256 amount0, uint256 amount1, bytes hookData) returns (bytes4)
beforeInitialize
nonpayablefunction beforeInitialize(address sender, tuple key, uint160 sqrtPriceX96) returns (bytes4)
beforeRemoveLiquidity
nonpayablefunction beforeRemoveLiquidity(address sender, tuple key, tuple params, bytes hookData) returns (bytes4)
beforeSwap
nonpayablefunction beforeSwap(address sender, tuple key, tuple params, bytes hookData) returns (bytes4, int256, uint24)
events
Swap
event Swap(bytes32 indexed poolId, address indexed sender, address indexed cdToken, uint160 sqrtPriceX96, int128 ethAmount, int128 tokenAmount, uint256 feeAmount)
errors
CdIsNotDeployingLiquidity
error CdIsNotDeployingLiquidity()
CdNotDeployed
error CdNotDeployed(address cdToken)
ExactOutputNotAllowed
error ExactOutputNotAllowed()
HookNotImplemented
error HookNotImplemented()
NotCdToken
error NotCdToken(address token)
NotPoolManager
error NotPoolManager()
OnlyEthPoolsAllowed
error OnlyEthPoolsAllowed()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x60e06040523461030257604051601f61260d38819003918201601f19168301916001600160401b038311848410176103065780849260409485528339810103126103025761004c8161033a565b906001600160a01b03906100629060200161033a565b16806080525f6101a061007361031a565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201525f6101a06100d161031a565b60018152826020820152826040820152600160608201528260808201528260a08201528260c0820152600160e08201528261010082015282610120820152826101408201526001610160820152826101808201520152612000301615156001148015906102f5575b80156102e8575b80156102d7575b80156102ca575b80156102bd575b80156102b1575b80156102a1575b8015610295575b8015610289575b801561027d575b801561026d575b8015610261575b8015610255575b6102425760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005560a0526001600160a01b031660c0526040516122be908161034f823960805181818161013a01528181610230015281816104ec015281816107e90152818161088501528181610baa01528181610c2401528181610da70152610e58015260a051818181610cbc0152611615015260c051818181610294015281816108ee01528181610ac001526120460152f35b630732d7b560e51b5f523060045260245ffd5b5060013016151561018d565b50600230161515610186565b506004301615156001141561017f565b50600830161515610178565b50601030161515610171565b5060203016151561016a565b5060403016151560011415610163565b5060803016151561015c565b5061010030161515610155565b506102003016151561014e565b506104003016151560011415610147565b5061080030161515610140565b5061100030161515610139565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051906101c082016001600160401b0381118382101761030657604052565b51906001600160a01b03821682036103025756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c8063027ef5f814610ea657806321d0ee7014610e2e578063259982e514610e2e5780634c80107014610df5578063575e24b414610ce057806362308e8514610c725780636c2bbe7e14610bf85780636fe7e6eb14610b1e57806376c7a3c714610ae4578063808a1c6d14610a765780638ce1a483146108535780639f063efc14610858578063a13cb32114610853578063b47b2fb114610721578063b6a8b0fa1461070f578063bc063e1a146106d4578063c4e833ce1461054d578063d2b9b73114610510578063dc4c90d3146104a1578063dc98354e146101ad5763e1b4af691461010c575061000e565b346101aa5760049061011d3661117c565b50505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610185577f0a85dc29000000000000000000000000000000000000000000000000000000008152fd5b7fae18210a000000000000000000000000000000000000000000000000000000008152fd5b80fd5b50346101aa5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101aa576101e5610f01565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126101aa5761021861110f565b5073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036104795760243573ffffffffffffffffffffffffffffffffffffffff811690818103610475575061044d5773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166040517f17ee9462000000000000000000000000000000000000000000000000000000008152602081600481855afa9081156103f757839161042e575b5015610406576044359073ffffffffffffffffffffffffffffffffffffffff8216918281036104025760249160209150604051928380927f793670bb0000000000000000000000000000000000000000000000000000000082528660048301525afa9081156103f75783916103c8575b501561039d5781528060205260404291205560206040517fdc98354e000000000000000000000000000000000000000000000000000000008152f35b7f6c06951b000000000000000000000000000000000000000000000000000000008252600452602490fd5b6103ea915060203d6020116103f0575b6103e2818361135d565b81019061139e565b5f610361565b503d6103d8565b6040513d85823e3d90fd5b8380fd5b6004827f2d6b9101000000000000000000000000000000000000000000000000000000008152fd5b610447915060203d6020116103f0576103e2818361135d565b5f6102f1565b807f9f8ab4990000000000000000000000000000000000000000000000000000000060049252fd5b8280fd5b807fae18210a0000000000000000000000000000000000000000000000000000000060049252fd5b50346101aa57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101aa57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101aa57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101aa57506020611c20604051908152f35b50346101aa57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101aa576020816101c0926101a060405161059281611313565b82815282858201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152826101208201528261014082015282610160820152826101808201520152806040516105f081611313565b600181528381018281526040820183815260608301600181526080840185815260a0850186815260c086019087825260e0870192600184526101008801948986526101208901968a88526101408a01988b8a526101a06101608c019b60018d5261018081019d8e52019c8d526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b50346101aa57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101aa5760206040516126ac8152f35b50346101aa5760049061011d3661117c565b50346101aa576101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101aa5761075a610f01565b9060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126101aa5760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c3601126101aa576101443567ffffffffffffffff811161084f576107d0903690600401610f45565b505073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361047957604061081e6101243584611480565b7fffffffff00000000000000000000000000000000000000000000000000000000835192168252600f0b6020820152f35b5080fd5b611142565b5034610a03576108673661103e565b5050509392505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610a4e576040517f17ee946200000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156109f8575f91610a2f575b5015610a07576020013573ffffffffffffffffffffffffffffffffffffffff81168103610a035773ffffffffffffffffffffffffffffffffffffffff169161096890600f0b6113b6565b600f0b823b15610a03575f926024849260405195869384927fd10f52bc00000000000000000000000000000000000000000000000000000000845260048401525af180156109f8576109e5575b6040908151907f9f063efc0000000000000000000000000000000000000000000000000000000082526020820152f35b505f6109f09161135d565b60405f6109b5565b6040513d5f823e3d90fd5b5f80fd5b7f2d6b9101000000000000000000000000000000000000000000000000000000005f5260045ffd5b610a48915060203d6020116103f0576103e2818361135d565b5f61091e565b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610a03575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a0357602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610a03575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a035760206040516102bc8152f35b34610a03576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a0357610b56610f01565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610a0357610b8961110f565b50610b92611132565b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610a4e577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610a0357610c063661103e565b5050505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610a4e577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610a03575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a0357602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610a03576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a0357610d18610f01565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610a035760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c360112610a03576101243567ffffffffffffffff8111610a0357610d8e903690600401610f45565b505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610a4e577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610a03575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a0357602060405160648152f35b34610a0357610e3c36610f73565b505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610a4e577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610a035760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a03576020610ee7610ee2610f01565b611264565b6fffffffffffffffffffffffffffffffff60405191168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610a0357565b359073ffffffffffffffffffffffffffffffffffffffff82168203610a0357565b9181601f84011215610a035782359167ffffffffffffffff8311610a035760208381860195010111610a0357565b906101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112610a035760043573ffffffffffffffffffffffffffffffffffffffff81168103610a03579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc820112610a035760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c830112610a035760c491610144359067ffffffffffffffff8211610a035761103a91600401610f45565b9091565b906101a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112610a035760043573ffffffffffffffffffffffffffffffffffffffff81168103610a03579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc820112610a035760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c830112610a035760c49161014435916101643591610184359067ffffffffffffffff8211610a035761103a91600401610f45565b60c4359073ffffffffffffffffffffffffffffffffffffffff82168203610a0357565b60e435908160020b8203610a0357565b34610a03575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a035760206040516105788152f35b6101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610a035760043573ffffffffffffffffffffffffffffffffffffffff81168103610a03579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc830112610a035760249160c4359160e43591610104359067ffffffffffffffff8211610a035761103a91600401610f45565b9190820180921161122a57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9190820391821161122a57565b73ffffffffffffffffffffffffffffffffffffffff16805f525f60205260405f2054156112e8575f525f602052603c6112a160405f205442611257565b0460648102908082046064149015171561122a576123f08110156112e1576126ac036126ac811161122a576fffffffffffffffffffffffffffffffff1690565b506102bc90565b7f737cadab000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6101c0810190811067ffffffffffffffff82111761133057604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761133057604052565b90816020910312610a0357518015158103610a035790565b600f0b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000811461122a575f0390565b91908260a0910312610a035760405160a0810181811067ffffffffffffffff82111761133057604052809261141981610f24565b825261142760208201610f24565b6020830152604081013562ffffff81168103610a035760408301526060810135908160020b8203610a0357608091606084015201359073ffffffffffffffffffffffffffffffffffffffff82168203610a035760800152565b91905f9060e435905f8213611f675760c435801515809103610a03575f831203611f3c5760443573ffffffffffffffffffffffffffffffffffffffff81168103610a03579080600f0b955b5f87600f0b12611f2c575b60443573ffffffffffffffffffffffffffffffffffffffff811694858203610a03575f986040517fb1ec01350000000000000000000000000000000000000000000000000000000081526020816004818b5afa9081156109f8575f91611f0d575b5015611eb3575b5083600f0b915f83125f14611ead57611556836113b6565b600f0b5b8a15611e1e5773ffffffffffffffffffffffffffffffffffffffff87169261158d89851492835f14611e17578d9061121d565b925081611e0d575b5015611e02578960011b8a8104600203611dd5576115b29161121d565b863b1561182b57604051907fd10f52bc00000000000000000000000000000000000000000000000000000000825260048201528781602481838b5af1801561183757908891611dc0575b505073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001694853b1561182b576040517f0b0d9c0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152306024820152604481018a90528781606481838a5af1801561183757908891611dab575b50506118425787906116b78987611fb0565b60a06116c43660246113e5565b2093602060a06116d53660246113e5565b2060405182810191825260066040820152604081526116f560608261135d565b5190206024604051809981937f1e2eaeaf00000000000000000000000000000000000000000000000000000000835260048301525afa9586156118375788966117fe575b509260809273ffffffffffffffffffffffffffffffffffffffff927fe820002d266376f29ed4a8cef36641499a37c97aec7e5cf91560bcc88b30ad96958460405199168952851d600f0b6020890152604088015260608701521693a46f800000000000000000000000000000008310156117d657507fb47b2fb10000000000000000000000000000000000000000000000000000000091600f0b90565b807f93dafdf10000000000000000000000000000000000000000000000000000000060049252fd5b9095506020813d60201161182f575b8161181a6020938361135d565b8101031261182b5751946080611739565b8780fd5b3d915061180d565b6040513d8a823e3d90fd5b61184d3660246113e5565b47907f80000000000000000000000000000000000000000000000000000000000000008a14611d7e57604051906060820182811067ffffffffffffffff821117611d515760405288825260208201918b8a0383526040810173fffd8963efd1fc6a506488495d951d5263988d258152604051936020850185811067ffffffffffffffff821117611d245790818b93926040528d875260405196879384937ff3cd914c000000000000000000000000000000000000000000000000000000008552885173ffffffffffffffffffffffffffffffffffffffff1660048601526020890197885173ffffffffffffffffffffffffffffffffffffffff16602487015260408a015162ffffff16604487015260608a015160020b606487015260808a015173ffffffffffffffffffffffffffffffffffffffff16608487015251151560a48601525160c48501525173ffffffffffffffffffffffffffffffffffffffff1660e4840152610104830161012090525180918161012485015261014484015e8d8183016101440152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01681010361014401818d5a94602095f1928315611b7b578a93611cd8575b5073ffffffffffffffffffffffffffffffffffffffff905116611a3c83600f0b6113b6565b600f0b9080611b8657506020600491604051928380927f11da60b40000000000000000000000000000000000000000000000000000000082528c5af18015611b7b579073ffffffffffffffffffffffffffffffffffffffff9291611b4c575b505b511690863b15611b48576040517f0b0d9c0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015230602483015260801d600f0b60448201528781606481838a5af1801561183757908891611b2f575b5050611b1f9047611257565b90611b2a8287611fb0565b6116b7565b81611b399161135d565b611b4457865f611b13565b8680fd5b8880fd5b611b6d9060203d602011611b74575b611b65818361135d565b810190612234565b505f611a9b565b503d611b5b565b6040513d8c823e3d90fd5b90883b15611cc9576040517fa5841194000000000000000000000000000000000000000000000000000000008152600481018390528b81602481838e5af18015611ccd57908c91611cb4575b509060448a60209360405195869485937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af18015611b7b57611c95575b506040517f11da60b40000000000000000000000000000000000000000000000000000000081526020816004818d8c5af18015611b7b579073ffffffffffffffffffffffffffffffffffffffff9291611c76575b50611a9d565b611c8e9060203d602011611b7457611b65818361135d565b505f611c70565b611cad9060203d6020116103f0576103e2818361135d565b505f611c1c565b81611cbe9161135d565b611cc9578a5f611bd2565b8a80fd5b6040513d8e823e3d90fd5b9092506020813d602011611d1c575b81611cf46020938361135d565b81010312611d1857519173ffffffffffffffffffffffffffffffffffffffff611a17565b8980fd5b3d9150611ce7565b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b81611db59161135d565b611b4457865f6116a5565b81611dca9161135d565b611b4457865f6115fc565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6115b290889061121d565b905088125f611595565b8b9061121d565b96979950505050505050813b15610a03575f916024839260405194859384927fd10f52bc00000000000000000000000000000000000000000000000000000000845260048401525af180156109f857611e98575b507fb47b2fb1000000000000000000000000000000000000000000000000000000009190565b611ea59192505f9061135d565b5f905f611e72565b8261155a565b9098506fffffffffffffffffffffffffffffffff80611ed188611264565b169116026fffffffffffffffffffffffffffffffff811690810361122a576127106fffffffffffffffffffffffffffffffff910416975f61153e565b611f26915060203d6020116103f0576103e2818361135d565b5f611537565b95611f36906113b6565b956114d6565b60243573ffffffffffffffffffffffffffffffffffffffff81168103610a0357908060801d956114cb565b7f6fdd6ae0000000000000000000000000000000000000000000000000000000005f5260045ffd5b519073ffffffffffffffffffffffffffffffffffffffff82168203610a0357565b90801561223057611c2081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e08282040161122a5761271090049061057881028181046105780361122a5761201761271061201e920492612011848661121d565b90611257565b9284612243565b6040517f3b19e84a0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1693602082600481885afa9182156109f8575f926121d5575b50602473ffffffffffffffffffffffffffffffffffffffff916120b98495608095612243565b60405196879384927f7b1b57420000000000000000000000000000000000000000000000000000000084521660048301525afa9283156109f8575f9361212e575b5073ffffffffffffffffffffffffffffffffffffffff612124935116908115612126575b50612243565b565b90505f61211e565b92506080833d6080116121cd575b816121496080938361135d565b81010312610a0357604051608081019080821067ffffffffffffffff831117611330576121c160606121249673ffffffffffffffffffffffffffffffffffffffff9460405261219781611f8f565b84526121a560208201611f8f565b60208501526121b660408201611f8f565b604085015201611f8f565b606082015293506120fa565b3d915061213c565b91506020823d602011612228575b816121f06020938361135d565b81010312610a0357602473ffffffffffffffffffffffffffffffffffffffff916120b961221e608095611f8f565b9450509150612093565b3d91506121e3565b5050565b90816020910312610a03575190565b81471061227b575f3881808585620186a0f11561225e575050565b601691600b915f526073825360ff602053f01561227757565b3838fd5b63b12d13eb5f526004601cfdfea2646970667358221220242f372bf25cb8c2d88f47aac3437762fa2437d525d19d7b6fac49bf38d9ac8164736f6c634300081a00330000000000000000000000008828fef812a65f6d64ba0f9c83bea4de3b85a135000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b