From e60cf4909a90dfde9cad96af5a7a178c882e275c Mon Sep 17 00:00:00 2001 From: Kingster Date: Thu, 23 Nov 2023 10:01:34 -0800 Subject: [PATCH] Temporarily Comment Out Unused Modules for Alpha Release Preparation We have temporarily commented out the Collect and Royalty modules to streamline the codebase for the alpha release. These changes are not permanent and these modules will be reintroduced in future releases. --- lcov.info | 2267 +++++++++-------- .../contracts}/ip-accounts/IPAccountImpl.sol | 0 .../ip-accounts/IPAccountRegistry.sol | 0 .../modules/collect/CollectModuleBase.sol | 0 .../collect/CollectPaymentModuleBase.sol | 0 .../modules/collect/SimpleCollectModule.sol | 0 .../modules/collect/nft/CollectNFTBase.sol | 0 .../contracts}/modules/collect/nft/ERC721.sol | 0 .../modules/royalties/RoyaltyDistributor.sol | 0 .../modules/royalties/RoyaltyNFT.sol | 0 .../modules/royalties/RoyaltyNFTFactory.sol | 0 .../MutableRoyaltyProportionPolicy.sol | 0 {test => mvp/test}/foundry/IPAccount.t.sol | 0 .../test}/foundry/IPAccountRegistry.t.sol | 2 +- .../test}/foundry/RoyaltyDistributor.t.sol | 2 +- .../foundry/RoyaltyDistributorFork.t.sol | 2 +- .../collect/BaseCollectModuleTest.sol | 4 +- .../collect/CollectPaymentModuleBase.t.sol | 4 +- .../collect/SimpleCollectModule.t.sol | 0 .../collect/nft/BaseERC721Test.sol | 2 +- .../collect/nft/CollectNFTBase.t.sol | 2 +- .../_old_modules/collect/nft/ERC721.t.sol | 2 +- .../test}/foundry/mocks/MockCollectModule.sol | 12 +- .../foundry/mocks/MockCollectModuleERC721.sol | 0 .../test}/foundry/mocks/MockCollectNFT.sol | 2 +- .../mocks/MockCollectPaymentModule.sol | 0 .../test}/foundry/mocks/MockIPAccount.sol | 0 script/foundry/deployment/Main.s.sol | 7 - test/foundry/IPOrgTest.t.sol | 2 - test/foundry/utils/BaseTest.sol | 22 +- 30 files changed, 1172 insertions(+), 1160 deletions(-) rename {contracts => mvp/contracts}/ip-accounts/IPAccountImpl.sol (100%) rename {contracts => mvp/contracts}/ip-accounts/IPAccountRegistry.sol (100%) rename {contracts => mvp/contracts}/modules/collect/CollectModuleBase.sol (100%) rename {contracts => mvp/contracts}/modules/collect/CollectPaymentModuleBase.sol (100%) rename {contracts => mvp/contracts}/modules/collect/SimpleCollectModule.sol (100%) rename {contracts => mvp/contracts}/modules/collect/nft/CollectNFTBase.sol (100%) rename {contracts => mvp/contracts}/modules/collect/nft/ERC721.sol (100%) rename {contracts => mvp/contracts}/modules/royalties/RoyaltyDistributor.sol (100%) rename {contracts => mvp/contracts}/modules/royalties/RoyaltyNFT.sol (100%) rename {contracts => mvp/contracts}/modules/royalties/RoyaltyNFTFactory.sol (100%) rename {contracts => mvp/contracts}/modules/royalties/policies/MutableRoyaltyProportionPolicy.sol (100%) rename {test => mvp/test}/foundry/IPAccount.t.sol (100%) rename {test => mvp/test}/foundry/IPAccountRegistry.t.sol (97%) rename {test => mvp/test}/foundry/RoyaltyDistributor.t.sol (99%) rename {test => mvp/test}/foundry/RoyaltyDistributorFork.t.sol (93%) rename {test => mvp/test}/foundry/_old_modules/collect/BaseCollectModuleTest.sol (97%) rename {test => mvp/test}/foundry/_old_modules/collect/CollectPaymentModuleBase.t.sol (99%) rename {test => mvp/test}/foundry/_old_modules/collect/SimpleCollectModule.t.sol (100%) rename {test => mvp/test}/foundry/_old_modules/collect/nft/BaseERC721Test.sol (99%) rename {test => mvp/test}/foundry/_old_modules/collect/nft/CollectNFTBase.t.sol (98%) rename {test => mvp/test}/foundry/_old_modules/collect/nft/ERC721.t.sol (98%) rename {test => mvp/test}/foundry/mocks/MockCollectModule.sol (75%) rename {test => mvp/test}/foundry/mocks/MockCollectModuleERC721.sol (100%) rename {test => mvp/test}/foundry/mocks/MockCollectNFT.sol (71%) rename {test => mvp/test}/foundry/mocks/MockCollectPaymentModule.sol (100%) rename {test => mvp/test}/foundry/mocks/MockIPAccount.sol (100%) diff --git a/lcov.info b/lcov.info index 55cb93fd..4ec4f97d 100644 --- a/lcov.info +++ b/lcov.info @@ -1,1215 +1,1230 @@ TN: -SF:contracts/FranchiseRegistry.sol -FN:60,FranchiseRegistry.initialize -FN:66,FranchiseRegistry._getFranchiseStorage -FN:72,FranchiseRegistry.version -FN:76,FranchiseRegistry.registerFranchise -FN:95,FranchiseRegistry.ipAssetRegistryForId -FN:108,FranchiseRegistry.isIpAssetRegistry -FN:117,FranchiseRegistry.tokenURI -FN:123,FranchiseRegistry._authorizeUpgrade -FNDA:3,FranchiseRegistry.registerFranchise -FNDA:7466,FranchiseRegistry._getFranchiseStorage -FNDA:2,FranchiseRegistry.tokenURI -FNDA:1,FranchiseRegistry.version -FNDA:0,FranchiseRegistry.initialize -FNDA:0,FranchiseRegistry._authorizeUpgrade -FNDA:13,FranchiseRegistry.isIpAssetRegistry -FNDA:7451,FranchiseRegistry.ipAssetRegistryForId -FNF:8 -FNH:6 -DA:61,0 -DA:62,0 -DA:63,0 -DA:68,7466 -DA:73,1 -DA:77,3 -DA:78,3 -DA:79,3 -DA:85,3 -DA:86,3 -DA:87,3 -DA:90,3 -DA:92,3 -DA:98,7462 -DA:99,7462 -DA:109,13 -DA:118,2 -DA:119,1 -DA:120,1 -LF:19 -LH:16 +SF:contracts/IPAssetRegistry.sol +FN:100,IPAssetRegistry.transferIPOrg +FN:110,IPAssetRegistry.setStatus +FN:118,IPAssetRegistry.status +FN:124,IPAssetRegistry.ipAssetOrg +FN:130,IPAssetRegistry.ipAssetOwner +FN:137,IPAssetRegistry.ipAsset +FN:62,IPAssetRegistry.register +FNDA:0,IPAssetRegistry.transferIPOrg +FNDA:0,IPAssetRegistry.setStatus +FNDA:5,IPAssetRegistry.status +FNDA:0,IPAssetRegistry.ipAssetOrg +FNDA:11,IPAssetRegistry.ipAssetOwner +FNDA:2,IPAssetRegistry.ipAsset +FNDA:7,IPAssetRegistry.register +FNF:7 +FNH:4 +DA:70,7 +DA:71,0 +DA:75,7 +DA:76,7 +DA:77,7 +DA:87,7 +DA:101,0 +DA:102,0 +DA:103,0 +DA:111,0 +DA:112,0 +DA:113,0 +DA:119,5 +DA:125,0 +DA:131,11 +DA:132,11 +DA:138,2 +LF:17 +LH:9 +end_of_record +TN: +SF:contracts/StoryProtocol.sol +FN:103,StoryProtocol.registerIPAsset +FN:126,StoryProtocol.transferIPAsset +FN:152,StoryProtocol.addRelationshipType +FN:163,StoryProtocol.removeRelationshipType +FN:178,StoryProtocol.createRelationship +FN:202,StoryProtocol.configureIpOrgLicensing +FN:221,StoryProtocol.createLicenseNft +FN:254,StoryProtocol.createIpaBoundLicense +FN:280,StoryProtocol.activateLicense +FN:297,StoryProtocol.bindLnftToIpa +FN:41,StoryProtocol.setMetadata +FN:61,StoryProtocol.addIPAssetTypes +FN:83,StoryProtocol.registerIpOrg +FNDA:7,StoryProtocol.registerIPAsset +FNDA:0,StoryProtocol.transferIPAsset +FNDA:3,StoryProtocol.addRelationshipType +FNDA:1,StoryProtocol.removeRelationshipType +FNDA:2,StoryProtocol.createRelationship +FNDA:12,StoryProtocol.configureIpOrgLicensing +FNDA:2,StoryProtocol.createLicenseNft +FNDA:5,StoryProtocol.createIpaBoundLicense +FNDA:3,StoryProtocol.activateLicense +FNDA:2,StoryProtocol.bindLnftToIpa +FNDA:3,StoryProtocol.setMetadata +FNDA:0,StoryProtocol.addIPAssetTypes +FNDA:2,StoryProtocol.registerIpOrg +FNF:13 +FNH:11 +DA:46,3 +DA:50,3 +DA:65,0 +DA:69,0 +DA:89,2 +DA:109,7 +DA:110,7 +DA:118,7 +DA:134,0 +DA:138,0 +DA:155,3 +DA:167,1 +DA:184,2 +DA:192,2 +DA:206,12 +DA:228,2 +DA:233,2 +DA:244,2 +DA:261,5 +DA:266,5 +DA:277,4 +DA:284,3 +DA:302,2 +LF:23 +LH:19 end_of_record TN: SF:contracts/access-control/AccessControlSingleton.sol -FN:22,AccessControlSingleton.initialize -FN:34,AccessControlSingleton.setRoleAdmin -FN:42,AccessControlSingleton._authorizeUpgrade -FNDA:256,AccessControlSingleton.setRoleAdmin -FNDA:257,AccessControlSingleton.initialize +FN:26,AccessControlSingleton.initialize +FN:36,AccessControlSingleton.setRoleAdmin +FN:45,AccessControlSingleton._authorizeUpgrade +FNDA:0,AccessControlSingleton.initialize +FNDA:0,AccessControlSingleton.setRoleAdmin FNDA:0,AccessControlSingleton._authorizeUpgrade FNF:3 -FNH:2 -DA:23,257 -DA:24,257 -DA:25,257 -DA:26,257 -DA:35,256 +FNH:0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:30,0 +DA:40,0 LF:5 -LH:5 +LH:0 end_of_record TN: SF:contracts/access-control/AccessControlled.sol -FN:42,AccessControlled.hasRole -FN:50,AccessControlled.setAccessControl -FNDA:0,AccessControlled.hasRole +FN:35,AccessControlled.setAccessControl +FN:48,AccessControlled.hasRole FNDA:0,AccessControlled.setAccessControl +FNDA:83,AccessControlled.hasRole FNF:2 -FNH:0 -DA:43,0 -DA:51,0 -DA:52,0 -DA:53,0 -LF:4 -LH:0 +FNH:1 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:52,83 +LF:5 +LH:1 end_of_record TN: SF:contracts/access-control/AccessControlledUpgradeable.sol -FN:41,AccessControlledUpgradeable.__AccessControlledUpgradeable_init -FN:48,AccessControlledUpgradeable._getAccessControlledUpgradeable -FN:60,AccessControlledUpgradeable.hasRole -FN:69,AccessControlledUpgradeable.setAccessControl -FN:76,AccessControlledUpgradeable.getAccessControl -FNDA:0,AccessControlledUpgradeable.getAccessControl -FNDA:4,AccessControlledUpgradeable._getAccessControlledUpgradeable -FNDA:4,AccessControlledUpgradeable.hasRole +FN:35,AccessControlledUpgradeable.setAccessControl +FN:45,AccessControlledUpgradeable.getAccessControl +FN:52,AccessControlledUpgradeable.__AccessControlledUpgradeable_init +FN:66,AccessControlledUpgradeable.hasRole +FN:74,AccessControlledUpgradeable._getAccessControlledUpgradeable FNDA:0,AccessControlledUpgradeable.setAccessControl +FNDA:0,AccessControlledUpgradeable.getAccessControl FNDA:0,AccessControlledUpgradeable.__AccessControlledUpgradeable_init +FNDA:0,AccessControlledUpgradeable.hasRole +FNDA:0,AccessControlledUpgradeable._getAccessControlledUpgradeable FNF:5 -FNH:2 +FNH:0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 DA:42,0 -DA:43,0 -DA:44,0 -DA:45,0 -DA:50,4 -DA:61,4 -DA:62,4 +DA:46,0 +DA:47,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:58,0 +DA:59,0 DA:70,0 DA:71,0 -DA:72,0 -DA:73,0 -DA:77,0 -DA:78,0 -LF:13 -LH:3 -end_of_record -TN: -SF:contracts/ip-accounts/IPAccountImpl.sol -FN:34,IPAccountImpl.supportsInterface -FN:44,IPAccountImpl.token -FN:71,IPAccountImpl.isValidSignature -FN:87,IPAccountImpl.isValidSigner -FN:95,IPAccountImpl.owner -FN:101,IPAccountImpl._isValidSigner -FN:108,IPAccountImpl.safeTransferFrom -FN:115,IPAccountImpl.sendRoyaltyForDistribution -FN:122,IPAccountImpl.onERC721Received -FN:131,IPAccountImpl.onERC1155Received -FN:141,IPAccountImpl.onERC1155BatchReceived -FNDA:2,IPAccountImpl.safeTransferFrom -FNDA:2,IPAccountImpl.sendRoyaltyForDistribution -FNDA:0,IPAccountImpl.owner -FNDA:6,IPAccountImpl.onERC1155Received -FNDA:4,IPAccountImpl._isValidSigner -FNDA:0,IPAccountImpl.supportsInterface -FNDA:2,IPAccountImpl.isValidSigner -FNDA:0,IPAccountImpl.isValidSignature -FNDA:2,IPAccountImpl.onERC721Received -FNDA:0,IPAccountImpl.onERC1155BatchReceived -FNDA:2,IPAccountImpl.token -FNF:11 -FNH:7 -DA:35,0 -DA:54,6 -DA:68,6 -DA:76,0 -DA:77,0 -DA:78,0 -DA:81,0 -DA:88,2 -DA:89,2 -DA:92,0 -DA:96,4 -DA:97,4 -DA:98,4 -DA:102,4 -DA:109,2 -DA:110,1 -DA:111,1 -DA:116,2 -DA:128,2 -DA:138,6 -DA:148,0 -LF:21 -LH:14 +DA:80,0 +LF:15 +LH:0 end_of_record TN: -SF:contracts/ip-accounts/IPAccountRegistry.sol -FN:17,IPAccountRegistry.createAccount -FN:47,IPAccountRegistry.account -FN:66,IPAccountRegistry.getIPAccountImpl -FN:70,IPAccountRegistry._getCreationCode -FNDA:26,IPAccountRegistry.account -FNDA:41,IPAccountRegistry._getCreationCode -FNDA:0,IPAccountRegistry.getIPAccountImpl -FNDA:15,IPAccountRegistry.createAccount -FNF:4 -FNH:3 -DA:23,15 -DA:31,15 -DA:33,15 -DA:35,12 -DA:37,12 -DA:39,12 -DA:40,2 -DA:41,2 -DA:44,11 -DA:52,26 -DA:62,26 -DA:67,0 -DA:77,41 -DA:103,41 -LF:14 +SF:contracts/hooks/TokenGatedHook.sol +FN:24,TokenGatedHook._validateConfig +FN:45,TokenGatedHook._executeSyncCall +FNDA:13,TokenGatedHook._validateConfig +FNDA:6,TokenGatedHook._executeSyncCall +FNF:2 +FNH:2 +DA:25,13 +DA:26,13 +DA:27,13 +DA:28,2 +DA:32,11 +DA:36,1 +DA:49,6 +DA:50,6 +DA:52,6 +DA:53,1 +DA:56,5 +DA:57,1 +DA:60,4 +LF:13 LH:13 end_of_record TN: -SF:contracts/ip-assets/IPAssetRegistry.sol -FN:55,IPAssetRegistry.initialize -FN:69,IPAssetRegistry._getIPAssetRegistryStorage -FN:79,IPAssetRegistry.version -FN:96,IPAssetRegistry.createIPAsset -FN:145,IPAssetRegistry._setNonCommercialRights -FN:170,IPAssetRegistry._setCommercialRights -FN:190,IPAssetRegistry._mintBlock -FN:199,IPAssetRegistry.currentIdFor -FN:209,IPAssetRegistry.description -FN:214,IPAssetRegistry.franchiseId -FN:219,IPAssetRegistry.tokenURI -FN:226,IPAssetRegistry.supportsInterface -FNDA:4,IPAssetRegistry.supportsInterface -FNDA:2,IPAssetRegistry._setCommercialRights -FNDA:4,IPAssetRegistry.initialize -FNDA:1,IPAssetRegistry.tokenURI -FNDA:11,IPAssetRegistry.franchiseId -FNDA:15,IPAssetRegistry.currentIdFor -FNDA:1,IPAssetRegistry.description -FNDA:2850,IPAssetRegistry._mintBlock -FNDA:2850,IPAssetRegistry._setNonCommercialRights -FNDA:4,IPAssetRegistry.version -FNDA:8581,IPAssetRegistry._getIPAssetRegistryStorage -FNDA:2851,IPAssetRegistry.createIPAsset -FNF:12 -FNH:12 -DA:61,4 -DA:62,4 -DA:63,4 -DA:64,4 -DA:65,4 -DA:66,4 -DA:75,8581 -DA:80,4 -DA:107,2851 -DA:108,2850 -DA:109,2850 -DA:110,2850 -DA:111,2850 -DA:112,2850 -DA:115,2850 -DA:116,2850 -DA:118,2850 -DA:121,2850 -DA:123,2 -DA:126,2850 -DA:132,2850 -DA:146,2850 -DA:147,2850 -DA:171,2 -DA:172,2 -DA:191,2850 -DA:192,2850 -DA:193,2850 -DA:194,2850 -DA:195,2850 -DA:196,2850 -DA:200,2865 -DA:201,2865 -DA:202,2865 -DA:203,2843 -DA:205,22 -DA:210,1 -DA:211,1 -DA:215,11 -DA:216,11 -DA:223,1 -DA:235,4 -DA:236,4 -DA:237,3 -LF:44 -LH:44 -end_of_record -TN: -SF:contracts/ip-assets/IPAssetRegistryFactory.sol -FN:30,IPAssetRegistryFactory.createFranchiseIPAssets -FN:51,IPAssetRegistryFactory.upgradeFranchises -FNDA:4,IPAssetRegistryFactory.createFranchiseIPAssets -FNDA:2,IPAssetRegistryFactory.upgradeFranchises +SF:contracts/hooks/base/AsyncBaseHook.sol +FN:114,AsyncBaseHook._handleCallback +FN:55,AsyncBaseHook.executeAsync +FNDA:4,AsyncBaseHook._handleCallback +FNDA:7,AsyncBaseHook.executeAsync FNF:2 FNH:2 -DA:36,4 -DA:43,4 -DA:44,4 -DA:45,4 -DA:47,4 -DA:48,4 -DA:52,1 -DA:53,1 -DA:54,1 -LF:9 -LH:9 +DA:65,6 +DA:66,1 +DA:70,5 +DA:74,1 +DA:77,4 +DA:81,4 +DA:84,4 +DA:86,4 +DA:88,4 +DA:90,4 +DA:119,4 +DA:120,4 +DA:121,1 +DA:128,3 +DA:129,1 +DA:133,2 +DA:136,2 +DA:138,2 +LF:18 +LH:18 end_of_record TN: -SF:contracts/ip-assets/LibIPAssetId.sol -FN:12,LibIPAssetId._zeroId -FN:17,LibIPAssetId._lastId -FN:22,LibIPAssetId._ipAssetTypeFor -FNDA:2843,LibIPAssetId._zeroId -FNDA:2850,LibIPAssetId._lastId -FNDA:2850,LibIPAssetId._ipAssetTypeFor +SF:contracts/hooks/base/BaseHook.sol +FN:22,BaseHook.executeSync +FN:38,BaseHook.executeAsync +FN:55,BaseHook.validateConfig +FNDA:3,BaseHook.executeSync +FNDA:3,BaseHook.executeAsync +FNDA:56,BaseHook.validateConfig FNF:3 FNH:3 -DA:13,2843 -DA:14,2843 -DA:18,2850 -DA:19,2850 -DA:25,2850 -DA:26,2850 -LF:6 -LH:6 +DA:31,2 +DA:48,2 +DA:58,56 +LF:3 +LH:3 end_of_record TN: -SF:contracts/ip-assets/events/CommonIPAssetEventEmitter.sol -FN:18,CommonIPAssetEventEmitter.emitIPAssetCreation -FNDA:2828,CommonIPAssetEventEmitter.emitIPAssetCreation +SF:contracts/hooks/base/SyncBaseHook.sol +FN:34,SyncBaseHook.executeSync +FNDA:17,SyncBaseHook.executeSync FNF:1 FNH:1 -DA:19,2828 -DA:20,2828 -LF:2 -LH:2 -end_of_record -TN: -SF:contracts/ip-assets/storage/IPAssetDataManager.sol -FN:22,IPAssetDataManager.__IPAssetData_init -FN:24,IPAssetDataManager._getIPAssetDataStorage -FN:30,IPAssetDataManager._writeIPAsset -FN:48,IPAssetDataManager.readIPAsset -FNDA:0,IPAssetDataManager.__IPAssetData_init -FNDA:2850,IPAssetDataManager._writeIPAsset -FNDA:2853,IPAssetDataManager._getIPAssetDataStorage -FNDA:2,IPAssetDataManager.readIPAsset -FNF:4 -FNH:3 -DA:26,2853 -DA:36,2850 -DA:37,2850 -DA:38,2850 -DA:39,2850 -DA:41,2850 -DA:42,2850 -DA:43,2850 -DA:44,2850 -DA:45,2850 -DA:49,3 -DA:50,3 -LF:12 -LH:12 -end_of_record -TN: -SF:contracts/modules/collect/CollectModuleBase.sol -FN:55,CollectModuleBase.getCollectNFT -FN:65,CollectModuleBase.initCollect -FN:101,CollectModuleBase.collect -FN:137,CollectModuleBase._initCollect -FN:142,CollectModuleBase._collect -FN:153,CollectModuleBase._getCollectNFT -FN:183,CollectModuleBase._getCollectModuleStorage -FNDA:512,CollectModuleBase._collect -FNDA:1536,CollectModuleBase.collect -FNDA:3362,CollectModuleBase.initCollect -FNDA:768,CollectModuleBase._getCollectNFT -FNDA:2850,CollectModuleBase._initCollect -FNDA:5154,CollectModuleBase._getCollectModuleStorage -FNDA:1280,CollectModuleBase.getCollectNFT -FNF:7 -FNH:7 -DA:56,1280 -DA:57,1280 -DA:68,3362 -DA:69,3362 -DA:72,3362 -DA:74,3362 -DA:75,256 -DA:79,3106 -DA:80,3106 -DA:81,256 -DA:85,2850 -DA:86,0 -DA:88,2850 -DA:91,2850 -DA:104,1536 -DA:105,1536 -DA:108,1536 -DA:109,256 -DA:113,1280 -DA:114,1280 -DA:115,256 -DA:117,1024 -DA:123,768 -DA:126,512 -DA:129,512 -DA:131,512 -DA:156,768 -DA:157,768 -DA:158,768 -DA:159,256 -DA:161,512 -DA:164,512 -DA:165,512 -DA:169,512 -DA:172,512 -DA:177,512 -DA:179,512 -DA:185,5154 -LF:38 -LH:37 -end_of_record -TN: -SF:contracts/modules/collect/SimpleCollectModule.sol -FN:19,MockCollectModule.initialize -FN:25,MockCollectModule._isCollectAuthorized -FN:31,MockCollectModule._authorizeUpgrade -FNDA:0,MockCollectModule._isCollectAuthorized -FNDA:0,MockCollectModule.initialize -FNDA:0,MockCollectModule._authorizeUpgrade -FNF:3 -FNH:0 -DA:20,0 -DA:21,0 -DA:26,0 -DA:27,0 -LF:4 -LH:0 -end_of_record -TN: -SF:contracts/modules/collect/nft/CollectNFTBase.sol -FN:47,CollectNFTBase.totalSupply -FN:54,CollectNFTBase.initialize -FN:80,CollectNFTBase.collect -FN:88,CollectNFTBase._initialize -FN:92,CollectNFTBase._collect -FNDA:1280,CollectNFTBase._collect -FNDA:1538,CollectNFTBase.initialize -FNDA:1536,CollectNFTBase.collect -FNDA:1280,CollectNFTBase._initialize -FNDA:512,CollectNFTBase.totalSupply -FNF:5 -FNH:5 -DA:48,512 -DA:57,1538 -DA:58,257 -DA:61,1281 -DA:62,1281 -DA:63,1281 -DA:64,1281 -DA:67,1281 -DA:73,1280 -DA:81,1280 -DA:82,1280 -DA:83,1280 -LF:12 -LH:12 -end_of_record -TN: -SF:contracts/modules/collect/nft/ERC721.sol -FN:43,ERC721.setApprovalForAll -FN:51,ERC721.approve -FN:93,ERC721.safeTransferFrom -FN:116,ERC721.transferFrom -FN:151,ERC721.supportsInterface -FN:159,ERC721._mint -FN:179,ERC721._burn -FNDA:1536,ERC721.transferFrom -FNDA:5120,ERC721.safeTransferFrom -FNDA:6400,ERC721._mint -FNDA:1280,ERC721._burn -FNDA:1024,ERC721.setApprovalForAll -FNDA:1792,ERC721.approve -FNDA:2,ERC721.supportsInterface -FNF:7 -FNH:7 -DA:44,1024 -DA:45,1024 -DA:52,1792 -DA:55,1792 -DA:56,256 -DA:59,1536 -DA:60,1536 -DA:76,2560 -DA:78,1792 -DA:79,1024 -DA:83,256 -DA:98,2560 -DA:100,1792 -DA:101,1024 -DA:105,256 -DA:121,6656 -DA:122,768 -DA:126,5888 -DA:127,2304 -DA:128,1536 -DA:130,768 -DA:133,5120 -DA:134,768 -DA:137,4352 -DA:140,4352 -DA:141,4352 -DA:144,4352 -DA:145,4352 -DA:152,2 -DA:153,1 -DA:160,6400 -DA:161,256 -DA:164,6144 -DA:165,256 -DA:169,5888 -DA:170,5888 -DA:173,5888 -DA:174,5888 -DA:180,1280 -DA:182,1280 -DA:183,512 -DA:187,768 -DA:188,768 -DA:191,768 -DA:192,768 -DA:193,768 -LF:46 -LH:46 -end_of_record -TN: -SF:contracts/modules/licensing/LicenseRegistry.sol -FN:34,LicenseRegistry.mint -FN:38,LicenseRegistry.exists -FN:42,LicenseRegistry._beforeTokenTransfer -FN:55,LicenseRegistry.getRightsManager -FN:59,LicenseRegistry.name -FN:63,LicenseRegistry.symbol -FNDA:10,LicenseRegistry.mint -FNDA:11,LicenseRegistry._beforeTokenTransfer -FNDA:2,LicenseRegistry.getRightsManager -FNDA:2,LicenseRegistry.name -FNDA:26,LicenseRegistry.exists -FNDA:2,LicenseRegistry.symbol -FNF:6 -FNH:6 -DA:35,9 -DA:39,26 +DA:42,16 +DA:46,16 +DA:47,14 +DA:48,11 DA:49,11 -DA:50,2 -DA:52,10 -DA:56,2 -DA:60,2 -DA:64,2 -LF:8 -LH:8 -end_of_record -TN: -SF:contracts/modules/licensing/LicensingModule.sol -FN:46,LicensingModule.initialize -FN:51,LicensingModule._getLicensingModuleStorage -FN:58,LicensingModule.getNonCommercialLicenseURI -FN:66,LicensingModule.setNonCommercialLicenseURI -FN:78,LicensingModule.configureFranchiseLicensing -FN:92,LicensingModule._verifyRootLicense -FN:106,LicensingModule.getFranchiseConfig -FN:110,LicensingModule._authorizeUpgrade -FNDA:5663,LicensingModule._getLicensingModuleStorage -FNDA:2830,LicensingModule.getFranchiseConfig -FNDA:12,LicensingModule._verifyRootLicense -FNDA:0,LicensingModule.initialize -FNDA:0,LicensingModule._authorizeUpgrade -FNDA:2829,LicensingModule.getNonCommercialLicenseURI -FNDA:0,LicensingModule.setNonCommercialLicenseURI -FNDA:8,LicensingModule.configureFranchiseLicensing -FNF:8 -FNH:5 -DA:47,0 -DA:48,0 -DA:52,5663 -DA:54,5663 -DA:59,2829 -DA:67,0 -DA:68,0 -DA:79,8 -DA:80,1 -DA:82,6 -DA:83,6 -DA:84,5 -DA:85,1 -DA:87,4 -DA:88,4 -DA:89,4 -DA:93,12 -DA:94,2 -DA:95,2 -DA:98,0 -DA:100,2 -DA:101,1 -DA:107,2830 -LF:23 -LH:18 -end_of_record -TN: -SF:contracts/modules/licensing/RightsManager.sol -FN:79,RightsManager.__RightsManager_init -FN:87,RightsManager.setLicenseRegistry -FN:94,RightsManager._getRightsManagerStorage -FN:117,RightsManager.createLicense -FN:156,RightsManager.createFranchiseRootLicense -FN:180,RightsManager._createLicense -FN:258,RightsManager.revokeLicense -FN:274,RightsManager.executeTerms -FN:289,RightsManager.isLicenseActive -FN:303,RightsManager._isActiveAndTermsOk -FN:308,RightsManager.getLicense -FN:315,RightsManager._beforeTokenTransfer -FN:332,RightsManager._verifyRightsTransfer -FN:347,RightsManager._verifyTerms -FN:354,RightsManager.getLicenseTokenId -FN:360,RightsManager.getParentLicenseId -FN:367,RightsManager.getLicenseHolder -FN:381,RightsManager.getLicenseURI -FN:387,RightsManager.getLicenseRevoker -FN:393,RightsManager.getLicenseIdByTokenId -FN:403,RightsManager.getLicenseRegistry -FN:407,RightsManager.isRootLicense -FN:413,RightsManager.isLicenseSet -FN:423,RightsManager.transferSublicense -FNDA:8,RightsManager.createLicense -FNDA:13,RightsManager.getLicenseIdByTokenId -FNDA:2989,RightsManager._getRightsManagerStorage -FNDA:0,RightsManager.__RightsManager_init -FNDA:4,RightsManager.setLicenseRegistry -FNDA:2872,RightsManager._verifyTerms -FNDA:0,RightsManager.getLicenseHolder -FNDA:4,RightsManager.getLicenseRegistry -FNDA:13,RightsManager.getLicense -FNDA:2,RightsManager.revokeLicense -FNDA:0,RightsManager.isRootLicense -FNDA:2863,RightsManager._beforeTokenTransfer -FNDA:16,RightsManager.isLicenseActive -FNDA:0,RightsManager.getLicenseRevoker -FNDA:2,RightsManager.executeTerms -FNDA:9,RightsManager.getLicenseTokenId -FNDA:24,RightsManager._isActiveAndTermsOk -FNDA:4,RightsManager.createFranchiseRootLicense -FNDA:0,RightsManager.isLicenseSet -FNDA:4,RightsManager.getLicenseURI -FNDA:4,RightsManager.getParentLicenseId -FNDA:0,RightsManager._verifyRightsTransfer -FNDA:3,RightsManager.transferSublicense -FNDA:2881,RightsManager._createLicense -FNF:24 -FNH:18 -DA:83,4 -DA:89,4 -DA:90,4 -DA:91,4 -DA:100,2989 -DA:127,8 -DA:128,2 -DA:130,6 -DA:131,5 -DA:165,4 -DA:166,3 -DA:192,2881 -DA:193,2880 -DA:197,2880 -DA:198,2877 -DA:199,1 -DA:203,2879 -DA:204,2864 -DA:205,1 -DA:208,15 -DA:209,15 -DA:211,11 -DA:212,11 -DA:213,10 -DA:214,9 -DA:215,6 -DA:219,2872 -DA:222,2871 -DA:223,2871 -DA:237,2871 -DA:238,9 -DA:241,2862 -DA:245,2871 -DA:253,2871 -DA:254,2871 -DA:259,2 -DA:260,2 -DA:261,2 -DA:262,2 -DA:263,2 -DA:264,2 -DA:275,2 -DA:276,2 -DA:277,2 -DA:278,2 -DA:279,2 -DA:280,2 -DA:281,1 -DA:282,1 -DA:285,2 -DA:293,18 -DA:294,18 -DA:295,33 -DA:296,24 -DA:297,24 -DA:298,15 -DA:300,9 -DA:304,24 -DA:305,24 -DA:309,13 -DA:321,2863 -DA:322,0 -DA:323,0 -DA:325,0 -DA:329,2863 -DA:338,0 -DA:341,0 -DA:342,0 -DA:343,0 -DA:344,0 -DA:348,2872 -DA:349,2849 -DA:350,1 -DA:357,9 -DA:363,4 -DA:370,25 -DA:371,25 -DA:372,4 -DA:374,21 -DA:377,21 -DA:384,4 -DA:390,0 -DA:397,15 -DA:404,4 -DA:410,0 -DA:414,2 -DA:427,3 -DA:428,3 -DA:429,2 -DA:430,1 -LF:90 -LH:80 +LF:5 +LH:5 end_of_record TN: -SF:contracts/modules/licensing/terms/BaseTermsProcessor.sol -FN:37,BaseTermsProcessor.executeTerms -FN:45,BaseTermsProcessor.supportsInterface -FNDA:3,BaseTermsProcessor.supportsInterface -FNDA:4,BaseTermsProcessor.executeTerms -FNF:2 -FNH:2 -DA:38,2 -DA:48,3 -LF:2 -LH:2 +SF:contracts/ip-org/IPOrg.sol +FN:103,IPOrg.mint +FN:111,IPOrg.burn +FN:120,IPOrg.transferFrom +FN:55,IPOrg.owner +FN:60,IPOrg.ownerOf +FN:66,IPOrg.tokenURI +FN:74,IPOrg.contractURI +FN:82,IPOrg.ipAssetId +FN:90,IPOrg.initialize +FNDA:7,IPOrg.mint +FNDA:0,IPOrg.burn +FNDA:0,IPOrg.transferFrom +FNDA:45,IPOrg.owner +FNDA:16,IPOrg.ownerOf +FNDA:0,IPOrg.tokenURI +FNDA:0,IPOrg.contractURI +FNDA:0,IPOrg.ipAssetId +FNDA:3,IPOrg.initialize +FNF:9 +FNH:4 +DA:56,45 +DA:61,16 +DA:69,0 +DA:70,0 +DA:75,0 +DA:76,0 +DA:83,0 +DA:84,0 +DA:95,3 +DA:96,0 +DA:99,3 +DA:104,7 +DA:105,7 +DA:106,7 +DA:112,0 +DA:113,0 +DA:125,0 +LF:17 +LH:7 end_of_record TN: -SF:contracts/modules/licensing/terms/MultiTermsProcessor.sol -FN:30,MultiTermsProcessor._setProcessors -FN:44,MultiTermsProcessor._executeTerms -FN:59,MultiTermsProcessor.supportsInterface -FN:77,MultiTermsProcessor.termsExecutedSuccessfully -FNDA:0,MultiTermsProcessor.supportsInterface -FNDA:0,MultiTermsProcessor._setProcessors -FNDA:0,MultiTermsProcessor._executeTerms -FNDA:0,MultiTermsProcessor.termsExecutedSuccessfully -FNF:4 -FNH:0 -DA:31,0 -DA:32,0 -DA:33,0 -DA:34,0 -DA:35,0 -DA:45,0 -DA:46,0 -DA:47,0 -DA:48,0 -DA:49,0 -DA:50,0 -DA:52,0 -DA:55,0 -DA:62,0 -DA:63,0 +SF:contracts/ip-org/IPOrgController.sol +FN:113,IPOrgController.cancelOwnerTransfer +FN:132,IPOrgController.acceptOwnerTransfer +FN:154,IPOrgController.registerIpOrg +FN:200,IPOrgController._ipOrgRecord +FN:210,IPOrgController._assertIPOrgExists +FN:218,IPOrgController._authorizeUpgrade +FN:226,IPOrgController._getIpOrgControllerStorage +FN:63,IPOrgController.initialize +FN:71,IPOrgController.ownerOf +FN:78,IPOrgController.isIpOrg +FN:86,IPOrgController.pendingOwnerOf +FN:94,IPOrgController.transferOwner +FNDA:0,IPOrgController.cancelOwnerTransfer +FNDA:0,IPOrgController.acceptOwnerTransfer +FNDA:3,IPOrgController.registerIpOrg +FNDA:45,IPOrgController._ipOrgRecord +FNDA:0,IPOrgController._assertIPOrgExists +FNDA:0,IPOrgController._authorizeUpgrade +FNDA:48,IPOrgController._getIpOrgControllerStorage +FNDA:0,IPOrgController.initialize +FNDA:45,IPOrgController.ownerOf +FNDA:0,IPOrgController.isIpOrg +FNDA:0,IPOrgController.pendingOwnerOf +FNDA:0,IPOrgController.transferOwner +FNF:12 +FNH:4 DA:64,0 DA:65,0 DA:66,0 -DA:68,0 -DA:71,0 -DA:73,0 -DA:78,0 +DA:72,45 +DA:73,45 DA:79,0 DA:80,0 -DA:81,0 -DA:82,0 -DA:83,0 -DA:85,0 +DA:87,0 DA:88,0 -LF:29 -LH:0 +DA:95,0 +DA:98,0 +DA:99,0 +DA:103,0 +DA:104,0 +DA:107,0 +DA:108,0 +DA:114,0 +DA:117,0 +DA:118,0 +DA:122,0 +DA:123,0 +DA:126,0 +DA:127,0 +DA:133,0 +DA:136,0 +DA:137,0 +DA:141,0 +DA:142,0 +DA:144,0 +DA:145,0 +DA:161,3 +DA:162,0 +DA:165,3 +DA:166,3 +DA:172,3 +DA:173,3 +DA:179,3 +DA:183,3 +DA:190,3 +DA:201,45 +DA:202,45 +DA:203,45 +DA:204,0 +DA:211,0 +DA:212,0 +DA:213,0 +DA:231,48 +DA:233,48 +LF:48 +LH:15 end_of_record TN: -SF:contracts/modules/licensing/terms/TimeTermsProcessor.sol -FN:24,TimeTermsProcessor._executeTerms -FN:33,TimeTermsProcessor.termsExecutedSuccessfully -FNDA:2,TimeTermsProcessor._executeTerms -FNDA:19,TimeTermsProcessor.termsExecutedSuccessfully +SF:contracts/lib/LibUintArrayMask.sol +FN:19,LibUintArrayMask._convertToMask +FN:33,LibUintArrayMask._isAssetTypeOnMask +FNDA:256,LibUintArrayMask._convertToMask +FNDA:512,LibUintArrayMask._isAssetTypeOnMask FNF:2 FNH:2 -DA:25,2 -DA:26,2 -DA:27,1 -DA:29,2 -DA:34,19 -DA:35,19 -LF:6 -LH:6 +DA:20,256 +DA:21,255 +DA:22,255 +DA:23,32386 +DA:24,32385 +DA:26,32385 +DA:29,254 +DA:34,512 +LF:8 +LH:8 end_of_record TN: -SF:contracts/modules/relationships/LibIPAssetMask.sol -FN:24,LibIPAssetMask._convertToMask -FN:48,LibIPAssetMask._convertFromMask -FN:63,LibIPAssetMask._supportsIPAssetType -FN:74,LibIPAssetMask._checkRelationshipNode -FNDA:9,LibIPAssetMask._convertFromMask -FNDA:14,LibIPAssetMask._checkRelationshipNode -FNDA:21,LibIPAssetMask._convertToMask -FNDA:28,LibIPAssetMask._supportsIPAssetType -FNF:4 -FNH:4 -DA:25,21 -DA:26,20 -DA:27,20 -DA:28,53 -DA:29,51 -DA:31,51 -DA:34,18 -DA:35,9 -DA:37,18 -DA:49,9 -DA:50,9 -DA:51,9 -DA:52,63 -DA:53,30 -DA:54,30 -DA:57,9 -DA:58,9 -DA:64,28 -DA:75,14 -DA:76,12 -DA:78,2 -DA:80,0 -LF:22 -LH:21 +SF:contracts/modules/ModuleRegistry.sol +FN:110,ModuleRegistry.configure +FN:132,ModuleRegistry._execute +FN:149,ModuleRegistry._configure +FN:26,ModuleRegistry.protocolModule +FN:34,ModuleRegistry.registerProtocolModule +FN:49,ModuleRegistry.removeProtocolModule +FN:61,ModuleRegistry.moduleForKey +FN:66,ModuleRegistry.isModule +FN:77,ModuleRegistry.execute +FNDA:22,ModuleRegistry.configure +FNDA:21,ModuleRegistry._execute +FNDA:22,ModuleRegistry._configure +FNDA:32,ModuleRegistry.protocolModule +FNDA:2,ModuleRegistry.registerProtocolModule +FNDA:1,ModuleRegistry.removeProtocolModule +FNDA:3,ModuleRegistry.moduleForKey +FNDA:9,ModuleRegistry.isModule +FNDA:21,ModuleRegistry.execute +FNF:9 +FNH:9 +DA:27,32 +DA:39,2 +DA:40,0 +DA:42,2 +DA:43,2 +DA:52,1 +DA:53,0 +DA:55,1 +DA:56,1 +DA:57,1 +DA:62,3 +DA:67,9 +DA:84,0 +DA:103,21 +DA:115,0 +DA:129,22 +DA:140,21 +DA:141,21 +DA:142,0 +DA:144,21 +DA:145,18 +DA:146,18 +DA:155,22 +DA:156,22 +DA:157,0 +DA:159,22 +DA:160,18 +DA:161,18 +LF:28 +LH:22 end_of_record TN: -SF:contracts/modules/relationships/ProtocolRelationshipModule.sol -FN:19,ProtocolRelationshipModule.initialize -FN:24,ProtocolRelationshipModule.setRelationshipConfig -FN:28,ProtocolRelationshipModule.unsetRelationshipConfig -FN:33,ProtocolRelationshipModule._authorizeUpgrade -FNDA:0,ProtocolRelationshipModule.initialize -FNDA:0,ProtocolRelationshipModule._authorizeUpgrade -FNDA:2,ProtocolRelationshipModule.setRelationshipConfig -FNDA:2,ProtocolRelationshipModule.unsetRelationshipConfig -FNF:4 -FNH:2 -DA:20,0 -DA:25,1 -DA:29,1 -LF:3 -LH:2 +SF:contracts/modules/base/BaseModule.sol +FN:117,BaseModule._executeHook +FN:133,BaseModule._verifyExecution +FN:134,BaseModule._performAction +FN:65,BaseModule.execute +FN:88,BaseModule.configure +FN:92,BaseModule._executeHooks +FNDA:8,BaseModule._executeHook +FNDA:0,BaseModule._verifyExecution +FNDA:0,BaseModule._performAction +FNDA:27,BaseModule.execute +FNDA:26,BaseModule.configure +FNDA:44,BaseModule._executeHooks +FNF:6 +FNH:4 +DA:72,26 +DA:73,23 +DA:74,23 +DA:75,0 +DA:76,0 +DA:78,21 +DA:79,21 +DA:80,20 +DA:81,20 +DA:89,25 +DA:97,44 +DA:98,44 +DA:99,44 +DA:100,44 +DA:101,2 +DA:103,42 +DA:104,8 +DA:105,0 +DA:108,41 +DA:123,8 +DA:127,8 +DA:128,8 +DA:129,7 +LF:23 +LH:20 end_of_record TN: -SF:contracts/modules/relationships/RelationshipModuleBase.sol -FN:66,RelationshipModuleBase.__RelationshipModuleBase_init -FN:70,RelationshipModuleBase._getRelationshipModuleStorage -FN:88,RelationshipModuleBase.relate -FN:110,RelationshipModuleBase._updateEndTime -FN:128,RelationshipModuleBase.unrelate -FN:142,RelationshipModuleBase.areTheyRelated -FN:152,RelationshipModuleBase.isRelationshipExpired -FN:163,RelationshipModuleBase._verifyRelationshipParams -FN:181,RelationshipModuleBase._checkRelationshipNode -FN:188,RelationshipModuleBase.getRelationshipKey -FN:207,RelationshipModuleBase._setRelationshipConfig -FN:230,RelationshipModuleBase._unsetRelationshipConfig -FN:249,RelationshipModuleBase._convertRelParams -FN:264,RelationshipModuleBase.getRelationshipConfig -FN:275,RelationshipModuleBase.getRelationshipConfigDecoded -FN:291,RelationshipModuleBase.getRelationshipId -FN:304,RelationshipModuleBase.convertToMask -FN:315,RelationshipModuleBase.convertFromMask -FN:320,RelationshipModuleBase.supportsIPAssetType -FNDA:40,RelationshipModuleBase._getRelationshipModuleStorage -FNDA:5,RelationshipModuleBase.areTheyRelated -FNDA:1,RelationshipModuleBase.getRelationshipConfigDecoded -FNDA:9,RelationshipModuleBase._verifyRelationshipParams -FNDA:4,RelationshipModuleBase.getRelationshipConfig -FNDA:0,RelationshipModuleBase.isRelationshipExpired -FNDA:1,RelationshipModuleBase.getRelationshipId -FNDA:0,RelationshipModuleBase.convertFromMask -FNDA:3,RelationshipModuleBase._unsetRelationshipConfig -FNDA:4,RelationshipModuleBase._setRelationshipConfig -FNDA:4,RelationshipModuleBase._convertRelParams -FNDA:0,RelationshipModuleBase.__RelationshipModuleBase_init -FNDA:0,RelationshipModuleBase.getRelationshipKey -FNDA:0,RelationshipModuleBase.unrelate -FNDA:0,RelationshipModuleBase.supportsIPAssetType -FNDA:13,RelationshipModuleBase._checkRelationshipNode -FNDA:9,RelationshipModuleBase.relate -FNDA:0,RelationshipModuleBase.convertToMask -FNDA:3,RelationshipModuleBase._updateEndTime -FNF:19 +SF:contracts/modules/base/HookRegistry.sol +FN:107,HookRegistry.hookConfigAt +FN:123,HookRegistry.totalHooks +FN:134,HookRegistry.totalHooksConfig +FN:146,HookRegistry.clearHooks +FN:166,HookRegistry.hookIndex +FN:178,HookRegistry._hooksForType +FN:193,HookRegistry._hooksConfigForType +FN:209,HookRegistry._registerHooks +FN:241,HookRegistry._hookIndex +FN:53,HookRegistry.registerHooks +FN:75,HookRegistry.isRegistered +FN:89,HookRegistry.hookAt +FNDA:24,HookRegistry.hookConfigAt +FNDA:13,HookRegistry.totalHooks +FNDA:15,HookRegistry.totalHooksConfig +FNDA:3,HookRegistry.clearHooks +FNDA:8,HookRegistry.hookIndex +FNDA:145,HookRegistry._hooksForType +FNDA:135,HookRegistry._hooksConfigForType +FNDA:29,HookRegistry._registerHooks +FNDA:12,HookRegistry._hookIndex +FNDA:25,HookRegistry.registerHooks +FNDA:4,HookRegistry.isRegistered +FNDA:24,HookRegistry.hookAt +FNF:12 FNH:12 -DA:67,0 -DA:76,40 -DA:89,9 -DA:90,9 -DA:91,9 -DA:93,3 -DA:94,0 -DA:96,3 -DA:97,3 -DA:98,3 -DA:99,3 -DA:111,3 -DA:112,3 -DA:113,0 -DA:114,0 -DA:115,0 -DA:116,0 -DA:117,0 -DA:120,3 -DA:129,0 -DA:130,0 -DA:131,0 -DA:132,0 -DA:133,0 -DA:134,0 -DA:143,5 -DA:144,5 +DA:60,29 +DA:61,29 +DA:67,24 +DA:80,4 +DA:94,24 +DA:95,24 +DA:96,1 +DA:98,23 +DA:112,24 +DA:113,24 +DA:114,1 +DA:116,23 +DA:127,13 +DA:138,15 +DA:151,31 +DA:152,3 DA:153,3 -DA:154,3 -DA:155,3 -DA:164,9 -DA:165,8 -DA:166,6 -DA:167,5 -DA:168,5 -DA:169,4 -DA:182,13 -DA:183,11 -DA:184,11 -DA:189,11 -DA:208,4 -DA:209,4 -DA:210,3 -DA:211,3 -DA:212,3 -DA:223,3 -DA:231,3 -DA:233,3 -DA:234,1 -DA:235,2 -DA:236,2 -DA:250,4 +DA:154,28 +DA:155,2 +DA:156,2 +DA:158,31 +DA:171,12 +DA:182,145 +DA:183,92 +DA:185,53 +DA:197,135 +DA:198,87 +DA:200,48 +DA:215,29 +DA:216,29 +DA:217,2 +DA:219,27 +DA:220,1 +DA:223,26 +DA:224,52 +DA:225,1 +DA:227,51 +DA:228,1 +DA:230,50 +DA:231,50 +DA:232,50 +DA:245,12 +DA:246,12 +DA:247,12 +DA:248,8 DA:251,4 -DA:252,4 -DA:253,4 -DA:265,5 -DA:266,5 -DA:276,1 -DA:277,1 -DA:278,1 -DA:279,1 -DA:292,5 -DA:305,0 -DA:316,0 -DA:321,0 -LF:65 -LH:49 +DA:254,4 +LF:47 +LH:47 end_of_record TN: -SF:contracts/modules/relationships/processors/BaseRelationshipProcessor.sol -FN:31,BaseRelationshipProcessor.processRelationship -FN:39,BaseRelationshipProcessor.supportsInterface -FNDA:12,BaseRelationshipProcessor.supportsInterface -FNDA:3,BaseRelationshipProcessor.processRelationship -FNF:2 -FNH:2 -DA:32,3 -DA:33,3 -DA:42,12 -LF:3 -LH:3 +SF:contracts/modules/licensing/LicenseRegistry.sol +FN:108,LicenseRegistry.addTradeableLicense +FN:135,LicenseRegistry._addLicense +FN:145,LicenseRegistry.getLicense +FN:152,LicenseRegistry.getLicensor +FN:159,LicenseRegistry.getLicensee +FN:173,LicenseRegistry.bindLnftToIpa +FN:189,LicenseRegistry.isLicenseActive +FN:202,LicenseRegistry.activateLicense +FN:214,LicenseRegistry.revokeLicense +FN:74,LicenseRegistry.addBoundToIpaLicense +FNDA:2,LicenseRegistry.addTradeableLicense +FNDA:6,LicenseRegistry._addLicense +FNDA:12,LicenseRegistry.getLicense +FNDA:0,LicenseRegistry.getLicensor +FNDA:10,LicenseRegistry.getLicensee +FNDA:1,LicenseRegistry.bindLnftToIpa +FNDA:10,LicenseRegistry.isLicenseActive +FNDA:2,LicenseRegistry.activateLicense +FNDA:0,LicenseRegistry.revokeLicense +FNDA:4,LicenseRegistry.addBoundToIpaLicense +FNF:10 +FNH:8 +DA:83,4 +DA:84,0 +DA:86,4 +DA:87,4 +DA:117,2 +DA:131,2 +DA:132,2 +DA:139,6 +DA:140,6 +DA:141,6 +DA:148,12 +DA:153,0 +DA:160,10 +DA:161,10 +DA:162,0 +DA:163,10 +DA:164,7 +DA:166,3 +DA:177,1 +DA:178,1 +DA:179,0 +DA:181,1 +DA:182,1 +DA:183,1 +DA:184,1 +DA:191,10 +DA:192,20 +DA:193,12 +DA:194,2 +DA:195,10 +DA:197,8 +DA:203,2 +DA:204,0 +DA:206,2 +DA:208,2 +DA:215,0 +DA:216,0 +DA:218,0 +DA:220,0 +LF:39 +LH:30 end_of_record TN: -SF:contracts/modules/relationships/processors/DstOwnerRelationshipProcessor.sol -FN:20,DstOwnerRelationshipProcessor._processRelationship -FNDA:0,DstOwnerRelationshipProcessor._processRelationship -FNF:1 -FNH:0 -DA:21,0 -DA:22,0 -DA:24,0 -LF:3 -LH:0 +SF:contracts/modules/licensing/LicensingModule.sol +FN:103,LicensingModule.getTotalIpOrgTerms +FN:115,LicensingModule.ipOrgTermsContains +FN:130,LicensingModule.ipOrgTermData +FN:151,LicensingModule.ipOrgTermsAt +FN:165,LicensingModule._verifyExecution +FN:189,LicensingModule._verifyCreateLicense +FN:231,LicensingModule._verifyActivateLicense +FN:251,LicensingModule._verifyBondNftToIpa +FN:272,LicensingModule._performAction +FN:297,LicensingModule._createLicense +FN:336,LicensingModule._getRegistryAddition +FN:366,LicensingModule._activateLicense +FN:381,LicensingModule._getLicensor +FN:409,LicensingModule._getRevoker +FN:420,LicensingModule._configure +FN:447,LicensingModule._setIpOrgFramework +FN:515,LicensingModule._setTerms +FN:563,LicensingModule._getTermsKey +FN:574,LicensingModule._hookRegistryKey +FN:58,LicensingModule.isShareAlikeOn +FN:66,LicensingModule.getLicensorConfig +FN:75,LicensingModule.isLicensorAppovalOn +FN:83,LicensingModule.ipOrgAllowsCommercial +FN:89,LicensingModule.getIpOrgTerms +FNDA:0,LicensingModule.getTotalIpOrgTerms +FNDA:0,LicensingModule.ipOrgTermsContains +FNDA:0,LicensingModule.ipOrgTermData +FNDA:0,LicensingModule.ipOrgTermsAt +FNDA:12,LicensingModule._verifyExecution +FNDA:7,LicensingModule._verifyCreateLicense +FNDA:3,LicensingModule._verifyActivateLicense +FNDA:2,LicensingModule._verifyBondNftToIpa +FNDA:9,LicensingModule._performAction +FNDA:6,LicensingModule._createLicense +FNDA:6,LicensingModule._getRegistryAddition +FNDA:2,LicensingModule._activateLicense +FNDA:6,LicensingModule._getLicensor +FNDA:6,LicensingModule._getRevoker +FNDA:12,LicensingModule._configure +FNDA:12,LicensingModule._setIpOrgFramework +FNDA:17,LicensingModule._setTerms +FNDA:67,LicensingModule._getTermsKey +FNDA:9,LicensingModule._hookRegistryKey +FNDA:1,LicensingModule.isShareAlikeOn +FNDA:1,LicensingModule.getLicensorConfig +FNDA:1,LicensingModule.isLicensorAppovalOn +FNDA:2,LicensingModule.ipOrgAllowsCommercial +FNDA:5,LicensingModule.getIpOrgTerms +FNF:24 +FNH:20 +DA:62,1 +DA:70,1 +DA:79,1 +DA:84,9 +DA:93,5 +DA:107,12 +DA:120,0 +DA:121,0 +DA:135,0 +DA:136,0 +DA:137,0 +DA:138,0 +DA:139,0 +DA:140,0 +DA:142,0 +DA:156,0 +DA:157,0 +DA:171,12 +DA:172,0 +DA:174,12 +DA:178,12 +DA:179,7 +DA:180,5 +DA:181,3 +DA:182,2 +DA:183,2 +DA:185,0 +DA:194,7 +DA:198,7 +DA:203,7 +DA:204,0 +DA:207,7 +DA:208,0 +DA:211,7 +DA:212,3 +DA:213,0 +DA:217,3 +DA:222,2 +DA:223,2 +DA:225,1 +DA:236,3 +DA:237,3 +DA:240,3 +DA:241,1 +DA:244,2 +DA:245,1 +DA:247,0 +DA:256,2 +DA:260,2 +DA:261,1 +DA:263,1 +DA:264,0 +DA:266,1 +DA:267,0 +DA:277,9 +DA:281,9 +DA:282,6 +DA:283,3 +DA:284,2 +DA:285,1 +DA:286,1 +DA:290,1 +DA:291,1 +DA:293,0 +DA:302,6 +DA:306,6 +DA:311,6 +DA:315,6 +DA:320,6 +DA:322,6 +DA:323,4 +DA:328,2 +DA:333,6 +DA:341,6 +DA:342,6 +DA:343,6 +DA:344,6 +DA:345,6 +DA:346,3 +DA:348,6 +DA:349,6 +DA:371,2 +DA:372,2 +DA:377,2 +DA:388,6 +DA:391,6 +DA:392,2 +DA:393,4 +DA:394,4 +DA:395,2 +DA:396,0 +DA:399,2 +DA:401,2 +DA:404,0 +DA:412,6 +DA:426,12 +DA:430,12 +DA:431,12 +DA:435,0 +DA:452,12 +DA:453,1 +DA:455,11 +DA:457,11 +DA:463,11 +DA:466,11 +DA:467,1 +DA:469,10 +DA:470,10 +DA:471,10 +DA:474,10 +DA:477,1 +DA:479,9 +DA:486,8 +DA:493,8 +DA:495,8 +DA:496,8 +DA:497,8 +DA:498,8 +DA:499,8 +DA:506,8 +DA:522,17 +DA:523,17 +DA:524,51 +DA:525,51 +DA:526,0 +DA:528,51 +DA:531,51 +DA:539,1 +DA:541,50 +DA:542,50 +DA:543,10 +DA:545,40 +DA:547,10 +DA:552,30 +DA:554,10 +DA:558,50 +DA:559,50 +DA:567,67 +DA:579,9 +LF:139 +LH:115 end_of_record TN: -SF:contracts/modules/relationships/processors/PermissionlessRelationshipProcessor.sol -FN:18,PermissionlessRelationshipProcessor._processRelationship -FNDA:3,PermissionlessRelationshipProcessor._processRelationship -FNF:1 -FNH:1 -DA:19,3 -LF:1 -LH:1 +SF:contracts/modules/licensing/TermsRepository.sol +FN:100,TermsRepository.categoryForTerm +FN:106,TermsRepository.shortStringCategoryForTerm +FN:112,TermsRepository.getTerm +FN:118,TermsRepository.getTermHook +FN:131,TermsRepository.totalTermsForCategory +FN:139,TermsRepository.termForCategoryAt +FN:151,TermsRepository._verifyCategoryExists +FN:53,TermsRepository.addCategory +FN:59,TermsRepository.removeCategory +FN:65,TermsRepository.totalTermCategories +FN:70,TermsRepository.termCategoryAt +FN:80,TermsRepository.addTerm +FNDA:0,TermsRepository.categoryForTerm +FNDA:0,TermsRepository.shortStringCategoryForTerm +FNDA:56,TermsRepository.getTerm +FNDA:0,TermsRepository.getTermHook +FNDA:0,TermsRepository.totalTermsForCategory +FNDA:0,TermsRepository.termForCategoryAt +FNDA:4,TermsRepository._verifyCategoryExists +FNDA:4,TermsRepository.addCategory +FNDA:0,TermsRepository.removeCategory +FNDA:0,TermsRepository.totalTermCategories +FNDA:0,TermsRepository.termCategoryAt +FNDA:4,TermsRepository.addTerm +FNF:12 +FNH:4 +DA:54,4 +DA:55,4 +DA:60,0 +DA:61,0 +DA:66,0 +DA:73,0 +DA:86,4 +DA:87,4 +DA:88,4 +DA:89,0 +DA:91,4 +DA:92,4 +DA:93,0 +DA:95,4 +DA:96,4 +DA:97,4 +DA:103,0 +DA:109,0 +DA:115,56 +DA:121,0 +DA:127,0 +DA:128,0 +DA:134,0 +DA:135,0 +DA:136,0 +DA:143,0 +DA:144,0 +DA:145,0 +DA:148,0 +DA:152,4 +DA:153,0 +LF:31 +LH:12 end_of_record TN: -SF:contracts/modules/relationships/processors/SrcDstOwnerRelationshipProcessor.sol -FN:20,SrcDstOwnerRelationshipProcessor._processRelationship -FNDA:0,SrcDstOwnerRelationshipProcessor._processRelationship -FNF:1 -FNH:0 -DA:22,0 -DA:23,0 -DA:24,0 -DA:26,0 -LF:4 -LH:0 +SF:contracts/modules/registration/RegistrationModule.sol +FN:133,RegistrationModule.getIPAssetTypes +FN:139,RegistrationModule.ownerOf +FN:147,RegistrationModule._verifyExecution +FN:171,RegistrationModule._configure +FN:189,RegistrationModule._performAction +FN:210,RegistrationModule._registerIPAsset +FN:249,RegistrationModule._transferIPAsset +FN:271,RegistrationModule._transferIPAssetToIPOrg +FN:300,RegistrationModule._addIPAssetTypes +FN:314,RegistrationModule._setMetadata +FN:327,RegistrationModule._verifyConfigCaller +FN:333,RegistrationModule._hookRegistryKey +FN:341,RegistrationModule._generateRegistryKey +FN:55,RegistrationModule.registerHooks +FN:67,RegistrationModule.contractURI +FN:78,RegistrationModule.tokenURI +FNDA:0,RegistrationModule.getIPAssetTypes +FNDA:11,RegistrationModule.ownerOf +FNDA:7,RegistrationModule._verifyExecution +FNDA:6,RegistrationModule._configure +FNDA:7,RegistrationModule._performAction +FNDA:7,RegistrationModule._registerIPAsset +FNDA:0,RegistrationModule._transferIPAsset +FNDA:0,RegistrationModule._transferIPAssetToIPOrg +FNDA:3,RegistrationModule._addIPAssetTypes +FNDA:3,RegistrationModule._setMetadata +FNDA:6,RegistrationModule._verifyConfigCaller +FNDA:7,RegistrationModule._hookRegistryKey +FNDA:8,RegistrationModule._generateRegistryKey +FNDA:1,RegistrationModule.registerHooks +FNDA:0,RegistrationModule.contractURI +FNDA:3,RegistrationModule.tokenURI +FNF:16 +FNH:12 +DA:61,1 +DA:62,1 +DA:68,0 +DA:69,0 +DA:70,0 +DA:72,0 +DA:79,3 +DA:80,3 +DA:81,3 +DA:82,0 +DA:87,3 +DA:88,1 +DA:91,2 +DA:92,2 +DA:93,1 +DA:96,1 +DA:99,1 +DA:105,1 +DA:110,1 +DA:118,1 +DA:134,0 +DA:140,11 +DA:141,11 +DA:148,7 +DA:150,7 +DA:151,0 +DA:152,0 +DA:153,0 +DA:155,7 +DA:156,7 +DA:157,7 +DA:158,0 +DA:161,0 +DA:172,6 +DA:173,6 +DA:174,6 +DA:175,3 +DA:176,3 +DA:177,3 +DA:178,3 +DA:179,3 +DA:181,0 +DA:183,6 +DA:190,7 +DA:191,7 +DA:192,0 +DA:193,0 +DA:194,0 +DA:195,7 +DA:196,7 +DA:197,7 +DA:198,7 +DA:200,0 +DA:218,7 +DA:225,7 +DA:226,7 +DA:227,7 +DA:228,7 +DA:229,7 +DA:230,4 +DA:232,7 +DA:255,0 +DA:256,0 +DA:257,0 +DA:278,0 +DA:280,0 +DA:282,0 +DA:283,0 +DA:284,0 +DA:285,0 +DA:289,0 +DA:290,0 +DA:291,0 +DA:292,0 +DA:304,3 +DA:305,3 +DA:306,4 +DA:319,3 +DA:320,3 +DA:321,3 +DA:322,3 +DA:328,6 +DA:329,0 +DA:338,7 +DA:342,8 +LF:85 +LH:55 end_of_record TN: -SF:contracts/modules/relationships/processors/SrcOwnerRelationshipProcessor.sol -FN:20,SrcOwnerRelationshipProcessor._processRelationship -FNDA:0,SrcOwnerRelationshipProcessor._processRelationship -FNF:1 -FNH:0 -DA:21,0 -DA:22,0 -DA:24,0 -LF:3 -LH:0 +SF:contracts/modules/relationships/RelationshipModule.sol +FN:121,RelationshipModule._verifyConfigCaller +FN:139,RelationshipModule.addressConfigFor +FN:161,RelationshipModule._addRelationshipType +FN:190,RelationshipModule._removeRelationshipType +FN:202,RelationshipModule._verifyExecution +FN:234,RelationshipModule._performAction +FN:257,RelationshipModule._hookRegistryKey +FN:266,RelationshipModule._generateRegistryKey +FN:51,RelationshipModule.registerHooks +FN:67,RelationshipModule.getRelationshipType +FN:79,RelationshipModule.getRelationship +FN:88,RelationshipModule.getRelationshipId +FN:93,RelationshipModule.relationshipExists +FN:98,RelationshipModule._configure +FNDA:4,RelationshipModule._verifyConfigCaller +FNDA:6,RelationshipModule.addressConfigFor +FNDA:3,RelationshipModule._addRelationshipType +FNDA:1,RelationshipModule._removeRelationshipType +FNDA:2,RelationshipModule._verifyExecution +FNDA:2,RelationshipModule._performAction +FNDA:2,RelationshipModule._hookRegistryKey +FNDA:2,RelationshipModule._generateRegistryKey +FNDA:0,RelationshipModule.registerHooks +FNDA:2,RelationshipModule.getRelationshipType +FNDA:2,RelationshipModule.getRelationship +FNDA:1,RelationshipModule.getRelationshipId +FNDA:0,RelationshipModule.relationshipExists +FNDA:4,RelationshipModule._configure +FNF:14 +FNH:12 +DA:58,0 +DA:59,0 +DA:68,4 +DA:69,3 +DA:71,1 +DA:73,4 +DA:74,1 +DA:80,2 +DA:89,1 +DA:94,0 +DA:103,4 +DA:104,4 +DA:105,4 +DA:106,3 +DA:107,1 +DA:108,1 +DA:109,1 +DA:111,0 +DA:113,4 +DA:122,4 +DA:123,3 +DA:124,0 +DA:127,1 +DA:128,0 +DA:144,6 +DA:145,0 +DA:146,6 +DA:147,0 +DA:148,6 +DA:149,0 +DA:150,6 +DA:151,6 +DA:152,0 +DA:153,0 +DA:155,0 +DA:162,3 +DA:163,3 +DA:164,3 +DA:170,3 +DA:171,2 +DA:173,1 +DA:175,3 +DA:191,1 +DA:192,1 +DA:194,0 +DA:196,1 +DA:203,2 +DA:204,2 +DA:206,2 +DA:207,0 +DA:209,2 +DA:210,0 +DA:211,0 +DA:214,2 +DA:215,0 +DA:218,2 +DA:219,0 +DA:221,2 +DA:222,0 +DA:223,0 +DA:226,2 +DA:227,0 +DA:235,2 +DA:236,2 +DA:237,2 +DA:244,2 +DA:245,2 +DA:246,2 +DA:254,2 +DA:262,2 +DA:263,2 +DA:267,2 +LF:72 +LH:51 end_of_record TN: -SF:contracts/modules/relationships/processors/SrcRequestOrDstOwnerRelationshipProcessor.sol -FN:18,SrcRequestOrDstOwnerRelationshipProcessor._processRelationship -FNDA:0,SrcRequestOrDstOwnerRelationshipProcessor._processRelationship -FNF:1 +SF:contracts/utils/FixedSet.sol +FN:105,FixedSet.add +FN:112,FixedSet.contains +FN:119,FixedSet.length +FN:133,FixedSet.at +FN:140,FixedSet.indexOf +FN:152,FixedSet.values +FN:30,FixedSet._add +FN:45,FixedSet._contains +FN:52,FixedSet._length +FN:59,FixedSet._indexOf +FN:74,FixedSet._at +FN:86,FixedSet._values +FNDA:0,FixedSet.add +FNDA:0,FixedSet.contains +FNDA:0,FixedSet.length +FNDA:0,FixedSet.at +FNDA:0,FixedSet.indexOf +FNDA:0,FixedSet.values +FNDA:0,FixedSet._add +FNDA:0,FixedSet._contains +FNDA:0,FixedSet._length +FNDA:0,FixedSet._indexOf +FNDA:0,FixedSet._at +FNDA:0,FixedSet._values +FNF:12 FNH:0 -DA:19,0 -DA:20,0 -DA:21,0 -DA:23,0 -DA:25,0 -LF:5 -LH:0 -end_of_record -TN: -SF:contracts/modules/royalties/RoyaltyDistributor.sol -FN:25,RoyaltyDistributor.setRoyaltyPolicy -FN:36,RoyaltyDistributor.getRoyaltyPolicy -FN:44,RoyaltyDistributor.updateDistribution -FN:53,RoyaltyDistributor.distribute -FN:58,RoyaltyDistributor.claim -FN:62,RoyaltyDistributor.pause -FN:65,RoyaltyDistributor.unpause -FN:69,RoyaltyDistributor._ipAccount -FN:73,RoyaltyDistributor._authorizeUpgrade -FNDA:8,RoyaltyDistributor.updateDistribution -FNDA:0,RoyaltyDistributor._authorizeUpgrade -FNDA:2,RoyaltyDistributor.distribute -FNDA:0,RoyaltyDistributor.pause -FNDA:2,RoyaltyDistributor.claim -FNDA:0,RoyaltyDistributor.unpause -FNDA:8,RoyaltyDistributor.getRoyaltyPolicy -FNDA:18,RoyaltyDistributor._ipAccount -FNDA:8,RoyaltyDistributor.setRoyaltyPolicy -FNF:9 -FNH:6 -DA:31,8 -DA:32,8 -DA:33,8 -DA:40,8 -DA:41,8 -DA:49,8 -DA:50,8 -DA:54,2 -DA:55,2 -DA:59,2 -DA:63,0 -DA:66,0 -DA:70,18 -LF:13 -LH:11 -end_of_record -TN: -SF:contracts/modules/royalties/RoyaltyNFT.sol -FN:39,RoyaltyNFT.distributeFunds -FN:63,RoyaltyNFT.claim -FN:69,RoyaltyNFT.mint -FN:106,RoyaltyNFT._afterTokenTransfer -FN:128,RoyaltyNFT.uri -FN:145,RoyaltyNFT.percentage -FN:151,RoyaltyNFT.toTokenId -FN:155,RoyaltyNFT._getSum -FN:166,RoyaltyNFT.sort -FNDA:0,RoyaltyNFT.uri -FNDA:2,RoyaltyNFT.distributeFunds -FNDA:18,RoyaltyNFT._afterTokenTransfer -FNDA:6,RoyaltyNFT._getSum -FNDA:6,RoyaltyNFT.mint -FNDA:2,RoyaltyNFT.sort -FNDA:0,RoyaltyNFT.percentage -FNDA:14,RoyaltyNFT.toTokenId -FNDA:2,RoyaltyNFT.claim -FNF:9 -FNH:7 -DA:40,2 -DA:41,2 -DA:42,2 -DA:43,2 -DA:44,2 -DA:45,2 -DA:46,6 -DA:48,6 -DA:51,2 -DA:52,2 -DA:53,2 -DA:64,2 -DA:65,2 -DA:66,2 -DA:70,6 -DA:72,6 -DA:74,6 +DA:31,0 +DA:32,0 +DA:35,0 +DA:36,0 +DA:38,0 +DA:46,0 +DA:53,0 +DA:60,0 +DA:61,0 DA:75,0 -DA:80,6 -DA:81,0 -DA:84,6 -DA:85,16 -DA:89,6 -DA:90,6 -DA:91,6 -DA:92,6 -DA:93,6 -DA:94,6 -DA:96,6 -DA:114,18 -DA:115,18 -DA:116,18 -DA:117,18 -DA:118,18 +DA:87,0 +DA:106,0 +DA:113,0 DA:120,0 -DA:121,0 -DA:122,0 -DA:123,0 -DA:129,0 -DA:147,6 -DA:152,28 -DA:156,6 -DA:157,6 -DA:158,16 -DA:161,16 -DA:167,2 -DA:168,2 -DA:169,4 -DA:170,4 -DA:171,8 -DA:172,4 -DA:173,4 -DA:175,4 -LF:53 -LH:46 -end_of_record -TN: -SF:contracts/modules/royalties/RoyaltyNFTFactory.sol -FN:16,RoyaltyNFTFactory.createRoyaltyNft -FNDA:0,RoyaltyNFTFactory.createRoyaltyNft -FNF:1 -FNH:0 -DA:19,0 -DA:20,0 -LF:2 +DA:134,0 +DA:141,0 +DA:153,0 +DA:154,0 +DA:158,0 +DA:161,0 +DA:180,0 +DA:187,0 +DA:194,0 +DA:208,0 +DA:215,0 +DA:227,0 +DA:228,0 +DA:232,0 +DA:235,0 +DA:253,0 +DA:260,0 +DA:267,0 +DA:281,0 +DA:288,0 +DA:300,0 +DA:301,0 +DA:305,0 +DA:308,0 +DA:326,0 +DA:333,0 +DA:340,0 +DA:354,0 +DA:361,0 +DA:374,0 +DA:375,0 +DA:379,0 +DA:382,0 +LF:47 LH:0 end_of_record TN: -SF:contracts/modules/royalties/policies/MutableRoyaltyProportionPolicy.sol -FN:15,MutableRoyaltyProportionPolicy.initPolicy -FN:17,MutableRoyaltyProportionPolicy.updateDistribution -FN:35,MutableRoyaltyProportionPolicy.distribute -FNDA:8,MutableRoyaltyProportionPolicy.updateDistribution -FNDA:8,MutableRoyaltyProportionPolicy.initPolicy -FNDA:2,MutableRoyaltyProportionPolicy.distribute -FNF:3 -FNH:3 -DA:18,8 -DA:19,8 -DA:20,8 -DA:21,6 -DA:23,2 -DA:24,2 -DA:36,2 -LF:7 -LH:7 -end_of_record -TN: -SF:contracts/modules/timing/LibDuration.sol -FN:19,LibDuration.isActive -FN:23,LibDuration.isRenewable -FN:27,LibDuration.renew -FN:35,LibDuration.createRunningTimeConfig -FN:44,LibDuration.createStoppedTimeConfig +SF:contracts/utils/LibDuration.sol +FN:16,LibDuration.isActive +FN:20,LibDuration.renew +FN:28,LibDuration.createRunningTimeConfig +FN:37,LibDuration.isRenewable +FN:41,LibDuration.createStoppedTimeConfig +FNDA:0,LibDuration.isActive FNDA:0,LibDuration.renew -FNDA:0,LibDuration.isRenewable FNDA:0,LibDuration.createRunningTimeConfig +FNDA:0,LibDuration.isRenewable FNDA:0,LibDuration.createStoppedTimeConfig -FNDA:0,LibDuration.isActive FNF:5 FNH:0 -DA:20,0 +DA:17,0 +DA:21,0 +DA:22,0 +DA:23,0 DA:24,0 -DA:28,0 +DA:25,0 DA:29,0 DA:30,0 -DA:31,0 -DA:32,0 -DA:36,0 -DA:37,0 -DA:45,0 -DA:46,0 +DA:38,0 +DA:42,0 +DA:43,0 LF:11 LH:0 end_of_record +TN: +SF:contracts/utils/ShortStringOps.sol +FN:9,ShortStringOps._equal +FNDA:240,ShortStringOps._equal +FNF:1 +FNH:1 +DA:13,120 +DA:20,120 +DA:27,0 +DA:34,0 +DA:41,0 +DA:48,0 +LF:6 +LH:2 +end_of_record diff --git a/contracts/ip-accounts/IPAccountImpl.sol b/mvp/contracts/ip-accounts/IPAccountImpl.sol similarity index 100% rename from contracts/ip-accounts/IPAccountImpl.sol rename to mvp/contracts/ip-accounts/IPAccountImpl.sol diff --git a/contracts/ip-accounts/IPAccountRegistry.sol b/mvp/contracts/ip-accounts/IPAccountRegistry.sol similarity index 100% rename from contracts/ip-accounts/IPAccountRegistry.sol rename to mvp/contracts/ip-accounts/IPAccountRegistry.sol diff --git a/contracts/modules/collect/CollectModuleBase.sol b/mvp/contracts/modules/collect/CollectModuleBase.sol similarity index 100% rename from contracts/modules/collect/CollectModuleBase.sol rename to mvp/contracts/modules/collect/CollectModuleBase.sol diff --git a/contracts/modules/collect/CollectPaymentModuleBase.sol b/mvp/contracts/modules/collect/CollectPaymentModuleBase.sol similarity index 100% rename from contracts/modules/collect/CollectPaymentModuleBase.sol rename to mvp/contracts/modules/collect/CollectPaymentModuleBase.sol diff --git a/contracts/modules/collect/SimpleCollectModule.sol b/mvp/contracts/modules/collect/SimpleCollectModule.sol similarity index 100% rename from contracts/modules/collect/SimpleCollectModule.sol rename to mvp/contracts/modules/collect/SimpleCollectModule.sol diff --git a/contracts/modules/collect/nft/CollectNFTBase.sol b/mvp/contracts/modules/collect/nft/CollectNFTBase.sol similarity index 100% rename from contracts/modules/collect/nft/CollectNFTBase.sol rename to mvp/contracts/modules/collect/nft/CollectNFTBase.sol diff --git a/contracts/modules/collect/nft/ERC721.sol b/mvp/contracts/modules/collect/nft/ERC721.sol similarity index 100% rename from contracts/modules/collect/nft/ERC721.sol rename to mvp/contracts/modules/collect/nft/ERC721.sol diff --git a/contracts/modules/royalties/RoyaltyDistributor.sol b/mvp/contracts/modules/royalties/RoyaltyDistributor.sol similarity index 100% rename from contracts/modules/royalties/RoyaltyDistributor.sol rename to mvp/contracts/modules/royalties/RoyaltyDistributor.sol diff --git a/contracts/modules/royalties/RoyaltyNFT.sol b/mvp/contracts/modules/royalties/RoyaltyNFT.sol similarity index 100% rename from contracts/modules/royalties/RoyaltyNFT.sol rename to mvp/contracts/modules/royalties/RoyaltyNFT.sol diff --git a/contracts/modules/royalties/RoyaltyNFTFactory.sol b/mvp/contracts/modules/royalties/RoyaltyNFTFactory.sol similarity index 100% rename from contracts/modules/royalties/RoyaltyNFTFactory.sol rename to mvp/contracts/modules/royalties/RoyaltyNFTFactory.sol diff --git a/contracts/modules/royalties/policies/MutableRoyaltyProportionPolicy.sol b/mvp/contracts/modules/royalties/policies/MutableRoyaltyProportionPolicy.sol similarity index 100% rename from contracts/modules/royalties/policies/MutableRoyaltyProportionPolicy.sol rename to mvp/contracts/modules/royalties/policies/MutableRoyaltyProportionPolicy.sol diff --git a/test/foundry/IPAccount.t.sol b/mvp/test/foundry/IPAccount.t.sol similarity index 100% rename from test/foundry/IPAccount.t.sol rename to mvp/test/foundry/IPAccount.t.sol diff --git a/test/foundry/IPAccountRegistry.t.sol b/mvp/test/foundry/IPAccountRegistry.t.sol similarity index 97% rename from test/foundry/IPAccountRegistry.t.sol rename to mvp/test/foundry/IPAccountRegistry.t.sol index c773693a..a7f7e683 100644 --- a/test/foundry/IPAccountRegistry.t.sol +++ b/mvp/test/foundry/IPAccountRegistry.t.sol @@ -5,7 +5,7 @@ import "forge-std/Test.sol"; import { Errors } from "contracts/lib/Errors.sol"; import "contracts/ip-accounts/IPAccountRegistry.sol"; -import "test/foundry/mocks/MockIPAccount.sol"; +import "mvp/test/foundry/mocks/MockIPAccount.sol"; contract RegistryTest is Test { IPAccountRegistry public registry; diff --git a/test/foundry/RoyaltyDistributor.t.sol b/mvp/test/foundry/RoyaltyDistributor.t.sol similarity index 99% rename from test/foundry/RoyaltyDistributor.t.sol rename to mvp/test/foundry/RoyaltyDistributor.t.sol index d69170dc..abcb4dbb 100644 --- a/test/foundry/RoyaltyDistributor.t.sol +++ b/mvp/test/foundry/RoyaltyDistributor.t.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.13; import "forge-std/Test.sol"; import "contracts/ip-accounts/IPAccountRegistry.sol"; -import "test/foundry/mocks/MockIPAccount.sol"; +import "mvp/test/foundry/mocks/MockIPAccount.sol"; import "contracts/modules/royalties/RoyaltyDistributor.sol"; import "contracts/modules/royalties/RoyaltyNFT.sol"; import "contracts/interfaces/modules/royalties/ISplitMain.sol"; diff --git a/test/foundry/RoyaltyDistributorFork.t.sol b/mvp/test/foundry/RoyaltyDistributorFork.t.sol similarity index 93% rename from test/foundry/RoyaltyDistributorFork.t.sol rename to mvp/test/foundry/RoyaltyDistributorFork.t.sol index 6ec2b6ad..546d9873 100644 --- a/test/foundry/RoyaltyDistributorFork.t.sol +++ b/mvp/test/foundry/RoyaltyDistributorFork.t.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BUSDL-1.1 pragma solidity ^0.8.13; -import "test/foundry/RoyaltyDistributor.t.sol"; +import "mvp/test/foundry/RoyaltyDistributor.t.sol"; contract RoyaltyDistributorForkTest is RoyaltyDistributorTest { function _getSplitMain() internal virtual override returns(ISplitMain) { diff --git a/test/foundry/_old_modules/collect/BaseCollectModuleTest.sol b/mvp/test/foundry/_old_modules/collect/BaseCollectModuleTest.sol similarity index 97% rename from test/foundry/_old_modules/collect/BaseCollectModuleTest.sol rename to mvp/test/foundry/_old_modules/collect/BaseCollectModuleTest.sol index 67d056f3..62cc3454 100644 --- a/test/foundry/_old_modules/collect/BaseCollectModuleTest.sol +++ b/mvp/test/foundry/_old_modules/collect/BaseCollectModuleTest.sol @@ -7,8 +7,8 @@ import { ICollectNFT } from "contracts/interfaces/modules/collect/ICollectNFT.so import { BaseTestUtils } from "test/foundry/utils/BaseTestUtils.sol"; import { BaseTest } from "test/foundry/utils/BaseTest.sol"; import { CollectNFTBaseTest } from "./nft/CollectNFTBase.t.sol"; -import { MockCollectModule } from "test/foundry/mocks/MockCollectModule.sol"; -import { MockCollectNFT } from "test/foundry/mocks/MockCollectNFT.sol"; +import { MockCollectModule } from "mvp/test/foundry/mocks/MockCollectModule.sol"; +import { MockCollectNFT } from "mvp/test/foundry/mocks/MockCollectNFT.sol"; import { IPAsset } from "contracts/lib/IPAsset.sol"; import { Collect } from "contracts/lib/modules/Collect.sol"; diff --git a/test/foundry/_old_modules/collect/CollectPaymentModuleBase.t.sol b/mvp/test/foundry/_old_modules/collect/CollectPaymentModuleBase.t.sol similarity index 99% rename from test/foundry/_old_modules/collect/CollectPaymentModuleBase.t.sol rename to mvp/test/foundry/_old_modules/collect/CollectPaymentModuleBase.t.sol index 5387afcc..3ef59203 100644 --- a/test/foundry/_old_modules/collect/CollectPaymentModuleBase.t.sol +++ b/mvp/test/foundry/_old_modules/collect/CollectPaymentModuleBase.t.sol @@ -9,10 +9,10 @@ import { ICollectNFT } from "contracts/interfaces/modules/collect/ICollectNFT.so import { BaseCollectModuleTest } from "./BaseCollectModuleTest.sol"; import { BaseTest } from "test/foundry/utils/BaseTest.sol"; -import { MockCollectPaymentModule } from "test/foundry/mocks/MockCollectPaymentModule.sol"; +import { MockCollectPaymentModule } from "mvp/test/foundry/mocks/MockCollectPaymentModule.sol"; import { MockNativeTokenNonReceiver } from "test/foundry/mocks/MockNativeTokenNonReceiver.sol"; import { MockThrowingERC20 } from "test/foundry/mocks/MockThrowingERC20.sol"; -import { MockCollectNFT } from "test/foundry/mocks/MockCollectNFT.sol"; +import { MockCollectNFT } from "mvp/test/foundry/mocks/MockCollectNFT.sol"; import { MockERC20 } from "test/foundry/mocks/MockERC20.sol"; import { MockWETH } from "test/foundry/mocks/MockWETH.sol"; diff --git a/test/foundry/_old_modules/collect/SimpleCollectModule.t.sol b/mvp/test/foundry/_old_modules/collect/SimpleCollectModule.t.sol similarity index 100% rename from test/foundry/_old_modules/collect/SimpleCollectModule.t.sol rename to mvp/test/foundry/_old_modules/collect/SimpleCollectModule.t.sol diff --git a/test/foundry/_old_modules/collect/nft/BaseERC721Test.sol b/mvp/test/foundry/_old_modules/collect/nft/BaseERC721Test.sol similarity index 99% rename from test/foundry/_old_modules/collect/nft/BaseERC721Test.sol rename to mvp/test/foundry/_old_modules/collect/nft/BaseERC721Test.sol index 05cfa2ea..85c1a088 100644 --- a/test/foundry/_old_modules/collect/nft/BaseERC721Test.sol +++ b/mvp/test/foundry/_old_modules/collect/nft/BaseERC721Test.sol @@ -7,7 +7,7 @@ import { IERC721 } from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import { IERC721Events } from "../../../interfaces/IERC721Events.sol"; import { IERC721Receiver } from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import { MockCollectModuleERC721 } from "test/foundry/mocks/MockCollectModuleERC721.sol"; +import { MockCollectModuleERC721 } from "mvp/test/foundry/mocks/MockCollectModuleERC721.sol"; import { BaseTestUtils } from "test/foundry/utils/BaseTestUtils.sol"; import { MockERC721Receiver } from "test/foundry/mocks/MockERC721Receiver.sol"; import { Errors } from "contracts/lib/Errors.sol"; diff --git a/test/foundry/_old_modules/collect/nft/CollectNFTBase.t.sol b/mvp/test/foundry/_old_modules/collect/nft/CollectNFTBase.t.sol similarity index 98% rename from test/foundry/_old_modules/collect/nft/CollectNFTBase.t.sol rename to mvp/test/foundry/_old_modules/collect/nft/CollectNFTBase.t.sol index 72c3c5cf..dc33876f 100644 --- a/test/foundry/_old_modules/collect/nft/CollectNFTBase.t.sol +++ b/mvp/test/foundry/_old_modules/collect/nft/CollectNFTBase.t.sol @@ -7,7 +7,7 @@ import { ICollectNFT } from "contracts/interfaces/modules/collect/ICollectNFT.so import { BaseTest } from "test/foundry/utils/BaseTest.sol"; import { BaseERC721Test } from "./BaseERC721Test.sol"; -import { MockCollectNFT } from "test/foundry/mocks/MockCollectNFT.sol"; +import { MockCollectNFT } from "mvp/test/foundry/mocks/MockCollectNFT.sol"; import { ERC721Test } from "./ERC721.t.sol"; import { IPAsset } from "contracts/lib/IPAsset.sol"; diff --git a/test/foundry/_old_modules/collect/nft/ERC721.t.sol b/mvp/test/foundry/_old_modules/collect/nft/ERC721.t.sol similarity index 98% rename from test/foundry/_old_modules/collect/nft/ERC721.t.sol rename to mvp/test/foundry/_old_modules/collect/nft/ERC721.t.sol index ba13d9b9..6bff06e1 100644 --- a/test/foundry/_old_modules/collect/nft/ERC721.t.sol +++ b/mvp/test/foundry/_old_modules/collect/nft/ERC721.t.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.18; import { IERC721 } from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import { BaseERC721Test } from "./BaseERC721Test.sol"; -import { MockCollectModuleERC721 } from "test/foundry/mocks/MockCollectModuleERC721.sol"; +import { MockCollectModuleERC721 } from "mvp/test/foundry/mocks/MockCollectModuleERC721.sol"; import { Errors } from "contracts/lib/Errors.sol"; /// @title ERC-721 Testing Contract diff --git a/test/foundry/mocks/MockCollectModule.sol b/mvp/test/foundry/mocks/MockCollectModule.sol similarity index 75% rename from test/foundry/mocks/MockCollectModule.sol rename to mvp/test/foundry/mocks/MockCollectModule.sol index b435a557..f94c7c1f 100644 --- a/test/foundry/mocks/MockCollectModule.sol +++ b/mvp/test/foundry/mocks/MockCollectModule.sol @@ -1,26 +1,30 @@ // SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.18; -import { CollectModuleBase } from "contracts/modules/collect/CollectModuleBase.sol"; +import { CollectModuleBase } from "mvp/contracts/modules/collect/CollectModuleBase.sol"; /// @title Mock Collect Module /// @notice This mock contract is used for testing the base collect module. contract MockCollectModule is CollectModuleBase { - // Whether the collect module is enabled for a specific IP asset. mapping(uint256 => mapping(uint256 => bool)) collectEnabled; /// @notice Initializes a mock collect module. /// @param registry_ The protocol-wide franchise registry address. /// @param defaultCollectNftImpl_ The default collect NFT impl address. - constructor(address registry_, address defaultCollectNftImpl_) CollectModuleBase(registry_, defaultCollectNftImpl_) {} + constructor( + address registry_, + address defaultCollectNftImpl_ + ) CollectModuleBase(registry_, defaultCollectNftImpl_) {} /// @notice Initializes the collect module via UUPS proxying. /// @param accessControl_ The address utilized for contract access control. function initialize(address accessControl_) public initializer {} /// @dev Checks whether the collect action is authorized for an IP asset. - function _isCollectAuthorized(uint256) internal pure virtual override returns (bool) { + function _isCollectAuthorized( + uint256 + ) internal pure virtual override returns (bool) { return true; } diff --git a/test/foundry/mocks/MockCollectModuleERC721.sol b/mvp/test/foundry/mocks/MockCollectModuleERC721.sol similarity index 100% rename from test/foundry/mocks/MockCollectModuleERC721.sol rename to mvp/test/foundry/mocks/MockCollectModuleERC721.sol diff --git a/test/foundry/mocks/MockCollectNFT.sol b/mvp/test/foundry/mocks/MockCollectNFT.sol similarity index 71% rename from test/foundry/mocks/MockCollectNFT.sol rename to mvp/test/foundry/mocks/MockCollectNFT.sol index 0273e3f2..97e7acfc 100644 --- a/test/foundry/mocks/MockCollectNFT.sol +++ b/mvp/test/foundry/mocks/MockCollectNFT.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.18; -import { CollectNFTBase } from "contracts/modules/collect/nft/CollectNFTBase.sol"; +import { CollectNFTBase } from "mvp/contracts/modules/collect/nft/CollectNFTBase.sol"; /// @title Mock Collect NFT /// @notice This contract is used for testing base collect NFT functionality. diff --git a/test/foundry/mocks/MockCollectPaymentModule.sol b/mvp/test/foundry/mocks/MockCollectPaymentModule.sol similarity index 100% rename from test/foundry/mocks/MockCollectPaymentModule.sol rename to mvp/test/foundry/mocks/MockCollectPaymentModule.sol diff --git a/test/foundry/mocks/MockIPAccount.sol b/mvp/test/foundry/mocks/MockIPAccount.sol similarity index 100% rename from test/foundry/mocks/MockIPAccount.sol rename to mvp/test/foundry/mocks/MockIPAccount.sol diff --git a/script/foundry/deployment/Main.s.sol b/script/foundry/deployment/Main.s.sol index 11149c71..79f970cd 100644 --- a/script/foundry/deployment/Main.s.sol +++ b/script/foundry/deployment/Main.s.sol @@ -9,13 +9,6 @@ import "script/foundry/utils/JsonDeploymentHandler.s.sol"; import "contracts/ip-org/IPOrg.sol"; import "contracts/ip-org/IPOrgController.sol"; import "contracts/access-control/AccessControlSingleton.sol"; -import "test/foundry/mocks/MockCollectNFT.sol"; -import "test/foundry/mocks/MockCollectModule.sol"; -import "contracts/modules/royalties/RoyaltyDistributor.sol"; -import "contracts/modules/royalties/policies/MutableRoyaltyProportionPolicy.sol"; -import "contracts/modules/royalties/RoyaltyNFT.sol"; -import "contracts/ip-accounts/IPAccountImpl.sol"; -import "contracts/ip-accounts/IPAccountRegistry.sol"; import { AccessControl } from "contracts/lib/AccessControl.sol"; import "contracts/modules/ModuleRegistry.sol"; import "contracts/IPAssetRegistry.sol"; diff --git a/test/foundry/IPOrgTest.t.sol b/test/foundry/IPOrgTest.t.sol index 595dd9de..ee7dacaa 100644 --- a/test/foundry/IPOrgTest.t.sol +++ b/test/foundry/IPOrgTest.t.sol @@ -11,8 +11,6 @@ import { LicenseRegistry } from "contracts/modules/licensing/LicenseRegistry.sol import { AccessControlSingleton } from "contracts/access-control/AccessControlSingleton.sol"; import { IPAssetRegistry } from "contracts/IPAssetRegistry.sol"; import { AccessControlHelper } from "./utils/AccessControlHelper.sol"; -import { MockCollectNFT } from "./mocks/MockCollectNFT.sol"; -import { MockCollectModule } from "./mocks/MockCollectModule.sol"; import { MockIPOrgController } from "./mocks/MockIPOrgController.sol"; import { BaseModule } from "contracts/modules/base/BaseModule.sol"; import { RegistrationModule } from "contracts/modules/registration/RegistrationModule.sol"; diff --git a/test/foundry/utils/BaseTest.sol b/test/foundry/utils/BaseTest.sol index 6cf67db1..ae1800b6 100644 --- a/test/foundry/utils/BaseTest.sol +++ b/test/foundry/utils/BaseTest.sol @@ -4,8 +4,6 @@ pragma solidity ^0.8.19; import 'test/foundry/utils/ProxyHelper.sol'; import 'test/foundry/utils/BaseTestUtils.sol'; import 'test/foundry/utils/AccessControlHelper.sol'; -import "test/foundry/mocks/MockCollectNFT.sol"; -import "test/foundry/mocks/MockCollectModule.sol"; import "contracts/StoryProtocol.sol"; import "contracts/ip-org/IPOrgController.sol"; import "contracts/ip-org/IPOrg.sol"; @@ -147,17 +145,21 @@ contract BaseTest is BaseTestUtils, ProxyHelper, AccessControlHelper { } function _deployCollectNFTImpl() internal virtual returns (address) { - return address(new MockCollectNFT()); + // TODO: temporarily commented out for alpha + // return address(new MockCollectNFT()); + return address(0); } function _deployCollectModule(address collectNftImpl) internal virtual returns (address) { - collectModuleImpl = address(new MockCollectModule(address(registry), collectNftImpl)); - return _deployUUPSProxy( - collectModuleImpl, - abi.encodeWithSelector( - bytes4(keccak256(bytes("initialize(address)"))), address(accessControl) - ) - ); + // TODO: temporarily commented out for alpha + // collectModuleImpl = address(new MockCollectModule(address(registry), collectNftImpl)); + // return _deployUUPSProxy( + // collectModuleImpl, + // abi.encodeWithSelector( + // bytes4(keccak256(bytes("initialize(address)"))), address(accessControl) + // ) + // ); + return address(0); } /// @dev Helper function for creating an IP asset for an owner and IP type.