1 tx
30 calls
constructor
constructor(address owner_, address tokenFactory_, address positionManager_, address teamRecipient_)
functions
creatorTokenIds
viewfunction creatorTokenIds(address, uint256) view returns (uint256)
factory
viewfunction factory() view returns (address)
getLpTokenIdsForCreator
viewfunction getLpTokenIdsForCreator(address user) view returns (uint256[])
MAX_CREATOR_REWARD
viewfunction MAX_CREATOR_REWARD() view returns (uint256)
owner
viewfunction owner() view returns (address)
positionManager
viewfunction positionManager() view returns (address)
TEAM_REWARD
viewfunction TEAM_REWARD() view returns (uint256)
teamOverrideRewardRecipientForToken
viewfunction teamOverrideRewardRecipientForToken(uint256) view returns (address)
teamRecipient
viewfunction teamRecipient() view returns (address)
tokenRewards
viewfunction tokenRewards(uint256) view returns (uint256 lpTokenId, uint256 creatorReward, tuple creator, tuple interfacer)
version
viewfunction version() view returns (string)
addTokenReward
nonpayablefunction addTokenReward(tuple tokenRewardInfo)
collectRewards
nonpayablefunction collectRewards(uint256 tokenId)
onERC721Received
nonpayablefunction onERC721Received(address, address from, uint256 id, bytes) returns (bytes4)
renounceOwnership
nonpayablefunction renounceOwnership()
setOverrideTeamRewardRecipientForToken
nonpayablefunction setOverrideTeamRewardRecipientForToken(uint256 tokenId, address newTeamRecipient)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateCreatorRewardAdmin
nonpayablefunction updateCreatorRewardAdmin(uint256 tokenId, address newAdmin)
updateCreatorRewardRecipient
nonpayablefunction updateCreatorRewardRecipient(uint256 tokenId, address newRecipient)
updateInterfaceRewardAdmin
nonpayablefunction updateInterfaceRewardAdmin(uint256 tokenId, address newAdmin)
updateInterfaceRewardRecipient
nonpayablefunction updateInterfaceRewardRecipient(uint256 tokenId, address newRecipient)
updateTeamRecipient
nonpayablefunction updateTeamRecipient(address newRecipient)
withdrawERC20
nonpayablefunction withdrawERC20(address token, address recipient)
withdrawETH
nonpayablefunction withdrawETH(address recipient)
events
ClaimedRewards
event ClaimedRewards(uint256 indexed lpTokenId, address indexed creatorRecipient, address indexed interfaceRecipient, address teamRecipient, address token0, address token1, uint256 creatorReward0, uint256 creatorReward1, uint256 interfaceReward0, uint256 interfaceReward1, uint256 teamReward0, uint256 teamReward1)
CreatorRewardRecipientAdminUpdated
event CreatorRewardRecipientAdminUpdated(uint256 indexed lpTokenId, address indexed oldAdmin, address newAdmin)
CreatorRewardRecipientUpdated
event CreatorRewardRecipientUpdated(uint256 indexed lpTokenId, address indexed oldRecipient, address newRecipient)
InterfaceRewardRecipientAdminUpdated
event InterfaceRewardRecipientAdminUpdated(uint256 indexed lpTokenId, address indexed oldAdmin, address newAdmin)
InterfaceRewardRecipientUpdated
event InterfaceRewardRecipientUpdated(uint256 indexed lpTokenId, address indexed oldRecipient, address newRecipient)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Received
event Received(address indexed from, uint256 tokenId)
TeamOverrideRewardRecipientUpdated
event TeamOverrideRewardRecipientUpdated(uint256 indexed lpTokenId, address indexed oldRecipient, address newRecipient)
TeamRecipientUpdated
event TeamRecipientUpdated(address indexed oldRecipient, address newRecipient)
TokenRewardAdded
event TokenRewardAdded(uint256 lpTokenId, uint256 creatorReward, address indexed creator, address indexed interfacer)
errors
AlreadyKnownTokenId
error AlreadyKnownTokenId(uint256 tokenId)
InvalidCreatorReward
error InvalidCreatorReward(uint256 creatorReward)
InvalidMaxCreatorReward
error InvalidMaxCreatorReward()
InvalidTeamRecipient
error InvalidTeamRecipient()
MaxCreatorRewardNotSet
error MaxCreatorRewardNotSet()
NotAllowed
error NotAllowed(address user)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x60a080604052346101c7576080816121f4803803809161001f82856101f1565b8339810103126101c75761003281610228565b61003e60208301610228565b90610057606061005060408601610228565b9401610228565b906001600160a01b031680156101de575f80546001600160a01b031981168317825560405194602094869460049486949293926001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3600280546001600160a01b039283166001600160a01b03199182168117909255600180549a84169a82169a909a179099556003805493909216929098168217905563fa3ebd0160e01b8252955afa9081156101d3575f9161019d575b5080608052801561018e576014810180911161017a5760640361016b571561015c57604051611fb7908161023d823960805181818161013b0152818161078701526110fb0152f35b634c8372a160e11b5f5260045ffd5b630e96c16960e11b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b631a5221c360e11b5f5260045ffd5b90506020813d6020116101cb575b816101b8602093836101f1565b810103126101c757515f610114565b5f80fd5b3d91506101ab565b6040513d5f823e3d90fd5b631e4fbdf760e01b5f525f60045260245ffd5b601f909101601f19168101906001600160401b0382119082101761021457604052565b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c75756fe6080806040526004361015610012575f80fd5b5f3560e01c9081630af50d8914611ce7575080630b7f008c146119ae5780630fdd25d6146118c957806310eee7341461181b57806313949da014611745578063150b7a021461164357806324887710146115395780633201b11e146114d757806337ad4d8b146114a457806354fd4d501461141157806358444129146113f6578063680e9f3814611335578063690d8320146112dc5780636fb3656614610f90578063715018a614610f14578063791b98bc14610ee15780638da5cb5b14610eaf5780639456fbcc14610d70578063b18486d7146104ad578063c45a01551461047a578063cade97af1461036f578063e0d1e2c314610230578063f2fde38b146101625763fa3ebd0114610124575f80fd5b3461015e575f60031936011261015e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b5f80fd5b3461015e57602060031936011261015e5773ffffffffffffffffffffffffffffffffffffffff610190611d46565b610198611f35565b1680156102045773ffffffffffffffffffffffffffffffffffffffff5f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b3461015e57604060031936011261015e5760043561024c611d23565b9073ffffffffffffffffffffffffffffffffffffffff5f54163314158061034d575b61032157805f5260056020527f738c56464623de6f60d29c92993e87611767748914c7d99fef999de27dc7bad0602073ffffffffffffffffffffffffffffffffffffffff60405f20541693835f526005825260405f2073ffffffffffffffffffffffffffffffffffffffff82167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905573ffffffffffffffffffffffffffffffffffffffff60405191168152a3005b7ffa5cd00f000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b5073ffffffffffffffffffffffffffffffffffffffff6002541633141561026e565b3461015e57604060031936011261015e5760043561038b611d23565b90805f52600460205273ffffffffffffffffffffffffffffffffffffffff60405f206040516103b981611d69565b815481526001820154602082015260606103e860046103da60028601611e0f565b946040850195865201611e0f565b9101525151163303610321575f8181526004602090815260409182902060030180547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff968716908117909255925190815291909316927f8b82c83824d9033277aa41c543b5e53662a3b944a80fdc9b01ff1b7a4d737ca291a3005b3461015e575f60031936011261015e57602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b3461015e57602060031936011261015e57600435805f52600560205273ffffffffffffffffffffffffffffffffffffffff60405f2054168015610d51575b815f52600460205273ffffffffffffffffffffffffffffffffffffffff600360405f20015416918215610d48575b805f52600460205273ffffffffffffffffffffffffffffffffffffffff600560405f200154168015610d41575b73ffffffffffffffffffffffffffffffffffffffff6001541660405161056b81611d69565b8381526fffffffffffffffffffffffffffffffff60208201308152816040840181815273ffffffffffffffffffffffffffffffffffffffff6060860193838552604051967ffc6f78650000000000000000000000000000000000000000000000000000000088525160048801525116602486015251166044840152511660648201526040816084815f865af1908115610971575f905f92610d02575b50610180602493604051948580927f99fbab880000000000000000000000000000000000000000000000000000000082528960048301525afa928315610971575f905f94610c28575b5073ffffffffffffffffffffffffffffffffffffffff809116931690855f526004602052600160405f200154916014820282810460141483151715610bfb576064900493601481029181830460141482151715610bfb576040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b166004820152602481018790526064909304966020846044815f855af19384156109715761076994610bde575b506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c1660048201526024810189905293602090859081906044820190565b03815f865af1928315610971578c948994610bc1575b50875f965f987f000000000000000000000000000000000000000000000000000000000000000081145f146109975750916107ca6107c260209361082295611e87565b968792611e87565b9660405193849283927fa9059cbb000000000000000000000000000000000000000000000000000000008452600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03815f865af1801561097157858e6108949360209361097c575b5060405193849283927fa9059cbb000000000000000000000000000000000000000000000000000000008452600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03815f875af1801561097157610942575b505b6040519a73ffffffffffffffffffffffffffffffffffffffff168b5260208b015260408a01526060890152608088015260a087015260c086015260e085015261010084015273ffffffffffffffffffffffffffffffffffffffff169273ffffffffffffffffffffffffffffffffffffffff16916101207ff18d15fcfcdd756d5e1fe9c0379d1f5acb552fdf231bc052916d1817b4b941e591a4005b6109639060203d60201161096a575b61095b8183611dce565b810190611ebe565b508c6108a5565b503d610951565b6040513d5f823e3d90fd5b61099290843d861161096a5761095b8183611dce565b61083c565b6109dd949950819398506109d2929750806109d26064806109bf6109d7956109c99c97611f22565b04998a938d611f22565b04998a96611e87565b611e87565b97611e87565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a166004820152602481018690529095906020816044815f865af1801561097157610ba4575b506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a166004820152602481018790526020816044815f875af1801561097157848e610afd9360209361097c575060405193849283927fa9059cbb000000000000000000000000000000000000000000000000000000008452600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03815f865af1801561097157858e610b6e9360209361097c575060405193849283927fa9059cbb000000000000000000000000000000000000000000000000000000008452600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03815f875af1801561097157610b85575b506108a7565b610b9d9060203d60201161096a5761095b8183611dce565b508c610b7f565b610bbc9060203d60201161096a5761095b8183611dce565b610a3e565b610bd99060203d60201161096a5761095b8183611dce565b61077f565b610bf69060203d60201161096a5761095b8183611dce565b610710565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b935050610180833d8211610cfa575b81610c456101809383611dce565b8101031261015e5782516bffffffffffffffffffffffff81160361015e57610c6f60208401611ed6565b50610c7c60408401611ed6565b610c8860608501611ed6565b93608081015162ffffff81160361015e5773ffffffffffffffffffffffffffffffffffffffff91610cf261016083610cc360a0879601611ef7565b50610cd060c08201611ef7565b50610cdd60e08201611f05565b50610ceb6101408201611f05565b5001611f05565b509150610650565b3d9150610c37565b929150506040823d604011610d39575b81610d1f60409383611dce565b8101031261015e5781516020909201519091610180610607565b3d9150610d12565b5081610546565b91508091610519565b5073ffffffffffffffffffffffffffffffffffffffff600354166104eb565b3461015e57604060031936011261015e57610d89611d46565b73ffffffffffffffffffffffffffffffffffffffff610da6611d23565b91610daf611f35565b1690604051907f70a08231000000000000000000000000000000000000000000000000000000008252306004830152602082602481865afa918215610971575f92610e79575b506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024810191909152906020908290815f81604481015b03925af1801561097157610e5f57005b610e779060203d60201161096a5761095b8183611dce565b005b91506020823d602011610ea7575b81610e9460209383611dce565b8101031261015e57905190610e4f610df5565b3d9150610e87565b3461015e575f60031936011261015e57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b3461015e575f60031936011261015e57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461015e575f60031936011261015e57610f2c611f35565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461015e5760c060031936011261015e57604051610fad81611d69565b60043581526020810190602435825260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc36011261015e5760405191610ff383611db2565b60443573ffffffffffffffffffffffffffffffffffffffff8116810361015e57835260643573ffffffffffffffffffffffffffffffffffffffff8116810361015e5760208401526040820192835260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c36011261015e576040519161107883611db2565b60843573ffffffffffffffffffffffffffffffffffffffff8116810361015e57835260a43573ffffffffffffffffffffffffffffffffffffffff8116810361015e5760208401526060810192835273ffffffffffffffffffffffffffffffffffffffff6002541633036103215780515f52600460205260405f20546112b05781517f0000000000000000000000000000000000000000000000000000000000000000811180156112a8575b61127d57507fa825a93a934d13b1aa1603bb96058f0fe57f01306803bd7df2c8b259ccf8d5b79173ffffffffffffffffffffffffffffffffffffffff8083604094515f52600460205281855f20825181558551600182015589519082825116836002830191167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905582602083015116836003830191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558260058160208d5182815116836004880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055015116920191167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905551165f526006602052611264855f20825190611e94565b51925196515116945151169482519182526020820152a3005b7f55a71794000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b508015611123565b517fab51f9c7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461015e57602060031936011261015e575f8080806112f9611d46565b611301611f35565b47908290821561132b575b73ffffffffffffffffffffffffffffffffffffffff1690f11561097157005b6108fc915061130c565b3461015e57602060031936011261015e5773ffffffffffffffffffffffffffffffffffffffff611363611d46565b165f52600660205260405f20604051806020835491828152019081935f5260205f20905f5b8181106113e0575050508161139e910382611dce565b604051918291602083019060208452518091526040830191905f5b8181106113c7575050500390f35b82518452859450602093840193909201916001016113b9565b8254845260209093019260019283019201611388565b3461015e575f60031936011261015e57602060405160148152f35b3461015e575f60031936011261015e5760405161142d81611db2565b60058152604060208201917f302e302e3200000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461015e575f60031936011261015e57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b3461015e57604060031936011261015e576114f0611d46565b73ffffffffffffffffffffffffffffffffffffffff60243591165f52600660205260405f20805482101561015e5760209161152a91611e45565b90549060031b1c604051908152f35b3461015e57604060031936011261015e57600435611555611d23565b90805f52600460205273ffffffffffffffffffffffffffffffffffffffff606060405f206115b060046040519261158b84611d69565b80548452600181015460208501526115a560028201611e0f565b604085015201611e0f565b918291015251163303610321575f8181526004602081815260409283902090910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff968716908117909255925190815291909316927f81c087afd6e0515c84a3516ff82c92e261554d53c3e85ed966d4405df38ebb5a91a3005b3461015e57608060031936011261015e5761165c611d46565b50611665611d23565b60643567ffffffffffffffff811161015e573660238201121561015e57806004013567ffffffffffffffff811161015e573691016024011161015e5773ffffffffffffffffffffffffffffffffffffffff8060025416911690810361171a577f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460206040516044358152a260206040517f150b7a02000000000000000000000000000000000000000000000000000000008152f35b7ffa5cd00f000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461015e57602060031936011261015e5761175e611d46565b611766611f35565b73ffffffffffffffffffffffffffffffffffffffff600354911690817fffffffffffffffffffffffff000000000000000000000000000000000000000082161760035581156117f357602073ffffffffffffffffffffffffffffffffffffffff7f9c8d2fbc53c8a056ff82dd9584168baaa1205b29a5236d0f57f280606bb9c89a926040519485521692a2005b7f9906e542000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461015e57602060031936011261015e576004355f52600460205260c060405f206118c781549161189b600182015491611863600461185c60028401611e0f565b9201611e0f565b926040519586526020860152604085019073ffffffffffffffffffffffffffffffffffffffff60208092828151168552015116910152565b608083019073ffffffffffffffffffffffffffffffffffffffff60208092828151168552015116910152565bf35b3461015e57604060031936011261015e576004356118e5611d23565b90805f52600460205273ffffffffffffffffffffffffffffffffffffffff606060405f2061191b60046040519261158b84611d69565b918291015251163303610321575f8181526004602090815260409182902060050180547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff968716908117909255925190815291909316927f34c04f2dce83f7e45ef1b0c14cdb5dea1c3f7dcaf9bdf0f0965a5c7d12911a2691a3005b3461015e57604060031936011261015e576004356119ca611d23565b90805f52600460205260405f2090604051926119e584611d69565b8254845260018301546020850152611a126004611a0460028601611e0f565b946040870195865201611e0f565b606085015273ffffffffffffffffffffffffffffffffffffffff8351511633036103215773ffffffffffffffffffffffffffffffffffffffff835151165f52600660205260405f20545f5b818110611b18575b8584611a9673ffffffffffffffffffffffffffffffffffffffff861692835f52600660205260405f20905190611e94565b5f8181526004602090815260409182902060020180547fffffffffffffffffffffffff000000000000000000000000000000000000000081168617909155915193845273ffffffffffffffffffffffffffffffffffffffff909116927fb3f139d249876e05e0c358b24a29fbba14f5a620809b85bf6de5e6db0edf217c9190a3005b73ffffffffffffffffffffffffffffffffffffffff855151165f526006602052611b458160405f20611e45565b90549060031b1c865114611b5b57600101611a5d565b73ffffffffffffffffffffffffffffffffffffffff85929394955151165f52600660205260405f20907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8401938411610bfb57611bf0611bd373ffffffffffffffffffffffffffffffffffffffff95611c2694611e45565b90549060031b1c9185855151165f52600660205260405f20611e45565b9091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83549160031b92831b921b1916179055565b5151165f52600660205260405f20908154908115611cba57611a96927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73ffffffffffffffffffffffffffffffffffffffff930190611c858282611e45565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b1916905555908392611a65565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b3461015e57602060031936011261015e576020906004355f526005825273ffffffffffffffffffffffffffffffffffffffff60405f2054168152f35b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361015e57565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361015e57565b6080810190811067ffffffffffffffff821117611d8557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff821117611d8557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117611d8557604052565b90604051611e1c81611db2565b602073ffffffffffffffffffffffffffffffffffffffff60018395828154168552015416910152565b8054821015611e5a575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b91908203918211610bfb57565b9081549168010000000000000000831015611d855782611bf0916001611ebc95018155611e45565b565b9081602091031261015e5751801515810361015e5790565b519073ffffffffffffffffffffffffffffffffffffffff8216820361015e57565b51908160020b820361015e57565b51906fffffffffffffffffffffffffffffffff8216820361015e57565b81810292918115918404141715610bfb57565b73ffffffffffffffffffffffffffffffffffffffff5f54163303611f5557565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffdfea2646970667358221220bad2c408b10e108443a83f9c63986c4ac96171d3082ffcc2d667df8d662d4db664736f6c634300081c0033000000000000000000000000eea96d959963eab488a3d4b7d5d347785cf1eab80000000000000000000000008e1e07ef12ab717e3430016ccb3db7ed6eb841be00000000000000000000000003a520b32c04bf3beef7beb72e919cf822ed34f10000000000000000000000001eaf444ebdf6495c57ad52a04c61521bbf564ace