@etherisc/gif-next 0.0.2-eb7261f-060 → 0.0.2-eb7c077-523

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 (435) hide show
  1. package/README.md +13 -1
  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/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
  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/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
  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 +1505 -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 +17 -242
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +106 -90
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +55 -55
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -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 +6 -19
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +35 -96
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  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 +110 -76
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -125
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +84 -91
  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/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  61. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  63. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  65. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  71. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  73. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  75. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  77. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  79. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
  81. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
  84. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  85. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
  86. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
  88. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  89. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  90. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  92. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  93. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +55 -55
  94. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +40 -40
  96. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  97. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  98. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
  99. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  100. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  101. package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
  102. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -36
  104. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +36 -36
  106. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  107. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +32 -32
  108. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -34
  110. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  111. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  112. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  113. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  114. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  115. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +72 -72
  116. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
  118. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  119. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  120. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  121. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  122. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  123. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
  124. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  125. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  126. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +50 -50
  127. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +43 -43
  129. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  130. package/artifacts/contracts/product/PricingService.sol/PricingService.json +58 -58
  131. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
  133. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  134. package/artifacts/contracts/product/Product.sol/Product.json +13 -153
  135. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  136. package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
  137. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
  139. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  140. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +40 -16
  141. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +4 -0
  142. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +1503 -0
  143. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +4 -0
  144. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +1881 -0
  145. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +4 -0
  146. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +974 -0
  147. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  148. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +40 -47
  149. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  150. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  151. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  152. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/Registry.sol/Registry.json +224 -81
  154. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  155. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +348 -378
  156. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  157. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  158. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
  160. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  161. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  162. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  163. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1140 -0
  164. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  165. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -16
  166. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  167. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  168. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  169. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  170. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +62 -86
  171. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -61
  173. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  174. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  175. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  176. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  178. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
  180. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  182. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  183. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  184. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  188. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  189. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  190. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  191. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
  192. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  193. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  194. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  195. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  196. package/artifacts/contracts/shared/MainnetId.sol/MainnetContract.dbg.json +4 -0
  197. package/artifacts/contracts/shared/MainnetId.sol/MainnetContract.json +34 -0
  198. package/artifacts/contracts/shared/MainnetId.sol/MainnetId.dbg.json +4 -0
  199. package/artifacts/contracts/shared/MainnetId.sol/MainnetId.json +24 -0
  200. package/artifacts/contracts/shared/MainnetId.sol/SidenetContract.dbg.json +4 -0
  201. package/artifacts/contracts/shared/MainnetId.sol/SidenetContract.json +34 -0
  202. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  203. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  204. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  206. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  207. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  208. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  210. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  211. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  212. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  213. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  214. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  215. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  216. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  217. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  218. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
  219. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  220. package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -44
  221. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  222. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  223. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  224. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -40
  225. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  227. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
  229. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  230. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
  231. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +145 -169
  233. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  234. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  235. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  236. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  237. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/Amount.sol/AmountLib.json +8 -8
  239. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  241. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  243. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  245. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  247. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  248. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  249. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  251. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  252. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  253. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  255. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  257. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  259. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  261. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  263. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  265. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  267. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  269. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  271. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  273. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  275. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -4
  277. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  279. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  281. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  283. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  285. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  286. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  287. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  288. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  289. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  290. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  291. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  292. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  293. package/contracts/{shared → authorization}/AccessAdmin.sol +135 -304
  294. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  295. package/contracts/authorization/Authorization.sol +218 -0
  296. package/contracts/authorization/IAccess.sol +48 -0
  297. package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
  298. package/contracts/authorization/IAuthorization.sol +54 -0
  299. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  300. package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -5
  301. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  302. package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
  303. package/contracts/distribution/BasicDistribution.sol +149 -0
  304. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  305. package/contracts/distribution/Distribution.sol +126 -104
  306. package/contracts/distribution/DistributionService.sol +12 -21
  307. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  308. package/contracts/distribution/IDistributionComponent.sol +17 -35
  309. package/contracts/distribution/IDistributionService.sol +5 -1
  310. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  311. package/contracts/instance/IInstance.sol +8 -9
  312. package/contracts/instance/IInstanceService.sol +13 -18
  313. package/contracts/instance/Instance.sol +61 -70
  314. package/contracts/instance/InstanceAdmin.sol +202 -267
  315. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  316. package/contracts/instance/InstanceReader.sol +22 -9
  317. package/contracts/instance/InstanceService.sol +74 -70
  318. package/contracts/instance/InstanceServiceManager.sol +2 -6
  319. package/contracts/instance/InstanceStore.sol +11 -4
  320. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  321. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
  322. package/contracts/oracle/BasicOracle.sol +48 -0
  323. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  324. package/contracts/oracle/IOracle.sol +16 -0
  325. package/contracts/oracle/Oracle.sol +61 -49
  326. package/contracts/oracle/OracleServiceManager.sol +2 -5
  327. package/contracts/pool/BasicPool.sol +164 -0
  328. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  329. package/contracts/pool/BundleService.sol +14 -26
  330. package/contracts/pool/BundleServiceManager.sol +2 -5
  331. package/contracts/pool/IPoolComponent.sol +0 -60
  332. package/contracts/pool/Pool.sol +143 -131
  333. package/contracts/pool/PoolService.sol +11 -27
  334. package/contracts/pool/PoolServiceManager.sol +2 -5
  335. package/contracts/product/ApplicationService.sol +12 -36
  336. package/contracts/product/ApplicationServiceManager.sol +2 -2
  337. package/contracts/product/BasicProduct.sol +82 -0
  338. package/contracts/product/BasicProductAuthorization.sol +40 -0
  339. package/contracts/product/ClaimService.sol +5 -31
  340. package/contracts/product/ClaimServiceManager.sol +2 -2
  341. package/contracts/product/IProductComponent.sol +6 -9
  342. package/contracts/product/PolicyServiceManager.sol +2 -5
  343. package/contracts/product/PricingServiceManager.sol +2 -5
  344. package/contracts/product/Product.sol +103 -88
  345. package/contracts/product/ProductService.sol +7 -32
  346. package/contracts/product/ProductServiceManager.sol +2 -5
  347. package/contracts/registry/ChainNft.sol +28 -27
  348. package/contracts/registry/GlobalRegistry.sol +95 -0
  349. package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
  350. package/contracts/registry/IGlobalRegistry.sol +17 -0
  351. package/contracts/registry/IRegistry.sol +25 -16
  352. package/contracts/registry/IRegistryService.sol +6 -6
  353. package/contracts/registry/Registry.sol +131 -146
  354. package/contracts/registry/RegistryAdmin.sol +244 -130
  355. package/contracts/registry/RegistryService.sol +4 -18
  356. package/contracts/registry/RegistryServiceManager.sol +2 -2
  357. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  358. package/contracts/registry/ReleaseRegistry.sol +533 -0
  359. package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
  360. package/contracts/registry/TokenRegistry.sol +2 -2
  361. package/contracts/shared/ComponentService.sol +20 -56
  362. package/contracts/shared/ComponentServiceManager.sol +2 -2
  363. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  364. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  365. package/contracts/shared/IKeyValueStore.sol +1 -0
  366. package/contracts/shared/ILifecycle.sol +1 -2
  367. package/contracts/shared/IService.sol +1 -1
  368. package/contracts/shared/InstanceLinkedComponent.sol +26 -19
  369. package/contracts/shared/KeyValueStore.sol +6 -2
  370. package/contracts/shared/Lifecycle.sol +16 -69
  371. package/contracts/shared/MainnetId.sol +29 -0
  372. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  373. package/contracts/shared/Service.sol +3 -4
  374. package/contracts/staking/IStaking.sol +1 -2
  375. package/contracts/staking/IStakingService.sol +12 -5
  376. package/contracts/staking/Staking.sol +11 -14
  377. package/contracts/staking/StakingLifecycle.sol +23 -0
  378. package/contracts/staking/StakingManager.sol +2 -6
  379. package/contracts/staking/StakingReader.sol +12 -16
  380. package/contracts/staking/StakingServiceManager.sol +2 -2
  381. package/contracts/staking/StakingStore.sol +15 -23
  382. package/contracts/type/ObjectType.sol +37 -7
  383. package/contracts/type/RoleId.sol +55 -82
  384. package/contracts/type/UFixed.sol +6 -0
  385. package/contracts/type/Version.sol +3 -1
  386. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  387. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  388. package/package.json +3 -3
  389. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  390. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  391. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  392. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  393. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  394. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  395. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  396. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  397. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
  398. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  399. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
  400. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  401. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  402. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  403. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  404. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  405. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  406. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  407. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  408. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  409. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  410. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  411. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  412. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  413. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  414. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  415. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  416. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  417. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  418. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  419. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  420. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  421. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  422. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  423. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  424. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  425. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  426. package/contracts/registry/ReleaseManager.sol +0 -527
  427. package/contracts/shared/AccessManagerCustom.sol +0 -741
  428. package/contracts/shared/AccessManagerExtended.sol +0 -481
  429. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  430. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  431. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  432. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  433. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  434. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  435. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,19 +1,19 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessAdmin} from "../shared/AccessAdmin.sol";
5
- import {IAccessAdmin} from "../shared/IAccessAdmin.sol";
4
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
+ import {IAccess} from "../authorization/IAccess.sol";
6
6
  import {IRegistry} from "./IRegistry.sol";
7
7
  import {IService} from "../shared/IService.sol";
8
- import {IServiceAuthorization} from "./IServiceAuthorization.sol";
8
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
9
9
  import {IStaking} from "../staking/IStaking.sol";
10
- import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
11
- import {ReleaseManager} from "./ReleaseManager.sol";
10
+ import {ObjectType, ObjectTypeLib, ALL, REGISTRY, STAKING, POOL, RELEASE} from "../type/ObjectType.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
- import {STAKING} from "../type/ObjectType.sol";
15
14
  import {TokenRegistry} from "./TokenRegistry.sol";
16
15
  import {VersionPart} from "../type/Version.sol";
16
+ import {SidenetContract} from "../shared/MainnetId.sol";
17
17
 
18
18
  /*
19
19
  1) GIF_MANAGER_ROLE
@@ -26,33 +26,34 @@ import {VersionPart} from "../type/Version.sol";
26
26
  - MUST have 1 member at any time
27
27
  - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
28
28
  - responsible for creation and activation of releases
29
-
30
- createServiceTarget(type, release)
31
- createServiceRole(type,release)
32
- getServiceRole(type, release)
33
29
  */
34
30
  contract RegistryAdmin is
31
+ SidenetContract,
35
32
  AccessAdmin
36
33
  {
37
- error ErrorRegistryAdminIsAlreadySetUp();
38
-
39
34
  string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
40
35
  string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
41
- string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
42
36
  string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
37
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
38
+ string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
39
+ string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
40
+ string public constant STAKING_ROLE_NAME = "StakingRole";
43
41
 
44
- string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManagerTarget";
45
- string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistryTarget";
46
- string public constant STAKING_TARGET_NAME = "StakingTarget";
47
- string public constant STAKING_STORE_TARGET_NAME = "StakingStoreTarget";
42
+ string public constant REGISTRY_TARGET_NAME = "Registry";
43
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
44
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
45
+ string public constant STAKING_TARGET_NAME = "Staking";
46
+ string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
48
47
 
48
+ uint8 public constant MAX_NUM_RELEASES = 99;
49
+ // TODO consider deleting this
49
50
  mapping(address service => VersionPart majorVersion) private _ServiceRelease;
50
51
 
51
- address private _releaseManager;
52
+ address internal _registry;
53
+ address private _releaseRegistry;
52
54
  address private _tokenRegistry;
53
55
  address private _staking;
54
56
  address private _stakingStore;
55
- bool private _setupCompleted;
56
57
 
57
58
  constructor() AccessAdmin() { }
58
59
 
@@ -62,24 +63,24 @@ contract RegistryAdmin is
62
63
  address gifManager
63
64
  )
64
65
  external
66
+ initializer
65
67
  onlyDeployer()
66
68
  {
67
- if (_setupCompleted) { revert ErrorRegistryAdminIsAlreadySetUp(); }
68
- else { _setupCompleted = true; }
69
-
70
- _releaseManager = registry.getReleaseManagerAddress();
69
+ _registry = address(registry);
70
+ _releaseRegistry = registry.getReleaseRegistryAddress();
71
71
  _tokenRegistry = registry.getTokenRegistryAddress();
72
72
  _staking = registry.getStakingAddress();
73
73
  _stakingStore = address(
74
74
  IStaking(_staking).getStakingStore());
75
75
 
76
76
  // at this moment all registry contracts are deployed and fully intialized
77
- _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME);
77
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
78
78
 
79
79
  _setupGifAdminRole(gifAdmin);
80
80
  _setupGifManagerRole(gifManager);
81
81
 
82
- _setupReleaseManager();
82
+ _setupRegistry();
83
+ _setupReleaseRegistry();
83
84
  _setupStaking();
84
85
  }
85
86
 
@@ -89,15 +90,46 @@ contract RegistryAdmin is
89
90
  /// Permissioned function: Access is restricted to release manager.
90
91
  function authorizeService(
91
92
  IServiceAuthorization serviceAuthorization,
92
- IService service
93
+ IService service,
94
+ ObjectType serviceDomain,
95
+ VersionPart releaseVersion
93
96
  )
94
97
  external
95
98
  restricted()
96
99
  {
97
- _createServiceTargetAndRole(service);
98
- _authorizeServiceFunctions(serviceAuthorization, service);
100
+ _createServiceTargetAndRole(service, serviceDomain, releaseVersion);
101
+ _authorizeServiceFunctions(serviceAuthorization, service, serviceDomain, releaseVersion);
99
102
  }
100
103
 
104
+ function grantServiceRole(
105
+ IService service,
106
+ ObjectType domain,
107
+ VersionPart version
108
+ )
109
+ external
110
+ restricted()
111
+ {
112
+ _grantRoleToAccount(
113
+ RoleIdLib.roleForTypeAndVersion(
114
+ domain,
115
+ version),
116
+ address(service));
117
+ }
118
+
119
+ function revokeServiceRole(
120
+ IService service,
121
+ ObjectType domain,
122
+ VersionPart version
123
+ )
124
+ external
125
+ restricted()
126
+ {
127
+ _revokeRoleFromAccount(
128
+ RoleIdLib.roleForTypeAndVersion(
129
+ domain,
130
+ version),
131
+ address(service));
132
+ }
101
133
 
102
134
  function grantServiceRoleForAllVersions(IService service, ObjectType domain)
103
135
  external
@@ -108,69 +140,88 @@ contract RegistryAdmin is
108
140
  address(service));
109
141
  }
110
142
 
143
+ function revokeServiceRoleForAllVersions(IService service, ObjectType domain)
144
+ external
145
+ restricted()
146
+ {
147
+ _revokeRoleFromAccount(
148
+ RoleIdLib.roleForTypeAndAllVersions(domain),
149
+ address(service));
150
+ }
151
+
152
+ /*function transferAdmin(address to)
153
+ external
154
+ restricted // only with GIF_ADMIN_ROLE or nft owner
155
+ {
156
+ _accessManager.revoke(GIF_ADMIN_ROLE, );
157
+ _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
158
+ }*/
159
+
160
+ //--- view functions ----------------------------------------------------//
111
161
 
112
- function _createServiceTargetAndRole(IService service)
162
+ function getGifAdminRole() external view returns (RoleId) {
163
+ return GIF_ADMIN_ROLE();
164
+ }
165
+
166
+ function getGifManagerRole() external view returns (RoleId) {
167
+ return GIF_MANAGER_ROLE();
168
+ }
169
+
170
+ //--- private functions -------------------------------------------------//
171
+
172
+ function _createServiceTargetAndRole(
173
+ IService service,
174
+ ObjectType serviceDomain,
175
+ VersionPart releaseVersion
176
+ )
113
177
  private
114
178
  {
115
- ObjectType domain = service.getDomain();
116
- string memory baseName = ObjectTypeLib.toName(domain);
117
- VersionPart version = service.getVersion().toMajorPart();
118
- uint256 versionInt = version.toInt();
119
- string memory versionName = "_v0";
120
- string memory versionNumber = ObjectTypeLib.toString(versionInt);
121
-
122
- if (versionInt >= 10) {
123
- versionName = "_v";
124
- }
179
+ string memory baseName = ObjectTypeLib.toName(serviceDomain);
180
+ uint256 versionInt = releaseVersion.toInt();
125
181
 
126
182
  // create service target
127
- string memory serviceTargetName = string(
128
- abi.encodePacked(
129
- baseName,
130
- "Service",
131
- versionName,
132
- versionNumber));
183
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
184
+ baseName, "Service", versionInt);
133
185
 
134
186
  _createTarget(
135
187
  address(service),
136
- serviceTargetName);
188
+ serviceTargetName,
189
+ true,
190
+ false);
137
191
 
138
192
  // create service role
139
- string memory serviceRoleName = string(
140
- abi.encodePacked(
141
- baseName,
142
- "ServiceRole",
143
- versionName,
144
- versionNumber));
145
-
146
- RoleId roleId = RoleIdLib.roleForTypeAndVersion(
147
- domain,
148
- version);
193
+ RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
194
+ serviceDomain,
195
+ releaseVersion);
149
196
 
150
197
  _createRole(
151
- roleId,
152
- ADMIN_ROLE(),
153
- serviceRoleName,
154
- 1, // service roles must only be given to this unique service
155
- true); // it must not be possible to remove this role once granted
198
+ serviceRoleId,
199
+ toRole({
200
+ adminRoleId: ADMIN_ROLE(),
201
+ roleType: RoleType.Contract,
202
+ maxMemberCount: 1,
203
+ name: ObjectTypeLib.toVersionedName(
204
+ baseName,
205
+ "ServiceRole",
206
+ versionInt)}));
156
207
 
157
208
  _grantRoleToAccount(
158
- roleId,
209
+ serviceRoleId,
159
210
  address(service));
160
211
  }
161
212
 
162
213
 
163
214
  function _authorizeServiceFunctions(
164
215
  IServiceAuthorization serviceAuthorization,
165
- IService service
216
+ IService service,
217
+ ObjectType serviceDomain,
218
+ VersionPart releaseVersion
166
219
  )
167
220
  private
168
221
  {
169
- ObjectType serviceDomain = service.getDomain();
170
222
  ObjectType authorizedDomain;
171
223
  RoleId authorizedRoleId;
172
224
 
173
- VersionPart release = service.getVersion().toMajorPart();
174
225
  ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
175
226
 
176
227
  for (uint256 i = 0; i < authorizedDomains.length; i++) {
@@ -182,11 +233,11 @@ contract RegistryAdmin is
182
233
  } else {
183
234
  authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
184
235
  authorizedDomain,
185
- release);
236
+ releaseVersion);
186
237
  }
187
238
 
188
239
  // get authorized functions for authorized domain
189
- IAccessAdmin.Function[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
240
+ IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
190
241
  serviceDomain,
191
242
  authorizedDomain);
192
243
 
@@ -197,48 +248,49 @@ contract RegistryAdmin is
197
248
  }
198
249
  }
199
250
 
200
- /*function transferAdmin(address to)
201
- external
202
- restricted // only with GIF_ADMIN_ROLE or nft owner
203
- {
204
- _accessManager.revoke(GIF_ADMIN_ROLE, );
205
- _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
206
- }*/
207
-
208
- //--- view functions ----------------------------------------------------//
209
-
210
- function getGifAdminRole() external view returns (RoleId) {
211
- return GIF_ADMIN_ROLE();
212
- }
251
+ //--- private initialization functions -------------------------------------------//
213
252
 
214
- function getGifManagerRole() external view returns (RoleId) {
215
- return GIF_MANAGER_ROLE();
216
- }
217
-
218
- //--- private functions -------------------------------------------------//
253
+ function _setupGifAdminRole(address gifAdmin)
254
+ private
255
+ onlyInitializing()
256
+ {
257
+
258
+ _createRole(
259
+ GIF_ADMIN_ROLE(),
260
+ toRole({
261
+ adminRoleId: ADMIN_ROLE(),
262
+ roleType: RoleType.Gif,
263
+ maxMemberCount: 2, // TODO decide on max member count
264
+ name: GIF_ADMIN_ROLE_NAME}));
265
+
266
+ // for ReleaseRegistry
267
+ FunctionInfo[] memory functions;
268
+ functions = new FunctionInfo[](4);
269
+ functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
270
+ functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
271
+ functions[2] = toFunction(ReleaseRegistry.pauseRelease.selector, "pauseRelease");
272
+ functions[3] = toFunction(ReleaseRegistry.unpauseRelease.selector, "unpauseRelease");
273
+ _authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
219
274
 
220
- function _setupGifAdminRole(address gifAdmin) private {
221
- // TODO decide on max member count
222
- _createRole(GIF_ADMIN_ROLE(), getAdminRole(), GIF_ADMIN_ROLE_NAME, 2, false);
223
275
  _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
224
-
225
- // for ReleaseManager
226
- Function[] memory functions;
227
- functions = new Function[](2);
228
- functions[0] = toFunction(ReleaseManager.createNextRelease.selector, "createNextRelease");
229
- functions[1] = toFunction(ReleaseManager.activateNextRelease.selector, "activateNextRelease");
230
- _authorizeTargetFunctions(_releaseManager, GIF_ADMIN_ROLE(), functions);
231
-
232
- // for Staking
233
276
  }
234
277
 
235
- function _setupGifManagerRole(address gifManager) private {
236
- _createRole(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE(), GIF_MANAGER_ROLE_NAME, 1, false);
237
- _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
278
+ function _setupGifManagerRole(address gifManager)
279
+ private
280
+ onlyInitializing()
281
+ {
282
+
283
+ _createRole(
284
+ GIF_MANAGER_ROLE(),
285
+ toRole({
286
+ adminRoleId: ADMIN_ROLE(),
287
+ roleType: RoleType.Gif,
288
+ maxMemberCount: 1,
289
+ name: GIF_MANAGER_ROLE_NAME}));
238
290
 
239
291
  // for TokenRegistry
240
- Function[] memory functions;
241
- functions = new Function[](5);
292
+ FunctionInfo[] memory functions;
293
+ functions = new FunctionInfo[](5);
242
294
  functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
243
295
  functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
244
296
  functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
@@ -247,42 +299,91 @@ contract RegistryAdmin is
247
299
  functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
248
300
  _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
249
301
 
250
- // for ReleaseManager
251
- functions = new Function[](2);
252
- functions[0] = toFunction(ReleaseManager.prepareNextRelease.selector, "prepareNextRelease");
253
- functions[1] = toFunction(ReleaseManager.registerService.selector, "registerService");
254
- _authorizeTargetFunctions(_releaseManager, GIF_MANAGER_ROLE(), functions);
302
+ // for ReleaseRegistry
303
+ functions = new FunctionInfo[](2);
304
+ functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
305
+ functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
306
+ _authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
255
307
 
256
- // for Staking
308
+ _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
257
309
  }
258
310
 
311
+ function _setupRegistry()
312
+ internal
313
+ virtual
314
+ onlyInitializing()
315
+ {
316
+ _createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
259
317
 
260
- function _setupReleaseManager() private {
261
- _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME);
318
+ // registry function authorization for registry service
319
+ RoleId registryServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(REGISTRY());
320
+ _createRole(
321
+ registryServiceRoleId,
322
+ toRole({
323
+ adminRoleId: ADMIN_ROLE(),
324
+ roleType: RoleType.Contract,
325
+ maxMemberCount: MAX_NUM_RELEASES,
326
+ name: REGISTRY_SERVICE_ROLE_NAME}));
327
+
328
+ FunctionInfo[] memory functions;
329
+ functions = new FunctionInfo[](2);
330
+ functions[0] = toFunction(IRegistry.register.selector, "register");
331
+ functions[1] = toFunction(IRegistry.registerWithCustomType.selector, "registerWithCustomType");
332
+ // TODO add registerChainRegistry()
333
+
334
+ _authorizeTargetFunctions(_registry, registryServiceRoleId, functions);
335
+ }
262
336
 
263
- RoleId releaseManagerRoleId = RoleIdLib.roleForType(RELEASE());
264
- _createRole(releaseManagerRoleId, ADMIN_ROLE(), RELEASE_MANAGER_TARGET_NAME, 1, true);
265
- _grantRoleToAccount(releaseManagerRoleId, _releaseManager);
266
337
 
267
- Function[] memory functions;
268
- functions = new Function[](2);
338
+ function _setupReleaseRegistry()
339
+ private
340
+ onlyInitializing()
341
+ {
342
+
343
+ _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
344
+
345
+ RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
346
+ _createRole(
347
+ releaseRegistryRoleId,
348
+ toRole({
349
+ adminRoleId: ADMIN_ROLE(),
350
+ roleType: RoleType.Contract,
351
+ maxMemberCount: 1,
352
+ name: RELEASE_REGISTRY_ROLE_NAME}));
353
+
354
+ FunctionInfo[] memory functions;
355
+ functions = new FunctionInfo[](5);
269
356
  functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
270
357
  functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
271
- _authorizeTargetFunctions(address(this), releaseManagerRoleId, functions);
272
- }
358
+ functions[2] = toFunction(RegistryAdmin.revokeServiceRoleForAllVersions.selector, "revokeServiceRoleForAllVersions");
359
+ functions[3] = toFunction(RegistryAdmin.grantServiceRole.selector, "grantServiceRole");
360
+ functions[4] = toFunction(RegistryAdmin.revokeServiceRole.selector, "revokeServiceRole");
273
361
 
362
+ _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
363
+
364
+ _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
365
+ }
274
366
 
275
- function _setupStaking() private {
276
- _createTarget(_staking, STAKING_TARGET_NAME);
277
- _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME);
278
367
 
368
+ function _setupStaking()
369
+ private
370
+ onlyInitializing()
371
+ {
372
+ _createTarget(_staking, STAKING_TARGET_NAME, true, false);
373
+ _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
279
374
 
280
375
  // staking function authorization for staking service
281
376
  RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
282
- _createRole(stakingServiceRoleId, ADMIN_ROLE(), STAKING_SERVICE_ROLE_NAME, 1, true);
283
-
284
- Function[] memory functions;
285
- functions = new Function[](13);
377
+ _createRole(
378
+ stakingServiceRoleId,
379
+ toRole({
380
+ adminRoleId: ADMIN_ROLE(),
381
+ roleType: RoleType.Contract,
382
+ maxMemberCount: MAX_NUM_RELEASES,
383
+ name: STAKING_SERVICE_ROLE_NAME}));
384
+
385
+ FunctionInfo[] memory functions;
386
+ functions = new FunctionInfo[](13);
286
387
  functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
287
388
  functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
288
389
  functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
@@ -300,20 +401,31 @@ contract RegistryAdmin is
300
401
 
301
402
  // staking function authorization for pool service
302
403
  RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
303
- _createRole(poolServiceRoleId, ADMIN_ROLE(), POOL_SERVICE_ROLE_NAME, 1, true);
404
+ _createRole(
405
+ poolServiceRoleId,
406
+ toRole({
407
+ adminRoleId: ADMIN_ROLE(),
408
+ roleType: RoleType.Contract,
409
+ maxMemberCount: MAX_NUM_RELEASES,
410
+ name: POOL_SERVICE_ROLE_NAME}));
304
411
 
305
412
  // staking function authorizations
306
- functions = new Function[](2);
413
+ functions = new FunctionInfo[](2);
307
414
  functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
308
415
  functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
309
416
  _authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
310
417
 
311
418
  // staking store function authorizations
312
419
  RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
313
- _createRole(stakingRoleId, ADMIN_ROLE(), STAKING_TARGET_NAME, 1, true);
314
- _grantRoleToAccount(stakingRoleId, _staking);
315
-
316
- functions = new Function[](14);
420
+ _createRole(
421
+ stakingRoleId,
422
+ toRole({
423
+ adminRoleId: ADMIN_ROLE(),
424
+ roleType: RoleType.Contract,
425
+ maxMemberCount: 1,
426
+ name: STAKING_ROLE_NAME}));
427
+
428
+ functions = new FunctionInfo[](14);
317
429
  functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
318
430
  functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
319
431
  functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
@@ -329,5 +441,7 @@ contract RegistryAdmin is
329
441
  functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
330
442
  functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
331
443
  _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
444
+
445
+ _grantRoleToAccount(stakingRoleId, _staking);
332
446
  }
333
447
  }
@@ -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
@@ -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
+ }