0 txs
71k calls
constructor
constructor(address positionManager_, bytes4 selectorIsPool_)
functions
D9
viewfunction D9() view returns (uint256)
factory
viewfunction factory() view returns (address)
getAmmPosition
viewfunction getAmmPosition(uint256 tokenId) view returns (tuple position)
getAmountsForLiquidity
purefunction getAmountsForLiquidity(uint128 liquidity, uint160 sqrtPriceX96, int24 tickLower, int24 tickUpper) pure returns (uint256, uint256)
getPool
viewfunction getPool(address token0, address token1, uint24 tickSpacing) view returns (address)
getProperty
viewfunction getProperty(address pool) view returns (uint24)
isPool
viewfunction isPool(address pool) view returns (bool)
MAX_PROTOCOL_FEE
viewfunction MAX_PROTOCOL_FEE() view returns (uint32)
positionManager
viewfunction positionManager() view returns (address)
selectorIsPool
viewfunction selectorIsPool() view returns (bytes4)
tvl
viewfunction tvl(uint256 tokenId, uint160 sqrtRatioX96, bytes callbackParams, bytes) view returns (uint256 amount0, uint256 amount1)
validateCallbackParams
viewfunction validateCallbackParams(address pool_, bytes params) view
validateProtocolParams
purefunction validateProtocolParams(bytes params) pure
afterRebalance
nonpayablefunction afterRebalance(uint256 tokenId, bytes callbackParams, bytes)
beforeRebalance
nonpayablefunction beforeRebalance(uint256 tokenId, bytes callbackParams, bytes protocolParams)
collectRewards
nonpayablefunction collectRewards(uint256 tokenId, bytes callbackParams, bytes protocolParams)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
events
No events.
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressZero
error AddressZero()
FailedCall
error FailedCall()
InvalidFee
error InvalidFee()
InvalidGauge
error InvalidGauge()
InvalidLength
error InvalidLength()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
T
error T()
creation bytecode
0x60e060405234801561000f575f80fd5b5060405161266f38038061266f83398101604081905261002e9161025c565b6001600160a01b03821660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610076573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061009a91906102a0565b6001600160a01b031660a0526001600160e01b0319811660c0526100bd5f6100d1565b156100ca576100ca6102bb565b505061031a565b60a05160c0516040516001600160a01b03841660248201525f92839261012c9260440160408051808303601f190181529190526020810180516001600160e01b0319939093166001600160e01b039384161790529061014916565b90508080602001905181019061014291906102cf565b9392505050565b60605f80846001600160a01b03168460405161016591906102ee565b5f60405180830381855afa9150503d805f811461019d576040519150601f19603f3d011682016040523d82523d5f602084013e6101a2565b606091505b5090925090506101b38583836101bc565b95945050505050565b6060826101d1576101cc8261021c565b610142565b81511580156101e857506001600160a01b0384163b155b1561021557604051639996b31560e01b81526001600160a01b038516600482015260240160405180910390fd5b5092915050565b80511561022c5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b0381168114610245575f80fd5b5f806040838503121561026d575f80fd5b825161027881610248565b60208401519092506001600160e01b031981168114610295575f80fd5b809150509250929050565b5f602082840312156102b0575f80fd5b815161014281610248565b634e487b7160e01b5f52600160045260245ffd5b5f602082840312156102df575f80fd5b81518015158114610142575f80fd5b5f82515f5b8181101561030d57602081860181015185830152016102f3565b505f920191825250919050565b60805160a05160c0516122e561038a5f395f8181610271015261094501525f818161024a015281816103ab015261092301525f81816101dc0152818161053501528181610616015281816106eb01528181610cd901528181610d3601528181610e220152610f5f01526122e55ff3fe608060405234801561000f575f80fd5b5060043610610106575f3560e01c8063791b98bc1161009e578063c4b012af1161006e578063c4b012af1461026c578063d0f6629b146102ac578063d163f5e0146102d4578063f71f0562146102e7578063fedbf94a14610365575f80fd5b8063791b98bc146101d7578063952ba6d4146101fe578063b8ca3b8314610225578063c45a015514610245575f80fd5b806347e17cd1116100d957806347e17cd114610175578063551530ae146101885780635b16ebb7146101a15780636d4772ce146101c4575f80fd5b80631698ee821461010a578063223a9cdd1461013a57806323b872dd1461014f57806333e0b4fe14610162575b5f80fd5b61011d610118366004611c6a565b610378565b6040516001600160a01b0390911681526020015b60405180910390f35b61014d610148366004611d7f565b610420565b005b61014d61015d366004611de7565b6105e8565b61014d610170366004611e25565b61075e565b61014d610183366004611e5f565b6107f8565b610193633b9aca0081565b604051908152602001610131565b6101b46101af366004611eac565b610907565b6040519015158152602001610131565b61014d6101d2366004611d7f565b6109b5565b61011d7f000000000000000000000000000000000000000000000000000000000000000081565b61021161020c366004611eac565b610c6b565b60405162ffffff9091168152602001610131565b6102306311e1a30081565b60405163ffffffff9091168152602001610131565b61011d7f000000000000000000000000000000000000000000000000000000000000000081565b6102937f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160e01b03199091168152602001610131565b6102bf6102ba366004611ec7565b610cd2565b60408051928352602083019190915201610131565b61014d6102e2366004611d7f565b610d85565b6102fa6102f5366004611f42565b610dec565b60405161013191905f60c08201905060018060a01b038084511683528060208501511660208401525062ffffff6040840151166040830152606083015160020b6060830152608083015160020b60808301526001600160801b0360a08401511660a083015292915050565b6102bf610373366004611f7b565b610eb4565b6040516328af8d0b60e01b81526001600160a01b0384811660048301528381166024830152600283900b60448301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906328af8d0b90606401602060405180830381865afa1580156103f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104169190611fd4565b90505b9392505050565b5f828060200190518101906104359190611fef565b602001519050806001600160a01b03166346c96aac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049b9190611fd4565b604051631703e5f960e01b81526001600160a01b0383811660048301529190911690631703e5f990602401602060405180830381865afa1580156104e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105059190612042565b61050f5750505050565b60405163095ea7b360e01b81526001600160a01b038281166004830152602482018690527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044015f604051808303815f87803b158015610576575f80fd5b505af1158015610588573d5f803e3d5ffd5b505060405163b6b55f2560e01b8152600481018790526001600160a01b038416925063b6b55f2591506024015b5f604051808303815f87803b1580156105cc575f80fd5b505af11580156105de573d5f803e3d5ffd5b5050505050505050565b6040516323b872dd60e01b81526001600160a01b0384811660048301528381166024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064015f604051808303815f87803b158015610657575f80fd5b505af1158015610669573d5f803e3d5ffd5b50505050306001600160a01b0316826001600160a01b03160361075957604080516080810182528281526001600160a01b03858116602083019081526001600160801b0383850181815260608501828152955163fc6f786560e01b815294516004860152915183166024850152905181166044840152925190921660648201527f00000000000000000000000000000000000000000000000000000000000000009091169063fc6f78659060840160408051808303815f875af1158015610732573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610756919061205b565b50505b505050565b80516040146107805760405163251f56a160e21b815260040160405180910390fd5b5f818060200190518101906107959190612090565b90506311e1a30063ffffffff16816020015163ffffffff1611156107cc576040516358d620b360e01b815260040160405180910390fd5b80516001600160a01b03166107f457604051639fabe1c160e01b815260040160405180910390fd5b5050565b805160401461081a5760405163251f56a160e21b815260040160405180910390fd5b5f8180602001905181019061082f9190611fef565b80519091506001600160a01b03161580610854575060208101516001600160a01b0316155b1561087257604051639fabe1c160e01b815260040160405180910390fd5b80602001516001600160a01b0316836001600160a01b031663a6f19c846040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e09190611fd4565b6001600160a01b031614610759576040516365da5bb960e11b815260040160405180910390fd5b6040516001600160a01b03821660248201525f90819061099f907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009060440160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610ee0565b9050808060200190518101906104199190612042565b5f828060200190518101906109ca9190611fef565b90505f828060200190518101906109e19190612090565b90505f826020015190505f80826001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4d9190611fd4565b9050610a598389610f52565b15610c01576040516370a0823160e01b81523060048201819052906001600160a01b038316906370a0823190602401602060405180830381865afa158015610aa3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac791906120c1565b604051631c4b774b60e01b8152600481018b90529093506001600160a01b03851690631c4b774b906024015f604051808303815f87803b158015610b09575f80fd5b505af1158015610b1b573d5f803e3d5ffd5b50506040516370a0823160e01b81526001600160a01b038481166004830152869350851691506370a0823190602401602060405180830381865afa158015610b65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8991906120c1565b610b9391906120ec565b92508215610bff575f610bb5866020015163ffffffff1685633b9aca00610ffb565b90508015610bd4578551610bd4906001600160a01b03851690836110b1565b610bde81856120ec565b93508315610bfd578651610bfd906001600160a01b03851690866110b1565b505b505b84516040516370fd458160e11b8152600481018490526001600160a01b0383811660248301529091169063e1fa8b02906044015f604051808303815f87803b158015610c4b575f80fd5b505af1158015610c5d573d5f803e3d5ffd5b505050505050505050505050565b5f816001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccc91906120ff565b92915050565b5f80610cff7f00000000000000000000000000000000000000000000000000000000000000008787611103565b855191935091505f90610d1b9086016020908101908701611fef565b602001519050610d2b8188610f52565b610d7b575f80610d5b7f00000000000000000000000000000000000000000000000000000000000000008a611147565b9092509050610d6a828661211a565b9450610d76818561211a565b935050505b5094509492505050565b5f82806020019051810190610d9a9190611fef565b602001519050610daa8185610f52565b610db45750505050565b610dbf8484846109b5565b604051632e1a7d4d60e01b8152600481018590526001600160a01b03821690632e1a7d4d906024016105b5565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905290610e477f000000000000000000000000000000000000000000000000000000000000000084611213565b6040808201516001600160a01b039081168552606080840151909116602086015260808084015162ffffff169286019290925260a080840151600290810b9287019290925260c084015190910b9185019190915260e0909101516001600160801b03169083015250919050565b5f80610ed285610ec3866112b1565b610ecc866112b1565b896115cc565b915091505b94509492505050565b60605f80846001600160a01b031684604051610efc919061212d565b5f60405180830381855afa9150503d805f8114610f34576040519150601f19603f3d011682016040523d82523d5f602084013e610f39565b606091505b5091509150610f49858383611666565b95945050505050565b5f826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e846040518263ffffffff1660e01b8152600401610fab91815260200190565b602060405180830381865afa158015610fc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fea9190611fd4565b6001600160a01b0316149392505050565b5f838302815f1985870982811083820303915050805f0361102f5783828161102557611025612159565b0492505050610419565b8084116110465761104660038515026011186116c7565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526107599084906116d8565b5f805f6111108686611213565b905061113a846111238360a001516112b1565b6111308460c001516112b1565b8460e001516115cc565b9250925050935093915050565b5f805f6111548585611213565b90506112078560405180610140016040528084604001516001600160a01b0316815260200184606001516001600160a01b03168152602001846080015160020b81526020018460a0015160020b81526020018460c0015160020b81526020018460e001516001600160801b03168152602001846101000151815260200184610120015181526020018461014001516001600160801b031681526020018461016001516001600160801b031681525061174a565b92509250509250929050565b604080516101a0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081019190915260405163133f757160e31b815282600482015261018082602483875afa9050806112a3575f80fd5b508161018082015292915050565b5f805f8360020b126112c6578260020b6112cd565b8260020b5f035b9050620d89e88111156112f3576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361130857600160801b61131a565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561134e576ffff97272373d413259a46990580e213a0260801c5b600482161561136d576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561138c576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156113ab576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156113ca576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156113e9576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611408576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611428576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611448576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611468576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611488576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156114a8576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156114c8576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156114e8576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611508576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611529576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611549576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611568576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611585576b048a170391f7dc42444e8fa20260801c5b5f8460020b13156115a457805f19816115a0576115a0612159565b0490505b6401000000008106156115b85760016115ba565b5f5b60ff16602082901c0192505050919050565b5f80836001600160a01b0316856001600160a01b031611156115ec579293925b846001600160a01b0316866001600160a01b031611611617576116108585856118b9565b9150610ed7565b836001600160a01b0316866001600160a01b031610156116505761163c8685856118b9565b9150611649858785611927565b9050610ed7565b61165b858585611927565b905094509492505050565b60608261167b5761167682611969565b610419565b815115801561169257506001600160a01b0384163b155b156116c057604051639996b31560e01b81526001600160a01b03851660048201526024015b60405180910390fd5b5080610419565b634e487b715f52806020526024601cfd5b5f8060205f8451602086015f885af1806116f7576040513d5f823e3d81fd5b50505f513d9150811561170e57806001141561171b565b6001600160a01b0384163b155b1561174457604051635274afe760e01b81526001600160a01b03851660048201526024016116b7565b50505050565b5f805f80611844866001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b19190611fd4565b865160208801516040808a015190516328af8d0b60e01b81526001600160a01b039384166004820152918316602483015260020b60448201529116906328af8d0b90606401602060405180830381865afa158015611811573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118359190611fd4565b86606001518760800151611995565b915091508461010001516001600160801b03166118798660c0015184038760a001516001600160801b0316600160801b610ffb565b0193508461012001516001600160801b03166118ad8660e0015183038760a001516001600160801b0316600160801b610ffb565b01925050509250929050565b5f826001600160a01b0316846001600160a01b031611156118d8579192915b836001600160a01b0316611911606060ff16846001600160801b0316901b8686036001600160a01b0316866001600160a01b0316611c17565b8161191e5761191e612159565b04949350505050565b5f826001600160a01b0316846001600160a01b03161115611946579192915b610416826001600160801b03168585036001600160a01b0316600160601b611c17565b8051156119795780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b5f805f856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160c060405180830381865afa1580156119d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f8919061217e565b505060405163f30dba9360e01b815260028a900b60048201529294505f935083926001600160a01b038b16925063f30dba93915060240161014060405180830381865afa158015611a4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a6f9190612204565b505060405163f30dba9360e01b815260028f900b60048201529499509297505f965086955050506001600160a01b038d16925063f30dba9391602401905061014060405180830381865afa158015611ac9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aed9190612204565b5050505050945094505050508860020b8560020b1215611b165781840396508083039550611c0a565b8760020b8560020b1215611bff575f8a6001600160a01b031663f30583996040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8591906120c1565b90505f8b6001600160a01b031663461413196040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be891906120c1565b905083868303039850828582030397505050611c0a565b838203965082810395505b5050505050935093915050565b5f80805f19858709858702925082811083820303915050805f03611c4b575f8411611c40575f80fd5b508290049050610419565b808411611046575f80fd5b6001600160a01b0381168114611992575f80fd5b5f805f60608486031215611c7c575f80fd5b8335611c8781611c56565b92506020840135611c9781611c56565b9150604084013562ffffff81168114611cae575f80fd5b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715611cf057611cf0611cb9565b60405290565b5f82601f830112611d05575f80fd5b813567ffffffffffffffff80821115611d2057611d20611cb9565b604051601f8301601f19908116603f01168101908282118183101715611d4857611d48611cb9565b81604052838152866020858801011115611d60575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f60608486031215611d91575f80fd5b83359250602084013567ffffffffffffffff80821115611daf575f80fd5b611dbb87838801611cf6565b93506040860135915080821115611dd0575f80fd5b50611ddd86828701611cf6565b9150509250925092565b5f805f60608486031215611df9575f80fd5b8335611e0481611c56565b92506020840135611e1481611c56565b929592945050506040919091013590565b5f60208284031215611e35575f80fd5b813567ffffffffffffffff811115611e4b575f80fd5b611e5784828501611cf6565b949350505050565b5f8060408385031215611e70575f80fd5b8235611e7b81611c56565b9150602083013567ffffffffffffffff811115611e96575f80fd5b611ea285828601611cf6565b9150509250929050565b5f60208284031215611ebc575f80fd5b813561041981611c56565b5f805f8060808587031215611eda575f80fd5b843593506020850135611eec81611c56565b9250604085013567ffffffffffffffff80821115611f08575f80fd5b611f1488838901611cf6565b93506060870135915080821115611f29575f80fd5b50611f3687828801611cf6565b91505092959194509250565b5f60208284031215611f52575f80fd5b5035919050565b6001600160801b0381168114611992575f80fd5b8060020b8114611992575f80fd5b5f805f8060808587031215611f8e575f80fd5b8435611f9981611f59565b93506020850135611fa981611c56565b92506040850135611fb981611f6d565b91506060850135611fc981611f6d565b939692955090935050565b5f60208284031215611fe4575f80fd5b815161041981611c56565b5f60408284031215611fff575f80fd5b612007611ccd565b825161201281611c56565b8152602083015161202281611c56565b60208201529392505050565b8051801515811461203d575f80fd5b919050565b5f60208284031215612052575f80fd5b6104198261202e565b5f806040838503121561206c575f80fd5b505080516020909101519092909150565b805163ffffffff8116811461203d575f80fd5b5f604082840312156120a0575f80fd5b6120a8611ccd565b82516120b381611c56565b81526120226020840161207d565b5f602082840312156120d1575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610ccc57610ccc6120d8565b5f6020828403121561210f575f80fd5b815161041981611f6d565b80820180821115610ccc57610ccc6120d8565b5f82515f5b8181101561214c5760208186018101518583015201612132565b505f920191825250919050565b634e487b7160e01b5f52601260045260245ffd5b805161ffff8116811461203d575f80fd5b5f805f805f8060c08789031215612193575f80fd5b865161219e81611c56565b60208801519096506121af81611f6d565b94506121bd6040880161216d565b93506121cb6060880161216d565b92506121d96080880161216d565b91506121e760a0880161202e565b90509295509295509295565b8051600f81900b811461203d575f80fd5b5f805f805f805f805f806101408b8d03121561221e575f80fd5b8a5161222981611f59565b995061223760208c016121f3565b985061224560408c016121f3565b975060608b0151965060808b0151955060a08b0151945060c08b01518060060b811461226f575f80fd5b60e08c015190945061228081611c56565b925061228f6101008c0161207d565b915061229e6101208c0161202e565b90509295989b9194979a509295985056fea2646970667358221220dda0d19cb90675b35bbb263326fa12d2fe9b54a89dac054ddbf426fba09733c764736f6c63430008190033000000000000000000000000827922686190790b37229fd06084350e74485b725b16ebb700000000000000000000000000000000000000000000000000000000