@etherisc/gif-next 0.0.2-a7954cc-097 → 0.0.2-a84aad4-747

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/README.md +73 -1
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
  3. package/artifacts/contracts/components/Component.sol/Component.json +832 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +747 -103
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/components/{BaseComponent.sol/BaseComponent.json → IComponent.sol/IComponent.json} +137 -114
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +743 -26
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +737 -58
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +582 -9
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +692 -178
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +517 -135
  18. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +1 -1
  19. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +15 -15
  20. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  21. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +69 -79
  22. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
  23. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +5 -0
  24. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  25. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1003 -393
  26. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +194 -197
  28. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  29. package/artifacts/contracts/instance/Instance.sol/Instance.json +1015 -781
  30. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  31. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +440 -176
  32. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  33. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +120 -263
  34. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  35. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +369 -299
  36. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +330 -89
  38. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  39. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +11 -40
  40. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +178 -158
  42. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  44. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +40 -10
  46. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  47. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
  48. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +61 -78
  50. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  51. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  52. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  53. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  54. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  55. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  56. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  57. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  58. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  59. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +968 -0
  60. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +665 -0
  62. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
  63. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +421 -273
  64. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  65. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +308 -79
  66. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
  67. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +754 -0
  68. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
  70. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1211 -172
  72. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +456 -71
  74. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IApplicationService.sol/IApplicationService.json} +275 -185
  76. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
  77. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +199 -238
  78. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → instance/service/IClaimService.sol/IClaimService.json} +159 -147
  80. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +728 -161
  82. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +152 -276
  84. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +81 -152
  86. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +22 -174
  88. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
  89. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +363 -335
  90. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  91. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +321 -96
  92. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +289 -192
  94. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +313 -76
  96. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +206 -206
  98. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +305 -76
  100. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  101. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  102. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +117 -5
  104. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +112 -198
  106. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  107. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  108. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  109. package/artifacts/contracts/registry/Registry.sol/Registry.json +131 -27
  110. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +18 -18
  112. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +216 -234
  114. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +300 -81
  116. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  117. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +70 -69
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +151 -50
  120. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  121. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  122. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  123. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  124. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
  125. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  126. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
  127. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  128. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -34
  129. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  130. package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
  131. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  132. package/artifacts/contracts/shared/IService.sol/IService.json +22 -174
  133. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  134. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  135. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  136. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -27
  137. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  138. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
  139. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  140. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -61
  141. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  142. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
  143. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  144. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
  145. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  146. package/artifacts/contracts/shared/Service.sol/Service.json +114 -157
  147. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  148. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  149. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  150. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  151. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  152. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  153. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  154. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  155. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  156. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +129 -51
  157. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  158. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
  159. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  160. package/artifacts/contracts/test/TestService.sol/TestService.json +135 -214
  161. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  162. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  163. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  164. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  165. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
  166. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  167. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  168. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  169. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  170. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  172. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
  173. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  174. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
  175. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/Fee.sol/FeeLib.json +2 -2
  177. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  178. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  179. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  180. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
  181. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  182. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  183. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  184. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  185. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  186. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  187. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
  188. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  189. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +23 -4
  190. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  191. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  192. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  194. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
  195. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
  196. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  197. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  198. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  199. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +25 -7
  200. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  201. package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
  202. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  203. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
  204. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  205. package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
  206. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  207. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
  208. package/contracts/components/Component.sol +251 -0
  209. package/contracts/components/Distribution.sol +199 -82
  210. package/contracts/components/IComponent.sol +74 -0
  211. package/contracts/components/IDistributionComponent.sol +44 -17
  212. package/contracts/components/IPoolComponent.sol +88 -41
  213. package/contracts/components/IProductComponent.sol +10 -5
  214. package/contracts/components/Pool.sol +209 -181
  215. package/contracts/components/Product.sol +125 -124
  216. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +2 -12
  217. package/contracts/instance/BundleManager.sol +14 -16
  218. package/contracts/instance/Cloneable.sol +7 -2
  219. package/contracts/instance/IInstance.sol +52 -16
  220. package/contracts/instance/IInstanceService.sol +37 -5
  221. package/contracts/instance/Instance.sol +126 -75
  222. package/contracts/instance/InstanceAccessManager.sol +383 -164
  223. package/contracts/instance/InstanceReader.sol +9 -34
  224. package/contracts/instance/InstanceService.sol +279 -134
  225. package/contracts/instance/InstanceServiceManager.sol +1 -1
  226. package/contracts/instance/ObjectManager.sol +10 -29
  227. package/contracts/instance/base/ComponentService.sol +134 -0
  228. package/contracts/instance/base/KeyValueStore.sol +5 -2
  229. package/contracts/instance/base/Lifecycle.sol +11 -2
  230. package/contracts/instance/module/IAccess.sol +22 -16
  231. package/contracts/instance/module/IBundle.sol +2 -1
  232. package/contracts/instance/module/IComponents.sol +35 -0
  233. package/contracts/instance/module/IDistribution.sol +2 -0
  234. package/contracts/instance/module/IPolicy.sol +30 -3
  235. package/contracts/instance/module/ISetup.sol +7 -20
  236. package/contracts/instance/service/ApplicationService.sol +350 -0
  237. package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
  238. package/contracts/instance/service/BundleService.sol +111 -35
  239. package/contracts/instance/service/BundleServiceManager.sol +1 -1
  240. package/contracts/instance/service/ClaimService.sol +151 -0
  241. package/contracts/instance/service/ClaimServiceManager.sol +35 -0
  242. package/contracts/instance/service/DistributionService.sol +393 -39
  243. package/contracts/instance/service/DistributionServiceManager.sol +1 -1
  244. package/contracts/instance/service/IApplicationService.sol +82 -0
  245. package/contracts/instance/service/IBundleService.sol +31 -14
  246. package/contracts/instance/service/IClaimService.sol +61 -0
  247. package/contracts/instance/service/IDistributionService.sol +86 -0
  248. package/contracts/instance/service/IPolicyService.sol +34 -49
  249. package/contracts/instance/service/IPoolService.sol +17 -2
  250. package/contracts/instance/service/PolicyService.sol +205 -305
  251. package/contracts/instance/service/PolicyServiceManager.sol +2 -2
  252. package/contracts/instance/service/PoolService.sol +138 -42
  253. package/contracts/instance/service/PoolServiceManager.sol +1 -1
  254. package/contracts/instance/service/ProductService.sol +104 -33
  255. package/contracts/instance/service/ProductServiceManager.sol +2 -2
  256. package/contracts/registry/ChainNft.sol +8 -0
  257. package/contracts/registry/IRegistry.sol +18 -8
  258. package/contracts/registry/IRegistryService.sol +19 -10
  259. package/contracts/registry/ITransferInterceptor.sol +1 -0
  260. package/contracts/registry/Registry.sol +142 -71
  261. package/contracts/registry/RegistryAccessManager.sol +31 -25
  262. package/contracts/registry/RegistryService.sol +94 -134
  263. package/contracts/registry/RegistryServiceManager.sol +13 -13
  264. package/contracts/registry/ReleaseManager.sol +94 -120
  265. package/contracts/registry/TokenRegistry.sol +19 -13
  266. package/contracts/shared/ERC165.sol +14 -12
  267. package/contracts/shared/INftOwnable.sol +11 -10
  268. package/contracts/shared/IPolicyHolder.sol +26 -0
  269. package/contracts/shared/IRegisterable.sol +4 -6
  270. package/contracts/shared/IRegistryLinked.sol +12 -0
  271. package/contracts/shared/IService.sol +2 -0
  272. package/contracts/shared/IVersionable.sol +4 -47
  273. package/contracts/shared/NftOwnable.sol +66 -80
  274. package/contracts/shared/PolicyHolder.sol +81 -0
  275. package/contracts/shared/ProxyManager.sol +100 -25
  276. package/contracts/shared/Registerable.sol +16 -32
  277. package/contracts/shared/RegistryLinked.sol +48 -0
  278. package/contracts/shared/Service.sol +19 -19
  279. package/contracts/shared/TokenHandler.sol +11 -5
  280. package/contracts/shared/Versionable.sol +4 -92
  281. package/contracts/test/TestRegisterable.sol +1 -1
  282. package/contracts/test/TestService.sol +1 -1
  283. package/contracts/types/Blocknumber.sol +1 -0
  284. package/contracts/types/ClaimId.sol +52 -0
  285. package/contracts/types/DistributorType.sol +2 -2
  286. package/contracts/types/Fee.sol +1 -0
  287. package/contracts/types/NftId.sol +8 -0
  288. package/contracts/types/ObjectType.sol +10 -5
  289. package/contracts/types/PayoutId.sol +54 -0
  290. package/contracts/types/Referral.sol +4 -0
  291. package/contracts/types/RoleId.sol +18 -11
  292. package/contracts/types/Seconds.sol +54 -0
  293. package/contracts/types/StateId.sol +1 -0
  294. package/contracts/types/Timestamp.sol +13 -13
  295. package/contracts/types/UFixed.sol +1 -0
  296. package/contracts/types/Version.sol +1 -0
  297. package/package.json +3 -3
  298. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  299. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  300. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  301. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  302. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  303. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  304. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  305. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  306. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  307. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  308. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  309. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  310. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  311. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  312. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  313. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  314. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  315. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  316. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  317. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  318. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  319. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  320. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  321. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  322. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  323. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  324. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  325. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  326. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  327. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  328. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  329. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  330. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  331. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  332. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  333. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  334. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  335. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  336. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  337. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  338. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  339. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  340. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +0 -448
  341. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  342. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  343. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  344. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  345. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  346. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  347. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
  348. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  349. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  350. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  351. package/contracts/components/BaseComponent.sol +0 -159
  352. package/contracts/components/IBaseComponent.sol +0 -34
  353. package/contracts/experiment/cloning/Cloner.sol +0 -47
  354. package/contracts/experiment/errors/Require.sol +0 -38
  355. package/contracts/experiment/errors/Revert.sol +0 -44
  356. package/contracts/experiment/inheritance/A.sol +0 -53
  357. package/contracts/experiment/inheritance/B.sol +0 -28
  358. package/contracts/experiment/inheritance/C.sol +0 -34
  359. package/contracts/experiment/inheritance/IA.sol +0 -13
  360. package/contracts/experiment/inheritance/IB.sol +0 -10
  361. package/contracts/experiment/inheritance/IC.sol +0 -12
  362. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  363. package/contracts/experiment/statemachine/ISM.sol +0 -25
  364. package/contracts/experiment/statemachine/SM.sol +0 -57
  365. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  366. package/contracts/experiment/types/TypeA.sol +0 -47
  367. package/contracts/experiment/types/TypeB.sol +0 -29
  368. package/contracts/instance/IInstanceBase.sol +0 -26
  369. package/contracts/instance/InstanceBase.sol +0 -41
  370. package/contracts/instance/base/ComponentServiceBase.sol +0 -82
  371. package/contracts/instance/base/IInstanceBase.sol +0 -23
  372. package/contracts/instance/service/ComponentOwnerService.sol +0 -315
  373. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  374. package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -8,7 +8,7 @@ import {IRegistry} from "./IRegistry.sol";
8
8
  import {IInstance} from "../instance/IInstance.sol";
9
9
 
10
10
  import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
11
- import {IBaseComponent} from "../../contracts/components/IBaseComponent.sol";
11
+ import {IComponent} from "../../contracts/components/IComponent.sol";
12
12
  import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
13
13
  import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
14
14
  import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
@@ -19,7 +19,7 @@ import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
19
19
  import {Registerable} from "../../contracts/shared/Registerable.sol";
20
20
 
21
21
  import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
22
- import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, POLICY, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
22
+ import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
23
23
  import {StateId, ACTIVE, PAUSED} from "../../contracts/types/StateId.sol";
24
24
  import {NftId, NftIdLib, zeroNftId} from "../../contracts/types/NftId.sol";
25
25
  import {Fee, FeeLib} from "../../contracts/types/Fee.sol";
@@ -40,34 +40,55 @@ contract RegistryService is
40
40
  // TODO update to real hash when registry is stable
41
41
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
42
42
 
43
- address public constant NFT_LOCK_ADDRESS = address(0x1);
43
+ // From IService
44
+ function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
45
+ return REGISTRY();
46
+ }
44
47
 
48
+ // from Versionable
45
49
 
46
- function registerInstance(IRegisterable instance)
50
+ /// @dev top level initializer
51
+ function _initialize(
52
+ address owner,
53
+ bytes memory data
54
+ )
55
+ internal
56
+ virtual override
57
+ initializer()
58
+ {
59
+ (
60
+ address registryAddress,
61
+ address initialAuthority
62
+ ) = abi.decode(data, (address, address));
63
+
64
+ __AccessManaged_init(initialAuthority);
65
+
66
+ initializeService(registryAddress, owner);
67
+ registerInterface(type(IRegistryService).interfaceId);
68
+ }
69
+
70
+ function registerInstance(IRegisterable instance, address owner)
47
71
  external
72
+ restricted
48
73
  returns(
49
- IRegistry.ObjectInfo memory info,
50
- bytes memory data
74
+ IRegistry.ObjectInfo memory info
51
75
  )
52
76
  {
53
77
  if(!instance.supportsInterface(type(IInstance).interfaceId)) {
54
78
  revert NotInstance();
55
79
  }
56
80
 
57
- (info, data) = _getAndVerifyContractInfo(instance, INSTANCE(), msg.sender);
81
+ info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
82
+ info.nftId = getRegistry().register(info);
58
83
 
59
- info.nftId = _registry.register(info);
60
84
  instance.linkToRegisteredNftId(); // asume safe
61
-
62
- return (info, data);
63
85
  }
64
86
 
65
- function registerProduct(IBaseComponent product, address owner)
87
+ function registerProduct(IComponent product, address owner)
66
88
  external
67
89
  restricted
68
90
  returns(
69
- IRegistry.ObjectInfo memory info,
70
- bytes memory data
91
+ IRegistry.ObjectInfo memory info
71
92
  )
72
93
  {
73
94
  // CAN revert if no ERC165 support -> will revert with empty message
@@ -75,53 +96,47 @@ contract RegistryService is
75
96
  revert NotProduct();
76
97
  }
77
98
 
78
- (info, data) = _getAndVerifyContractInfo(product, PRODUCT(), owner);
79
-
80
- info.nftId = _registry.register(info);
81
- // TODO unsafe, let component or its owner derive nftId latter, when state assumptions and modifications of GIF contracts are finished
82
- product.linkToRegisteredNftId();
83
-
84
- return (info, data);
99
+ info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
100
+ info.nftId = getRegistry().register(info);
85
101
  }
86
102
 
87
- function registerPool(IBaseComponent pool, address owner)
103
+ function registerPool(IComponent pool, address owner)
88
104
  external
89
105
  restricted
90
106
  returns(
91
- IRegistry.ObjectInfo memory info,
92
- bytes memory data
107
+ IRegistry.ObjectInfo memory info
93
108
  )
94
109
  {
95
110
  if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
96
111
  revert NotPool();
97
112
  }
98
113
 
99
- (info, data) = _getAndVerifyContractInfo(pool, POOL(), owner);
100
-
101
- info.nftId = _registry.register(info);
102
- pool.linkToRegisteredNftId();
103
-
104
- return (info, data);
114
+ info = _getAndVerifyContractInfo(pool, POOL(), owner);
115
+ info.nftId = getRegistry().register(info);
105
116
  }
106
117
 
107
- function registerDistribution(IBaseComponent distribution, address owner)
118
+ function registerDistribution(IComponent distribution, address owner)
108
119
  external
109
120
  restricted
110
121
  returns(
111
- IRegistry.ObjectInfo memory info,
112
- bytes memory data
122
+ IRegistry.ObjectInfo memory info
113
123
  )
114
124
  {
115
125
  if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
116
126
  revert NotDistribution();
117
127
  }
118
128
 
119
- (info, data) = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
120
-
121
- info.nftId = _registry.register(info);
122
- distribution.linkToRegisteredNftId();
129
+ info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
130
+ info.nftId = getRegistry().register(info);
131
+ }
123
132
 
124
- return (info, data);
133
+ function registerDistributor(IRegistry.ObjectInfo memory info)
134
+ external
135
+ restricted
136
+ returns(NftId nftId)
137
+ {
138
+ _verifyObjectInfo(info, DISTRIBUTOR());
139
+ nftId = getRegistry().register(info);
125
140
  }
126
141
 
127
142
  function registerPolicy(IRegistry.ObjectInfo memory info)
@@ -131,7 +146,7 @@ contract RegistryService is
131
146
  {
132
147
  _verifyObjectInfo(info, POLICY());
133
148
 
134
- nftId = _registry.register(info);
149
+ nftId = getRegistry().register(info);
135
150
  }
136
151
 
137
152
  function registerBundle(IRegistry.ObjectInfo memory info)
@@ -141,7 +156,7 @@ contract RegistryService is
141
156
  {
142
157
  _verifyObjectInfo(info, BUNDLE());
143
158
 
144
- nftId = _registry.register(info);
159
+ nftId = getRegistry().register(info);
145
160
  }
146
161
 
147
162
  function registerStake(IRegistry.ObjectInfo memory info)
@@ -151,72 +166,55 @@ contract RegistryService is
151
166
  {
152
167
  _verifyObjectInfo(info, STAKE());
153
168
 
154
- nftId = _registry.register(info);
155
- }
156
-
157
- // From IService
158
- function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
159
- return REGISTRY();
160
- }
161
-
162
- // from Versionable
163
-
164
- /// @dev top level initializer
165
- function _initialize(
166
- address owner,
167
- bytes memory data
168
- )
169
- internal
170
- initializer
171
- virtual override
172
- {
173
- (
174
- address initialAuthority,
175
- address registry
176
- ) = abi.decode(data, (address, address));
177
-
178
- __AccessManaged_init(initialAuthority);
179
-
180
- _initializeService(address(registry), owner);
181
-
182
- _registerInterface(type(IRegistryService).interfaceId);
169
+ nftId = getRegistry().register(info);
183
170
  }
184
171
 
185
172
  // from IRegisterable
186
173
 
187
- function getInitialInfo()
188
- public
189
- view
190
- override(IRegisterable, Registerable)
191
- returns (IRegistry.ObjectInfo memory info, bytes memory data)
174
+ function getFunctionConfigs()
175
+ external
176
+ pure
177
+ returns(
178
+ FunctionConfig[] memory config
179
+ )
192
180
  {
193
- (info , data) = super.getInitialInfo();
181
+ config = new FunctionConfig[](8);
194
182
 
195
- FunctionConfig[] memory config = new FunctionConfig[](6);
183
+ // order of service registrations MUST be reverse to this array
184
+ /*config[-1].serviceDomain = STAKE();
185
+ config[-1].selector = RegistryService.registerStake.selector;*/
196
186
 
197
- // registerInstance() have no restriction
198
- config[0].serviceDomain = INSTANCE();
199
- config[0].selector = RegistryService.registerInstance.selector;
187
+ config[0].serviceDomain = POLICY();
188
+ config[0].selectors = new bytes4[](0);
200
189
 
201
- config[1].serviceDomain = POOL();
202
- config[1].selector = RegistryService.registerPool.selector;
190
+ config[1].serviceDomain = APPLICATION();
191
+ config[1].selectors = new bytes4[](1);
192
+ config[1].selectors[0] = RegistryService.registerPolicy.selector;
203
193
 
204
- config[2].serviceDomain = DISTRIBUTION();
205
- config[2].selector = RegistryService.registerDistribution.selector;
194
+ config[2].serviceDomain = CLAIM();
195
+ config[2].selectors = new bytes4[](0);
206
196
 
207
- config[3].serviceDomain = PRODUCT();
208
- config[3].selector = RegistryService.registerProduct.selector;
197
+ config[3].serviceDomain = BUNDLE();
198
+ config[3].selectors = new bytes4[](1);
199
+ config[3].selectors[0] = RegistryService.registerBundle.selector;
209
200
 
210
- config[4].serviceDomain = POLICY();
211
- config[4].selector = RegistryService.registerPolicy.selector;
201
+ config[4].serviceDomain = PRODUCT();
202
+ config[4].selectors = new bytes4[](1);
203
+ config[4].selectors[0] = RegistryService.registerProduct.selector;
212
204
 
213
- config[5].serviceDomain = BUNDLE();
214
- config[5].selector = RegistryService.registerBundle.selector;
205
+ config[5].serviceDomain = POOL();
206
+ config[5].selectors = new bytes4[](1);
207
+ config[5].selectors[0] = RegistryService.registerPool.selector;
215
208
 
216
- /*config[6].serviceDomain = STAKE();
217
- config[6].selector = RegistryService.registerStake.selector;*/
209
+ config[6].serviceDomain = DISTRIBUTION();
210
+ config[6].selectors = new bytes4[](2);
211
+ config[6].selectors[0] = RegistryService.registerDistribution.selector;
212
+ config[6].selectors[1] = RegistryService.registerDistributor.selector;
218
213
 
219
- data = abi.encode(config);
214
+ // registerInstance() have no restriction
215
+ config[7].serviceDomain = INSTANCE();
216
+ config[7].selectors = new bytes4[](1);
217
+ config[7].selectors[0] = RegistryService.registerInstance.selector;
220
218
  }
221
219
 
222
220
  // Internal
@@ -227,16 +225,12 @@ contract RegistryService is
227
225
  address expectedOwner // assume can be 0 when given by other service
228
226
  )
229
227
  internal
230
- view
228
+ // view
231
229
  returns(
232
- IRegistry.ObjectInfo memory info,
233
- bytes memory data
230
+ IRegistry.ObjectInfo memory info
234
231
  )
235
232
  {
236
- (
237
- info,
238
- data
239
- ) = registerable.getInitialInfo();
233
+ info = registerable.getInitialInfo();
240
234
  info.objectAddress = address(registerable);
241
235
 
242
236
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
@@ -245,13 +239,8 @@ contract RegistryService is
245
239
 
246
240
  address owner = info.initialOwner;
247
241
 
248
- // solhint-disable-next-line
249
- if(expectedType == INSTANCE()) {
250
- // any address may create a new instance via instance service
251
- } else {
252
- if(owner != expectedOwner) { // registerable owner protection
253
- revert NotRegisterableOwner(expectedOwner);
254
- }
242
+ if(owner != expectedOwner) { // registerable owner protection
243
+ revert NotRegisterableOwner(expectedOwner);
255
244
  }
256
245
 
257
246
  if(owner == address(registerable)) {
@@ -265,15 +254,6 @@ contract RegistryService is
265
254
  if(getRegistry().isRegistered(owner)) {
266
255
  revert RegisterableOwnerIsRegistered();
267
256
  }
268
-
269
- /*NftId parentNftId = info.parentNftId;
270
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
271
-
272
- if(parentInfo.objectType != parentType) { // parent registration + type
273
- revert InvalidParent(parentNftId);
274
- }*/
275
-
276
- return(info, data);
277
257
  }
278
258
 
279
259
  function _verifyObjectInfo(
@@ -299,25 +279,5 @@ contract RegistryService is
299
279
  if(getRegistry().isRegistered(owner)) {
300
280
  revert RegisterableOwnerIsRegistered();
301
281
  }
302
-
303
- // can catch all 3 if check that initialOwner is not registered
304
- /*if(info.initialOwner == msg.sender) {
305
- revert InitialOwnerIsParent();
306
- }
307
-
308
- if(info.initialOwner == address(this)) {
309
- revert InitialOwnerIsService();
310
- }
311
-
312
- if(info.initialOwner == address(getRegistry())) {
313
- revert InitialOwnerIsRegistry();
314
- }*/
315
-
316
- /*NftId parentNftId = info.parentNftId;
317
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
318
-
319
- if(parentInfo.objectType != parentType) { // parent registration + type
320
- revert InvalidParent(parentNftId);
321
- }*/
322
282
  }
323
283
  }
@@ -22,32 +22,32 @@ contract RegistryServiceManager is
22
22
  /// @dev initializes proxy manager with registry service implementation and deploys registry
23
23
  constructor(
24
24
  address initialAuthority, // used by implementation
25
- address registry) // used by implementation
26
- ProxyManager()
25
+ address registryAddress) // used by implementation
26
+ ProxyManager(registryAddress)
27
27
  {
28
28
  require(initialAuthority > address(0), "RegistryServiceManager: initial authority is 0");
29
- require(registry > address(0), "RegistryServiceManager: registry is 0");
29
+ require(registryAddress > address(0), "RegistryServiceManager: registry is 0");
30
30
 
31
31
  // implementation's initializer func `data` argument
32
- bytes memory initializationData = abi.encode(
33
- initialAuthority,
34
- registry);
35
-
32
+ RegistryService srv = new RegistryService();
33
+ bytes memory data = abi.encode(registryAddress, initialAuthority);
36
34
  IVersionable versionable = deploy(
37
- address(new RegistryService()),
38
- initializationData);
35
+ address(srv),
36
+ data);
39
37
 
40
38
  _registryService = RegistryService(address(versionable));
39
+
40
+ // _linkToNftOwnable(address(_registryService));
41
41
  }
42
42
 
43
- // from IRegisterable
43
+ // // from IRegisterable
44
44
 
45
- // IMPORTANT: registry here and in constructor MUST be the same
46
- function linkToNftOwnable(address registry)
45
+ // // IMPORTANT: registry here and in constructor MUST be the same
46
+ function linkOwnershipToServiceNft()
47
47
  public
48
48
  onlyOwner
49
49
  {
50
- _linkToNftOwnable(registry, address(_registryService));
50
+ _linkToNftOwnable(address(_registryService));
51
51
  }
52
52
 
53
53
  //--- view functions ----------------------------------------------------//