2k txs
8.1k calls
constructor
constructor(address _positionManager, address _feeCollector)
functions
allTokenIds
viewfunction allTokenIds(uint256) view returns (uint256)
defaultLockingPeriod
viewfunction defaultLockingPeriod() view returns (uint64)
defaultLpFeesCut
viewfunction defaultLpFeesCut() view returns (uint16)
feeCollector
viewfunction feeCollector() view returns (address)
getAllPositions
viewfunction getAllPositions() view returns (uint256[])
getPositionsForUser
viewfunction getPositionsForUser(address user) view returns (uint256[])
isPositionOwner
viewfunction isPositionOwner(address user, uint256 tokenId) view returns (bool)
owner
viewfunction owner() view returns (address)
positionManager
viewfunction positionManager() view returns (address)
positions
viewfunction positions(uint256) view returns (address owner, uint64 unlockTime, uint16 lpFeesCut, bool initialized)
PROTOCOL_ADDRESS
viewfunction PROTOCOL_ADDRESS() view returns (address)
userTokenIds
viewfunction userTokenIds(address, uint256) view returns (uint256)
collectAllFees
nonpayablefunction collectAllFees() returns (uint256 positionsCount, uint256 totalAmount0, uint256 totalAmount1)
collectFees
nonpayablefunction collectFees(uint256 tokenId) returns (uint256 amount0, uint256 amount1)
collectSelectedFees
nonpayablefunction collectSelectedFees(uint256[] tokenIds) returns (uint256 processedCount, uint256 totalAmount0, uint256 totalAmount1)
initializePosition
nonpayablefunction initializePosition(uint256 tokenId, address owner, uint64 unlockTime, uint16 lpFeesCut)
onERC721Received
nonpayablefunction onERC721Received(address, address from, uint256 id, bytes) returns (bytes4)
protocolCollectAllFees
nonpayablefunction protocolCollectAllFees() returns (uint256 processedCount, uint256 totalAmount0, uint256 totalAmount1)
protocolCollectFeesBatch
nonpayablefunction protocolCollectFeesBatch(uint256 startIndex, uint256 count) returns (uint256 processedCount, uint256 totalAmount0, uint256 totalAmount1)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateDefaultLockingPeriod
nonpayablefunction updateDefaultLockingPeriod(uint64 _defaultLockingPeriod)
updateDefaultLpFeesCut
nonpayablefunction updateDefaultLpFeesCut(uint16 _defaultLpFeesCut)
updateFeeCollector
nonpayablefunction updateFeeCollector(address _feeCollector)
withdraw
nonpayablefunction withdraw(uint256 tokenId, address recipient)
events
BatchFeesCollected
event BatchFeesCollected(address indexed owner, uint256 count, uint256 totalAmount0, uint256 totalAmount1)
FeesCollected
event FeesCollected(uint256 indexed tokenId, address token0, address token1, uint256 amount0, uint256 amount1)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PositionLocked
event PositionLocked(address indexed owner, uint256 indexed tokenId, uint64 unlockTime)
PositionWithdrawn
event PositionWithdrawn(address indexed owner, uint256 indexed tokenId, address indexed recipient)
ProtocolBatchFeesCollected
event ProtocolBatchFeesCollected(uint256 count, uint256 totalAmount0, uint256 totalAmount1)
Received
event Received(address indexed from, uint256 tokenId)
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x60803461010157601f61188f38819003918201601f19168301916001600160401b0383118484101761010657808492604094855283398101031261010157610052602061004b8361011c565b920161011c565b33156100eb5760008054336001600160a01b0319821681178355604051949290916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3600180546001600160f01b0319166001600160a01b039283161764784ce0007d60a21b179055600280546001600160a01b0319169290911691909117905561175e90816101318239f35b631e4fbdf760e01b600052600060045260246000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101015756fe6080604052600436101561001257600080fd5b6000803560e01c8062f714ce14610d7357806302a2647114610d29578063150b7a0214610c7e57806318f56a0a14610c095780632722feee14610bda5780632bde2bfc14610b975780633aa10f1f14610b3c578063402adba914610a3d5780634751dbaa14610a18578063686f2c90146108dc578063715018a614610882578063791b98bc146108595780637d07b2d21461082e57806387b7f85c146106d257806389853f54146104d85780638da5cb5b146104b15780638eaa826b146103b357806399fbab8814610353578063b17acdcd14610328578063c415b95c146102ff578063c6d6fe3c1461027d578063cc17e15d14610226578063d2c35ce8146101e1578063d406d751146101b75763f2fde38b1461012f57600080fd5b346101b45760203660031901126101b457610148610f5e565b6101506116ff565b6001600160a01b031680156101a05781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b80fd5b50346101b457806003193601126101b45760206001600160401b0360015460b01c16604051908152f35b50346101b45760203660031901126101b4576101fb610f5e565b6102036116ff565b60018060a01b03166bffffffffffffffffffffffff60a01b600254161760025580f35b50346101b45760403660031901126101b457610240610f5e565b6001600160a01b03168152600460205260408120805460243592908310156101b457602061026e8484610fdf565b90549060031b1c604051908152f35b50346101b45760203660031901126101b4576001600160a01b0361029f610f5e565b168152600460205260408120604051918260208354918281520192825260208220915b8181106102e9576102e5856102d98187038261106d565b60405191829182610f74565b0390f35b82548452602090930192600192830192016102c2565b50346101b457806003193601126101b4576002546040516001600160a01b039091168152602090f35b50346101b45760203660031901126101b45760406103476004356111a3565b82519182526020820152f35b50346101b45760203660031901126101b457604060809160043581526003602052205460ff6040519160018060a01b03811683526001600160401b038160a01c16602084015261ffff8160e01c16604084015260f01c1615156060820152f35b50346101b457806003193601126101b4576103e373e33be189b01388d8224f4b1933e085868d7cb6db3314610ff7565b6005548180805b8381106104595750506102e5907f905b697b9e75982167ab0f854b5e635381b1fa298c7378f6e10cfa100bb3eb6c60405180610439848888846040919493926060820195825260208201520152565b0390a1604051938493846040919493926060820195825260208201520152565b61046281610fae565b90549060031b1c808352600360205260ff604084205460f01c1661048a575b506001016103ea565b60019193956104a461049e6104aa936111a3565b926110da565b966110da565b9290610481565b50346101b457806003193601126101b457546040516001600160a01b039091168152602090f35b50346101b45760803660031901126101b4576004356104f5610f43565b6044356001600160401b0381168091036106ce576064359161ffff83168093036106ca57838552600360205260ff604086205460f01c1661068f576040519061053d8261103c565b6001600160a01b0390811680835260208084018581526040808601978852600160608701908152898b5260038452818b20965187549351995191516001600160f81b031990941696169590951760a09890981b67ffffffffffffffff60a01b169790971760e09490941b61ffff60e01b169390931792151560f01b60ff60f01b169290921790925581865260049052918420805490600160401b82101561067b57906105ee91600182018155610fdf565b81549060031b9085821b91600019901b1916179055600554600160401b811015610667577f7d345a92d35fdf554c440af4b60798f695891412ae3cbf945cd363d3a5f66d2891610648826001602094016005556005610fdf565b81549060031b9087821b91600019901b1916179055604051908152a380f35b634e487b7160e01b85526041600452602485fd5b634e487b7160e01b86526041600452602486fd5b60405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b8480fd5b8380fd5b50346101b45760203660031901126101b4576004356001600160401b03811161082a573660238201121561082a578060040135906001600160401b038211610826576024810190602436918460051b01011161082657828091815b84811061079f575050506102e5906040517fff4c59c9e84f6b776e123703d71d152c38901d63ec1c580b0f8c3e80dd885ca533918061077f858989846040919493926060820195825260208201520152565b0390a2604051938493846040919493926060820195825260208201520152565b6107aa81868461111e565b358352600360205260408320546001600160a01b0316331480610802575b6107d5575b60010161072d565b92946107fa6001916107f461049e6107ee888a8861111e565b356111a3565b976110da565b9390506107cd565b5061080e81868461111e565b358352600360205260ff604084205460f01c166107c8565b8280fd5b5080fd5b50346101b45760203660031901126101b457600435906005548210156101b457602061026e83610fae565b50346101b457806003193601126101b4576001546040516001600160a01b039091168152602090f35b50346101b457806003193601126101b45761089b6116ff565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101b457806003193601126101b4578080338252600460205260408220916040518084602082965493848152019084526020842092845b8181106109ff57505061092a9250038461106d565b825192815b848110610981575050506102e5906040517fff4c59c9e84f6b776e123703d71d152c38901d63ec1c580b0f8c3e80dd885ca533918061077f858989846040919493926060820195825260208201520152565b61098b818361110a565b518352600360205260408320546001600160a01b03163314806109dc575b6109b6575b60010161092f565b92946109d46001916107f461049e6109ce888761110a565b516111a3565b9390506109ae565b506109e7818361110a565b518352600360205260ff604084205460f01c166109a9565b8454835260019485019488945060209093019201610915565b50346101b457806003193601126101b457602061ffff60015460a01c16604051908152f35b50346101b45760403660031901126101b457600435610a7173e33be189b01388d8224f4b1933e085868d7cb6db3314610ff7565b8180610a7f602435846110da565b90600554808311610b34575b50610a9684836110fd565b935b828110610ae8575050506102e5907f905b697b9e75982167ab0f854b5e635381b1fa298c7378f6e10cfa100bb3eb6c60405180610439848888846040919493926060820195825260208201520152565b610af181610fae565b90549060031b1c808352600360205260ff604084205460f01c16610b19575b50600101610a98565b60019194966107f461049e610b2d936111a3565b9390610b10565b915038610a8b565b50346101b45760203660031901126101b4576004356001600160401b038116810361082a57610b696116ff565b6001805467ffffffffffffffff60b01b191660b09290921b67ffffffffffffffff60b01b1691909117905580f35b50346101b45760403660031901126101b457602090610bb4610f5e565b6024358252600383526040918290205491516001600160a01b0392831691909216148152f35b50346101b457806003193601126101b457602060405173e33be189b01388d8224f4b1933e085868d7cb6db8152f35b50346101b457806003193601126101b45760405180916020600554928381520191600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915b818110610c68576102e5856102d98187038261106d565b8254845260209093019260019283019201610c51565b50346101b45760803660031901126101b457610c98610f5e565b50610ca1610f43565b906064356001600160401b03811161082a573660238201121561082a5780600401356001600160401b03811161082657369101602401116101b4575060405160443581526001600160a01b03909116907f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587490602090a2604051630a85bd0160e11b8152602090f35b50346101b45760203660031901126101b45760043561ffff8116810361082a57610d516116ff565b6001805461ffff60a01b191660a09290921b61ffff60a01b1691909117905580f35b50346101b45760403660031901126101b457600435610d90610f43565b90610db073e33be189b01388d8224f4b1933e085868d7cb6db3314610ff7565b80835260036020526040832060405190610dc98261103c565b549260018060a01b0384168252610e0d60ff60208401956001600160401b038160a01c16875261ffff8160e01c16604086015260f01c16151580606085015261108e565b6001600160a01b0316928315610f0a57516001600160401b03164210610ed65781845260036020526040842084905560015484906001600160a01b0316803b1561082a578190606460405180948193632142170760e11b83523060048401528960248401528860448401525af18015610ecb57610eb7575b50516001600160a01b03167f119d930f8a790cc06b4421b32d0bf3093c05fc6e0dd49435f3e89db43bafaa118480a480f35b84610ec49195929561106d565b9238610e85565b6040513d87823e3d90fd5b60405162461bcd60e51b815260206004820152600c60248201526b14dd1a5b1b081b1bd8dad95960a21b6044820152606490fd5b60405162461bcd60e51b8152602060048201526011602482015270125b9d985b1a59081c9958da5c1a595b9d607a1b6044820152606490fd5b602435906001600160a01b0382168203610f5957565b600080fd5b600435906001600160a01b0382168203610f5957565b602060408183019282815284518094520192019060005b818110610f985750505090565b8251845260209384019390920191600101610f8b565b600554811015610fc957600560005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b8054821015610fc95760005260206000200190600090565b15610ffe57565b60405162461bcd60e51b815260206004820152601660248201527513db9b1e481c1c9bdd1bd8dbdb0818d85b8818d85b1b60521b6044820152606490fd5b608081019081106001600160401b0382111761105757604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761105757604052565b1561109557565b60405162461bcd60e51b815260206004820152601860248201527f506f736974696f6e206e6f7420696e697469616c697a656400000000000000006044820152606490fd5b919082018092116110e757565b634e487b7160e01b600052601160045260246000fd5b919082039182116110e757565b8051821015610fc95760209160051b010190565b9190811015610fc95760051b0190565b51906001600160a01b0382168203610f5957565b51908160020b8203610f5957565b51906001600160801b0382168203610f5957565b61ffff166103e8039061ffff82116110e757565b818102929181159184041417156110e757565b90816020910312610f5957518015158103610f595790565b90816000526003602052604060002091604051926111c08461103c565b549060018060a01b03821684526001600160401b038260a01c16602085015261120460ff604086019361ffff8160e01c16855260f01c16151580606087015261108e565b73e33be189b01388d8224f4b1933e085868d7cb6db33036116b4575b60018060a01b036001541693604051926112398461103c565b82845230602085019081526001600160801b03604080870182815260608801838152825163fc6f786560e01b8152985160048a015293516001600160a01b03166024890152518216604488015291511660648601528460848160008a5af195861561144d576000948597611678575b508415878161166f575b506116605790610180602493926040519485809263133f757160e31b82528860048301525afa91821561144d57600093849361159a575b506103e861131f61ffff611318818461130f82611308818b5116611164565b168d611178565b04965116611164565b168a611178565b0461132a83886110fd565b91611335828b6110fd565b9380611531575b50816114c3575b505080611459575b50806113a3575b50604080516001600160a01b0393841681529290911660208301528101839052606081018590527f529bba57bdb8378bb850b7bd9677f1e8fc38dba3d309fda743a7b2921d534a0a90608090a29190565b60025460405163a9059cbb60e01b81526001600160a01b0390911660048201526024810191909152916020838060448101038160006001600160a01b0387165af191821561144d577f529bba57bdb8378bb850b7bd9677f1e8fc38dba3d309fda743a7b2921d534a0a9360809361141e575b50915091611352565b61143f9060203d602011611446575b611437818361106d565b81019061118b565b5038611415565b503d61142d565b6040513d6000823e3d90fd5b60025460405163a9059cbb60e01b81526001600160a01b03909116600482015260248101919091526020818060448101038160006001600160a01b0389165af1801561144d571561134b576114bc9060203d60201161144657611437818361106d565b503861134b565b5160405163a9059cbb60e01b81526001600160a01b03909116600482015260248101919091526020818060448101038160006001600160a01b0389165af1801561144d57611512575b80611343565b61152a9060203d60201161144657611437818361106d565b503861150c565b815160405163a9059cbb60e01b81526001600160a01b03909116600482015260248101919091526020818060448101038160006001600160a01b038c165af1801561144d571561133c576115939060203d60201161144657611437818361106d565b503861133c565b909250610180813d8211611658575b816115b7610180938361106d565b810103126106ce5780516bffffffffffffffffffffffff8116036106ce576115e16020820161112e565b506115ee6040820161112e565b906115fb6060820161112e565b94608082015162ffffff8116036101b457506101608161162060a061164f9401611142565b5061162d60c08201611142565b5061163a60e08201611150565b506116486101408201611150565b5001611150565b509291386112e9565b3d91506115a9565b50505050509050600090600090565b905015386112b2565b949096506040853d6040116116ac575b816116956040938361106d565b810103126101b457506020845194015195386112a8565b3d9150611688565b83516001600160a01b031633146112205760405162461bcd60e51b81526020600482015260126024820152712737ba103837b9b4ba34b7b71037bbb732b960711b6044820152606490fd5b6000546001600160a01b0316330361171357565b63118cdaa760e01b6000523360045260246000fdfea2646970667358221220256fa70f38c37acd33f23aa5c5256030e02dda7da57c81bc6aa8467f361ce0c564736f6c634300081a003300000000000000000000000003a520b32c04bf3beef7beb72e919cf822ed34f1000000000000000000000000c5c216e6e60cce2d189bcce5f6ebffde1e8ce926