0 txs
629 calls
constructor
No constructor.
functions
calculateCenteredPosition
purefunction calculateCenteredPosition(uint160 sqrtPriceX96, int24 tick, int24 positionWidth, int24 tickSpacing) pure returns (int24 targetTickLower, int24 targetTickUpper)
calculatePenalty
purefunction calculatePenalty(uint160 sqrtPriceX96, uint160 sqrtPriceX96Lower, uint160 sqrtPriceX96Upper) pure returns (uint256)
calculatePulsePosition
purefunction calculatePulsePosition(uint160 sqrtPriceX96, int24 tick, int24 tickLower, int24 tickUpper, tuple params) pure returns (int24 targetTickLower, int24 targetTickUpper)
calculateTamperPosition
purefunction calculateTamperPosition(uint160 sqrtPriceX96, int24 tick, int24 width) pure returns (int24 targetLower, uint256 lowerLiquidityRatioX96)
calculateTarget
purefunction calculateTarget(uint160 sqrtPriceX96, int24 tick, tuple[] positions, tuple strategyParams) pure returns (bool isRebalanceRequired, tuple target)
calculateTargetPulse
purefunction calculateTargetPulse(uint160 sqrtPriceX96, int24 tick, tuple[] positions, tuple params) pure returns (bool isRebalanceRequired, tuple target)
calculateTargetTamper
purefunction calculateTargetTamper(uint160 sqrtPriceX96, int24 tick, tuple[] positions, tuple params) pure returns (bool isRebalanceRequired, tuple target)
getTargets
viewfunction getTargets(tuple info, address ammModule, address oracle) view returns (bool isRebalanceRequired, tuple target)
validateStrategyParams
purefunction validateStrategyParams(bytes params_) pure
events
No events.
errors
InvalidLength
error InvalidLength()
InvalidParams
error InvalidParams()
R
error R()
T
error T()
creation bytecode
0x6080604052348015600e575f80fd5b5061236f8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c8063b95443b811610063578063b95443b814610113578063bb68d52814610126578063cc43549a14610139578063d118f66c14610166578063f784aab414610187575f80fd5b8063263c7f7014610094578063533dfe26146100be578063623468be146100eb5780637b845a34146100fe575b5f80fd5b6100a76100a2366004611a2c565b61019a565b6040516100b5929190611be1565b60405180910390f35b6100d16100cc366004611c71565b6101e7565b60408051600293840b81529190920b6020820152016100b5565b6100a76100f9366004611a2c565b610465565b61011161010c366004611d48565b61087a565b005b6100a7610121366004611a2c565b610a68565b6100d1610134366004611d82565b610bf1565b61014c610147366004611ddb565b610d0a565b6040805160029390930b83526020830191909152016100b5565b610179610174366004611e23565b610e68565b6040519081526020016100b5565b6100a7610195366004611eda565b610efb565b5f6101a3611810565b6004835160048111156101b8576101b8612011565b036101d2576101c986868686610465565b915091506101de565b6101c986868686610a68565b94509492505050565b5f806102018360200151866101fc9190612039565b6110d3565b6001600160a01b0316876001600160a01b03161015801561024657506102308360200151856101fc919061205e565b6001600160a01b0316876001600160a01b031611155b80156102645750610257858561205e565b60020b836060015160020b145b1561027357508390508261045b565b61027d858561205e565b60020b836060015160020b1415806102a657505f835160048111156102a4576102a4612011565b145b156102c8576102bf878785606001518660400151610bf1565b9150915061045b565b5f6102d2866110d3565b90505f6102de866110d3565b90506003855160048111156102f5576102f5612011565b1480156103145750816001600160a01b0316896001600160a01b031610155b1561032657868693509350505061045b565b60028551600481111561033b5761033b612011565b14801561035a5750806001600160a01b0316896001600160a01b031611155b1561036c57868693509350505061045b565b5f85604001518961037d9190612097565b90505f8160020b121561039d5780866040015161039a9190612039565b90505b6103a7818a61205e565b9450816001600160a01b03168a6001600160a01b031611156103d95760608601516103d2908661205e565b9450610446565b826001600160a01b03168a6001600160a01b03161015610438578060020b5f14158061041f5750896001600160a01b03166104138a6110d3565b6001600160a01b031614155b156104335760408601516103d29086612039565b610446565b87879450945050505061045b565b60608601516104559086612039565b93505050505b9550959350505050565b5f61046e611810565b60608301515f61047f6002836120b8565b90505f8061048e8a8a86610d0a565b9150915087516002141595506104a261183e565b6104aa61183e565b8761056c57895f815181106104c1576104c16120f0565b60200260200101519150896001815181106104de576104de6120f0565b602002602001015190508560020b82606001518360800151610500919061205e565b60020b14158061052957508560020b81606001518260800151610523919061205e565b60020b14155b8061054d575084816060015161053f9190612039565b60020b826080015160020b14155b8061056957508482606001516105639190612097565b60020b15155b97505b876106d3575f808260a001518460a001516105879190612104565b6001600160801b031690505f6105af600160601b8660a001516001600160801b0316846113ee565b90505f6105c082600160601b61212b565b90505f6105d188600160601b61212b565b9050866060015160020b8960020b03610621576105ee81836114a4565b6105f889856114a4565b61060690600160601b61212b565b610610919061212b565b61061a908661213e565b94506106c4565b606087015160020b6106338b8b612039565b60020b036106535761064581846114a4565b61061090600160601b61212b565b606087015160020b6106658b8b61205e565b60020b036106775761064588836114a4565b600160601b9450866060015160020b8960020b12156106ae578987606001516106a0919061205e565b9850600160601b97506106c4565b8987606001516106be9190612039565b98505f97505b8d6080015185119c5050505050505b871561086b57604080516002808252606082018352909160208301908036833701905050602088015260408051600280825260608201909252908160200160208202803683375050506040888101919091528051600280825260608201835290916020830190803683375050506060880152602087015180518591905f9061075d5761075d6120f0565b60029290920b6020928302919091019091015261077a8585612039565b8760200151600181518110610791576107916120f0565b60029290920b602092830291909101909101526107ae8685612039565b87604001515f815181106107c4576107c46120f0565b60029290920b60209283029190910190910152856107e28686612039565b6107ec9190612039565b8760400151600181518110610803576108036120f0565b602002602001019060020b908160020b815250508287606001515f8151811061082e5761082e6120f0565b602090810291909101015261084783600160601b61212b565b876060015160018151811061085e5761085e6120f0565b6020026020010181815250505b50505050505094509492505050565b805160a01461089c5760405163251f56a160e21b815260040160405180910390fd5b5f818060200190518101906108b19190612151565b9050806060015160020b5f14806108cd5750604081015160020b155b806108ed5750806040015181606001516108e79190612097565b60020b15155b8061090a575060048151600481111561090857610908612011565b115b1561092857604051635435b28960e11b815260040160405180910390fd5b5f8151600481111561093c5761093c612011565b0361098157806060015160020b8160200151600261095a91906121c2565b60020b131561097c57604051635435b28960e11b815260040160405180910390fd5b6109a7565b602081015160020b156109a757604051635435b28960e11b815260040160405180910390fd5b6004815160048111156109bc576109bc612011565b03610a4557600281606001516109d29190612097565b60020b151580610a0357508060400151600282606001516109f391906120b8565b6109fd9190612097565b60020b15155b80610a1057506080810151155b80610a235750600160601b816080015110155b15610a4157604051635435b28960e11b815260040160405180910390fd5b5050565b608081015115610a4157604051635435b28960e11b815260040160405180910390fd5b5f610a71611810565b5f80855160011415935083610ac157855f81518110610a9257610a926120f0565b6020026020010151606001519150855f81518110610ab257610ab26120f0565b60200260200101516080015190505b5f80610ad08a8a86868b6101e7565b915091508360020b8260020b148015610aee57508260020b8160020b145b15610aff575f9550505050506101de565b6040805160018082528183019092529060208083019080368337019050506020860152604080516001808252818301909252908160200160208202803683375050506040860152602085015180518391905f90610b5e57610b5e6120f0565b602002602001019060020b908160020b815250508085604001515f81518110610b8957610b896120f0565b60029290920b602092830291909101820152604080516001808252818301909252918281019080368337505050606086018190528051600160601b91905f90610bd457610bd46120f0565b602002602001018181525050600195505050505094509492505050565b5f80610bfe6002856120b8565b610c08908661205e565b91505f610c158484612097565b90505f8160020b1215610c2f57610c2c8482612039565b90505b610c39818461205e565b9250610c458584612039565b91505f610c5e88610c55866110d3565b610174866110d3565b90505f610c7f89610c726101fc898961205e565b6101746101fc8a8961205e565b90505f610ca08a610c936101fc8a8a612039565b6101746101fc8b8a612039565b9050818311158015610cb25750808311155b15610cc057505050506101de565b808211610ce457610cd1878761205e565b9550610cdd878661205e565b9450610cfd565b610cee8787612039565b9550610cfa8786612039565b94505b5050505094509492505050565b5f8080610d186002856120b8565b9050610d2f8686610d298488612039565b84610bf1565b5092505f610d406101fc8386612039565b9050806001600160a01b0316876001600160a01b031611610d6757600160601b9250610e5e565b610d746101fc8686612039565b6001600160a01b0316876001600160a01b031610610d94575f9250610e5e565b5f610d9e876110d3565b90505f610daf6101fc896001612039565b90505f610de5600160601b610dc4858d6121e1565b6001600160a01b0316610dd786866121e1565b6001600160a01b03166113ee565b610df7600160601b60028c900b612201565b610e019190612230565b90505f600160601b610e2f610e1a8260028c900b612201565b610e249085612257565b8862ffffff166114b8565b610e39919061212b565b9050610e49600160601b826114a4565b610e5790600160601b61212b565b9650505050505b5050935093915050565b5f826001600160a01b0316846001600160a01b03161080610e9a5750816001600160a01b0316846001600160a01b0316115b15610ea757505f19610ef4565b610ef1610ecb856001600160a01b0316600160601b866001600160a01b03166113ee565b610eec846001600160a01b0316600160601b886001600160a01b03166113ee565b6114eb565b90505b9392505050565b5f610f04611810565b5f8560c00151806020019051810190610f1d9190612151565b6060870151604051631d7d882b60e21b81526001600160a01b0391821660048201529192505f9182918716906375f620ac906024016040805180830381865afa158015610f6c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f909190612276565b91509150610f9d826114fa565b6080890151519091505f8167ffffffffffffffff811115610fc057610fc0611897565b604051908082528060200260200182016040528015610ff957816020015b610fe661183e565b815260200190600190039081610fde5790505b5090505f5b828110156110b557896001600160a01b031663f71f05628c60800151838151811061102b5761102b6120f0565b60200260200101516040518263ffffffff1660e01b815260040161105191815260200190565b60c060405180830381865afa15801561106c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109091906122ae565b8282815181106110a2576110a26120f0565b6020908102919091010152600101610ffe565b506110c28484838861019a565b965096505050505050935093915050565b5f805f8360020b126110e8578260020b6110ef565b8260020b5f035b9050620d89e8811115611115576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361112a57600160801b61113c565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611170576ffff97272373d413259a46990580e213a0260801c5b600482161561118f576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156111ae576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156111cd576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156111ec576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561120b576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561122a576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561124a576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561126a576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561128a576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156112aa576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156112ca576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156112ea576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561130a576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561132a576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561134b576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561136b576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561138a576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156113a7576b048a170391f7dc42444e8fa20260801c5b5f8460020b13156113c657805f19816113c2576113c2612083565b0490505b6401000000008106156113da5760016113dc565b5f5b60ff16602082901c0192505050919050565b5f838302815f1985870982811083820303915050805f036114225783828161141857611418612083565b0492505050610ef4565b8084116114395761143960038515026011186117ff565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f8282188284100282185b90505b92915050565b5f815f036114ca576114ca60126117ff565b8160018403816114dc576114dc612083565b04600101831515029392505050565b5f8282188284110282186114af565b5f6401000276a36001600160a01b03831610801590611535575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b611552576040516324c070df60e11b815260040160405180910390fd5b640100000000600160c01b03602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106115e657607f810383901c91506115f0565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146117f057886001600160a01b03166117d5826110d3565b6001600160a01b031611156117ea57816117f2565b806117f2565b815b9998505050505050505050565b634e487b715f52806020526024601cfd5b6040518060a001604052805f8152602001606081526020016060815260200160608152602001606081525090565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a081019190915290565b6001600160a01b0381168114611886575f80fd5b50565b8060020b8114611886575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156118ce576118ce611897565b60405290565b60405160c0810167ffffffffffffffff811182821017156118ce576118ce611897565b604051610100810167ffffffffffffffff811182821017156118ce576118ce611897565b604051601f8201601f1916810167ffffffffffffffff8111828210171561194457611944611897565b604052919050565b5f67ffffffffffffffff82111561196557611965611897565b5060051b60200190565b803561197a81611872565b919050565b62ffffff81168114611886575f80fd5b803561197a8161197f565b6001600160801b0381168114611886575f80fd5b60058110611886575f80fd5b5f60a082840312156119ca575f80fd5b6119d26118ab565b905081356119df816119ae565b815260208201356119ef81611889565b60208201526040820135611a0281611889565b60408201526060820135611a1581611889565b806060830152506080820135608082015292915050565b5f805f806101008587031215611a40575f80fd5b8435611a4b81611872565b9350602085810135611a5c81611889565b935060408681013567ffffffffffffffff811115611a78575f80fd5b8701601f81018913611a88575f80fd5b8035611a9b611a968261194c565b61191b565b81815260c0918202830185019185820191908c841115611ab9575f80fd5b938601935b83851015611b535780858e031215611ad4575f80fd5b611adc6118d4565b8535611ae781611872565b815285880135611af681611872565b8189015285870135611b078161197f565b81880152606086810135611b1a81611889565b90820152608086810135611b2d81611889565b9082015260a086810135611b408161199a565b9082015283529384019391860191611abe565b50809750505050505050611b6a86606087016119ba565b905092959194509250565b5f815180845260208085019450602084015f5b83811015611ba757815160020b87529582019590820190600101611b88565b509495945050505050565b5f815180845260208085019450602084015f5b83811015611ba757815187529582019590820190600101611bc5565b821515815260406020820152815160408201525f602083015160a06060840152611c0e60e0840182611b75565b90506040840151603f1980858403016080860152611c2c8383611b75565b925060608601519150808584030160a0860152611c498383611bb2565b925060808601519150808584030160c086015250611c678282611bb2565b9695505050505050565b5f805f805f6101208688031215611c86575f80fd5b8535611c9181611872565b94506020860135611ca181611889565b93506040860135611cb181611889565b92506060860135611cc181611889565b9150611cd087608088016119ba565b90509295509295909350565b5f82601f830112611ceb575f80fd5b813567ffffffffffffffff811115611d0557611d05611897565b611d18601f8201601f191660200161191b565b818152846020838601011115611d2c575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611d58575f80fd5b813567ffffffffffffffff811115611d6e575f80fd5b611d7a84828501611cdc565b949350505050565b5f805f8060808587031215611d95575f80fd5b8435611da081611872565b93506020850135611db081611889565b92506040850135611dc081611889565b91506060850135611dd081611889565b939692955090935050565b5f805f60608486031215611ded575f80fd5b8335611df881611872565b92506020840135611e0881611889565b91506040840135611e1881611889565b809150509250925092565b5f805f60608486031215611e35575f80fd5b8335611e4081611872565b92506020840135611e5081611872565b91506040840135611e1881611872565b803563ffffffff8116811461197a575f80fd5b5f82601f830112611e82575f80fd5b81356020611e92611a968361194c565b8083825260208201915060208460051b870101935086841115611eb3575f80fd5b602086015b84811015611ecf5780358352918301918301611eb8565b509695505050505050565b5f805f60608486031215611eec575f80fd5b833567ffffffffffffffff80821115611f03575f80fd5b908501906101008288031215611f17575f80fd5b611f1f6118f7565b611f2883611e60565b8152611f366020840161198f565b6020820152611f476040840161196f565b6040820152611f586060840161196f565b6060820152608083013582811115611f6e575f80fd5b611f7a89828601611e73565b60808301525060a083013582811115611f91575f80fd5b611f9d89828601611cdc565b60a08301525060c083013582811115611fb4575f80fd5b611fc089828601611cdc565b60c08301525060e083013582811115611fd7575f80fd5b611fe389828601611cdc565b60e0830152509450611ffa9150506020850161196f565b91506120086040850161196f565b90509250925092565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b600281810b9083900b01627fffff8113627fffff19821217156114b2576114b2612025565b600282810b9082900b03627fffff198112627fffff821317156114b2576114b2612025565b634e487b7160e01b5f52601260045260245ffd5b5f8260020b806120a9576120a9612083565b808360020b0791505092915050565b5f8160020b8360020b806120ce576120ce612083565b627fffff1982145f19821416156120e7576120e7612025565b90059392505050565b634e487b7160e01b5f52603260045260245ffd5b6001600160801b0381811683821601908082111561212457612124612025565b5092915050565b818103818111156114b2576114b2612025565b808201808211156114b2576114b2612025565b5f60a08284031215612161575f80fd5b6121696118ab565b8251612174816119ae565b8152602083015161218481611889565b6020820152604083015161219781611889565b604082015260608301516121aa81611889565b60608201526080928301519281019290925250919050565b5f8260020b8260020b028060020b915080821461212457612124612025565b6001600160a01b0382811682821603908082111561212457612124612025565b8082025f8212600160ff1b8414161561221c5761221c612025565b81810583148215176114b2576114b2612025565b8082018281125f83128015821682158216171561224f5761224f612025565b505092915050565b8181035f83128015838313168383128216171561212457612124612025565b5f8060408385031215612287575f80fd5b825161229281611872565b60208401519092506122a381611889565b809150509250929050565b5f60c082840312156122be575f80fd5b6122c66118d4565b82516122d181611872565b815260208301516122e181611872565b602082015260408301516122f48161197f565b6040820152606083015161230781611889565b6060820152608083015161231a81611889565b608082015260a083015161232d8161199a565b60a0820152939250505056fea26469706673582212207e46e3837356b8ab30e221026d3dbaeeb53d2d124802739f9e006cc955db0ca364736f6c63430008190033