@etherisc/gif-next 0.0.2-e8b06c8-540 → 0.0.2-e8ea5fe-337

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 (459) hide show
  1. package/README.md +32 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +38 -33
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +8 -8
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  14. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +8 -8
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +23 -4
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +85 -101
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +19 -19
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -75
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +223 -105
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +67 -55
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -37
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -31
  32. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  33. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  34. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  35. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +7 -7
  36. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  37. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +10 -5
  38. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/Instance.sol/Instance.json +19 -19
  40. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  41. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  42. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  43. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
  44. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -123
  46. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  47. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +44 -39
  48. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -35
  50. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +226 -231
  52. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  53. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  54. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  55. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  56. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  57. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  58. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  59. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  60. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  61. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  62. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  63. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  64. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  67. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  68. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  69. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  70. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +59 -88
  71. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  72. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +21 -21
  73. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  74. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -37
  76. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +27 -72
  79. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
  81. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
  83. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  84. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +55 -137
  85. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  86. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +19 -19
  87. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  88. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +402 -62
  89. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  90. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -43
  91. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  92. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
  93. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  94. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +45 -95
  95. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -100
  97. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  98. package/artifacts/contracts/pool/Pool.sol/Pool.json +45 -133
  99. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  100. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +264 -136
  101. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +40 -36
  103. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  104. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +31 -50
  105. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  106. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +31 -43
  107. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  108. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +22 -78
  109. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  110. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +19 -19
  111. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  112. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +194 -72
  113. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  114. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +58 -54
  115. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  116. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  117. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  118. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +114 -0
  119. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  120. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +184 -119
  121. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  122. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
  123. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  124. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -37
  125. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  126. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
  127. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  128. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +242 -209
  129. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +55 -55
  131. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  132. package/artifacts/contracts/product/PricingService.sol/PricingService.json +113 -153
  133. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  134. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +55 -75
  135. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  136. package/artifacts/contracts/product/Product.sol/Product.json +22 -78
  137. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  138. package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
  139. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  140. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
  141. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  142. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  143. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  144. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +51 -47
  145. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  146. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  147. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  148. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  149. package/artifacts/contracts/registry/Registry.sol/Registry.json +102 -74
  150. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  151. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +100 -95
  152. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  153. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  154. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
  156. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  157. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  158. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  159. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  160. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  161. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +26 -7
  162. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  164. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  165. package/artifacts/contracts/shared/Component.sol/Component.json +0 -64
  166. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +255 -62
  168. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -49
  170. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  173. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  174. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  175. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  176. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -37
  177. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  178. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  179. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  180. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  181. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  186. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  187. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  188. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  189. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  190. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -75
  191. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  192. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  193. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  194. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  195. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  196. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  197. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  198. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  199. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  200. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  201. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  202. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  203. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  204. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  205. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  206. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  207. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  208. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  209. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  210. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  211. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
  212. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  213. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  214. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
  215. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  216. package/artifacts/contracts/staking/Staking.sol/Staking.json +84 -114
  217. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  218. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  219. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  220. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +47 -43
  221. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  222. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  223. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  224. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
  225. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
  227. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
  229. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  230. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +58 -22
  231. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  232. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  233. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  234. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  235. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  237. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  239. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  241. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  243. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  244. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  245. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  247. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  248. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  249. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  251. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  253. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  255. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  257. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  259. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +14 -14
  261. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  263. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  265. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  267. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  269. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  271. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  273. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  275. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
  277. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  279. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  281. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  282. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  283. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  284. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  285. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  286. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  287. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  288. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  289. package/contracts/authorization/AccessAdmin.sol +8 -39
  290. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  291. package/contracts/authorization/Authorization.sol +0 -1
  292. package/contracts/authorization/IServiceAuthorization.sol +3 -0
  293. package/contracts/authorization/ModuleAuthorization.sol +0 -125
  294. package/contracts/authorization/ServiceAuthorization.sol +4 -0
  295. package/contracts/distribution/BasicDistribution.sol +4 -15
  296. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  297. package/contracts/distribution/Distribution.sol +22 -10
  298. package/contracts/distribution/DistributionService.sol +67 -34
  299. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  300. package/contracts/distribution/IDistributionComponent.sol +8 -34
  301. package/contracts/distribution/IDistributionService.sol +18 -2
  302. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  303. package/contracts/instance/IInstance.sol +12 -35
  304. package/contracts/instance/IInstanceService.sol +6 -5
  305. package/contracts/instance/Instance.sol +15 -79
  306. package/contracts/instance/InstanceAdmin.sol +220 -269
  307. package/contracts/instance/InstanceAuthorizationV3.sol +19 -28
  308. package/contracts/instance/InstanceReader.sol +32 -12
  309. package/contracts/instance/InstanceService.sol +73 -122
  310. package/contracts/instance/InstanceServiceManager.sol +2 -6
  311. package/contracts/instance/InstanceStore.sol +18 -4
  312. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  313. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
  314. package/contracts/instance/module/IBundle.sol +1 -1
  315. package/contracts/instance/module/IComponents.sol +1 -7
  316. package/contracts/instance/module/IDistribution.sol +0 -1
  317. package/contracts/instance/module/IPolicy.sol +22 -22
  318. package/contracts/mock/Dip.sol +1 -1
  319. package/contracts/oracle/IOracleComponent.sol +2 -1
  320. package/contracts/oracle/Oracle.sol +16 -6
  321. package/contracts/oracle/OracleService.sol +1 -0
  322. package/contracts/oracle/OracleServiceManager.sol +2 -5
  323. package/contracts/pool/BasicPool.sol +7 -5
  324. package/contracts/pool/BasicPoolAuthorization.sol +11 -2
  325. package/contracts/pool/BundleService.sol +189 -47
  326. package/contracts/pool/BundleServiceManager.sol +2 -5
  327. package/contracts/pool/IBundleService.sol +33 -5
  328. package/contracts/pool/IPoolComponent.sol +6 -0
  329. package/contracts/pool/IPoolService.sol +36 -26
  330. package/contracts/pool/Pool.sol +39 -24
  331. package/contracts/pool/PoolService.sol +161 -104
  332. package/contracts/pool/PoolServiceManager.sol +2 -5
  333. package/contracts/product/ApplicationService.sol +51 -57
  334. package/contracts/product/ApplicationServiceManager.sol +2 -2
  335. package/contracts/product/BasicProduct.sol +3 -32
  336. package/contracts/product/BasicProductAuthorization.sol +3 -0
  337. package/contracts/product/ClaimService.sol +118 -73
  338. package/contracts/product/ClaimServiceManager.sol +2 -2
  339. package/contracts/product/IApplicationService.sol +1 -0
  340. package/contracts/product/IClaimService.sol +28 -5
  341. package/contracts/product/IPolicyService.sol +27 -32
  342. package/contracts/product/IPricingService.sol +7 -7
  343. package/contracts/product/IProductComponent.sol +1 -1
  344. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  345. package/contracts/product/PolicyService.sol +278 -180
  346. package/contracts/product/PolicyServiceManager.sol +2 -5
  347. package/contracts/product/PricingService.sol +42 -41
  348. package/contracts/product/PricingServiceManager.sol +2 -5
  349. package/contracts/product/Product.sol +67 -34
  350. package/contracts/product/{ProductService.sol → RiskService.sol} +10 -37
  351. package/contracts/product/RiskServiceManager.sol +39 -0
  352. package/contracts/registry/IRegistry.sol +27 -17
  353. package/contracts/registry/IRegistryService.sol +6 -6
  354. package/contracts/registry/Registry.sol +81 -87
  355. package/contracts/registry/RegistryAdmin.sol +34 -23
  356. package/contracts/registry/RegistryService.sol +4 -18
  357. package/contracts/registry/RegistryServiceManager.sol +2 -2
  358. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  359. package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +149 -194
  360. package/contracts/registry/ServiceAuthorizationV3.sol +7 -10
  361. package/contracts/registry/TokenRegistry.sol +2 -2
  362. package/contracts/shared/Component.sol +25 -38
  363. package/contracts/shared/ComponentService.sol +84 -69
  364. package/contracts/shared/ComponentServiceManager.sol +2 -2
  365. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  366. package/contracts/shared/IComponent.sol +4 -4
  367. package/contracts/shared/IComponentService.sol +15 -9
  368. package/contracts/shared/IInstanceLinkedComponent.sol +9 -10
  369. package/contracts/shared/IKeyValueStore.sol +1 -0
  370. package/contracts/shared/ILifecycle.sol +1 -2
  371. package/contracts/shared/IService.sol +1 -1
  372. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
  373. package/contracts/shared/InstanceLinkedComponent.sol +22 -2
  374. package/contracts/shared/KeyValueStore.sol +6 -2
  375. package/contracts/shared/Lifecycle.sol +16 -69
  376. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  377. package/contracts/shared/NftOwnable.sol +3 -3
  378. package/contracts/shared/PolicyHolder.sol +2 -5
  379. package/contracts/shared/Service.sol +3 -4
  380. package/contracts/shared/TokenHandler.sol +100 -19
  381. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  382. package/contracts/staking/IStaking.sol +3 -3
  383. package/contracts/staking/IStakingService.sol +12 -5
  384. package/contracts/staking/StakeManagerLib.sol +18 -25
  385. package/contracts/staking/Staking.sol +24 -39
  386. package/contracts/staking/StakingLifecycle.sol +23 -0
  387. package/contracts/staking/StakingManager.sol +2 -6
  388. package/contracts/staking/StakingReader.sol +12 -16
  389. package/contracts/staking/StakingService.sol +8 -12
  390. package/contracts/staking/StakingServiceManager.sol +2 -2
  391. package/contracts/staking/StakingStore.sol +15 -23
  392. package/contracts/staking/TargetManagerLib.sol +7 -3
  393. package/contracts/type/Amount.sol +12 -5
  394. package/contracts/type/Blocknumber.sol +7 -1
  395. package/contracts/type/ObjectType.sol +18 -18
  396. package/contracts/type/Referral.sol +1 -0
  397. package/contracts/type/RoleId.sol +10 -38
  398. package/contracts/type/Seconds.sol +21 -1
  399. package/contracts/type/StateId.sol +1 -0
  400. package/contracts/type/Timestamp.sol +11 -1
  401. package/contracts/type/UFixed.sol +29 -10
  402. package/contracts/type/Version.sol +3 -1
  403. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  404. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  405. package/package.json +3 -3
  406. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
  407. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +0 -1385
  408. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  409. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  410. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +0 -4
  411. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +0 -1616
  412. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  413. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  414. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  415. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
  416. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  417. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  418. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  419. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  420. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  421. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  422. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1237
  423. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  424. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  425. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  426. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  427. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  428. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  429. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  430. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  431. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  432. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  433. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  434. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  435. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  436. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  437. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  438. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  439. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  440. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  441. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  442. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  443. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  444. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  445. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  446. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  447. package/contracts/authorization/InstanceAdmin.sol +0 -108
  448. package/contracts/instance/InstanceAdminNew.sol +0 -261
  449. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -422
  450. package/contracts/product/ProductServiceManager.sol +0 -42
  451. package/contracts/shared/AccessManagerCustom.sol +0 -741
  452. package/contracts/shared/AccessManagerExtended.sol +0 -481
  453. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  454. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  455. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  456. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  457. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  458. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  459. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -7,21 +7,29 @@ import {NftId} from "../type/NftId.sol";
7
7
  import {ObjectType} from "../type/ObjectType.sol";
8
8
  import {VersionPart} from "../type/Version.sol";
9
9
  import {Timestamp} from "../type/Timestamp.sol";
10
- import {RoleId} from "../type/RoleId.sol";
11
10
 
11
+ /// @title Chain Registry interface.
12
+ /// A chain registry holds all protocol relevant objects with basic metadata.
13
+ /// Registered objects include services, instances, products, pools, policies, bundles, stakes and more.
14
+ /// Registered objects are represented by NFTs.
12
15
  interface IRegistry is IERC165 {
13
16
 
14
17
  event LogRegistration(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
15
18
  event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
16
19
 
20
+ // register()
21
+ error ErrorRegistryCallerNotRegistryService();
22
+ error ErrorRegistryService(address service);
23
+
17
24
  // registerService()
18
- error ErrorRegistryCallerNotReleaseManager();
25
+ error ErrorRegistryCallerNotReleaseRegistry();
26
+ error ErrorRegistryServiceAddressZero();
27
+ error ErrorRegistryServiceVersionZero();
28
+ error ErrorRegistryNotService(address service, ObjectType objectType);
29
+ error ErrorRegistryServiceParentNotRegistry(NftId parentNftId);
19
30
  error ErrorRegistryDomainZero(address service);
20
31
  error ErrorRegistryDomainAlreadyRegistered(address service, VersionPart version, ObjectType domain);
21
32
 
22
- // register()
23
- error ErrorRegistryCallerNotRegistryService();
24
-
25
33
  // registerWithCustomTypes()
26
34
  error ErrorRegistryCoreTypeRegistration();
27
35
 
@@ -40,30 +48,34 @@ interface IRegistry is IERC165 {
40
48
  bytes data;
41
49
  }
42
50
 
43
- // TODO cleanup
44
51
  struct ReleaseInfo {
45
52
  VersionPart version;
46
53
  bytes32 salt;
47
54
  address[] addresses;
48
55
  string[] names;
49
- RoleId[][] serviceRoles;
50
- string[][] serviceRoleNames;
51
- RoleId[][] functionRoles;
52
- string[][] functionRoleNames;
53
- bytes4[][][] selectors;
54
56
  ObjectType[] domains;
55
57
  Timestamp activatedAt;
56
58
  Timestamp disabledAt;
57
59
  }
58
60
 
61
+ /// @dev Register an object with a known core type.
62
+ /// The function returns a newly minted object NFT ID.
63
+ /// May not be used to register services.
64
+ function register(ObjectInfo memory info) external returns (NftId nftId);
65
+
66
+ /// @dev Register a service with using the provided domain and version.
67
+ /// The function returns a newly minted service NFT ID.
68
+ /// May only be used to register services.
59
69
  function registerService(
60
70
  ObjectInfo memory serviceInfo,
61
71
  VersionPart serviceVersion,
62
72
  ObjectType serviceDomain
63
73
  ) external returns(NftId nftId);
64
74
 
65
- function register(ObjectInfo memory info) external returns (NftId nftId);
66
-
75
+ /// @dev Register an object with a custom type.
76
+ /// The function returns a newly minted object NFT ID.
77
+ /// This function is reserved for GIF releases > 3.
78
+ /// May not be used to register known core types.
67
79
  function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
68
80
 
69
81
  function getInitialVersion() external view returns (VersionPart);
@@ -76,7 +88,7 @@ interface IRegistry is IERC165 {
76
88
 
77
89
  function getObjectCount() external view returns (uint256);
78
90
 
79
- function getNftId(address objectAddress) external view returns (NftId nftId);
91
+ function getNftIdForAddress(address objectAddress) external view returns (NftId nftId);
80
92
 
81
93
  function ownerOf(NftId nftId) external view returns (address);
82
94
 
@@ -110,9 +122,7 @@ interface IRegistry is IERC165 {
110
122
  // TODO refactor the address getters below to contract getters
111
123
  function getChainNftAddress() external view returns (address);
112
124
 
113
- function getReleaseManagerAddress() external view returns (address);
114
-
115
- function getReleaseAccessManagerAddress(VersionPart version) external view returns (address);
125
+ function getReleaseRegistryAddress() external view returns (address);
116
126
 
117
127
  function getStakingAddress() external view returns (address);
118
128
 
@@ -50,14 +50,14 @@ interface IRegistryService is
50
50
  function registerComponent(IComponent component, ObjectType objectType, address owner)
51
51
  external returns(IRegistry.ObjectInfo memory info);
52
52
 
53
- function registerProduct(IComponent product, address owner)
54
- external returns(IRegistry.ObjectInfo memory info);
53
+ // function registerProduct(IComponent product, address owner)
54
+ // external returns(IRegistry.ObjectInfo memory info);
55
55
 
56
- function registerPool(IComponent pool, address owner)
57
- external returns(IRegistry.ObjectInfo memory info);
56
+ // function registerPool(IComponent pool, address owner)
57
+ // external returns(IRegistry.ObjectInfo memory info);
58
58
 
59
- function registerDistribution(IComponent distribution, address owner)
60
- external returns(IRegistry.ObjectInfo memory info);
59
+ // function registerDistribution(IComponent distribution, address owner)
60
+ // external returns(IRegistry.ObjectInfo memory info);
61
61
 
62
62
  function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
63
63
 
@@ -8,12 +8,12 @@ import {InitializableCustom} from "../shared/InitializableCustom.sol";
8
8
 
9
9
  import {NftId, NftIdLib} from "../type/NftId.sol";
10
10
  import {VersionPart} from "../type/Version.sol";
11
- import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, STAKING, PRODUCT, DISTRIBUTION, DISTRIBUTOR, ORACLE, POOL, POLICY, BUNDLE} from "../type/ObjectType.sol";
11
+ import {ObjectType, PROTOCOL, REGISTRY, SERVICE, INSTANCE, STAKE, STAKING, PRODUCT, DISTRIBUTION, DISTRIBUTOR, ORACLE, POOL, POLICY, BUNDLE} from "../type/ObjectType.sol";
12
12
 
13
13
  import {ChainNft} from "./ChainNft.sol";
14
14
  import {IRegistry} from "./IRegistry.sol";
15
15
  import {IRegisterable} from "../shared/IRegisterable.sol";
16
- import {ReleaseManager} from "./ReleaseManager.sol";
16
+ import {ReleaseRegistry} from "./ReleaseRegistry.sol";
17
17
  import {TokenRegistry} from "./TokenRegistry.sol";
18
18
  import {RegistryAdmin} from "./RegistryAdmin.sol";
19
19
 
@@ -27,6 +27,8 @@ import {RegistryAdmin} from "./RegistryAdmin.sol";
27
27
  // 3) IRegisterable address by regular service (INSTANCE, PRODUCT, POOL, DISTRIBUTION, ORACLE)
28
28
  // 4) state object by regular service (POLICY, BUNDLE, STAKE)
29
29
 
30
+ /// @title Chain Registry contract implementing IRegistry.
31
+ /// @notice See IRegistry for method details.
30
32
  contract Registry is
31
33
  InitializableCustom,
32
34
  IRegistry
@@ -58,30 +60,31 @@ contract Registry is
58
60
 
59
61
  address public _tokenRegistryAddress;
60
62
  address public _stakingAddress;
61
- ReleaseManager public _releaseManager;
63
+ ReleaseRegistry public _releaseRegistry;
62
64
 
63
65
  // TODO
64
- // 1). Registry and ReleaseManager must be treated as whole single entity.
66
+ // 1). Registry and ReleaseRegistry must be treated as whole single entity.
65
67
  // But current limitations of EVM does not allow it -> require it to be splitted
66
- // 2). Keep onlyReleaseManager modifier
68
+ // 2). Keep onlyReleaseRegistry modifier
67
69
  // 3). Delete onlyRegistryService in favor of restricted
68
70
  // 4). (For GlobalRegistry ONLY) make registerChainRegistry() restricted to GIF_ADMIN_ROLE
69
71
  modifier onlyRegistryService() {
70
- if(!_releaseManager.isActiveRegistryService(msg.sender)) {
72
+ if(!_releaseRegistry.isActiveRegistryService(msg.sender)) {
71
73
  revert ErrorRegistryCallerNotRegistryService();
72
74
  }
73
75
  _;
74
76
  }
75
77
 
76
78
 
77
- modifier onlyReleaseManager() {
78
- if(msg.sender != address(_releaseManager)) {
79
- revert ErrorRegistryCallerNotReleaseManager();
79
+ modifier onlyReleaseRegistry() {
80
+ if(msg.sender != address(_releaseRegistry)) {
81
+ revert ErrorRegistryCallerNotReleaseRegistry();
80
82
  }
81
83
  _;
82
84
  }
83
85
 
84
-
86
+ /// @dev Creates the registry contract and populates it with the protocol and registry objects.
87
+ /// Internally deploys the ChainNft contract.
85
88
  constructor(RegistryAdmin admin)
86
89
  InitializableCustom()
87
90
  {
@@ -98,91 +101,98 @@ contract Registry is
98
101
  }
99
102
 
100
103
 
101
- /// @dev wires release manager and token to registry (this contract).
102
- /// MUST be called by release manager.
104
+ /// @dev Wires release registry and token to registry (this contract).
105
+ /// MUST be called by release registry.
103
106
  function initialize(
104
- address releaseManager,
107
+ address releaseRegistry,
105
108
  address tokenRegistry,
106
109
  address staking
107
110
  )
108
111
  external
109
112
  initializer()
110
113
  {
111
- _releaseManager = ReleaseManager(releaseManager);
114
+ _releaseRegistry = ReleaseRegistry(releaseRegistry);
112
115
  _tokenRegistryAddress = tokenRegistry;
113
116
  _stakingAddress = staking;
114
117
 
115
118
  _stakingNftId = _registerStaking();
116
119
  }
117
120
 
121
+ /// @inheritdoc IRegistry
122
+ function register(ObjectInfo memory info)
123
+ external
124
+ onlyRegistryService
125
+ returns(NftId nftId)
126
+ {
127
+ ObjectType objectType = info.objectType;
128
+ ObjectType parentType = _info[info.parentNftId].objectType;
129
+
130
+ // check type combinations for core objects
131
+ if(info.objectAddress == address(0)) {
132
+ if(_coreObjectCombinations[objectType][parentType] == false) {
133
+ revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
134
+ }
135
+ }
136
+ // check type combinations for contract objects
137
+ else {
138
+ if(_coreContractCombinations[objectType][parentType] == false) {
139
+ revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
140
+ }
141
+ }
142
+
143
+ nftId = _register(info);
144
+ }
145
+
146
+
147
+ /// @inheritdoc IRegistry
118
148
  function registerService(
119
149
  ObjectInfo memory info,
120
150
  VersionPart version,
121
151
  ObjectType domain
122
152
  )
123
153
  external
124
- onlyReleaseManager
154
+ onlyReleaseRegistry
125
155
  returns(NftId nftId)
126
156
  {
157
+ // check service address is defined
127
158
  address service = info.objectAddress;
128
- /* must be guaranteed by release manager
129
159
  if(service == address(0)) {
130
- revert();
160
+ revert ErrorRegistryServiceAddressZero();
131
161
  }
132
162
 
163
+ // check version is defined
133
164
  if(version.eqz()) {
134
- revert();
165
+ revert ErrorRegistryServiceVersionZero();
135
166
  }
136
167
 
137
- if(info.objectType != SERVICE()) {
138
- revert();
139
- }
140
- if(info.parentType != REGISTRY()) {
141
- revert();
142
- }
143
- info.initialOwner == NFT_LOCK_ADDRESS <- if services are access managed
144
- */
145
-
168
+ // check domain is defined
146
169
  if(domain.eqz()) {
147
170
  revert ErrorRegistryDomainZero(service);
148
171
  }
149
172
 
150
- if(_service[version][domain] > address(0)) {
173
+ // check contract has not already been registered
174
+ if(_service[version][domain] != address(0)) {
151
175
  revert ErrorRegistryDomainAlreadyRegistered(service, version, domain);
152
176
  }
153
-
154
- _service[version][domain] = service;
155
177
 
178
+ // check service has proper type
179
+ if(info.objectType != SERVICE()) {
180
+ revert ErrorRegistryNotService(service, info.objectType);
181
+ }
182
+
183
+ // check that parent has registry type
184
+ if(info.parentNftId != _registryNftId) {
185
+ revert ErrorRegistryServiceParentNotRegistry(info.parentNftId);
186
+ }
187
+
188
+ _service[version][domain] = service;
156
189
  nftId = _register(info);
157
190
 
158
191
  emit LogServiceRegistration(version, domain);
159
192
  }
160
193
 
161
- function register(ObjectInfo memory info)
162
- external
163
- onlyRegistryService
164
- returns(NftId nftId)
165
- {
166
- ObjectType objectType = info.objectType;
167
- ObjectType parentType = _info[info.parentNftId].objectType;
168
-
169
- // only valid core types combinations
170
- if(info.objectAddress == address(0))
171
- {
172
- if(_coreObjectCombinations[objectType][parentType] == false) {
173
- revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
174
- }
175
- }
176
- else
177
- {
178
- if(_coreContractCombinations[objectType][parentType] == false) {
179
- revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
180
- }
181
- }
182
-
183
- nftId = _register(info);
184
- }
185
194
 
195
+ /// @inheritdoc IRegistry
186
196
  function registerWithCustomType(ObjectInfo memory info)
187
197
  external
188
198
  onlyRegistryService
@@ -197,7 +207,6 @@ contract Registry is
197
207
 
198
208
  if(
199
209
  parentType == PROTOCOL() ||
200
- parentType == REGISTRY() ||
201
210
  parentType == SERVICE()
202
211
  ) {
203
212
  revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
@@ -209,21 +218,21 @@ contract Registry is
209
218
 
210
219
  /// @dev earliest GIF major version
211
220
  function getInitialVersion() external view returns (VersionPart) {
212
- return _releaseManager.getInitialVersion();
221
+ return _releaseRegistry.getInitialVersion();
213
222
  }
214
223
 
215
224
  /// @dev next GIF release version to be released
216
225
  function getNextVersion() external view returns (VersionPart) {
217
- return _releaseManager.getNextVersion();
226
+ return _releaseRegistry.getNextVersion();
218
227
  }
219
228
 
220
229
  /// @dev latest active GIF release version
221
230
  function getLatestVersion() external view returns (VersionPart) {
222
- return _releaseManager.getLatestVersion();
231
+ return _releaseRegistry.getLatestVersion();
223
232
  }
224
233
 
225
234
  function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
226
- return _releaseManager.getReleaseInfo(version);
235
+ return _releaseRegistry.getReleaseInfo(version);
227
236
  }
228
237
 
229
238
  function getObjectCount() external view returns (uint256) {
@@ -238,7 +247,7 @@ contract Registry is
238
247
  return _protocolNftId;
239
248
  }
240
249
 
241
- function getNftId(address object) external view returns (NftId id) {
250
+ function getNftIdForAddress(address object) external view returns (NftId id) {
242
251
  return _nftIdByAddress[object];
243
252
  }
244
253
 
@@ -277,7 +286,7 @@ contract Registry is
277
286
 
278
287
  function isActiveRelease(VersionPart version) external view returns (bool)
279
288
  {
280
- return _releaseManager.isActiveRelease(version);
289
+ return _releaseRegistry.isActiveRelease(version);
281
290
  }
282
291
 
283
292
  function getStakingAddress() external view returns (address staking) {
@@ -298,12 +307,8 @@ contract Registry is
298
307
  service = _service[releaseVersion][serviceDomain];
299
308
  }
300
309
 
301
- function getReleaseAccessManagerAddress(VersionPart version) external view returns (address) {
302
- return address(_releaseManager.getReleaseAccessManager(version));
303
- }
304
-
305
- function getReleaseManagerAddress() external view returns (address) {
306
- return address(_releaseManager);
310
+ function getReleaseRegistryAddress() external view returns (address) {
311
+ return address(_releaseRegistry);
307
312
  }
308
313
 
309
314
  function getChainNftAddress() external view override returns (address) {
@@ -335,7 +340,6 @@ contract Registry is
335
340
  // Internals
336
341
 
337
342
  /// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
338
- // TODO registration of precompile addresses
339
343
  function _register(ObjectInfo memory info)
340
344
  internal
341
345
  returns(NftId nftId)
@@ -522,22 +526,18 @@ contract Registry is
522
526
  });
523
527
 
524
528
  _nftIdByAddress[_stakingAddress] = stakingNftId;
529
+
525
530
  // reverts if nftId was already minted
526
531
  _chainNft.mint(stakingOwner, stakingId);
527
532
  }
528
533
 
529
534
  /// @dev defines which object - parent types relations are allowed to register
530
- // IMPORTANT:
531
- // 1) EACH object type MUST have only one parent type across ALL mappings
532
- // 2) DO NOT use object type (e.g. POLCY, BUNDLE, STAKE) as parent type
533
- // 3) DO NOT use REGISTRY as object type
534
- // 2) DO NOT use PROTOCOL and "ObjectTypeLib.zero"
535
+ /// EACH object type MUST have only one parent type across ALL mappings
535
536
  function _setupValidCoreTypesAndCombinations()
536
537
  private
537
538
  {
538
539
  _coreTypes[REGISTRY()] = true;
539
540
  _coreTypes[SERVICE()] = true;
540
- _coreTypes[TOKEN()] = true;
541
541
  _coreTypes[INSTANCE()] = true;
542
542
  _coreTypes[PRODUCT()] = true;
543
543
  _coreTypes[POOL()] = true;
@@ -549,28 +549,22 @@ contract Registry is
549
549
  _coreTypes[STAKING()] = true;
550
550
  _coreTypes[STAKE()] = true;
551
551
 
552
- uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
553
- if(registryId == _chainNft.GLOBAL_REGISTRY_ID()) {
554
- // we are global registry
555
- // object is registry from different chain
556
- // parent is global registry, this contract
557
- _coreContractCombinations[REGISTRY()][REGISTRY()] = true; // only for global regstry
558
- //_coreObjectCombinations[REGISTRY()][REGISTRY()] = true;
559
- } else {
560
- // we are not global registry
561
- // object is local registry, this contract
562
- // parent is global registry, object with 0 address or registry from mainnet???
552
+ // only global registry allowed to register registry (after initialization)
553
+ if(block.chainid == 1) {
554
+ _coreContractCombinations[REGISTRY()][REGISTRY()] = true;
563
555
  }
556
+
557
+ // contracts with registry parent
564
558
  _coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
565
- _coreContractCombinations[TOKEN()][REGISTRY()] = true;
566
- //_coreContractCombinations[SERVICE()][REGISTRY()] = true;// do not need it here -> registerService() registers exactly this combination
567
559
  _coreContractCombinations[INSTANCE()][REGISTRY()] = true;
568
560
 
561
+ // components with instance parent
569
562
  _coreContractCombinations[PRODUCT()][INSTANCE()] = true;
570
563
  _coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
571
564
  _coreContractCombinations[ORACLE()][INSTANCE()] = true;
572
565
  _coreContractCombinations[POOL()][INSTANCE()] = true;
573
566
 
567
+ // objects with coponent parents
574
568
  _coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
575
569
  _coreObjectCombinations[POLICY()][PRODUCT()] = true;
576
570
  _coreObjectCombinations[BUNDLE()][POOL()] = true;
@@ -8,10 +8,11 @@ import {IService} from "../shared/IService.sol";
8
8
  import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
9
9
  import {IStaking} from "../staking/IStaking.sol";
10
10
  import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
11
- import {ReleaseManager} from "./ReleaseManager.sol";
11
+ import {ReleaseRegistry} from "./ReleaseRegistry.sol";
12
12
  import {RoleId, RoleIdLib, ADMIN_ROLE, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
13
13
  import {StakingStore} from "../staking/StakingStore.sol";
14
14
  import {STAKING} from "../type/ObjectType.sol";
15
+ import {TokenHandler} from "../shared/TokenHandler.sol";
15
16
  import {TokenRegistry} from "./TokenRegistry.sol";
16
17
  import {VersionPart} from "../type/Version.sol";
17
18
 
@@ -39,11 +40,11 @@ contract RegistryAdmin is
39
40
  string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
40
41
  string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
41
42
  string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
42
- string public constant RELEASE_MANAGER_ROLE_NAME = "ReleaseManagerRole";
43
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
43
44
  string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
44
45
  string public constant STAKING_ROLE_NAME = "StakingRole";
45
46
 
46
- string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
47
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
47
48
  string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
48
49
  string public constant STAKING_TARGET_NAME = "Staking";
49
50
  string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
@@ -52,7 +53,7 @@ contract RegistryAdmin is
52
53
 
53
54
  mapping(address service => VersionPart majorVersion) private _ServiceRelease;
54
55
 
55
- address private _releaseManager;
56
+ address private _releaseRegistry;
56
57
  address private _tokenRegistry;
57
58
  address private _staking;
58
59
  address private _stakingStore;
@@ -71,7 +72,7 @@ contract RegistryAdmin is
71
72
  if (_setupCompleted) { revert ErrorRegistryAdminIsAlreadySetUp(); }
72
73
  else { _setupCompleted = true; }
73
74
 
74
- _releaseManager = registry.getReleaseManagerAddress();
75
+ _releaseRegistry = registry.getReleaseRegistryAddress();
75
76
  _tokenRegistry = registry.getTokenRegistryAddress();
76
77
  _staking = registry.getStakingAddress();
77
78
  _stakingStore = address(
@@ -83,7 +84,7 @@ contract RegistryAdmin is
83
84
  _setupGifAdminRole(gifAdmin);
84
85
  _setupGifManagerRole(gifManager);
85
86
 
86
- _setupReleaseManager();
87
+ _setupReleaseRegistry();
87
88
  _setupStaking();
88
89
  }
89
90
 
@@ -220,12 +221,14 @@ contract RegistryAdmin is
220
221
  maxMemberCount: 2, // TODO decide on max member count
221
222
  name: GIF_ADMIN_ROLE_NAME}));
222
223
 
223
- // for ReleaseManager
224
+ // for ReleaseRegistry
224
225
  FunctionInfo[] memory functions;
225
- functions = new FunctionInfo[](2);
226
- functions[0] = toFunction(ReleaseManager.createNextRelease.selector, "createNextRelease");
227
- functions[1] = toFunction(ReleaseManager.activateNextRelease.selector, "activateNextRelease");
228
- _authorizeTargetFunctions(_releaseManager, GIF_ADMIN_ROLE(), functions);
226
+ functions = new FunctionInfo[](4);
227
+ functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
228
+ functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
229
+ functions[2] = toFunction(ReleaseRegistry.pauseRelease.selector, "pauseRelease");
230
+ functions[3] = toFunction(ReleaseRegistry.unpauseRelease.selector, "unpauseRelease");
231
+ _authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
229
232
 
230
233
  _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
231
234
  }
@@ -251,36 +254,36 @@ contract RegistryAdmin is
251
254
  functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
252
255
  _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
253
256
 
254
- // for ReleaseManager
257
+ // for ReleaseRegistry
255
258
  functions = new FunctionInfo[](2);
256
- functions[0] = toFunction(ReleaseManager.prepareNextRelease.selector, "prepareNextRelease");
257
- functions[1] = toFunction(ReleaseManager.registerService.selector, "registerService");
258
- _authorizeTargetFunctions(_releaseManager, GIF_MANAGER_ROLE(), functions);
259
+ functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
260
+ functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
261
+ _authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
259
262
 
260
263
  _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
261
264
  }
262
265
 
263
266
 
264
- function _setupReleaseManager() private {
267
+ function _setupReleaseRegistry() private {
265
268
 
266
- _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME, true, false);
269
+ _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
267
270
 
268
- RoleId releaseManagerRoleId = RoleIdLib.roleForType(RELEASE());
271
+ RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
269
272
  _createRole(
270
- releaseManagerRoleId,
273
+ releaseRegistryRoleId,
271
274
  toRole({
272
275
  adminRoleId: ADMIN_ROLE(),
273
276
  roleType: RoleType.Contract,
274
277
  maxMemberCount: 1,
275
- name: RELEASE_MANAGER_ROLE_NAME}));
278
+ name: RELEASE_REGISTRY_ROLE_NAME}));
276
279
 
277
280
  FunctionInfo[] memory functions;
278
281
  functions = new FunctionInfo[](2);
279
282
  functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
280
283
  functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
281
- _authorizeTargetFunctions(address(this), releaseManagerRoleId, functions);
284
+ _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
282
285
 
283
- _grantRoleToAccount(releaseManagerRoleId, _releaseManager);
286
+ _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
284
287
  }
285
288
 
286
289
 
@@ -357,7 +360,15 @@ contract RegistryAdmin is
357
360
  functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
358
361
  functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
359
362
  _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
360
-
363
+
361
364
  _grantRoleToAccount(stakingRoleId, _staking);
365
+
366
+ // grant token handler authorizations
367
+ IStaking staking = IStaking(_staking);
368
+ functions = new FunctionInfo[](2);
369
+ functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
370
+ functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
371
+
372
+ _authorizeTargetFunctions(address(staking.getTokenHandler()), stakingRoleId, functions);
362
373
  }
363
374
  }
@@ -1,32 +1,18 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
5
- // import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
6
-
7
- import {IRegistry} from "./IRegistry.sol";
8
- import {IInstance} from "../instance/IInstance.sol";
9
-
10
4
  import {IComponent} from "../../contracts/shared/IComponent.sol";
5
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
6
+ import {IInstance} from "../instance/IInstance.sol";
11
7
  import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
12
8
  import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
13
- import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
14
-
15
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
16
- import {Versionable} from "../../contracts/shared/Versionable.sol";
17
9
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
11
+ import {IRegistryService} from "./IRegistryService.sol";
18
12
 
19
- import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/type/RoleId.sol";
20
13
  import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
21
- import {StateId, ACTIVE, PAUSED} from "../../contracts/type/StateId.sol";
22
14
  import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
23
- import {Fee, FeeLib} from "../../contracts/type/Fee.sol";
24
- import {Version, VersionPart, VersionLib} from "../../contracts/type/Version.sol";
25
-
26
15
  import {Service} from "../shared/Service.sol";
27
- import {IService} from "../shared/IService.sol";
28
- import {IRegistryService} from "./IRegistryService.sol";
29
- import {Registry} from "./Registry.sol";
30
16
 
31
17
  contract RegistryService is
32
18
  Service,
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {RegistryService} from "./RegistryService.sol";
7
7
 
8
8
  contract RegistryServiceManager is