@etherisc/gif-next 0.0.2-f18fb8b-243 → 0.0.2-f1e0c66-773

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 (355) hide show
  1. package/README.md +14 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
  14. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  16. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +69 -26
  18. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +16 -16
  20. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -0
  22. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +237 -74
  24. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -38
  26. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -0
  28. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +102 -0
  30. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  31. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  32. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  33. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -6
  34. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  35. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +5 -5
  36. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  37. package/artifacts/contracts/instance/Instance.sol/Instance.json +9 -9
  38. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  39. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +73 -73
  40. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  41. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
  42. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  43. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +54 -59
  44. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +15 -15
  46. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  47. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +6 -6
  48. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +66 -76
  50. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  51. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  52. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  53. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  54. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  55. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  56. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  57. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  58. package/artifacts/contracts/instance/base/{ObjectManager.sol/ObjectManager.json → ObjectSet.sol/ObjectSet.json} +6 -6
  59. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  60. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  61. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  62. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  63. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  64. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  65. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  66. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  67. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +46 -16
  68. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  69. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  70. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  71. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  72. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -0
  73. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  74. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +30 -0
  76. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  78. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +2 -2
  80. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  81. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +43 -0
  82. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  83. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
  84. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  85. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +221 -55
  86. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +55 -23
  88. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  89. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +102 -0
  90. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  91. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +43 -0
  92. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  93. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  94. package/artifacts/contracts/pool/Pool.sol/Pool.json +43 -0
  95. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
  97. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
  99. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  100. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
  101. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +2 -2
  103. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  104. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -0
  105. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  106. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
  107. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  108. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
  109. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +2 -2
  111. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  112. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  113. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  114. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  115. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  116. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  117. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -0
  118. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  119. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  120. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +64 -51
  121. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +26 -26
  123. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  124. package/artifacts/contracts/product/PricingService.sol/PricingService.json +7 -2
  125. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +2 -2
  127. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  128. package/artifacts/contracts/product/Product.sol/Product.json +19 -0
  129. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  130. package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
  131. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
  133. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  134. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  135. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -2
  136. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  137. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  138. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  139. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  140. package/artifacts/contracts/registry/Registry.sol/Registry.json +95 -23
  141. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  142. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +88 -88
  143. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  144. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  145. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
  147. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  148. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  149. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  150. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  151. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  152. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  153. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  154. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  155. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  156. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  157. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +271 -62
  158. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +60 -32
  160. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  161. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  162. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  163. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  164. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  165. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -0
  166. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  170. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  173. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  174. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  175. package/artifacts/contracts/shared/{ERC165.sol/ERC165.json → InitializableERC165.sol/InitializableERC165.json} +4 -4
  176. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  177. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -0
  178. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  179. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  180. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  181. package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
  182. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  183. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  184. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  185. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  186. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  188. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  189. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  190. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  191. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  192. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  193. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  194. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  195. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  196. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +12 -2
  197. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  198. package/artifacts/contracts/staking/Staking.sol/Staking.json +36 -36
  199. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  200. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  201. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  202. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +19 -19
  203. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  204. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  205. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  206. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
  207. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  208. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
  209. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  210. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +20 -15
  211. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  212. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +7 -2
  213. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  214. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  215. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  216. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  217. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  218. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  219. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  220. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  221. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  222. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  223. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  224. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  225. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  226. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  227. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  228. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  229. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  230. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  231. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  232. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  233. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  234. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  235. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  237. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  239. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  241. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  249. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
  251. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  253. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  255. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  256. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  257. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  258. package/artifacts/contracts/{shared → upgradeability}/ProxyManager.sol/ProxyManager.json +3 -3
  259. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  260. package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  261. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  262. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  263. package/contracts/distribution/BasicDistribution.sol +4 -15
  264. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  265. package/contracts/distribution/Distribution.sol +22 -10
  266. package/contracts/distribution/DistributionService.sol +61 -26
  267. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  268. package/contracts/distribution/IDistributionComponent.sol +8 -4
  269. package/contracts/distribution/IDistributionService.sol +12 -0
  270. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  271. package/contracts/instance/IInstance.sol +5 -5
  272. package/contracts/instance/IInstanceService.sol +5 -5
  273. package/contracts/instance/Instance.sol +4 -4
  274. package/contracts/instance/InstanceAdmin.sol +2 -2
  275. package/contracts/instance/InstanceAuthorizationV3.sol +13 -11
  276. package/contracts/instance/InstanceService.sol +10 -10
  277. package/contracts/instance/InstanceServiceManager.sol +2 -6
  278. package/contracts/instance/InstanceStore.sol +2 -1
  279. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
  280. package/contracts/instance/module/IComponents.sol +0 -1
  281. package/contracts/instance/module/IDistribution.sol +0 -1
  282. package/contracts/oracle/IOracleComponent.sol +2 -1
  283. package/contracts/oracle/Oracle.sol +15 -6
  284. package/contracts/oracle/OracleServiceManager.sol +2 -5
  285. package/contracts/pool/BasicPoolAuthorization.sol +6 -0
  286. package/contracts/pool/BundleService.sol +72 -27
  287. package/contracts/pool/BundleServiceManager.sol +2 -5
  288. package/contracts/pool/IBundleService.sol +14 -0
  289. package/contracts/pool/IPoolComponent.sol +6 -0
  290. package/contracts/pool/Pool.sol +18 -1
  291. package/contracts/pool/PoolService.sol +11 -29
  292. package/contracts/pool/PoolServiceManager.sol +2 -5
  293. package/contracts/product/ApplicationService.sol +12 -36
  294. package/contracts/product/ApplicationServiceManager.sol +2 -2
  295. package/contracts/product/BasicProduct.sol +3 -33
  296. package/contracts/product/BasicProductAuthorization.sol +3 -0
  297. package/contracts/product/ClaimService.sol +7 -32
  298. package/contracts/product/ClaimServiceManager.sol +2 -2
  299. package/contracts/product/IPolicyService.sol +2 -0
  300. package/contracts/product/IProductComponent.sol +1 -0
  301. package/contracts/product/PolicyService.sol +28 -4
  302. package/contracts/product/PolicyServiceManager.sol +2 -5
  303. package/contracts/product/PricingServiceManager.sol +2 -5
  304. package/contracts/product/Product.sol +10 -1
  305. package/contracts/product/ProductService.sol +7 -32
  306. package/contracts/product/ProductServiceManager.sol +2 -5
  307. package/contracts/registry/IRegistry.sol +26 -13
  308. package/contracts/registry/IRegistryService.sol +6 -6
  309. package/contracts/registry/Registry.sol +80 -82
  310. package/contracts/registry/RegistryAdmin.sol +23 -23
  311. package/contracts/registry/RegistryService.sol +4 -18
  312. package/contracts/registry/RegistryServiceManager.sol +2 -2
  313. package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +48 -50
  314. package/contracts/registry/ServiceAuthorizationV3.sol +5 -5
  315. package/contracts/registry/TokenRegistry.sol +2 -2
  316. package/contracts/shared/Component.sol +13 -14
  317. package/contracts/shared/ComponentService.sol +82 -12
  318. package/contracts/shared/ComponentServiceManager.sol +2 -2
  319. package/contracts/shared/IComponentService.sol +15 -9
  320. package/contracts/shared/IInstanceLinkedComponent.sol +6 -0
  321. package/contracts/shared/IService.sol +1 -1
  322. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
  323. package/contracts/shared/InstanceLinkedComponent.sol +21 -0
  324. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  325. package/contracts/shared/NftOwnable.sol +2 -2
  326. package/contracts/shared/PolicyHolder.sol +2 -5
  327. package/contracts/shared/Service.sol +3 -4
  328. package/contracts/staking/IStaking.sol +1 -2
  329. package/contracts/staking/IStakingService.sol +12 -5
  330. package/contracts/staking/Staking.sol +20 -17
  331. package/contracts/staking/StakingManager.sol +2 -6
  332. package/contracts/staking/StakingReader.sol +12 -16
  333. package/contracts/staking/StakingServiceManager.sol +2 -2
  334. package/contracts/staking/StakingStore.sol +12 -22
  335. package/contracts/type/Amount.sol +12 -5
  336. package/contracts/type/ObjectType.sol +3 -7
  337. package/contracts/type/Referral.sol +1 -0
  338. package/contracts/type/UFixed.sol +29 -10
  339. package/contracts/type/Version.sol +3 -1
  340. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  341. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  342. package/package.json +1 -1
  343. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  344. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  345. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  346. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  347. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
  348. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  349. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  350. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  351. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  352. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  353. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  354. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  355. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -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) {
@@ -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,8 +307,8 @@ contract Registry is
298
307
  service = _service[releaseVersion][serviceDomain];
299
308
  }
300
309
 
301
- function getReleaseManagerAddress() external view returns (address) {
302
- return address(_releaseManager);
310
+ function getReleaseRegistryAddress() external view returns (address) {
311
+ return address(_releaseRegistry);
303
312
  }
304
313
 
305
314
  function getChainNftAddress() external view override returns (address) {
@@ -331,7 +340,6 @@ contract Registry is
331
340
  // Internals
332
341
 
333
342
  /// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
334
- // TODO registration of precompile addresses
335
343
  function _register(ObjectInfo memory info)
336
344
  internal
337
345
  returns(NftId nftId)
@@ -518,22 +526,18 @@ contract Registry is
518
526
  });
519
527
 
520
528
  _nftIdByAddress[_stakingAddress] = stakingNftId;
529
+
521
530
  // reverts if nftId was already minted
522
531
  _chainNft.mint(stakingOwner, stakingId);
523
532
  }
524
533
 
525
534
  /// @dev defines which object - parent types relations are allowed to register
526
- // IMPORTANT:
527
- // 1) EACH object type MUST have only one parent type across ALL mappings
528
- // 2) DO NOT use object type (e.g. POLCY, BUNDLE, STAKE) as parent type
529
- // 3) DO NOT use REGISTRY as object type
530
- // 2) DO NOT use PROTOCOL and "ObjectTypeLib.zero"
535
+ /// EACH object type MUST have only one parent type across ALL mappings
531
536
  function _setupValidCoreTypesAndCombinations()
532
537
  private
533
538
  {
534
539
  _coreTypes[REGISTRY()] = true;
535
540
  _coreTypes[SERVICE()] = true;
536
- _coreTypes[TOKEN()] = true;
537
541
  _coreTypes[INSTANCE()] = true;
538
542
  _coreTypes[PRODUCT()] = true;
539
543
  _coreTypes[POOL()] = true;
@@ -545,28 +549,22 @@ contract Registry is
545
549
  _coreTypes[STAKING()] = true;
546
550
  _coreTypes[STAKE()] = true;
547
551
 
548
- uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
549
- if(registryId == _chainNft.GLOBAL_REGISTRY_ID()) {
550
- // we are global registry
551
- // object is registry from different chain
552
- // parent is global registry, this contract
553
- _coreContractCombinations[REGISTRY()][REGISTRY()] = true; // only for global regstry
554
- //_coreObjectCombinations[REGISTRY()][REGISTRY()] = true;
555
- } else {
556
- // we are not global registry
557
- // object is local registry, this contract
558
- // 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;
559
555
  }
556
+
557
+ // contracts with registry parent
560
558
  _coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
561
- _coreContractCombinations[TOKEN()][REGISTRY()] = true;
562
- //_coreContractCombinations[SERVICE()][REGISTRY()] = true;// do not need it here -> registerService() registers exactly this combination
563
559
  _coreContractCombinations[INSTANCE()][REGISTRY()] = true;
564
560
 
561
+ // components with instance parent
565
562
  _coreContractCombinations[PRODUCT()][INSTANCE()] = true;
566
563
  _coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
567
564
  _coreContractCombinations[ORACLE()][INSTANCE()] = true;
568
565
  _coreContractCombinations[POOL()][INSTANCE()] = true;
569
566
 
567
+ // objects with coponent parents
570
568
  _coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
571
569
  _coreObjectCombinations[POLICY()][PRODUCT()] = true;
572
570
  _coreObjectCombinations[BUNDLE()][POOL()] = true;
@@ -8,7 +8,7 @@ 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";
@@ -39,11 +39,11 @@ contract RegistryAdmin is
39
39
  string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
40
40
  string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
41
41
  string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
42
- string public constant RELEASE_MANAGER_ROLE_NAME = "ReleaseManagerRole";
42
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
43
43
  string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
44
44
  string public constant STAKING_ROLE_NAME = "StakingRole";
45
45
 
46
- string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
46
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
47
47
  string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
48
48
  string public constant STAKING_TARGET_NAME = "Staking";
49
49
  string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
@@ -52,7 +52,7 @@ contract RegistryAdmin is
52
52
 
53
53
  mapping(address service => VersionPart majorVersion) private _ServiceRelease;
54
54
 
55
- address private _releaseManager;
55
+ address private _releaseRegistry;
56
56
  address private _tokenRegistry;
57
57
  address private _staking;
58
58
  address private _stakingStore;
@@ -71,7 +71,7 @@ contract RegistryAdmin is
71
71
  if (_setupCompleted) { revert ErrorRegistryAdminIsAlreadySetUp(); }
72
72
  else { _setupCompleted = true; }
73
73
 
74
- _releaseManager = registry.getReleaseManagerAddress();
74
+ _releaseRegistry = registry.getReleaseRegistryAddress();
75
75
  _tokenRegistry = registry.getTokenRegistryAddress();
76
76
  _staking = registry.getStakingAddress();
77
77
  _stakingStore = address(
@@ -83,7 +83,7 @@ contract RegistryAdmin is
83
83
  _setupGifAdminRole(gifAdmin);
84
84
  _setupGifManagerRole(gifManager);
85
85
 
86
- _setupReleaseManager();
86
+ _setupReleaseRegistry();
87
87
  _setupStaking();
88
88
  }
89
89
 
@@ -220,14 +220,14 @@ contract RegistryAdmin is
220
220
  maxMemberCount: 2, // TODO decide on max member count
221
221
  name: GIF_ADMIN_ROLE_NAME}));
222
222
 
223
- // for ReleaseManager
223
+ // for ReleaseRegistry
224
224
  FunctionInfo[] memory functions;
225
225
  functions = new FunctionInfo[](4);
226
- functions[0] = toFunction(ReleaseManager.createNextRelease.selector, "createNextRelease");
227
- functions[1] = toFunction(ReleaseManager.activateNextRelease.selector, "activateNextRelease");
228
- functions[2] = toFunction(ReleaseManager.pauseRelease.selector, "pauseRelease");
229
- functions[3] = toFunction(ReleaseManager.unpauseRelease.selector, "unpauseRelease");
230
- _authorizeTargetFunctions(_releaseManager, GIF_ADMIN_ROLE(), functions);
226
+ functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
227
+ functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
228
+ functions[2] = toFunction(ReleaseRegistry.pauseRelease.selector, "pauseRelease");
229
+ functions[3] = toFunction(ReleaseRegistry.unpauseRelease.selector, "unpauseRelease");
230
+ _authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
231
231
 
232
232
  _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
233
233
  }
@@ -253,36 +253,36 @@ contract RegistryAdmin is
253
253
  functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
254
254
  _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
255
255
 
256
- // for ReleaseManager
256
+ // for ReleaseRegistry
257
257
  functions = new FunctionInfo[](2);
258
- functions[0] = toFunction(ReleaseManager.prepareNextRelease.selector, "prepareNextRelease");
259
- functions[1] = toFunction(ReleaseManager.registerService.selector, "registerService");
260
- _authorizeTargetFunctions(_releaseManager, GIF_MANAGER_ROLE(), functions);
258
+ functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
259
+ functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
260
+ _authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
261
261
 
262
262
  _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
263
263
  }
264
264
 
265
265
 
266
- function _setupReleaseManager() private {
266
+ function _setupReleaseRegistry() private {
267
267
 
268
- _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME, true, false);
268
+ _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
269
269
 
270
- RoleId releaseManagerRoleId = RoleIdLib.roleForType(RELEASE());
270
+ RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
271
271
  _createRole(
272
- releaseManagerRoleId,
272
+ releaseRegistryRoleId,
273
273
  toRole({
274
274
  adminRoleId: ADMIN_ROLE(),
275
275
  roleType: RoleType.Contract,
276
276
  maxMemberCount: 1,
277
- name: RELEASE_MANAGER_ROLE_NAME}));
277
+ name: RELEASE_REGISTRY_ROLE_NAME}));
278
278
 
279
279
  FunctionInfo[] memory functions;
280
280
  functions = new FunctionInfo[](2);
281
281
  functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
282
282
  functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
283
- _authorizeTargetFunctions(address(this), releaseManagerRoleId, functions);
283
+ _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
284
284
 
285
- _grantRoleToAccount(releaseManagerRoleId, _releaseManager);
285
+ _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
286
286
  }
287
287
 
288
288
 
@@ -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