0 txs
1 call
constructor
constructor(address _factory, address _swapRouter, address _poolManager)
functions
decodeV4RouteData
purefunction decodeV4RouteData(bytes data) pure returns (tuple[] v4Route, uint256 startAmount)
encodeBuySupplyWithV4SwapHookData
purefunction encodeBuySupplyWithV4SwapHookData(tuple params) pure returns (bytes)
factory
viewfunction factory() view returns (address)
poolManager
viewfunction poolManager() view returns (address)
supportsInterface
purefunction supportsInterface(bytes4 interfaceId) pure returns (bool)
swapRouter
viewfunction swapRouter() view returns (address)
afterCoinDeploy
payablefunction afterCoinDeploy(address sender, address coin, bytes hookData) payable returns (bytes)
unlockCallback
nonpayablefunction unlockCallback(bytes data) returns (bytes)
events
BuyInitialSupply
event BuyInitialSupply(address indexed coin, address indexed recipient, uint256 indexed coinsPurchased, bytes v3Route, (address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks)[] v4Route, address inputCurrency, uint256 inputAmount, uint256 v4SwapInput)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
AddressZero
error AddressZero()
FailedInnerCall
error FailedInnerCall()
HookNotImplemented
error HookNotImplemented()
InsufficientInputCurrency
error InsufficientInputCurrency(uint256 inputAmount, uint256 availableAmount)
InsufficientOutputAmount
error InsufficientOutputAmount()
NotFactory
error NotFactory()
OnlyPoolManager
error OnlyPoolManager()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
V3RouteCannotStartWithInputCurrency
error V3RouteCannotStartWithInputCurrency()
V3RouteDoesNotConnectToV4RouteStart
error V3RouteDoesNotConnectToV4RouteStart()
creation bytecode
0x60e0346100f057601f611a5f38819003918201601f19168301916001600160401b038311848410176100f4578084926060946040528339810103126100f05780516001600160a01b03811691908281036100f05761006b604061006460208501610108565b9301610108565b92156100e1576080526001600160a01b0390811660a0521660c052604051611942908161011d82396080518181816108da0152610950015260a05181818161089601526112e7015260c05181818161068d01528181610a9b01528181610c1d01528181610c5601528181610d0801526114430152f35b639fabe1c160e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100f05756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461009457806303cacc251461008f5780632478db801461008a57806391dd734614610085578063c31c9c0714610080578063c45a01551461007b578063cdefd124146100765763dc4c90d314610071575f80fd5b610a86565b610909565b6108c5565b610881565b61067a565b61059e565b6101aa565b346100cb5760203660031901126100cb5760043563ffffffff60e01b81168091036100cb5763337bf44960e21b1460805260206080f35b5f80fd5b9181601f840112156100cb578235916001600160401b0383116100cb57602083818601950101116100cb57565b60206003198201126100cb57600435906001600160401b0382116100cb57610126916004016100cf565b9091565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b90602080835192838152019201905f5b81811061018a5750505090565b909192602060a08261019f600194885161012a565b01940192910161017d565b346100cb576101b8366100fc565b8101906040818303126100cb578035916001600160401b0383116100cb576101e76020916101fe948401610338565b91013560405192839260408452604084019061016d565b9060208301520390f35b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761023757604052565b610208565b90601f801991011681019081106001600160401b0382111761023757604052565b6040519061026c60c08361023c565b565b6040519061026c60608361023c565b6040519061026c60808361023c565b6001600160a01b038116036100cb57565b359061026c8261028c565b6001600160401b03811161023757601f01601f191660200190565b81601f820112156100cb578035906102da826102a8565b926102e8604051948561023c565b828452602083830101116100cb57815f926020809301838601378301015290565b6001600160401b0381116102375760051b60200190565b62ffffff8116036100cb57565b8060020b036100cb57565b81601f820112156100cb5780359061034f82610309565b9261035d604051948561023c565b828452602060a08186019402830101918183116100cb57602001925b828410610387575050505090565b60a0848303126100cb57602060a0916040516103a28161021c565b86356103ad8161028c565b8152828701356103bc8161028c565b8382015260408701356103ce81610320565b604082015260608701356103e18161032d565b606082015260808701356103f48161028c565b6080820152815201930192610379565b60206003198201126100cb57600435906001600160401b0382116100cb5760c082820360031901126100cb5761043861025d565b916104458160040161029d565b835260248101356001600160401b0381116100cb57826004610469928401016102c3565b602084015260448101356001600160401b0381116100cb5760a492600461049292840101610338565b60408401526104a36064820161029d565b606084015260848101356080840152013560a082015290565b6020818303126100cb578035906001600160401b0382116100cb57019060c0828203126100cb576104eb61025d565b916104f58161029d565b835260208101356001600160401b0381116100cb57826105169183016102c3565b602084015260408101356001600160401b0381116100cb5760a09261053c918301610338565b604084015261054d6060820161029d565b606084015260808101356080840152013560a082015290565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061059b928181520190610566565b90565b346100cb576105ac36610404565b60405160208082015260018060a01b0382511660408201526105de602083015160c06060840152610100830190610566565b91604081015192603f19838203016080840152602080855192838152019401905f5b81811061065a576106568561064a818960a08961062b60608201518386019060018060a01b03169052565b608081015160c0850152015160e083015203601f19810183528261023c565b6040519182918261058a565b0390f35b909194602060a08261066f6001948a5161012a565b019601929101610600565b346100cb576106cb61068b366100fc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169291906106c3338514610aca565b810190610ae0565b925f926001600160801b038116929081855b845187101561082c575061077460206107246001600160801b0361071a6107048b8a610b2b565b51805190986001600160a01b0390811691161490565b9816600f0b610b67565b871561080f576107596401000276a45b61073c61026e565b8a1515815292600f0b838501526001600160a01b03166040830152565b60405180938192633cf3645360e21b83528860048401610b9b565b03815f8d5af1801561080a576001915f916107dc575b5086156107ca576001600160801b0316935b84965f146107bb57602001516001600160a01b03165b960195926106dd565b516001600160a01b03166107b2565b60801d6001600160801b03169361079c565b6107fd915060203d8111610803575b6107f5818361023c565b810190610b8c565b5f61078a565b503d6107eb565b610be3565b61075973fffd8963efd1fc6a506488495d951d5263988d25610734565b61084c86916108699461064a94610656978c60018060a01b031691610bee565b604080516001600160801b03909216602083015290928391820190565b03601f19810183528261023c565b5f9103126100cb57565b346100cb575f3660031901126100cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100cb575f3660031901126100cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60603660031901126100cb5761092060043561028c565b60243561092c8161028c565b6044356001600160401b0381116100cb5761094b9036906004016100cf565b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610a77576109f87fb904155fe4239312d3b1fe56a7adb67d920640af15eb9008a8e4dc62f7267418926109b68561064a946106569701906104bc565b906109c5604083015182610fc5565b916109d083826110a6565b6109d981611136565b6109e28161127e565b82519195916001600160a01b03169086866113d3565b958693610a0b60a0840151861015610dd1565b82516001600160a01b0316610a58876020860151956080610a35606083015160018060a01b031690565b9101516040516001600160a01b0395861699909516979495869591929186610de7565b0390a46040805160208101929092528101929092528160608101610869565b631966391b60e11b5f5260045ffd5b346100cb575f3660031901126100cb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b15610ad157565b63f655705d60e01b5f5260045ffd5b91906080838203126100cb578235906001600160401b0382116100cb57610b08918401610338565b9160208101359160606040830135610b1f8161028c565b92013561059b8161028c565b8051821015610b3f5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b600f0b6f7fffffffffffffffffffffffffffffff198114610b87575f0390565b610b53565b908160209103126100cb575190565b9091610baa826101409461012a565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b6040513d5f823e3d90fd5b9193909290916001600160a01b038116610d065750604051630476982d60e21b815290602090829060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561080a57610ce7575b505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100cb57604051630b0d9c0960e01b81526001600160a01b0393841660048201529390921660248401526001600160801b031660448301525f908290606490829084905af1801561080a57610cd35750565b80610ce15f61026c9361023c565b80610877565b610cff9060203d602011610803576107f5818361023c565b505f610c52565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156100cb57604051632961046560e21b81526001600160a01b03831660048201525f8160248183865af193841561080a5782602094610d78935f97610dbd575b50610e2b565b600460405180948193630476982d60e21b83525af1801561080a57610d9e575b50610c54565b610db69060203d602011610803576107f5818361023c565b505f610d98565b80610ce189610dcb9361023c565b5f610d72565b15610dd857565b6342301c2360e01b5f5260045ffd5b91610e1290610e046080959897969360a0865260a0860190610566565b90848203602086015261016d565b6001600160a01b03909616604083015260608201520152565b9091906001600160a01b038116610e5857505f808080610e4c94865af11590565b610e535750565b61151d565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215610eae5750565b6001600160a01b03166114b0565b9060018201809211610b8757565b90601f8201809211610b8757565b91908201809211610b8757565b90610eef82610309565b610efc604051918261023c565b8281528092610f0d601f1991610309565b01905f5b828110610f1d57505050565b602090604051610f2c8161021c565b5f81525f838201525f60408201525f60608201525f608082015282828501015201610f11565b908160a09103126100cb57608060405191610f6c8361021c565b8051610f778161028c565b83526020810151610f878161028c565b60208401526040810151610f9a81610320565b60408401526060810151610fad8161032d565b60608401520151610fbd8161028c565b608082015290565b90610fd8610fd38251610ebc565b610ee5565b925f5b825181101561100e5780610ff160019285610b2b565b51610ffc8288610b2b565b526110078187610b2b565b5001610fdb565b50604051630341f3b760e51b8152909290919060a090839060049082906001600160a01b03165afa90811561080a5761105c925f9261105f575b5051906110558286610b2b565b5283610b2b565b50565b61108291925060a03d60a011611089575b61107a818361023c565b810190610f52565b905f611048565b503d611070565b1561109757565b63bdcc3d9760e01b5f5260045ffd5b602081015180516111095750606001516001600160a01b03165b815115610b3f5760209190910151805161026c926001600160a01b03908116911681149182156110f2575b5050611090565b602001516001600160a01b03161490505f806110eb565b6111139150611586565b6110c0565b15611121575050565b635d0165db60e01b5f5260045260245260445ffd5b6060810180516001600160a01b03168061115e575050608061026c9101513490803414611118565b6111b49290602090611180906001600160a01b03165b6001600160a01b031690565b8251604051636eb1769f60e11b81526001600160a01b03909116600482015230602482015294859190829081906044820190565b03915afa91821561080a5761026c935f9361120d575b506111f5611174611203926111e86080860196875180821015611118565b516001600160a01b031690565b91516001600160a01b031690565b9151913091611670565b6112039193506111746112316111f59260203d602011610803576107f5818361023c565b949250506111ca565b6020815260806060611257845183602086015260a0850190610566565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b906020820191825151156113575760608101516001600160a01b03166113495760206112e39160808551910180516112b461027d565b928352308484015260408301525f606083015251604051808095819463b858183f60e01b83526004830161123a565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561080a5761059b915f9161132a575b509251611586565b611343915060203d602011610803576107f5818361023c565b5f611322565b6216d35160e31b5f5260045ffd5b60808101516060909101519092506001600160a01b031690565b6020818303126100cb578051906001600160401b0382116100cb570181601f820112156100cb578051906113a4826102a8565b926113b2604051948561023c565b828452602083830101116100cb57815f9260208093018386015e8301015290565b611424906113f89261143e955f956040519586946080602087015260a086019061016d565b60408501939093526001600160a01b03908116606085015216608083015203601f19810183528261023c565b604051809381926348c8949160e01b83526004830161058a565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561080a5761059b915f9161148e575b5060208082518301019101610b8c565b6114aa91503d805f833e6114a2818361023c565b810190611371565b5f61147e565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b80511561166b575f9160179160429084905b805182610b875786610b875783116116565780519085820391808311610b875786906115ce846115c781610eca565b10156117ed565b6115dc826115c78682610ed8565b6115f283516115eb8685610ed8565b111561182a565b0361160b5750506040515f815260208101604052611598565b60405191601f81169187831560051b80858701019484860193010101905b8084106116435750508252601f01601f1916604052611598565b9092602080918551815201930190611629565b92945050506116659150611755565b50905090565b505f90565b6040516323b872dd60e01b602082019081526001600160a01b039384166024830152939092166044830152606480830194909452928152916116fa915f918291906116bc60848761023c565b60018060a01b031694519082865af13d1561174d573d906116dc826102a8565b916116ea604051938461023c565b82523d5f602084013e5b836118ae565b805190811515918261172b575b50506117105750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6117469250906020806117429383010191016117d5565b1590565b5f80611707565b6060906116f4565b9061176460148351101561186a565b602082015160601c91601781511061179957601781015190602b8161179060179260209451101561186a565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b908160209103126100cb575180151581036100cb5790565b156117f457565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b1561183157565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b1561187157565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b906118d257508051156118c357805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580611903575b6118e3575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156118db56fea264697066735822122020f17435eed1703f3799df7ae590e24cb390d2b401880af9cb3f73619a820f0964736f6c634300081c0033000000000000000000000000777777751622c0d3258f214f9df38e35bf45baf30000000000000000000000002626664c2603336e57b271c5c0b26f421741e481000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b