@etherisc/gif-next 0.0.2-e9a637d-547 → 0.0.2-eadf4ad-211

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 (417) hide show
  1. package/README.md +6 -12
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +61 -14
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +819 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +45 -14
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +24 -274
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +93 -13
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +5 -43
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +109 -29
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  21. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +6 -6
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +349 -64
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +49 -278
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -133
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +427 -257
  32. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  33. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
  34. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
  36. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  37. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +61 -12
  39. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  40. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +8 -8
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  42. package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  48. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  50. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  51. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  52. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
  53. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  54. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +735 -0
  55. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  56. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +105 -29
  57. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  58. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +56 -25
  59. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  60. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +272 -39
  61. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  62. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +56 -25
  63. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  64. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
  65. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  66. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +747 -0
  67. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  68. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
  69. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  70. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +687 -0
  71. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  72. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1386 -0
  73. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  74. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
  75. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  76. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +119 -101
  77. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  78. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
  79. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  80. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +129 -84
  81. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  82. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +63 -175
  83. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  84. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +53 -22
  85. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  86. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +6 -14
  87. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  88. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  89. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +779 -0
  91. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  92. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
  93. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  94. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +727 -0
  95. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  96. package/artifacts/contracts/{components → product}/Product.sol/Product.json +53 -22
  97. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  98. package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
  99. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  100. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +679 -0
  101. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  102. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +73 -13
  104. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +154 -60
  106. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  107. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  108. package/artifacts/contracts/registry/Registry.sol/Registry.json +97 -29
  109. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
  110. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +50 -97
  111. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  112. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +174 -80
  113. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  114. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +78 -47
  115. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  116. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +369 -82
  117. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
  119. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  120. package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
  121. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  122. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +38 -7
  123. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +38 -14
  125. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  126. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  127. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +38 -7
  128. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  129. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
  130. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  131. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
  132. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  133. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
  134. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  135. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  136. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  137. package/artifacts/contracts/shared/IService.sol/IService.json +5 -13
  138. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  139. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  140. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +8 -21
  141. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  142. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
  143. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  144. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +49 -33
  145. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  146. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -21
  147. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  148. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  149. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  150. package/artifacts/contracts/shared/Service.sol/Service.json +5 -13
  151. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  152. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
  153. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  154. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  155. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  156. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  157. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
  158. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  159. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
  160. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +667 -0
  162. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  163. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  164. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  165. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  166. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  167. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  168. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  169. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  170. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  171. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  172. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  173. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  174. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  175. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  176. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  177. package/artifacts/contracts/{types → type}/NftId.sol/NftIdLib.json +5 -5
  178. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  179. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  180. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  181. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  182. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  183. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  184. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  185. package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
  186. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  187. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  188. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  189. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  190. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  191. package/artifacts/contracts/{types → type}/Seconds.sol/SecondsLib.json +3 -3
  192. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  193. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  194. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  195. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
  196. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  197. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  198. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  199. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  200. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  201. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  202. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  203. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  204. package/contracts/{components → distribution}/Distribution.sol +21 -16
  205. package/contracts/{instance/service → distribution}/DistributionService.sol +93 -179
  206. package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +14 -11
  207. package/contracts/{components → distribution}/IDistributionComponent.sol +7 -7
  208. package/contracts/{instance/service → distribution}/IDistributionService.sol +18 -30
  209. package/contracts/instance/BundleManager.sol +8 -9
  210. package/contracts/instance/IInstance.sol +30 -13
  211. package/contracts/instance/IInstanceService.sol +6 -17
  212. package/contracts/instance/Instance.sol +76 -46
  213. package/contracts/instance/InstanceAccessManager.sol +8 -5
  214. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  215. package/contracts/instance/InstanceReader.sol +91 -16
  216. package/contracts/instance/InstanceService.sol +78 -307
  217. package/contracts/instance/InstanceServiceManager.sol +11 -21
  218. package/contracts/instance/InstanceStore.sol +57 -65
  219. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
  220. package/contracts/instance/base/IKeyValueStore.sol +14 -10
  221. package/contracts/instance/base/ILifecycle.sol +3 -3
  222. package/contracts/instance/base/KeyValueStore.sol +32 -43
  223. package/contracts/instance/base/Lifecycle.sol +17 -5
  224. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -7
  225. package/contracts/instance/module/IAccess.sol +2 -2
  226. package/contracts/instance/module/IBundle.sol +5 -5
  227. package/contracts/instance/module/IComponents.sol +8 -8
  228. package/contracts/instance/module/IDistribution.sol +7 -6
  229. package/contracts/instance/module/IPolicy.sol +22 -16
  230. package/contracts/instance/module/IRisk.sol +1 -1
  231. package/contracts/instance/module/ISetup.sol +4 -4
  232. package/contracts/instance/module/ITreasury.sol +2 -2
  233. package/contracts/{instance/service → pool}/BundleService.sol +108 -155
  234. package/contracts/pool/BundleServiceManager.sol +42 -0
  235. package/contracts/{instance/service → pool}/IBundleService.sol +43 -18
  236. package/contracts/{components → pool}/IPoolComponent.sol +14 -13
  237. package/contracts/{instance/service → pool}/IPoolService.sol +28 -13
  238. package/contracts/{components → pool}/Pool.sol +20 -21
  239. package/contracts/{instance/service → pool}/PoolService.sol +160 -59
  240. package/contracts/pool/PoolServiceManager.sol +42 -0
  241. package/contracts/product/ApplicationService.sol +187 -0
  242. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  243. package/contracts/product/ClaimService.sol +443 -0
  244. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  245. package/contracts/{instance/service → product}/IApplicationService.sol +14 -34
  246. package/contracts/product/IClaimService.sol +93 -0
  247. package/contracts/{instance/service → product}/IPolicyService.sol +34 -26
  248. package/contracts/product/IPricingService.sol +37 -0
  249. package/contracts/{components → product}/IProductComponent.sol +11 -10
  250. package/contracts/{instance/service → product}/IProductService.sol +10 -10
  251. package/contracts/{instance/service → product}/PolicyService.sol +154 -138
  252. package/contracts/product/PolicyServiceManager.sol +42 -0
  253. package/contracts/product/PricingService.sol +276 -0
  254. package/contracts/product/PricingServiceManager.sol +42 -0
  255. package/contracts/{components → product}/Product.sol +160 -74
  256. package/contracts/{instance/service → product}/ProductService.sol +50 -47
  257. package/contracts/product/ProductServiceManager.sol +42 -0
  258. package/contracts/registry/IRegistry.sol +23 -16
  259. package/contracts/registry/IRegistryService.sol +26 -36
  260. package/contracts/registry/Registry.sol +43 -39
  261. package/contracts/registry/RegistryAccessManager.sol +39 -123
  262. package/contracts/registry/RegistryService.sol +32 -83
  263. package/contracts/registry/RegistryServiceManager.sol +21 -11
  264. package/contracts/registry/ReleaseManager.sol +247 -189
  265. package/contracts/registry/TokenRegistry.sol +2 -2
  266. package/contracts/{components → shared}/Component.sol +26 -8
  267. package/contracts/{instance/base → shared}/ComponentService.sol +60 -40
  268. package/contracts/{components → shared}/IComponent.sol +19 -5
  269. package/contracts/shared/INftOwnable.sol +1 -1
  270. package/contracts/shared/IPolicyHolder.sol +24 -10
  271. package/contracts/shared/IRegistryLinked.sol +0 -1
  272. package/contracts/shared/IService.sol +3 -1
  273. package/contracts/shared/IVersionable.sol +1 -1
  274. package/contracts/shared/NftOwnable.sol +1 -3
  275. package/contracts/shared/PolicyHolder.sol +31 -18
  276. package/contracts/shared/ProxyManager.sol +29 -3
  277. package/contracts/shared/Registerable.sol +12 -11
  278. package/contracts/shared/RegistryLinked.sol +0 -5
  279. package/contracts/shared/Service.sol +3 -3
  280. package/contracts/shared/TokenHandler.sol +4 -2
  281. package/contracts/shared/Versionable.sol +1 -1
  282. package/contracts/staking/IStakingService.sol +102 -0
  283. package/contracts/staking/StakingService.sol +169 -0
  284. package/contracts/staking/StakingServiceManager.sol +40 -0
  285. package/contracts/{types → type}/Amount.sol +49 -0
  286. package/contracts/{types → type}/ClaimId.sol +25 -2
  287. package/contracts/{types → type}/Fee.sol +7 -6
  288. package/contracts/{types → type}/NftIdSet.sol +1 -1
  289. package/contracts/{types → type}/ObjectType.sol +10 -5
  290. package/contracts/{types → type}/PayoutId.sol +33 -5
  291. package/contracts/{types → type}/RoleId.sol +50 -8
  292. package/contracts/{types → type}/StateId.sol +6 -2
  293. package/contracts/{types → type}/Timestamp.sol +5 -0
  294. package/package.json +1 -1
  295. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  296. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  297. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  298. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  299. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  300. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  301. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  302. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  303. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  304. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  305. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  306. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  307. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  308. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  309. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  310. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  311. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  312. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  313. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  314. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  315. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  316. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  317. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  318. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  319. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  320. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  321. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  322. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  323. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  324. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  325. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  326. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  327. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  328. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  329. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  330. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  331. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  332. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  333. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  334. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  335. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  336. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  337. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  338. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  339. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  340. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  341. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  342. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  343. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  344. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  345. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  346. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  347. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  348. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  349. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  350. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  351. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  352. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  353. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  354. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  355. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  356. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  357. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  358. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  359. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  360. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  361. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  362. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  363. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  364. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  365. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  366. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  367. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  368. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  369. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  370. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  371. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  372. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  373. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  374. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  375. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  376. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  377. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  378. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  379. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  380. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  381. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  382. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  383. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  384. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  385. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  386. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  387. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  388. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  389. package/contracts/instance/service/ApplicationService.sol +0 -351
  390. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  391. package/contracts/instance/service/ClaimService.sol +0 -151
  392. package/contracts/instance/service/IClaimService.sol +0 -61
  393. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  394. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  395. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  396. package/contracts/shared/ContractDeployerLib.sol +0 -72
  397. package/contracts/test/TestFee.sol +0 -25
  398. package/contracts/test/TestRegisterable.sol +0 -18
  399. package/contracts/test/TestRoleId.sol +0 -14
  400. package/contracts/test/TestService.sol +0 -25
  401. package/contracts/test/TestToken.sol +0 -26
  402. package/contracts/test/TestVersion.sol +0 -44
  403. package/contracts/test/TestVersionable.sol +0 -17
  404. package/contracts/test/Usdc.sol +0 -26
  405. package/contracts/types/ChainId.sol +0 -38
  406. package/contracts/types/NumberId.sol +0 -52
  407. /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
  408. /package/contracts/{types → type}/AddressSet.sol +0 -0
  409. /package/contracts/{types → type}/Blocknumber.sol +0 -0
  410. /package/contracts/{types → type}/DistributorType.sol +0 -0
  411. /package/contracts/{types → type}/Key32.sol +0 -0
  412. /package/contracts/{types → type}/NftId.sol +0 -0
  413. /package/contracts/{types → type}/Referral.sol +0 -0
  414. /package/contracts/{types → type}/RiskId.sol +0 -0
  415. /package/contracts/{types → type}/Seconds.sol +0 -0
  416. /package/contracts/{types → type}/UFixed.sol +0 -0
  417. /package/contracts/{types → type}/Version.sol +0 -0
@@ -4,17 +4,18 @@ pragma solidity ^0.8.20;
4
4
  import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
5
  import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
6
 
7
- import {NftId} from "../../contracts/types/NftId.sol";
8
- import {RoleId} from "../types/RoleId.sol";
9
- import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../types/RoleId.sol";
10
- import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../types/ObjectType.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {RoleId} from "../type/RoleId.sol";
9
+ import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../type/RoleId.sol";
10
+ import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../type/ObjectType.sol";
11
11
 
12
12
  import {Service} from "../shared/Service.sol";
13
13
  import {IService} from "../shared/IService.sol";
14
+ import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
14
15
 
15
- import {IDistributionComponent} from "../components/IDistributionComponent.sol";
16
- import {IPoolComponent} from "../components/IPoolComponent.sol";
17
- import {IProductComponent} from "../components/IProductComponent.sol";
16
+ import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
17
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
18
+ import {IProductComponent} from "../product/IProductComponent.sol";
18
19
 
19
20
  import {IRegistry} from "../registry/IRegistry.sol";
20
21
  import {IRegistryService} from "../registry/IRegistryService.sol";
@@ -26,23 +27,24 @@ import {InstanceAccessManager} from "./InstanceAccessManager.sol";
26
27
  import {IInstanceService} from "./IInstanceService.sol";
27
28
  import {InstanceReader} from "./InstanceReader.sol";
28
29
  import {BundleManager} from "./BundleManager.sol";
29
- import {AccessManagerUpgradeableInitializeable} from "./AccessManagerUpgradeableInitializeable.sol";
30
30
  import {InstanceStore} from "./InstanceStore.sol";
31
-
31
+ import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
32
32
 
33
33
  contract InstanceService is
34
34
  Service,
35
35
  IInstanceService
36
36
  {
37
+
38
+ // TODO update to real hash when instance is stable
39
+ bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
40
+
41
+ IRegistryService internal _registryService;
37
42
  address internal _masterOzAccessManager;
38
43
  address internal _masterInstanceAccessManager;
39
44
  address internal _masterInstance;
40
45
  address internal _masterInstanceReader;
41
46
  address internal _masterInstanceBundleManager;
42
- address internal _masterInstanceStore;
43
-
44
- // TODO update to real hash when instance is stable
45
- bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
47
+ address internal _masterInstanceStore;
46
48
 
47
49
  modifier onlyInstanceOwner(NftId instanceNftId) {
48
50
  if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
@@ -50,15 +52,8 @@ contract InstanceService is
50
52
  }
51
53
  _;
52
54
  }
53
- // TODO check service domain?
54
- // TODO check release version?
55
- modifier onlyRegisteredService() {
56
- if (! getRegistry().isRegisteredService(msg.sender)) {
57
- revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
58
- }
59
- _;
60
- }
61
- // TODO check release version?
55
+
56
+ // TODO check component - service - instance version match
62
57
  modifier onlyComponent() {
63
58
  if (! getRegistry().isRegisteredComponent(msg.sender)) {
64
59
  revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
@@ -69,23 +64,13 @@ contract InstanceService is
69
64
  function createInstanceClone()
70
65
  external
71
66
  returns (
72
- AccessManagerUpgradeableInitializeable clonedOzAccessManager,
73
- InstanceAccessManager clonedInstanceAccessManager,
74
67
  Instance clonedInstance,
75
- NftId clonedInstanceNftId,
76
- InstanceReader clonedInstanceReader,
77
- BundleManager clonedBundleManager,
78
- InstanceStore clonedInstanceStore
68
+ NftId clonedInstanceNftId
79
69
  )
80
70
  {
81
71
  address instanceOwner = msg.sender;
82
- IRegistry registry = getRegistry();
83
- NftId registryNftId = registry.getNftId(address(registry));
84
- IRegistryService registryService = IRegistryService(
85
- registry.getServiceAddress(REGISTRY(), getVersion().toMajorPart())
86
- );
87
-
88
- clonedOzAccessManager = AccessManagerUpgradeableInitializeable(Clones.clone(_masterOzAccessManager));
72
+ AccessManagerUpgradeableInitializeable clonedOzAccessManager = AccessManagerUpgradeableInitializeable(
73
+ Clones.clone(_masterOzAccessManager));
89
74
 
90
75
  // initially grants ADMIN_ROLE to this (being the instance service).
91
76
  // This will allow the instance service to bootstrap the authorizations of the instance.
@@ -96,33 +81,41 @@ contract InstanceService is
96
81
  clonedInstance = Instance(Clones.clone(_masterInstance));
97
82
  clonedInstance.initialize(
98
83
  address(clonedOzAccessManager),
99
- address(registry),
84
+ address(getRegistry()),
100
85
  instanceOwner);
101
86
  // initialize and set before instance reader
102
- clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
87
+ InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
103
88
  clonedInstanceStore.initialize(address(clonedInstance));
104
89
  clonedInstance.setInstanceStore(clonedInstanceStore);
105
90
 
106
- clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
91
+ InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
107
92
  clonedInstanceReader.initialize(address(clonedInstance));
108
93
  clonedInstance.setInstanceReader(clonedInstanceReader);
109
94
 
110
- clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
95
+ BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
111
96
  clonedBundleManager.initialize(address(clonedInstance));
112
97
  clonedInstance.setBundleManager(clonedBundleManager);
113
98
 
114
- clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
99
+ InstanceAccessManager clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
115
100
  clonedOzAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAccessManager), 0);
116
101
  clonedInstanceAccessManager.initialize(address(clonedInstance));
117
102
  clonedInstance.setInstanceAccessManager(clonedInstanceAccessManager);
118
103
 
119
104
  // TODO amend setters with instance specific , policy manager ...
120
105
 
121
- _grantInitialAuthorizations(clonedInstanceAccessManager, clonedInstance, clonedBundleManager, clonedInstanceStore, instanceOwner);
106
+ // TODO library does external calls -> but it is registry and access manager -> find out is it best practice
107
+ InstanceAuthorizationsLib.grantInitialAuthorizations(
108
+ clonedInstanceAccessManager,
109
+ clonedInstance,
110
+ clonedBundleManager,
111
+ clonedInstanceStore,
112
+ instanceOwner,
113
+ getRegistry(),
114
+ getVersion().toMajorPart());
122
115
 
123
116
  clonedOzAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
124
117
 
125
- IRegistry.ObjectInfo memory info = registryService.registerInstance(clonedInstance, instanceOwner);
118
+ IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
126
119
  clonedInstanceNftId = info.nftId;
127
120
 
128
121
  emit LogInstanceCloned(
@@ -135,224 +128,6 @@ contract InstanceService is
135
128
  clonedInstanceNftId);
136
129
  }
137
130
 
138
- function _grantInitialAuthorizations(
139
- InstanceAccessManager clonedAccessManager,
140
- Instance clonedInstance,
141
- BundleManager clonedBundleManager,
142
- InstanceStore clonedInstanceStore,
143
- address instanceOwner)
144
- internal
145
- {
146
- _createCoreAndGifRoles(clonedAccessManager);
147
- _createCoreTargets(clonedAccessManager, clonedInstance, clonedBundleManager, clonedInstanceStore);
148
- _grantDistributionServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
149
- _grantPoolServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
150
- _grantProductServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
151
- _grantApplicationServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
152
- _grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
153
- _grantClaimServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
154
- _grantBundleServiceAuthorizations(clonedAccessManager, clonedInstanceStore, clonedBundleManager);
155
- _grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
156
- _grantInstanceAuthorizations(clonedAccessManager);
157
- _grantInstanceOwnerAuthorizations(clonedAccessManager, clonedInstance);
158
- }
159
-
160
- function _createCoreAndGifRoles(InstanceAccessManager clonedAccessManager) internal {
161
- // default roles controlled by ADMIN_ROLE -> core roles
162
- // all set/granted only once during cloning (the only exception is INSTANCE_OWNER_ROLE, hooked to instance nft)
163
- clonedAccessManager.createCoreRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
164
- clonedAccessManager.createCoreRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole");
165
- clonedAccessManager.createCoreRole(POOL_SERVICE_ROLE(), "PoolServiceRole");
166
- clonedAccessManager.createCoreRole(APPLICATION_SERVICE_ROLE(), "ApplicationServiceRole");
167
- clonedAccessManager.createCoreRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole");
168
- clonedAccessManager.createCoreRole(CLAIM_SERVICE_ROLE(), "ClaimServiceRole");
169
- clonedAccessManager.createCoreRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
170
- clonedAccessManager.createCoreRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
171
- // default roles controlled by INSTANCE_OWNER_ROLE -> gif roles
172
- clonedAccessManager.createGifRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole", INSTANCE_OWNER_ROLE());
173
- clonedAccessManager.createGifRole(POOL_OWNER_ROLE(), "PoolOwnerRole", INSTANCE_OWNER_ROLE());
174
- clonedAccessManager.createGifRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole", INSTANCE_OWNER_ROLE());
175
- }
176
-
177
- function _createCoreTargets(
178
- InstanceAccessManager clonedAccessManager,
179
- Instance clonedInstance,
180
- BundleManager clonedBundleManager,
181
- InstanceStore clonedInstanceStore)
182
- internal
183
- {
184
- clonedAccessManager.createCoreTarget(address(clonedAccessManager), "InstanceAccessManager");// TODO create in instance access manager initializer?
185
- clonedAccessManager.createCoreTarget(address(clonedInstance), "Instance");// TODO create in instance access manager initializer?
186
- clonedAccessManager.createCoreTarget(address(clonedBundleManager), "BundleManager");
187
- clonedAccessManager.createCoreTarget(address(clonedInstanceStore), "InstanceStore");
188
- }
189
-
190
- function _grantDistributionServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
191
- // configure authorization for distribution service on instance
192
- address distributionServiceAddress = getRegistry().getServiceAddress(DISTRIBUTION(), getVersion().toMajorPart());
193
- clonedAccessManager.grantRole(DISTRIBUTION_SERVICE_ROLE(), distributionServiceAddress);
194
- bytes4[] memory instanceDistributionServiceSelectors = new bytes4[](11);
195
- instanceDistributionServiceSelectors[0] = clonedInstanceStore.createDistributionSetup.selector;
196
- instanceDistributionServiceSelectors[1] = clonedInstanceStore.updateDistributionSetup.selector;
197
- instanceDistributionServiceSelectors[2] = clonedInstanceStore.createDistributorType.selector;
198
- instanceDistributionServiceSelectors[3] = clonedInstanceStore.updateDistributorType.selector;
199
- instanceDistributionServiceSelectors[4] = clonedInstanceStore.updateDistributorTypeState.selector;
200
- instanceDistributionServiceSelectors[5] = clonedInstanceStore.createDistributor.selector;
201
- instanceDistributionServiceSelectors[6] = clonedInstanceStore.updateDistributor.selector;
202
- instanceDistributionServiceSelectors[7] = clonedInstanceStore.updateDistributorState.selector;
203
- instanceDistributionServiceSelectors[8] = clonedInstanceStore.createReferral.selector;
204
- instanceDistributionServiceSelectors[9] = clonedInstanceStore.updateReferral.selector;
205
- instanceDistributionServiceSelectors[10] = clonedInstanceStore.updateReferralState.selector;
206
- clonedAccessManager.setCoreTargetFunctionRole(
207
- "InstanceStore",
208
- instanceDistributionServiceSelectors,
209
- DISTRIBUTION_SERVICE_ROLE());
210
- }
211
-
212
- function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
213
- // configure authorization for pool service on instance
214
- address poolServiceAddress = getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart());
215
- clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
216
- bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
217
- instancePoolServiceSelectors[0] = clonedInstanceStore.createPoolSetup.selector;
218
- instancePoolServiceSelectors[1] = clonedInstanceStore.updatePoolSetup.selector;
219
- clonedAccessManager.setCoreTargetFunctionRole(
220
- "InstanceStore",
221
- instancePoolServiceSelectors,
222
- POOL_SERVICE_ROLE());
223
- }
224
-
225
- function _grantProductServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
226
- // configure authorization for product service on instance
227
- address productServiceAddress = getRegistry().getServiceAddress(PRODUCT(), getVersion().toMajorPart());
228
- clonedAccessManager.grantRole(PRODUCT_SERVICE_ROLE(), address(productServiceAddress));
229
- bytes4[] memory instanceProductServiceSelectors = new bytes4[](5);
230
- instanceProductServiceSelectors[0] = clonedInstanceStore.createProductSetup.selector;
231
- instanceProductServiceSelectors[1] = clonedInstanceStore.updateProductSetup.selector;
232
- instanceProductServiceSelectors[2] = clonedInstanceStore.createRisk.selector;
233
- instanceProductServiceSelectors[3] = clonedInstanceStore.updateRisk.selector;
234
- instanceProductServiceSelectors[4] = clonedInstanceStore.updateRiskState.selector;
235
- clonedAccessManager.setCoreTargetFunctionRole(
236
- "InstanceStore",
237
- instanceProductServiceSelectors,
238
- PRODUCT_SERVICE_ROLE());
239
- }
240
-
241
- function _grantApplicationServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
242
- // configure authorization for application services on instance
243
- address applicationServiceAddress = getRegistry().getServiceAddress(APPLICATION(), getVersion().toMajorPart());
244
- clonedAccessManager.grantRole(APPLICATION_SERVICE_ROLE(), applicationServiceAddress);
245
- bytes4[] memory instanceApplicationServiceSelectors = new bytes4[](3);
246
- instanceApplicationServiceSelectors[0] = clonedInstanceStore.createApplication.selector;
247
- instanceApplicationServiceSelectors[1] = clonedInstanceStore.updateApplication.selector;
248
- instanceApplicationServiceSelectors[2] = clonedInstanceStore.updateApplicationState.selector;
249
- clonedAccessManager.setCoreTargetFunctionRole(
250
- "InstanceStore",
251
- instanceApplicationServiceSelectors,
252
- APPLICATION_SERVICE_ROLE());
253
- }
254
-
255
- function _grantPolicyServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
256
- // configure authorization for policy services on instance
257
- address policyServiceAddress = getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart());
258
- clonedAccessManager.grantRole(POLICY_SERVICE_ROLE(), policyServiceAddress);
259
- bytes4[] memory instancePolicyServiceSelectors = new bytes4[](2);
260
- instancePolicyServiceSelectors[0] = clonedInstanceStore.updatePolicy.selector;
261
- instancePolicyServiceSelectors[1] = clonedInstanceStore.updatePolicyState.selector;
262
- clonedAccessManager.setCoreTargetFunctionRole(
263
- "InstanceStore",
264
- instancePolicyServiceSelectors,
265
- POLICY_SERVICE_ROLE());
266
- }
267
-
268
- function _grantClaimServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
269
- // configure authorization for claim/payout services on instance
270
- address claimServiceAddress = getRegistry().getServiceAddress(CLAIM(), getVersion().toMajorPart());
271
- clonedAccessManager.grantRole(POLICY_SERVICE_ROLE(), claimServiceAddress);
272
- // TODO add claims function authz
273
- bytes4[] memory instanceClaimServiceSelectors = new bytes4[](0);
274
- // instanceClaimServiceSelectors[0] = clonedInstanceStore.updatePolicy.selector;
275
- // instanceClaimServiceSelectors[1] = clonedInstanceStore.updatePolicyState.selector;
276
- clonedAccessManager.setCoreTargetFunctionRole(
277
- "InstanceStore",
278
- instanceClaimServiceSelectors,
279
- CLAIM_SERVICE_ROLE());
280
- }
281
-
282
- function _grantBundleServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore, BundleManager clonedBundleManager) internal {
283
- // configure authorization for bundle service on instance
284
- address bundleServiceAddress = getRegistry().getServiceAddress(BUNDLE(), getVersion().toMajorPart());
285
- clonedAccessManager.grantRole(BUNDLE_SERVICE_ROLE(), address(bundleServiceAddress));
286
- bytes4[] memory instanceBundleServiceSelectors = new bytes4[](3);
287
- instanceBundleServiceSelectors[0] = clonedInstanceStore.createBundle.selector;
288
- instanceBundleServiceSelectors[1] = clonedInstanceStore.updateBundle.selector;
289
- instanceBundleServiceSelectors[2] = clonedInstanceStore.updateBundleState.selector;
290
- clonedAccessManager.setCoreTargetFunctionRole(
291
- "InstanceStore",
292
- instanceBundleServiceSelectors,
293
- BUNDLE_SERVICE_ROLE());
294
-
295
- // configure authorization for bundle service on bundle manager
296
- bytes4[] memory bundleManagerBundleServiceSelectors = new bytes4[](5);
297
- bundleManagerBundleServiceSelectors[0] = clonedBundleManager.linkPolicy.selector;
298
- bundleManagerBundleServiceSelectors[1] = clonedBundleManager.unlinkPolicy.selector;
299
- bundleManagerBundleServiceSelectors[2] = clonedBundleManager.add.selector;
300
- bundleManagerBundleServiceSelectors[3] = clonedBundleManager.lock.selector;
301
- bundleManagerBundleServiceSelectors[4] = clonedBundleManager.unlock.selector;
302
- clonedAccessManager.setCoreTargetFunctionRole(
303
- "BundleManager",
304
- bundleManagerBundleServiceSelectors,
305
- BUNDLE_SERVICE_ROLE());
306
- }
307
-
308
- function _grantInstanceServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
309
- // configure authorization for instance service on instance
310
- address instanceServiceAddress = getRegistry().getServiceAddress(INSTANCE(), getVersion().toMajorPart());
311
- clonedAccessManager.grantRole(INSTANCE_SERVICE_ROLE(), instanceServiceAddress);
312
- bytes4[] memory instanceInstanceServiceSelectors = new bytes4[](1);
313
- instanceInstanceServiceSelectors[0] = clonedInstance.setInstanceReader.selector;
314
- clonedAccessManager.setCoreTargetFunctionRole(
315
- "Instance",
316
- instanceInstanceServiceSelectors,
317
- INSTANCE_SERVICE_ROLE());
318
-
319
- // configure authorizations for instance service on instance access manager
320
- bytes4[] memory accessManagerInstanceServiceSelectors = new bytes4[](3);
321
- accessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
322
- accessManagerInstanceServiceSelectors[1] = clonedAccessManager.setTargetLockedByService.selector;
323
- accessManagerInstanceServiceSelectors[2] = clonedAccessManager.setCoreTargetFunctionRole.selector;
324
- clonedAccessManager.setCoreTargetFunctionRole(
325
- "InstanceAccessManager",
326
- accessManagerInstanceServiceSelectors,
327
- INSTANCE_SERVICE_ROLE());
328
- }
329
-
330
- function _grantInstanceAuthorizations(InstanceAccessManager clonedAccessManager) internal {
331
- bytes4[] memory accessManagerInstanceSelectors = new bytes4[](4);
332
- accessManagerInstanceSelectors[0] = clonedAccessManager.createRole.selector;
333
- accessManagerInstanceSelectors[1] = clonedAccessManager.createTarget.selector;
334
- accessManagerInstanceSelectors[2] = clonedAccessManager.setTargetFunctionRole.selector;
335
- accessManagerInstanceSelectors[3] = clonedAccessManager.setTargetLockedByInstance.selector;
336
- clonedAccessManager.setCoreTargetFunctionRole(
337
- "InstanceAccessManager",
338
- accessManagerInstanceSelectors,
339
- INSTANCE_ROLE());
340
- }
341
-
342
- function _grantInstanceOwnerAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
343
- // configure authorization for instance owner on instance access manager
344
- // instance owner role is granted/revoked ONLY by INSTANCE_ROLE
345
- bytes4[] memory instanceInstanceOwnerSelectors = new bytes4[](4);
346
- instanceInstanceOwnerSelectors[0] = clonedInstance.createRole.selector;
347
- instanceInstanceOwnerSelectors[1] = clonedInstance.createTarget.selector;
348
- instanceInstanceOwnerSelectors[2] = clonedInstance.setTargetFunctionRole.selector;
349
- instanceInstanceOwnerSelectors[3] = clonedInstance.setTargetLocked.selector;
350
- clonedAccessManager.setCoreTargetFunctionRole(
351
- "Instance",
352
- instanceInstanceOwnerSelectors,
353
- INSTANCE_OWNER_ROLE());
354
- }
355
-
356
131
  function setAndRegisterMasterInstance(address instanceAddress)
357
132
  external
358
133
  onlyOwner
@@ -366,8 +141,6 @@ contract InstanceService is
366
141
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
367
142
 
368
143
  IInstance instance = IInstance(instanceAddress);
369
- AccessManagerUpgradeableInitializeable ozAccessManager = AccessManagerUpgradeableInitializeable(instance.authority());
370
- address ozAccessManagerAddress = address(ozAccessManager);
371
144
  InstanceAccessManager instanceAccessManager = instance.getInstanceAccessManager();
372
145
  address instanceAccessManagerAddress = address(instanceAccessManager);
373
146
  InstanceReader instanceReader = instance.getInstanceReader();
@@ -377,7 +150,6 @@ contract InstanceService is
377
150
  InstanceStore instanceStore = instance.getInstanceStore();
378
151
  address instanceStoreAddress = address(instanceStore);
379
152
 
380
- if(ozAccessManagerAddress == address(0)) { revert ErrorInstanceServiceOzAccessManagerZero();}
381
153
  if(instanceAccessManagerAddress == address(0)) { revert ErrorInstanceServiceInstanceAccessManagerZero(); }
382
154
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
383
155
  if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
@@ -386,19 +158,18 @@ contract InstanceService is
386
158
  if(instance.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
387
159
  if(bundleManager.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
388
160
  if(instanceStore.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
389
- if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
390
161
  if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
162
+ if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
391
163
 
392
- _masterOzAccessManager = ozAccessManagerAddress;
164
+ _masterOzAccessManager = instance.authority();
393
165
  _masterInstanceAccessManager = instanceAccessManagerAddress;
394
166
  _masterInstance = instanceAddress;
395
167
  _masterInstanceReader = instanceReaderAddress;
396
168
  _masterInstanceBundleManager = bundleManagerAddress;
397
169
  _masterInstanceStore = instanceStoreAddress;
398
170
 
399
- IRegistryService registryService = IRegistryService(getRegistry().getServiceAddress(REGISTRY(), getVersion().toMajorPart()));
400
171
  IInstance masterInstance = IInstance(_masterInstance);
401
- IRegistry.ObjectInfo memory info = registryService.registerInstance(masterInstance, getOwner());
172
+ IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
402
173
  masterInstanceNftId = info.nftId;
403
174
  }
404
175
 
@@ -426,44 +197,6 @@ contract InstanceService is
426
197
  instance.setInstanceReader(upgradedInstanceReaderClone);
427
198
  }
428
199
 
429
- function getMasterInstanceReader() external view returns (address) {
430
- return _masterInstanceReader;
431
- }
432
-
433
- function getMasterInstance() external view returns (address) {
434
- return _masterInstance;
435
- }
436
-
437
- function getMasterInstanceAccessManager() external view returns (address) {
438
- return _masterInstanceAccessManager;
439
- }
440
-
441
- function getMasterInstanceBundleManager() external view returns (address) {
442
- return _masterInstanceBundleManager;
443
- }
444
-
445
- // From IService
446
- function getDomain() public pure override returns(ObjectType) {
447
- return INSTANCE();
448
- }
449
-
450
- /// @dev top level initializer
451
- function _initialize(
452
- address owner,
453
- bytes memory data
454
- )
455
- internal
456
- initializer
457
- virtual override
458
- {
459
- address initialOwner;
460
- address registryAddress;
461
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
462
- // TODO while InstanceService is not deployed in InstanceServiceManager constructor
463
- // owner is InstanceServiceManager deployer
464
- initializeService(registryAddress, address(0), owner);
465
- registerInterface(type(IInstanceService).interfaceId);
466
- }
467
200
 
468
201
  // all gif targets MUST be childs of instanceNftId
469
202
  function createGifTarget(
@@ -474,11 +207,11 @@ contract InstanceService is
474
207
  RoleId[] memory roles
475
208
  )
476
209
  external
477
- onlyRegisteredService
210
+ restricted
478
211
  {
479
212
  (
480
213
  IInstance instance, // or instanceInfo
481
- NftId targetNftId // or targetInfo
214
+ // or targetInfo
482
215
  ) = _validateInstanceAndComponent(instanceNftId, targetAddress);
483
216
 
484
217
  InstanceAccessManager accessManager = instance.getInstanceAccessManager();
@@ -492,9 +225,11 @@ contract InstanceService is
492
225
  }
493
226
  }
494
227
 
228
+
495
229
  // TODO called by component, but target can be component helper...so needs target name
496
230
  // TODO check that targetName associated with component...how???
497
231
  function setComponentLocked(bool locked) onlyComponent external {
232
+
498
233
  address componentAddress = msg.sender;
499
234
  IRegistry registry = getRegistry();
500
235
  NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
@@ -508,6 +243,42 @@ contract InstanceService is
508
243
  locked);
509
244
  }
510
245
 
246
+
247
+ function getMasterInstanceReader() external view returns (address) {
248
+ return _masterInstanceReader;
249
+ }
250
+
251
+ // From IService
252
+ function getDomain() public pure override returns(ObjectType) {
253
+ return INSTANCE();
254
+ }
255
+
256
+ /// @dev top level initializer
257
+ function _initialize(
258
+ address owner,
259
+ bytes memory data
260
+ )
261
+ internal
262
+ initializer
263
+ virtual override
264
+ {
265
+ (
266
+ address registryAddress,,
267
+ //address managerAddress
268
+ address authority
269
+ ) = abi.decode(data, (address, address, address));
270
+
271
+ initializeService(registryAddress, authority, owner);
272
+
273
+ _registryService = IRegistryService(
274
+ IRegistry(registryAddress).getServiceAddress(
275
+ REGISTRY(),
276
+ getVersion().toMajorPart()));
277
+
278
+ registerInterface(type(IInstanceService).interfaceId);
279
+ }
280
+
281
+
511
282
  function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
512
283
  internal
513
284
  view
@@ -7,39 +7,29 @@ import {ProxyManager} from "../shared/ProxyManager.sol";
7
7
  import {InstanceService} from "./InstanceService.sol";
8
8
  import {Registry} from "../registry/Registry.sol";
9
9
  import {RegistryService} from "../registry/RegistryService.sol";
10
- import {REGISTRY} from "../types/ObjectType.sol";
10
+ import {REGISTRY} from "../type/ObjectType.sol";
11
11
 
12
12
  contract InstanceServiceManager is ProxyManager {
13
13
 
14
14
  InstanceService private _instanceService;
15
15
 
16
- /// @dev initializes proxy manager with instance service implementation and deploys instance
16
+ /// @dev initializes proxy manager with instance service implementation
17
17
  constructor(
18
- address registryAddress
19
- )
18
+ address authority,
19
+ address registryAddress,
20
+ bytes32 salt
21
+ )
20
22
  ProxyManager(registryAddress)
21
23
  {
22
- InstanceService instSrv = new InstanceService();
24
+ InstanceService instSrv = new InstanceService{salt: salt}();
23
25
  // bytes memory initCode = type(InstanceService).creationCode;
24
- bytes memory data = abi.encode(registryAddress, address(this));
25
- IVersionable versionable = deploy(
26
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
27
+ IVersionable versionable = deployDetermenistic(
26
28
  address(instSrv),
27
- data);
29
+ data,
30
+ salt);
28
31
 
29
32
  _instanceService = InstanceService(address(versionable));
30
-
31
- // TODO `this` must have a role or own nft to register service
32
- //Registry registry = Registry(registryAddress);
33
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _instanceService.getMajorVersion());
34
- //RegistryService registryService = RegistryService(registryServiceAddress);
35
- //registryService.registerService(_instanceService);
36
- // RegistryService registryService = _instanceService.getRegistryService();
37
-
38
- // TODO no nft to link yet
39
- // link ownership of instance service manager ot nft owner of instance service
40
- //_linkToNftOwnable(
41
- // address(registryAddress),
42
- // address(_instanceService));
43
33
  }
44
34
 
45
35
  //--- view functions ----------------------------------------------------//