0 txs
1 call
constructor
constructor()
functions
evolved
viewfunction evolved() view returns (bool)
evolveLiquidity
viewfunction evolveLiquidity() view returns (uint256)
FACTORY
viewfunction FACTORY() view returns (address)
getReserves
viewfunction getReserves() view returns (uint112 reserveWETH, uint112 reserveRock, uint32 blockTimestampLast)
graduationFee
viewfunction graduationFee() view returns (uint256)
platformFee
viewfunction platformFee() view returns (uint256)
platformWallet
viewfunction platformWallet() view returns (address)
priceRockCumulativeLast
viewfunction priceRockCumulativeLast() view returns (uint256)
priceWETHCumulativeLast
viewfunction priceWETHCumulativeLast() view returns (uint256)
rock
viewfunction rock() view returns (address)
WETH
viewfunction WETH() view returns (address)
initializeAuthority
nonpayablefunction initializeAuthority(address initAuthority)
setup
nonpayablefunction setup(address initRouter, address initPositionManager, address initLiquidityLocker, address initFactoryV3, address initSwapRouter, address initWETH, address initRock, address initPlatformWallet, uint256 initPlatformFee, uint256 initEvolveLiquidity)
skim
nonpayablefunction skim(address to)
start
nonpayablefunction start()
swap
nonpayablefunction swap(uint256 amountIn, uint256 amountOut, bool wethIn, bool toUnwrap, address to) returns (uint256 amountInActual, uint256 amountOutActual, uint112 reserveWETH, uint112 reserveRock)
sync
nonpayablefunction sync()
events
InitializeAuthority
event InitializeAuthority(address authority)
Start
event Start(address indexed sender, uint256 amountWETH, uint256 amountRock)
Swap
event Swap(address indexed sender, address indexed to, uint256 amountIn, uint256 amountOut, bool wethIn)
Sync
event Sync(uint112 reserveWETH, uint112 reserveRock)
errors
CallerNotAuthority
error CallerNotAuthority()
CallerNotPendingAuthority
error CallerNotPendingAuthority()
FailedCall
error FailedCall()
Forbidden
error Forbidden()
InsufficientAmount
error InsufficientAmount()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
InsufficientExchangeLiquidity
error InsufficientExchangeLiquidity()
InsufficientLiquidityMinted
error InsufficientLiquidityMinted()
InvalidAddress
error InvalidAddress()
InvalidAuthorityAssignment
error InvalidAuthorityAssignment()
InvalidReceiver
error InvalidReceiver()
K
error K()
Overflow
error Overflow()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
TokenEvolved
error TokenEvolved()
creation bytecode
0x60a06040526729a2241af62c00006007556310e352d56007546305f5e100610027919061007b565b61003191906100a4565b6008556103e86007546046610046919061007b565b61005091906100a4565b60095534801561005e575f5ffd5b505f80546001600160a01b031916339081179091556080526100c3565b808202811582820484141761009e57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826100be57634e487b7160e01b5f52601260045260245ffd5b500490565b6080516124c66100e25f395f818161020d015261073c01526124c65ff3fe6080604052600436106100fd575f3560e01c80638494ed6111610092578063bc22593e11610062578063bc22593e146102f4578063bc25cf7714610309578063be9a655514610328578063fa2af9da1461033c578063fff6cae91461035b575f5ffd5b80638494ed611461027b57806399fb809e1461029c578063ad5c4648146102bb578063b01388ea146102df575f5ffd5b806326232a2e116100cd57806326232a2e146101e75780632dd31000146101fc5780636da6bad0146102475780638120192c14610266575f5ffd5b806302a4a890146101085780630902f1ac146101305780630d8d7f1414610170578063135f0f8514610199575f5ffd5b3661010457005b5f5ffd5b348015610113575f5ffd5b5061011d600f5481565b6040519081526020015b60405180910390f35b34801561013b575f5ffd5b5061014461036f565b604080516001600160701b03948516815293909216602084015263ffffffff1690820152606001610127565b34801561017b575f5ffd5b50600a546101899060ff1681565b6040519015158152602001610127565b3480156101a4575f5ffd5b506101b86101b3366004611ec0565b610399565b6040805194855260208501939093526001600160701b0391821692840192909252166060820152608001610127565b3480156101f2575f5ffd5b5061011d600d5481565b348015610207575f5ffd5b5061022f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610127565b348015610252575f5ffd5b50600b5461022f906001600160a01b031681565b348015610271575f5ffd5b5061011d60095481565b348015610286575f5ffd5b5061029a610295366004611f1b565b61073a565b005b3480156102a7575f5ffd5b5061029a6102b6366004611fd4565b6108ff565b3480156102c6575f5ffd5b50600a5461022f9061010090046001600160a01b031681565b3480156102ea575f5ffd5b5061011d600e5481565b3480156102ff575f5ffd5b5061011d60075481565b348015610314575f5ffd5b5061029a610323366004611fd4565b61092c565b348015610333575f5ffd5b5061029a6109b7565b348015610347575f5ffd5b50600c5461022f906001600160a01b031681565b348015610366575f5ffd5b5061029a610a97565b6006546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b5f5f5f5f6103a5610ad6565b6103ad610b43565b600a5460ff16156103c8576103c8632d7737a360e21b610b61565b8815806103d3575087155b156103e8576103e8632ca2f52b60e11b610b61565b600a546001600160a01b038681166101009092041614806104165750600b546001600160a01b038681169116145b1561042b5761042b631e4ec46b60e01b610b61565b61043361036f565b5090925090505f8080891561048f57600b54600d546001600160701b03861694506001600160a01b0390911692506103e89061046f908e612003565b610479919061202e565b9050610485818d612041565b96508a95506104e0565b846001600160701b03169250600a60019054906101000a90046001600160a01b031691506103e8600d548c6104c49190612003565b6104ce919061202e565b8c975090506104dd818c612041565b95505b828b11156104f8576104f863713654fb60e01b610b61565b881561056c57604051632e1a7d4d60e01b8152600481018790526001600160a01b03831690632e1a7d4d906024015f604051808303815f87803b15801561053d575f5ffd5b505af115801561054f573d5f5f3e3d5ffd5b50610567925050506001600160a01b03891687610b69565b610580565b6105806001600160a01b0383168988610c0d565b600c54600a546105a2916001600160a01b036101009092048216911683610c0d565b5050505f5f6105af610c6c565b91509150826001600160701b0316846001600160701b03166105d19190612003565b6105de90620f4240612003565b6105e88284612003565b6105f590620f4240612003565b101561060b5761060b63a932492f60e01b610b61565b61061782828686610d73565b600a546040516370a0823160e01b81523060048201529296509094505f935061010090046001600160a01b031691506370a0823190602401602060405180830381865afa15801561066a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068e9190612054565b905060075481106106d757600c54600954600a546106bf926001600160a01b03610100909204821692911690610c0d565b6009546106cc9082612041565b90506106d781610f55565b60408051868152602081018690528915158183015290516001600160a01b0388169133917f15df6b17ebbe8381abae058b80360eb98bd18ff544a05e3661ffbed247b47e689181900360600190a35061072e611759565b95509550955095915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461077a5761077a631dd2188d60e31b610b61565b6001600160a01b038916158061079757506001600160a01b038816155b806107a957506001600160a01b038716155b806107bb57506001600160a01b038616155b806107cd57506001600160a01b038516155b806107df57506001600160a01b038416155b806107f157506001600160a01b038316155b156108065761080663e6c4247b60e01b610b61565b811580610811575080155b1561082657610826632ca2f52b60e11b610b61565b600280546001600160a01b03199081166001600160a01b038c8116919091179092556003805482168b84161790556004805482168a8416179055600580548216898416179055600a8054610100600160a81b03191661010089851602179055600b80548216878416179055600c8054909116918516919091179055600d82905560078190556310e352d56108be826305f5e100612003565b6108c8919061202e565b6008556007546103e8906108dd906046612003565b6108e7919061202e565b6009556108f38a611783565b50505050505050505050565b5f546001600160a01b0316331461092057610920631c90b19160e01b610b61565b61092981611783565b50565b610934610ad6565b5f5f61093e610c6c565b915091505f5f61094c61036f565b509092509050610981856109696001600160701b03851687612041565b600a5461010090046001600160a01b03169190610c0d565b6109ab856109986001600160701b03841686612041565b600b546001600160a01b03169190610c0d565b50505050610929611759565b6109bf610ad6565b6109c7610b43565b5f5f6109d1610c6c565b915091505f5f6109df61036f565b5090925090505f6109f96001600160701b03841686612041565b90505f610a0f6001600160701b03841686612041565b90505f610a24610a1f8385612003565b611815565b9050805f03610a3d57610a3d633489be7560e21b610b61565b610a4987878787610d73565b5050604080518481526020810184905233917f9bd12ff361235cfc00ce4754dc56d7091bb0a6a4db278a4e8b2f23d84a14c5d4910160405180910390a250505050505050610a95611759565b565b610a9f610ad6565b5f5f610aa9610c6c565b915091505f5f610ab761036f565b5091509150610ac884848484610d73565b505050505050610a95611759565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c15610b1657604051633ee5aeb560e01b815260040160405180910390fd5b610a9560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90611968565b6001546001600160a01b03163314610a9557610a956306be7e5360e31b5b805f5260045ffd5b80471015610b985760405163cf47918160e01b8152476004820152602481018290526044015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610be1576040519150601f19603f3d011682016040523d82523d5f602084013e610be6565b606091505b5050905080610c085760405163d6bda27560e01b815260040160405180910390fd5b505050565b6040516001600160a01b03838116602483015260448201839052610c0891859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061196f565b600854600a546040516370a0823160e01b81523060048201525f92839290916101009091046001600160a01b0316906370a0823190602401602060405180830381865afa158015610cbf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce39190612054565b610ced919061206b565b600b546040516370a0823160e01b81523060048201529193506001600160a01b0316906370a0823190602401602060405180830381865afa158015610d34573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d589190612054565b610d6d906a3c626448a0bfcccc9c000061206b565b90509091565b600a545f90819060ff1615610d9257610d92632d7737a360e21b610b61565b6001600160701b03861180610dad57506001600160701b0385115b15610dc257610dc2631a93c68960e11b610b61565b5f610dd26401000000004261207e565b6006549091505f90610df190600160e01b900463ffffffff1683612091565b90505f8163ffffffff16118015610e1057506001600160701b03861615155b8015610e2457506001600160701b03851615155b15610eb1578063ffffffff16610e4c87610e3d886119e1565b6001600160e01b0316906119ff565b6001600160e01b0316610e5f9190612003565b600e5f828254610e6f919061206b565b909155505063ffffffff8116610e8886610e3d896119e1565b6001600160e01b0316610e9b9190612003565b600f5f828254610eab919061206b565b90915550505b6006805463ffffffff8416600160e01b026001600160e01b036001600160701b038b8116600160701b9081026001600160e01b03199095168e83161794909417918216831794859055604080519382169282169290921780845293909404909316602082018190529196509094507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a1505094509492505050565b600b546040516370a0823160e01b81523060048201525f91829182918291829182916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610fa7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fcb9190612054565b600b54600a549192506001600160a01b03908116610100909204161061101557600b54600a546001600160a01b03918216916101009091041682896110108183611a1a565b611039565b600a54600b546001600160a01b036101009092048216911688836110398183611a1a565b60408051610160810182526001600160a01b03808816825286166020820152610bb891810191909152949a50929850909650945092505f9060608101603c61108581620d89e7196120ad565b61108f91906120e5565b60020b8152602001603c806110a7620d89e71961210b565b6110b191906120ad565b6110bb91906120e5565b600290810b825260208201889052604082018790525f6060830181905260808301523060a08301524260c09092019190915254600a549192506111109161010090046001600160a01b0390811691168a611a3a565b600b5f9054906101000a90046001600160a01b03166001600160a01b031663b1b3d3f66040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561115c575f5ffd5b505af115801561116e573d5f5f3e3d5ffd5b5050600254600b5461118f93506001600160a01b0390811692501684611a3a565b600a805460ff191660011790556002546040516309f56ab160e11b81526001600160a01b0389811660048301528881166024830152610bb860448301528581166064830152909116906313ead562906084016020604051808303815f875af11580156111fd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611221919061212b565b50600254604051634418b22b60e11b81525f916001600160a01b031690638831645690611252908590600401612146565b6080604051808303815f875af115801561126e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611292919061220a565b505060408051610140810182526002546001600160a01b0390811682526020808301869052600c54909116828401819052606083018190526080830181905260a08301525f1960c0830152606d60e08301528251808401845260078152661111519055531560ca1b8183015261010083015282515f808252918101909352939450915061012082019083611336565b60608152602001906001900390816113215790505b50905260025460035460405163a22cb46560e01b81526001600160a01b03918216600482015260016024820152929350169063a22cb465906044015f604051808303815f87803b158015611388575f5ffd5b505af115801561139a573d5f5f3e3d5ffd5b505060035460405163146b52d760e31b81526001600160a01b03909116925063a35a96b891506113ce9084906004016122d9565b6020604051808303815f875af11580156113ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140e9190612054565b50600a546040516370a0823160e01b81523060048201525f9161010090046001600160a01b0316906370a0823190602401602060405180830381865afa15801561145a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147e9190612054565b600b546040516370a0823160e01b81523060048201529192505f916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156114c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ed9190612054565b600554600a549192506115129161010090046001600160a01b03908116911684611a3a565b600a54600b54604051610100909204606090811b6bffffffffffffffffffffffff19908116602085015261017760eb1b603485015291901b1660378201525f90604b0160408051601f19818403018152608083018252808352600c546001600160a01b0390811660208501528383018790525f6060850152600554925163b858183f60e01b8152919450919091169063b858183f906115b59084906004016123b5565b6020604051808303815f875af11580156115d1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f59190612054565b5050600a546040516370a0823160e01b81523060048201526101009091046001600160a01b031691506370a0823190602401602060405180830381865afa158015611642573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116669190612054565b915081156116eb57600a54600c5460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101859052610100909204169063a9059cbb906044016020604051808303815f875af11580156116c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e99190612402565b505b801561174b57600b54604051630852cd8d60e31b8152600481018390526001600160a01b03909116906342966c68906024015f604051808303815f87803b158015611734575f5ffd5b505af1158015611746573d5f5f3e3d5ffd5b505050505b505050505050505050505050565b610a955f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00610b3d565b6001600160a01b0381166117a1576117a16312e6291160e01b610b61565b5f546001600160a01b0316156117c1575f80546001600160a01b03191690555b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fac1f812621b6c406f47d89f077576cabc56e1309dc67429449723f66ad0dd2269060200160405180910390a150565b5f60018211611822575090565b816001600160801b821061183b5760809190911c9060401b5b600160401b82106118515760409190911c9060201b5b64010000000082106118685760209190911c9060101b5b62010000821061187d5760109190911c9060081b5b61010082106118915760089190911c9060041b5b601082106118a45760049190911c9060021b5b600482106118b05760011b5b600302600190811c908185816118c8576118c861201a565b048201901c905060018185816118e0576118e061201a565b048201901c905060018185816118f8576118f861201a565b048201901c905060018185816119105761191061201a565b048201901c905060018185816119285761192861201a565b048201901c905060018185816119405761194061201a565b048201901c905061195f8185816119595761195961201a565b04821190565b90039392505050565b80825d5050565b5f5f60205f8451602086015f885af18061198e576040513d5f823e3d81fd5b50505f513d915081156119a55780600114156119b2565b6001600160a01b0384163b155b156119db57604051635274afe760e01b81526001600160a01b0385166004820152602401610b8f565b50505050565b5f6119f9600160701b6001600160701b03841661241d565b92915050565b5f611a136001600160701b0383168461244e565b9392505050565b5f611a13611a30611a2b8585611ac9565b611b07565b600160601b611b27565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611a8b8482611b87565b6119db576040516001600160a01b0384811660248301525f6044830152611abf91869182169063095ea7b390606401610c3a565b6119db848261196f565b5f815f03611ad5575f5ffd5b5f611ae08484611bd0565b90506f7fffffffffffffffffffffffffffffff6001600160801b0382161115611a13575f5ffd5b5f5f82600f0b1215611b17575f5ffd5b6119f9604083600f0b901b611d2f565b5f815f03611b3257505f5b5f83600f0b1215611b41575f5ffd5b600f83900b6001600160801b038316810260401c90608084901c026001600160c01b03811115611b6f575f5ffd5b60401b8119811115611b7f575f5ffd5b019392505050565b5f5f5f5f60205f8651602088015f8a5af192503d91505f519050828015611bc657508115611bb85780600114611bc6565b5f866001600160a01b03163b115b9695505050505050565b5f815f03611bdc575f5ffd5b5f6001600160c01b038411611c065782604085901b81611bfe57611bfe61201a565b049050611d1c565b60c084811c6401000000008110611c1f576020918201911c5b620100008110611c31576010918201911c5b6101008110611c42576008918201911c5b60108110611c52576004918201911c5b60048110611c62576002918201911c5b60028110611c71576001820191505b60bf820360018603901c6001018260ff0387901b81611c9257611c9261201a565b0492506001600160801b03831115611ca8575f5ffd5b608085901c83026001600160801b038616840260c088901c604089901b82811015611cd4576001820391505b608084901b92900382811015611ceb576001820391505b829003608084901c8214611d0157611d0161247c565b888181611d1057611d1061201a565b04870196505050505050505b6001600160801b03811115611a13575f5ffd5b5f815f03611d3e57505f919050565b816001600160801b8210611d575760809190911c9060401b5b600160401b8210611d6d5760409190911c9060201b5b6401000000008210611d845760209190911c9060101b5b620100008210611d995760109190911c9060081b5b6101008210611dad5760089190911c9060041b5b60108210611dc05760049190911c9060021b5b60088210611dcc5760011b5b6001818581611ddd57611ddd61201a565b048201901c90506001818581611df557611df561201a565b048201901c90506001818581611e0d57611e0d61201a565b048201901c90506001818581611e2557611e2561201a565b048201901c90506001818581611e3d57611e3d61201a565b048201901c90506001818581611e5557611e5561201a565b048201901c90506001818581611e6d57611e6d61201a565b048201901c90505f818581611e8457611e8461201a565b049050808210611e945780611e96565b815b95945050505050565b8015158114610929575f5ffd5b6001600160a01b0381168114610929575f5ffd5b5f5f5f5f5f60a08688031215611ed4575f5ffd5b85359450602086013593506040860135611eed81611e9f565b92506060860135611efd81611e9f565b91506080860135611f0d81611eac565b809150509295509295909350565b5f5f5f5f5f5f5f5f5f5f6101408b8d031215611f35575f5ffd5b8a35611f4081611eac565b995060208b0135611f5081611eac565b985060408b0135611f6081611eac565b975060608b0135611f7081611eac565b965060808b0135611f8081611eac565b955060a08b0135611f9081611eac565b945060c08b0135611fa081611eac565b935060e08b0135611fb081611eac565b999c989b509699959894979396509194610100810135936101209091013592509050565b5f60208284031215611fe4575f5ffd5b8135611a1381611eac565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176119f9576119f9611fef565b634e487b7160e01b5f52601260045260245ffd5b5f8261203c5761203c61201a565b500490565b818103818111156119f9576119f9611fef565b5f60208284031215612064575f5ffd5b5051919050565b808201808211156119f9576119f9611fef565b5f8261208c5761208c61201a565b500690565b63ffffffff82811682821603908111156119f9576119f9611fef565b5f8160020b8360020b806120c3576120c361201a565b627fffff1982145f19821416156120dc576120dc611fef565b90059392505050565b5f8260020b8260020b028060020b915080821461210457612104611fef565b5092915050565b5f8160020b627fffff19810361212357612123611fef565b5f0392915050565b5f6020828403121561213b575f5ffd5b8151611a1381611eac565b81516001600160a01b031681526101608101602083015161217260208401826001600160a01b03169052565b506040830151612189604084018262ffffff169052565b50606083015161219e606084018260020b9052565b5060808301516121b3608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008301516101008301526101208301516121fa6101208401826001600160a01b03169052565b5061014092830151919092015290565b5f5f5f5f6080858703121561221d575f5ffd5b845160208601519094506001600160801b038116811461223b575f5ffd5b6040860151606090960151949790965092505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f82825180855260208501945060208160051b830101602085015f5b838110156122cd57601f198584030188526122b7838351612251565b602098890198909350919091019060010161229b565b50909695505050505050565b602081526122f36020820183516001600160a01b03169052565b602082015160408201525f604083015161231860608401826001600160a01b03169052565b5060608301516001600160a01b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e083015260e083015161237861010084018261ffff169052565b50610100830151610140610120840152612396610160840182612251565b9050610120840151601f1984830301610140850152611e96828261227f565b602081525f8251608060208401526123d060a0840182612251565b905060018060a01b03602085015116604084015260408401516060840152606084015160808401528091505092915050565b5f60208284031215612412575f5ffd5b8151611a1381611e9f565b6001600160e01b0381811683821681810290921691818304811482151761244657612446611fef565b505092915050565b5f6001600160e01b038316806124665761246661201a565b6001600160e01b03929092169190910492915050565b634e487b7160e01b5f52600160045260245ffdfea2646970667358221220eaa2dfb185decc21bb1f8f2e1395721ccedb908c68c19352a8154a0e49e78f6164736f6c634300081c0033