@etherisc/gif-next 0.0.2-a105567-464 → 0.0.2-a221fa7-461

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 (464) hide show
  1. package/README.md +30 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  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 +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -239
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +317 -95
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +97 -57
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +104 -136
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +158 -16
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -84
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1214 -280
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +227 -62
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +221 -106
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +52 -48
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -137
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  82. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  84. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1093 -0
  86. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  88. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  90. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1496 -0
  92. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  94. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -58
  96. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -41
  98. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
  100. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +30 -206
  102. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +28 -0
  104. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  105. package/artifacts/contracts/pool/Pool.sol/Pool.json +37 -314
  106. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +77 -41
  108. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -38
  110. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -35
  112. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +47 -35
  114. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
  116. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  118. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +112 -67
  120. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -51
  122. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  124. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  126. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  128. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
  130. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +36 -46
  132. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
  134. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +90 -45
  136. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +56 -40
  138. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.json +98 -61
  140. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -48
  142. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  143. package/artifacts/contracts/product/Product.sol/Product.json +43 -164
  144. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
  146. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +38 -30
  148. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  150. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -59
  152. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
  154. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  155. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -104
  157. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1506 -167
  159. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
  161. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -25
  163. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  165. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  167. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  169. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +22 -4
  171. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  172. package/artifacts/contracts/shared/Component.sol/Component.json +11 -11
  173. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +242 -77
  175. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +80 -56
  177. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
  179. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  180. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  181. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +4 -4
  183. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +117 -0
  185. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -4
  187. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
  189. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  191. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  192. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  196. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  197. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  198. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  199. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +43 -64
  200. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  201. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
  202. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  203. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  204. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  205. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  206. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  208. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  209. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  210. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  212. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  213. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  214. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
  216. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  217. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  218. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  219. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +114 -117
  220. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  221. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +215 -70
  222. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  223. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +102 -44
  224. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  225. package/artifacts/contracts/staking/Staking.sol/Staking.json +179 -182
  226. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  228. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  229. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +43 -43
  230. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  231. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +223 -21
  232. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  233. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +264 -134
  234. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  235. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +41 -45
  236. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  237. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +771 -216
  238. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  239. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -18
  240. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  241. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  242. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  244. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  246. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  248. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  250. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  252. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  253. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  254. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
  256. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  257. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  258. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  260. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  262. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  264. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  266. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  268. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  270. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  272. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  274. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  276. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  278. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  280. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  282. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  284. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  286. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  288. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  290. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  291. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  292. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  293. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  294. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  295. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  296. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  297. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  298. package/contracts/authorization/AccessAdmin.sol +591 -0
  299. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  300. package/contracts/authorization/Authorization.sol +218 -0
  301. package/contracts/authorization/IAccess.sol +48 -0
  302. package/contracts/authorization/IAccessAdmin.sol +136 -0
  303. package/contracts/authorization/IAuthorization.sol +54 -0
  304. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  305. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  306. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  307. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  308. package/contracts/distribution/BasicDistribution.sol +138 -0
  309. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  310. package/contracts/distribution/Distribution.sol +144 -110
  311. package/contracts/distribution/DistributionService.sol +80 -26
  312. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  313. package/contracts/distribution/IDistributionComponent.sol +25 -39
  314. package/contracts/distribution/IDistributionService.sol +18 -1
  315. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  316. package/contracts/instance/IInstance.sol +20 -13
  317. package/contracts/instance/IInstanceService.sol +34 -23
  318. package/contracts/instance/Instance.sol +108 -89
  319. package/contracts/instance/InstanceAdmin.sol +202 -267
  320. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  321. package/contracts/instance/InstanceReader.sol +49 -9
  322. package/contracts/instance/InstanceService.sol +159 -78
  323. package/contracts/instance/InstanceServiceManager.sol +2 -6
  324. package/contracts/instance/InstanceStore.sol +38 -22
  325. package/contracts/instance/base/BalanceStore.sol +11 -6
  326. package/contracts/instance/base/Cloneable.sol +2 -25
  327. package/contracts/instance/base/ObjectCounter.sol +21 -0
  328. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  329. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  330. package/contracts/instance/module/IComponents.sol +0 -1
  331. package/contracts/oracle/BasicOracle.sol +48 -0
  332. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  333. package/contracts/oracle/IOracle.sol +36 -0
  334. package/contracts/oracle/IOracleComponent.sol +33 -0
  335. package/contracts/oracle/IOracleService.sol +65 -0
  336. package/contracts/oracle/Oracle.sol +166 -0
  337. package/contracts/oracle/OracleService.sol +278 -0
  338. package/contracts/oracle/OracleServiceManager.sol +39 -0
  339. package/contracts/pool/BasicPool.sol +164 -0
  340. package/contracts/pool/BasicPoolAuthorization.sol +52 -0
  341. package/contracts/pool/BundleService.sol +32 -44
  342. package/contracts/pool/BundleServiceManager.sol +2 -5
  343. package/contracts/pool/IPoolComponent.sol +0 -61
  344. package/contracts/pool/IPoolService.sol +3 -0
  345. package/contracts/pool/Pool.sol +143 -131
  346. package/contracts/pool/PoolService.sol +45 -33
  347. package/contracts/pool/PoolServiceManager.sol +2 -5
  348. package/contracts/product/ApplicationService.sol +17 -41
  349. package/contracts/product/ApplicationServiceManager.sol +2 -2
  350. package/contracts/product/BasicProduct.sol +82 -0
  351. package/contracts/product/BasicProductAuthorization.sol +43 -0
  352. package/contracts/product/ClaimService.sol +16 -37
  353. package/contracts/product/ClaimServiceManager.sol +2 -2
  354. package/contracts/product/IClaimService.sol +6 -0
  355. package/contracts/product/IProductComponent.sol +7 -9
  356. package/contracts/product/PolicyService.sol +7 -5
  357. package/contracts/product/PolicyServiceManager.sol +2 -5
  358. package/contracts/product/PricingService.sol +5 -6
  359. package/contracts/product/PricingServiceManager.sol +2 -5
  360. package/contracts/product/Product.sol +103 -88
  361. package/contracts/product/ProductService.sol +12 -37
  362. package/contracts/product/ProductServiceManager.sol +2 -5
  363. package/contracts/registry/ChainNft.sol +1 -0
  364. package/contracts/registry/IRegistry.sol +26 -18
  365. package/contracts/registry/IRegistryService.sol +6 -6
  366. package/contracts/registry/Registry.sol +86 -95
  367. package/contracts/registry/RegistryAdmin.sol +283 -155
  368. package/contracts/registry/RegistryService.sol +9 -23
  369. package/contracts/registry/RegistryServiceManager.sol +2 -7
  370. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  371. package/contracts/registry/ReleaseRegistry.sol +487 -0
  372. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  373. package/contracts/registry/TokenRegistry.sol +9 -52
  374. package/contracts/shared/Component.sol +19 -25
  375. package/contracts/shared/ComponentService.sol +94 -68
  376. package/contracts/shared/ComponentServiceManager.sol +2 -2
  377. package/contracts/shared/ComponentVerifyingService.sol +13 -7
  378. package/contracts/shared/IComponent.sol +3 -7
  379. package/contracts/shared/IComponentService.sol +21 -0
  380. package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
  381. package/contracts/shared/IKeyValueStore.sol +2 -1
  382. package/contracts/shared/ILifecycle.sol +1 -2
  383. package/contracts/shared/IService.sol +8 -1
  384. package/contracts/shared/InstanceLinkedComponent.sol +47 -19
  385. package/contracts/shared/KeyValueStore.sol +7 -6
  386. package/contracts/shared/Lifecycle.sol +16 -60
  387. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  388. package/contracts/shared/Service.sol +27 -22
  389. package/contracts/staking/IStaking.sol +41 -26
  390. package/contracts/staking/IStakingService.sol +42 -44
  391. package/contracts/staking/StakeManagerLib.sol +101 -26
  392. package/contracts/staking/Staking.sol +144 -126
  393. package/contracts/staking/StakingLifecycle.sol +23 -0
  394. package/contracts/staking/StakingManager.sol +2 -6
  395. package/contracts/staking/StakingReader.sol +73 -36
  396. package/contracts/staking/StakingService.sol +121 -86
  397. package/contracts/staking/StakingServiceManager.sol +2 -3
  398. package/contracts/staking/StakingStore.sol +401 -127
  399. package/contracts/staking/TargetManagerLib.sol +28 -0
  400. package/contracts/type/Amount.sol +15 -1
  401. package/contracts/type/NftId.sol +8 -8
  402. package/contracts/type/ObjectType.sol +171 -69
  403. package/contracts/type/RequestId.sol +75 -0
  404. package/contracts/type/RoleId.sol +103 -72
  405. package/contracts/type/Seconds.sol +10 -0
  406. package/contracts/type/Selector.sol +102 -0
  407. package/contracts/type/StateId.sol +12 -0
  408. package/contracts/type/String.sol +53 -0
  409. package/contracts/type/Timestamp.sol +6 -2
  410. package/contracts/type/UFixed.sol +6 -0
  411. package/contracts/type/Version.sol +3 -1
  412. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  413. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  414. package/package.json +8 -5
  415. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  416. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  417. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  418. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
  419. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  420. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  421. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  422. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  423. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  424. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  425. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  426. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  427. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  428. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  429. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  430. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  431. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  432. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  433. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  434. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  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/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
  448. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
  449. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
  450. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
  451. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
  452. package/contracts/registry/ReleaseManager.sol +0 -599
  453. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  454. package/contracts/shared/AccessManagerCustom.sol +0 -736
  455. package/contracts/shared/AccessManagerExtended.sol +0 -470
  456. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  457. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  458. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  459. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  460. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  461. package/contracts/staking/IStakingManager.sol +0 -15
  462. package/contracts/staking/IStakingStore.sol +0 -130
  463. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  464. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,18 +1,19 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
- import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
6
- import {AuthorityUtils} from "@openzeppelin/contracts/access/manager/AuthorityUtils.sol";
7
-
8
- import {RoleId, RoleIdLib, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE} from "../type/RoleId.sol";
9
-
10
- import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
11
- import {InitializableCustom} from "../shared/InitializableCustom.sol";
12
-
4
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
+ import {IAccess} from "../authorization/IAccess.sol";
13
6
  import {IRegistry} from "./IRegistry.sol";
14
- import {ReleaseManager} from "./ReleaseManager.sol";
7
+ import {IService} from "../shared/IService.sol";
8
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
9
+ import {IStaking} from "../staking/IStaking.sol";
10
+ import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
11
+ import {ReleaseRegistry} from "./ReleaseRegistry.sol";
12
+ import {RoleId, RoleIdLib, ADMIN_ROLE, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
13
+ import {StakingStore} from "../staking/StakingStore.sol";
14
+ import {STAKING} from "../type/ObjectType.sol";
15
15
  import {TokenRegistry} from "./TokenRegistry.sol";
16
+ import {VersionPart} from "../type/Version.sol";
16
17
 
17
18
  /*
18
19
  1) GIF_MANAGER_ROLE
@@ -25,122 +26,168 @@ import {TokenRegistry} from "./TokenRegistry.sol";
25
26
  - MUST have 1 member at any time
26
27
  - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
27
28
  - responsible for creation and activation of releases
28
- */
29
-
30
- // !!! USE BUILDER PATTERN FOR CONFIG
31
- // introduce class - config
32
- // create instance of this class in admin initializer function
33
- // call it "add"/"push" function for each entry in config (provide entry parameneters)
34
- // each call will configure access manager for given parameneters
35
- // in the end you have fully configured access manager and config object
36
29
 
37
- // grants GIF_ADMIN_ROLE to registry owner as registryOwner is transaction sender
38
- // grants GIF_MANAGER_ROLE to registry owner via contructor argument
30
+ createServiceTarget(type, release)
31
+ createServiceRole(type,release)
32
+ getServiceRole(type, release)
33
+ */
39
34
  contract RegistryAdmin is
40
- AccessManaged,
41
- InitializableCustom
35
+ AccessAdmin
42
36
  {
43
- error ErrorRegistryAdminReleaseManagerAuthorityMismatch();
44
- error ErrorRegistryAdminTokenRegistryAuthorityMismatch();
45
- error ErrorRegistryAdminStakingAuthorityMismatch();
37
+ error ErrorRegistryAdminIsAlreadySetUp();
46
38
 
47
39
  string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
48
40
  string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
41
+ string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
42
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
43
+ string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
44
+ string public constant STAKING_ROLE_NAME = "StakingRole";
49
45
 
50
- string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
46
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
51
47
  string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
52
48
  string public constant STAKING_TARGET_NAME = "Staking";
53
-
54
- address private _releaseManager;
49
+ string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
50
+
51
+ uint8 public constant MAX_NUM_RELEASES = 99;
52
+
53
+ mapping(address service => VersionPart majorVersion) private _ServiceRelease;
54
+
55
+ address private _releaseRegistry;
55
56
  address private _tokenRegistry;
56
57
  address private _staking;
58
+ address private _stakingStore;
59
+ bool private _setupCompleted;
57
60
 
58
- constructor()
59
- AccessManaged(msg.sender)
60
- InitializableCustom()
61
- {
62
- AccessManagerExtendedInitializeable accessManager = new AccessManagerExtendedInitializeable();
63
- accessManager.initialize(address(this));
64
- setAuthority(address(accessManager));
65
- }
61
+ constructor() AccessAdmin() { }
66
62
 
67
- function initialize(
63
+ function completeSetup(
68
64
  IRegistry registry,
69
65
  address gifAdmin,
70
66
  address gifManager
71
67
  )
72
68
  external
73
- initializer
69
+ onlyDeployer()
74
70
  {
75
- // validate input
76
- address releaseManagerAddress = registry.getReleaseManagerAddress();
77
- if(IAccessManaged(releaseManagerAddress).authority() != authority()) {
78
- revert ErrorRegistryAdminReleaseManagerAuthorityMismatch();
79
- }
80
-
81
- address tokenRegistryAddress = registry.getTokenRegistryAddress();
82
- if(IAccessManaged(tokenRegistryAddress).authority() != authority()) {
83
- revert ErrorRegistryAdminTokenRegistryAuthorityMismatch();
84
- }
71
+ if (_setupCompleted) { revert ErrorRegistryAdminIsAlreadySetUp(); }
72
+ else { _setupCompleted = true; }
85
73
 
86
- address stakingAddress = registry.getStakingAddress();
87
- if(IAccessManaged(stakingAddress).authority() != authority()) {
88
- revert ErrorRegistryAdminStakingAuthorityMismatch();
89
- }
90
-
91
- _releaseManager = releaseManagerAddress;
92
- _tokenRegistry = tokenRegistryAddress;
93
- _staking = stakingAddress;
74
+ _releaseRegistry = registry.getReleaseRegistryAddress();
75
+ _tokenRegistry = registry.getTokenRegistryAddress();
76
+ _staking = registry.getStakingAddress();
77
+ _stakingStore = address(
78
+ IStaking(_staking).getStakingStore());
94
79
 
95
80
  // at this moment all registry contracts are deployed and fully intialized
96
- _createRole(GIF_ADMIN_ROLE(), GIF_ADMIN_ROLE_NAME);
97
- _createRole(GIF_MANAGER_ROLE(), GIF_MANAGER_ROLE_NAME);
81
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
98
82
 
99
- _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME);
100
- _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME);
101
- _createTarget(_staking, STAKING_TARGET_NAME);
83
+ _setupGifAdminRole(gifAdmin);
84
+ _setupGifManagerRole(gifManager);
102
85
 
103
- _setGifAdminRole();
104
- _setGifManagerRole();
86
+ _setupReleaseRegistry();
87
+ _setupStaking();
88
+ }
105
89
 
106
- _grantRole(GIF_ADMIN_ROLE(), gifAdmin, 0);
107
- _grantRole(GIF_MANAGER_ROLE(), gifManager, 0);
108
90
 
109
- // set gif manager role admin
110
- _setRoleAdmin(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE());
91
+ /// @dev Sets up authorizaion for specified service.
92
+ /// For all authorized services its authorized functions are enabled.
93
+ /// Permissioned function: Access is restricted to release manager.
94
+ function authorizeService(
95
+ IServiceAuthorization serviceAuthorization,
96
+ IService service
97
+ )
98
+ external
99
+ restricted()
100
+ {
101
+ _createServiceTargetAndRole(service);
102
+ _authorizeServiceFunctions(serviceAuthorization, service);
111
103
  }
112
104
 
113
- // TODO makes sense to do this in intialize() function
114
- // it is a single contract
115
- // but if many token registries a possible...
116
- /*function setTokenRegistry(
117
- address tokenRegistry
118
- )
105
+
106
+ function grantServiceRoleForAllVersions(IService service, ObjectType domain)
119
107
  external
120
- restricted() // GIF_ADMIN_ROLE
108
+ restricted()
121
109
  {
122
- // for TokenRegistry
123
- bytes4[] memory functionSelector = new bytes4[](5);
124
- functionSelector[0] = TokenRegistry.registerToken.selector;
125
- functionSelector[1] = TokenRegistry.registerRemoteToken.selector;
126
- functionSelector[2] = TokenRegistry.setActive.selector;
127
- functionSelector[3] = TokenRegistry.setActiveForVersion.selector;
128
-
129
- // only needed for testing TODO find a better way
130
- functionSelector[4] = TokenRegistry.setActiveWithVersionCheck.selector;
131
- _setTargetFunctionRole(address(tokenRegistry), functionSelector, GIF_MANAGER_ROLE());
132
- }*/
110
+ _grantRoleToAccount(
111
+ RoleIdLib.roleForTypeAndAllVersions(domain),
112
+ address(service));
113
+ }
114
+
115
+
116
+ function _createServiceTargetAndRole(IService service)
117
+ private
118
+ {
119
+ ObjectType serviceDomain = service.getDomain();
120
+ string memory baseName = ObjectTypeLib.toName(serviceDomain);
121
+ VersionPart version = service.getVersion().toMajorPart();
122
+ uint256 versionInt = version.toInt();
123
+
124
+ // create service target
125
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
126
+ baseName, "Service", versionInt);
127
+
128
+ _createTarget(
129
+ address(service),
130
+ serviceTargetName,
131
+ true,
132
+ false);
133
+
134
+ // create service role
135
+ RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
136
+ serviceDomain,
137
+ version);
138
+
139
+ _createRole(
140
+ serviceRoleId,
141
+ toRole({
142
+ adminRoleId: ADMIN_ROLE(),
143
+ roleType: RoleType.Contract,
144
+ maxMemberCount: 1,
145
+ name: ObjectTypeLib.toVersionedName(
146
+ baseName,
147
+ "ServiceRole",
148
+ versionInt)}));
149
+
150
+ _grantRoleToAccount(
151
+ serviceRoleId,
152
+ address(service));
153
+ }
133
154
 
134
155
 
135
- function setTargetFunctionRole(
136
- address target,
137
- bytes4[] memory selector,
138
- RoleId roleId
156
+ function _authorizeServiceFunctions(
157
+ IServiceAuthorization serviceAuthorization,
158
+ IService service
139
159
  )
140
- external
141
- restricted // RELEASE_MANAGER_ROLE -> TODO create this role
160
+ private
142
161
  {
143
- _setTargetFunctionRole(target, selector, roleId);
162
+ ObjectType serviceDomain = service.getDomain();
163
+ ObjectType authorizedDomain;
164
+ RoleId authorizedRoleId;
165
+
166
+ VersionPart release = service.getVersion().toMajorPart();
167
+ ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
168
+
169
+ for (uint256 i = 0; i < authorizedDomains.length; i++) {
170
+ authorizedDomain = authorizedDomains[i];
171
+
172
+ // derive authorized role from authorized domain
173
+ if (authorizedDomain == ALL()) {
174
+ authorizedRoleId = PUBLIC_ROLE();
175
+ } else {
176
+ authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
177
+ authorizedDomain,
178
+ release);
179
+ }
180
+
181
+ // get authorized functions for authorized domain
182
+ IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
183
+ serviceDomain,
184
+ authorizedDomain);
185
+
186
+ _authorizeTargetFunctions(
187
+ address(service),
188
+ authorizedRoleId,
189
+ authorizatedFunctions);
190
+ }
144
191
  }
145
192
 
146
193
  /*function transferAdmin(address to)
@@ -153,85 +200,166 @@ contract RegistryAdmin is
153
200
 
154
201
  //--- view functions ----------------------------------------------------//
155
202
 
156
- function hasRole(address account, RoleId roleId) external view returns(bool) {
157
- (bool isMember,) = AccessManagerExtendedInitializeable(authority()).hasRole(roleId.toInt(), account);
158
- return isMember;
203
+ function getGifAdminRole() external view returns (RoleId) {
204
+ return GIF_ADMIN_ROLE();
159
205
  }
160
206
 
161
-
162
- function canCall(
163
- address account,
164
- address target,
165
- bytes4 functionSelector
166
- )
167
- external
168
- view
169
- returns(bool)
170
- {
171
- (bool immediate,) = AuthorityUtils.canCallWithDelay(
172
- authority(),
173
- account,
174
- target,
175
- functionSelector);
176
-
177
- return immediate;
207
+ function getGifManagerRole() external view returns (RoleId) {
208
+ return GIF_MANAGER_ROLE();
178
209
  }
179
210
 
180
211
  //--- private functions -------------------------------------------------//
181
212
 
182
- function _setGifAdminRole() private
183
- {
184
- // for ReleaseManager
185
- bytes4[] memory functionSelector2 = new bytes4[](2);
186
- //functionSelector2[0] = ReleaseManager.registerStaking.selector;
187
- functionSelector2[0] = ReleaseManager.createNextRelease.selector;
188
- functionSelector2[1] = ReleaseManager.activateNextRelease.selector;
189
-
190
- _setTargetFunctionRole(_releaseManager, functionSelector2, GIF_ADMIN_ROLE());
191
-
192
- // for Staking
213
+ function _setupGifAdminRole(address gifAdmin) private {
214
+
215
+ _createRole(
216
+ GIF_ADMIN_ROLE(),
217
+ toRole({
218
+ adminRoleId: ADMIN_ROLE(),
219
+ roleType: RoleType.Gif,
220
+ maxMemberCount: 2, // TODO decide on max member count
221
+ name: GIF_ADMIN_ROLE_NAME}));
222
+
223
+ // for ReleaseRegistry
224
+ FunctionInfo[] memory functions;
225
+ functions = new FunctionInfo[](4);
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
+
232
+ _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
193
233
  }
194
234
 
195
- function _setGifManagerRole() private
196
- {
235
+ function _setupGifManagerRole(address gifManager) private {
236
+
237
+ _createRole(
238
+ GIF_MANAGER_ROLE(),
239
+ toRole({
240
+ adminRoleId: ADMIN_ROLE(),
241
+ roleType: RoleType.Gif,
242
+ maxMemberCount: 1,
243
+ name: GIF_MANAGER_ROLE_NAME}));
244
+
197
245
  // for TokenRegistry
198
- bytes4[] memory functionSelectorTr = new bytes4[](5);
199
- functionSelectorTr[0] = TokenRegistry.registerToken.selector;
200
- functionSelectorTr[1] = TokenRegistry.registerRemoteToken.selector;
201
- functionSelectorTr[2] = TokenRegistry.setActive.selector;
202
- functionSelectorTr[3] = TokenRegistry.setActiveForVersion.selector;
203
-
204
- // only needed for testing TODO find a better way
205
- functionSelectorTr[4] = TokenRegistry.setActiveWithVersionCheck.selector;
206
- _setTargetFunctionRole(_tokenRegistry, functionSelectorTr, GIF_MANAGER_ROLE());
207
-
208
- // for ReleaseManager
209
- bytes4[] memory functionSelectorRm = new bytes4[](2);
210
- functionSelectorRm[0] = ReleaseManager.registerService.selector;
211
- functionSelectorRm[1] = ReleaseManager.prepareNextRelease.selector;
212
- _setTargetFunctionRole(_releaseManager, functionSelectorRm, GIF_MANAGER_ROLE());
213
-
214
- // for Staking
246
+ FunctionInfo[] memory functions;
247
+ functions = new FunctionInfo[](5);
248
+ functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
249
+ functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
250
+ functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
251
+ functions[3] = toFunction(TokenRegistry.setActiveForVersion.selector, "setActiveForVersion");
252
+ // TODO find a better way (only needed for testing)
253
+ functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
254
+ _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
255
+
256
+ // for ReleaseRegistry
257
+ functions = new FunctionInfo[](2);
258
+ functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
259
+ functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
260
+ _authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
261
+
262
+ _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
215
263
  }
216
264
 
217
265
 
218
- function _setTargetFunctionRole(address target, bytes4[] memory selectors, RoleId roleId) private {
219
- AccessManagerExtendedInitializeable(authority()).setTargetFunctionRole(target, selectors, roleId.toInt());
220
- }
266
+ function _setupReleaseRegistry() private {
221
267
 
222
- function _setRoleAdmin(RoleId roleId, RoleId adminRoleId) private {
223
- AccessManagerExtendedInitializeable(authority()).setRoleAdmin(roleId.toInt(), adminRoleId.toInt());
224
- }
268
+ _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
225
269
 
226
- function _grantRole(RoleId roleId, address account, uint32 executionDelay) private {
227
- AccessManagerExtendedInitializeable(authority()).grantRole(roleId.toInt(), account, executionDelay);
228
- }
270
+ RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
271
+ _createRole(
272
+ releaseRegistryRoleId,
273
+ toRole({
274
+ adminRoleId: ADMIN_ROLE(),
275
+ roleType: RoleType.Contract,
276
+ maxMemberCount: 1,
277
+ name: RELEASE_REGISTRY_ROLE_NAME}));
278
+
279
+ FunctionInfo[] memory functions;
280
+ functions = new FunctionInfo[](2);
281
+ functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
282
+ functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
283
+ _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
229
284
 
230
- function _createRole(RoleId roleId, string memory roleName) private {
231
- AccessManagerExtendedInitializeable(authority()).createRole(roleId.toInt(), roleName);
285
+ _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
232
286
  }
233
287
 
234
- function _createTarget(address target, string memory targetName) private {
235
- AccessManagerExtendedInitializeable(authority()).createTarget(target, targetName);
288
+
289
+ function _setupStaking() private {
290
+ _createTarget(_staking, STAKING_TARGET_NAME, true, false);
291
+ _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
292
+
293
+ // staking function authorization for staking service
294
+ RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
295
+ _createRole(
296
+ stakingServiceRoleId,
297
+ toRole({
298
+ adminRoleId: ADMIN_ROLE(),
299
+ roleType: RoleType.Contract,
300
+ maxMemberCount: MAX_NUM_RELEASES,
301
+ name: STAKING_SERVICE_ROLE_NAME}));
302
+
303
+ FunctionInfo[] memory functions;
304
+ functions = new FunctionInfo[](13);
305
+ functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
306
+ functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
307
+ functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
308
+ functions[3] = toFunction(IStaking.refillRewardReserves.selector, "refillRewardReserves");
309
+ functions[4] = toFunction(IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
310
+ functions[5] = toFunction(IStaking.createStake.selector, "createStake");
311
+ functions[6] = toFunction(IStaking.stake.selector, "stake");
312
+ functions[7] = toFunction(IStaking.unstake.selector, "unstake");
313
+ functions[8] = toFunction(IStaking.restake.selector, "restake");
314
+ functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
315
+ functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
316
+ functions[11] = toFunction(IStaking.collectDipAmount.selector, "collectDipAmount");
317
+ functions[12] = toFunction(IStaking.transferDipAmount.selector, "transferDipAmount");
318
+ _authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
319
+
320
+ // staking function authorization for pool service
321
+ RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
322
+ _createRole(
323
+ poolServiceRoleId,
324
+ toRole({
325
+ adminRoleId: ADMIN_ROLE(),
326
+ roleType: RoleType.Contract,
327
+ maxMemberCount: MAX_NUM_RELEASES,
328
+ name: POOL_SERVICE_ROLE_NAME}));
329
+
330
+ // staking function authorizations
331
+ functions = new FunctionInfo[](2);
332
+ functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
333
+ functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
334
+ _authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
335
+
336
+ // staking store function authorizations
337
+ RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
338
+ _createRole(
339
+ stakingRoleId,
340
+ toRole({
341
+ adminRoleId: ADMIN_ROLE(),
342
+ roleType: RoleType.Contract,
343
+ maxMemberCount: 1,
344
+ name: STAKING_ROLE_NAME}));
345
+
346
+ functions = new FunctionInfo[](14);
347
+ functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
348
+ functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
349
+ functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
350
+ functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
351
+ functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
352
+ functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
353
+ functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
354
+ functions[7] = toFunction(StakingStore.create.selector, "create");
355
+ functions[8] = toFunction(StakingStore.update.selector, "update");
356
+ functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
357
+ functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
358
+ functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
359
+ functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
360
+ functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
361
+ _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
362
+
363
+ _grantRoleToAccount(stakingRoleId, _staking);
236
364
  }
237
365
  }
@@ -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,
@@ -37,11 +23,6 @@ contract RegistryService is
37
23
  // TODO update to real hash when registry is stable
38
24
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
39
25
 
40
- // From IService
41
- function getDomain() public pure override returns(ObjectType serviceDomain) {
42
- return REGISTRY();
43
- }
44
-
45
26
  // from Versionable
46
27
 
47
28
  /// @dev top level initializer
@@ -263,4 +244,9 @@ contract RegistryService is
263
244
  revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
264
245
  }
265
246
  }
247
+
248
+ // From IService
249
+ function _getDomain() internal override pure returns(ObjectType serviceDomain) {
250
+ return REGISTRY();
251
+ }
266
252
  }
@@ -1,14 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
-
6
- import {Registry} from "./Registry.sol";
7
- import {IVersionable} from "../shared/IVersionable.sol";
8
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
9
6
  import {RegistryService} from "./RegistryService.sol";
10
- import {TokenRegistry} from "./TokenRegistry.sol";
11
-
12
7
 
13
8
  contract RegistryServiceManager is
14
9
  ProxyManager
@@ -0,0 +1,27 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {RELEASE} from "../type/ObjectType.sol";
5
+ import {SCHEDULED, DEPLOYING, ACTIVE, PAUSED, CLOSED/*, FREE*/} from "../type/StateId.sol";
6
+ import {Lifecycle} from "../shared/Lifecycle.sol";
7
+
8
+ contract ReleaseLifecycle is
9
+ Lifecycle
10
+ {
11
+ constructor() {
12
+ _setupLifecycle();
13
+ }
14
+
15
+ function _setupLifecycle()
16
+ internal
17
+ override
18
+ {
19
+ setInitialState(RELEASE(), SCHEDULED());
20
+
21
+ setStateTransition(RELEASE(), SCHEDULED(), DEPLOYING());
22
+ setStateTransition(RELEASE(), DEPLOYING(), DEPLOYING());
23
+ setStateTransition(RELEASE(), DEPLOYING(), ACTIVE());
24
+ setStateTransition(RELEASE(), ACTIVE(), PAUSED());
25
+ setStateTransition(RELEASE(), PAUSED(), ACTIVE());
26
+ }
27
+ }