@etherisc/gif-next 0.0.2-8daf0fe-431 → 0.0.2-8e283ec-993

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 (451) hide show
  1. package/README.md +32 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +38 -52
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +8 -8
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +0 -19
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  15. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +8 -8
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +23 -4
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +85 -248
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +18 -18
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -222
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +228 -217
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +93 -101
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -37
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -31
  33. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  34. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  35. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  36. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  38. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1545 -0
  39. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  40. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1980 -0
  41. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  42. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  43. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  44. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -6
  45. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  46. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +5 -5
  47. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  48. package/artifacts/contracts/instance/Instance.sol/Instance.json +17 -106
  49. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  50. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +102 -100
  51. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  52. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
  53. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  54. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +467 -127
  55. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  56. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +44 -151
  57. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  58. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -81
  59. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +255 -240
  61. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  62. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  63. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  64. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  65. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  66. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  67. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  68. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  70. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  74. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  76. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  77. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  78. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +59 -235
  80. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  81. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +21 -21
  82. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  84. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -37
  85. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +27 -219
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  91. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  93. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +79 -280
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +19 -19
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  97. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +407 -174
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +137 -89
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  103. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -94
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +293 -104
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  107. package/artifacts/contracts/pool/Pool.sol/Pool.json +69 -276
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +396 -253
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +90 -82
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  113. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +36 -162
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -89
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  117. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +47 -248
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  119. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +19 -19
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  121. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +212 -181
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +92 -100
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +120 -6
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  129. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +266 -119
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  131. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  133. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +47 -63
  134. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  135. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +358 -318
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +97 -101
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +118 -265
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -120
  144. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  145. package/artifacts/contracts/product/Product.sol/Product.json +47 -248
  146. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  147. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  148. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +276 -9
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  156. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  158. package/artifacts/contracts/registry/Registry.sol/Registry.json +495 -67
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +251 -134
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -313
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  166. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  167. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  168. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +26 -7
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  173. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  174. package/artifacts/contracts/shared/Component.sol/Component.json +0 -211
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +247 -161
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +105 -95
  179. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -112
  181. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  182. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  183. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  188. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -37
  189. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  190. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  191. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  192. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  199. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  200. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  201. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  202. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  203. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -222
  204. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  205. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  206. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  208. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  209. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  210. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
  212. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  213. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  214. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
  216. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  217. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  218. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Service.sol/Service.json +5 -112
  220. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  221. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  222. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  224. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  225. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
  226. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  227. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
  229. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  230. package/artifacts/contracts/staking/Staking.sol/Staking.json +85 -262
  231. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  232. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  233. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  234. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +77 -88
  235. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  236. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  237. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -138
  239. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
  241. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
  243. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  244. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +58 -22
  245. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  246. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  247. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  249. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  251. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  255. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  257. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  259. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  261. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  262. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  263. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  265. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  267. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  269. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  271. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  273. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +14 -14
  275. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  277. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  279. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  281. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  283. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  285. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  287. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  289. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
  291. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  293. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  295. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  296. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  297. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  298. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  299. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  300. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  301. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  302. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  303. package/contracts/authorization/AccessAdmin.sol +28 -24
  304. package/contracts/authorization/Authorization.sol +5 -2
  305. package/contracts/authorization/IAccessAdmin.sol +0 -1
  306. package/contracts/authorization/IServiceAuthorization.sol +3 -0
  307. package/contracts/authorization/ServiceAuthorization.sol +4 -0
  308. package/contracts/distribution/BasicDistribution.sol +4 -15
  309. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  310. package/contracts/distribution/Distribution.sol +23 -11
  311. package/contracts/distribution/DistributionService.sol +76 -42
  312. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  313. package/contracts/distribution/IDistributionComponent.sol +8 -4
  314. package/contracts/distribution/IDistributionService.sol +18 -2
  315. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  316. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  317. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  318. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  319. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  320. package/contracts/instance/IInstance.sol +11 -34
  321. package/contracts/instance/IInstanceService.sol +5 -5
  322. package/contracts/instance/Instance.sol +13 -38
  323. package/contracts/instance/InstanceAdmin.sol +31 -9
  324. package/contracts/instance/InstanceAuthorizationV3.sol +16 -14
  325. package/contracts/instance/InstanceReader.sol +125 -11
  326. package/contracts/instance/InstanceService.sol +71 -49
  327. package/contracts/instance/InstanceServiceManager.sol +8 -13
  328. package/contracts/instance/InstanceStore.sol +18 -4
  329. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  330. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
  331. package/contracts/instance/module/IBundle.sol +1 -1
  332. package/contracts/instance/module/IComponents.sol +4 -8
  333. package/contracts/instance/module/IDistribution.sol +0 -1
  334. package/contracts/instance/module/IPolicy.sol +24 -24
  335. package/contracts/mock/Dip.sol +1 -1
  336. package/contracts/oracle/IOracleComponent.sol +2 -1
  337. package/contracts/oracle/Oracle.sol +17 -7
  338. package/contracts/oracle/OracleService.sol +11 -8
  339. package/contracts/oracle/OracleServiceManager.sol +8 -11
  340. package/contracts/pool/BasicPool.sol +7 -5
  341. package/contracts/pool/BasicPoolAuthorization.sol +11 -2
  342. package/contracts/pool/BundleService.sol +197 -55
  343. package/contracts/pool/BundleServiceManager.sol +8 -11
  344. package/contracts/pool/IBundleService.sol +33 -5
  345. package/contracts/pool/IPoolComponent.sol +24 -8
  346. package/contracts/pool/IPoolService.sol +55 -34
  347. package/contracts/pool/Pool.sol +72 -30
  348. package/contracts/pool/PoolService.sol +223 -127
  349. package/contracts/pool/PoolServiceManager.sol +6 -9
  350. package/contracts/product/ApplicationService.sol +62 -65
  351. package/contracts/product/ApplicationServiceManager.sol +6 -6
  352. package/contracts/product/BasicProduct.sol +3 -32
  353. package/contracts/product/BasicProductAuthorization.sol +3 -0
  354. package/contracts/product/ClaimService.sol +243 -112
  355. package/contracts/product/ClaimServiceManager.sol +6 -6
  356. package/contracts/product/IApplicationService.sol +1 -0
  357. package/contracts/product/IClaimService.sol +29 -6
  358. package/contracts/product/IPolicyService.sol +31 -32
  359. package/contracts/product/IPricingService.sol +7 -7
  360. package/contracts/product/IProductComponent.sol +18 -4
  361. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  362. package/contracts/product/PolicyService.sol +361 -190
  363. package/contracts/product/PolicyServiceManager.sol +6 -9
  364. package/contracts/product/PricingService.sol +46 -46
  365. package/contracts/product/PricingServiceManager.sol +5 -8
  366. package/contracts/product/Product.sol +90 -50
  367. package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
  368. package/contracts/product/RiskServiceManager.sol +39 -0
  369. package/contracts/registry/ChainNft.sol +65 -32
  370. package/contracts/registry/IRegistry.sol +65 -16
  371. package/contracts/registry/IRegistryService.sol +0 -9
  372. package/contracts/registry/Registry.sol +340 -211
  373. package/contracts/registry/RegistryAdmin.sol +172 -71
  374. package/contracts/registry/RegistryService.sol +59 -66
  375. package/contracts/registry/RegistryServiceManager.sol +4 -4
  376. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  377. package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +155 -182
  378. package/contracts/registry/ServiceAuthorizationV3.sol +7 -8
  379. package/contracts/registry/TokenRegistry.sol +2 -2
  380. package/contracts/shared/Component.sol +30 -43
  381. package/contracts/shared/ComponentService.sol +90 -28
  382. package/contracts/shared/ComponentServiceManager.sol +10 -7
  383. package/contracts/shared/ComponentVerifyingService.sol +2 -3
  384. package/contracts/shared/ContractLib.sol +38 -0
  385. package/contracts/shared/IComponent.sol +4 -4
  386. package/contracts/shared/IComponentService.sol +15 -9
  387. package/contracts/shared/IInstanceLinkedComponent.sol +9 -10
  388. package/contracts/shared/IKeyValueStore.sol +1 -0
  389. package/contracts/shared/ILifecycle.sol +1 -2
  390. package/contracts/shared/IPolicyHolder.sol +12 -22
  391. package/contracts/shared/IService.sol +1 -1
  392. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  393. package/contracts/shared/InstanceLinkedComponent.sol +26 -6
  394. package/contracts/shared/KeyValueStore.sol +6 -2
  395. package/contracts/shared/Lifecycle.sol +16 -69
  396. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  397. package/contracts/shared/NftOwnable.sol +7 -7
  398. package/contracts/shared/PolicyHolder.sol +17 -57
  399. package/contracts/shared/Registerable.sol +4 -4
  400. package/contracts/shared/RegistryLinked.sol +3 -2
  401. package/contracts/shared/Service.sol +19 -15
  402. package/contracts/shared/TokenHandler.sol +100 -19
  403. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  404. package/contracts/staking/IStaking.sol +3 -3
  405. package/contracts/staking/IStakingService.sol +12 -5
  406. package/contracts/staking/StakeManagerLib.sol +18 -25
  407. package/contracts/staking/Staking.sol +27 -42
  408. package/contracts/staking/StakingLifecycle.sol +23 -0
  409. package/contracts/staking/StakingManager.sol +10 -12
  410. package/contracts/staking/StakingReader.sol +12 -16
  411. package/contracts/staking/StakingService.sol +10 -14
  412. package/contracts/staking/StakingServiceManager.sol +4 -4
  413. package/contracts/staking/StakingStore.sol +15 -23
  414. package/contracts/staking/TargetManagerLib.sol +7 -3
  415. package/contracts/type/Amount.sol +12 -5
  416. package/contracts/type/Blocknumber.sol +7 -1
  417. package/contracts/type/ObjectType.sol +18 -18
  418. package/contracts/type/PayoutId.sol +10 -10
  419. package/contracts/type/Referral.sol +1 -0
  420. package/contracts/type/Seconds.sol +21 -1
  421. package/contracts/type/StateId.sol +1 -0
  422. package/contracts/type/Timestamp.sol +11 -1
  423. package/contracts/type/UFixed.sol +33 -10
  424. package/contracts/type/Version.sol +3 -1
  425. package/contracts/{shared → upgradeability}/ProxyManager.sol +70 -38
  426. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  427. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  428. package/package.json +3 -3
  429. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  430. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  431. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  432. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
  433. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  434. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  435. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  436. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  437. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  438. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  439. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1140
  440. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  441. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  442. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  443. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  444. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  445. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  446. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  447. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  448. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  449. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  450. package/contracts/product/ProductServiceManager.sol +0 -42
  451. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -7,11 +7,11 @@ import {IRegistry} from "./IRegistry.sol";
7
7
  import {IService} from "../shared/IService.sol";
8
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";
14
+ import {TokenHandler} from "../shared/TokenHandler.sol";
15
15
  import {TokenRegistry} from "./TokenRegistry.sol";
16
16
  import {VersionPart} from "../type/Version.sol";
17
17
 
@@ -26,37 +26,33 @@ 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
35
31
  AccessAdmin
36
32
  {
37
- error ErrorRegistryAdminIsAlreadySetUp();
38
-
39
33
  string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
40
34
  string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
41
35
  string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
42
- string public constant RELEASE_MANAGER_ROLE_NAME = "ReleaseManagerRole";
36
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
37
+ string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
43
38
  string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
44
39
  string public constant STAKING_ROLE_NAME = "StakingRole";
45
40
 
46
- string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
41
+ string public constant REGISTRY_TARGET_NAME = "Registry";
42
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
47
43
  string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
48
44
  string public constant STAKING_TARGET_NAME = "Staking";
49
45
  string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
50
46
 
51
47
  uint8 public constant MAX_NUM_RELEASES = 99;
52
-
48
+ // TODO consider deleting this
53
49
  mapping(address service => VersionPart majorVersion) private _ServiceRelease;
54
50
 
55
- address private _releaseManager;
51
+ address internal _registry;
52
+ address private _releaseRegistry;
56
53
  address private _tokenRegistry;
57
54
  address private _staking;
58
55
  address private _stakingStore;
59
- bool private _setupCompleted;
60
56
 
61
57
  constructor() AccessAdmin() { }
62
58
 
@@ -66,12 +62,11 @@ contract RegistryAdmin is
66
62
  address gifManager
67
63
  )
68
64
  external
65
+ initializer
69
66
  onlyDeployer()
70
67
  {
71
- if (_setupCompleted) { revert ErrorRegistryAdminIsAlreadySetUp(); }
72
- else { _setupCompleted = true; }
73
-
74
- _releaseManager = registry.getReleaseManagerAddress();
68
+ _registry = address(registry);
69
+ _releaseRegistry = registry.getReleaseRegistryAddress();
75
70
  _tokenRegistry = registry.getTokenRegistryAddress();
76
71
  _staking = registry.getStakingAddress();
77
72
  _stakingStore = address(
@@ -83,7 +78,8 @@ contract RegistryAdmin is
83
78
  _setupGifAdminRole(gifAdmin);
84
79
  _setupGifManagerRole(gifManager);
85
80
 
86
- _setupReleaseManager();
81
+ _setupReleaseRegistry();
82
+ _setupRegistry();
87
83
  _setupStaking();
88
84
  }
89
85
 
@@ -93,15 +89,46 @@ contract RegistryAdmin is
93
89
  /// Permissioned function: Access is restricted to release manager.
94
90
  function authorizeService(
95
91
  IServiceAuthorization serviceAuthorization,
96
- IService service
92
+ IService service,
93
+ ObjectType serviceDomain,
94
+ VersionPart releaseVersion
97
95
  )
98
96
  external
99
97
  restricted()
100
98
  {
101
- _createServiceTargetAndRole(service);
102
- _authorizeServiceFunctions(serviceAuthorization, service);
99
+ _createServiceTargetAndRole(service, serviceDomain, releaseVersion);
100
+ _authorizeServiceFunctions(serviceAuthorization, service, serviceDomain, releaseVersion);
101
+ }
102
+
103
+ function grantServiceRole(
104
+ IService service,
105
+ ObjectType domain,
106
+ VersionPart version
107
+ )
108
+ external
109
+ restricted()
110
+ {
111
+ _grantRoleToAccount(
112
+ RoleIdLib.roleForTypeAndVersion(
113
+ domain,
114
+ version),
115
+ address(service));
103
116
  }
104
117
 
118
+ function revokeServiceRole(
119
+ IService service,
120
+ ObjectType domain,
121
+ VersionPart version
122
+ )
123
+ external
124
+ restricted()
125
+ {
126
+ _revokeRoleFromAccount(
127
+ RoleIdLib.roleForTypeAndVersion(
128
+ domain,
129
+ version),
130
+ address(service));
131
+ }
105
132
 
106
133
  function grantServiceRoleForAllVersions(IService service, ObjectType domain)
107
134
  external
@@ -112,14 +139,44 @@ contract RegistryAdmin is
112
139
  address(service));
113
140
  }
114
141
 
142
+ function revokeServiceRoleForAllVersions(IService service, ObjectType domain)
143
+ external
144
+ restricted()
145
+ {
146
+ _revokeRoleFromAccount(
147
+ RoleIdLib.roleForTypeAndAllVersions(domain),
148
+ address(service));
149
+ }
115
150
 
116
- function _createServiceTargetAndRole(IService service)
151
+ /*function transferAdmin(address to)
152
+ external
153
+ restricted // only with GIF_ADMIN_ROLE or nft owner
154
+ {
155
+ _accessManager.revoke(GIF_ADMIN_ROLE, );
156
+ _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
157
+ }*/
158
+
159
+ //--- view functions ----------------------------------------------------//
160
+
161
+ function getGifAdminRole() external view returns (RoleId) {
162
+ return GIF_ADMIN_ROLE();
163
+ }
164
+
165
+ function getGifManagerRole() external view returns (RoleId) {
166
+ return GIF_MANAGER_ROLE();
167
+ }
168
+
169
+ //--- private functions -------------------------------------------------//
170
+
171
+ function _createServiceTargetAndRole(
172
+ IService service,
173
+ ObjectType serviceDomain,
174
+ VersionPart releaseVersion
175
+ )
117
176
  private
118
177
  {
119
- ObjectType serviceDomain = service.getDomain();
120
178
  string memory baseName = ObjectTypeLib.toName(serviceDomain);
121
- VersionPart version = service.getVersion().toMajorPart();
122
- uint256 versionInt = version.toInt();
179
+ uint256 versionInt = releaseVersion.toInt();
123
180
 
124
181
  // create service target
125
182
  string memory serviceTargetName = ObjectTypeLib.toVersionedName(
@@ -134,7 +191,7 @@ contract RegistryAdmin is
134
191
  // create service role
135
192
  RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
136
193
  serviceDomain,
137
- version);
194
+ releaseVersion);
138
195
 
139
196
  _createRole(
140
197
  serviceRoleId,
@@ -155,15 +212,15 @@ contract RegistryAdmin is
155
212
 
156
213
  function _authorizeServiceFunctions(
157
214
  IServiceAuthorization serviceAuthorization,
158
- IService service
215
+ IService service,
216
+ ObjectType serviceDomain,
217
+ VersionPart releaseVersion
159
218
  )
160
219
  private
161
220
  {
162
- ObjectType serviceDomain = service.getDomain();
163
221
  ObjectType authorizedDomain;
164
222
  RoleId authorizedRoleId;
165
223
 
166
- VersionPart release = service.getVersion().toMajorPart();
167
224
  ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
168
225
 
169
226
  for (uint256 i = 0; i < authorizedDomains.length; i++) {
@@ -175,7 +232,7 @@ contract RegistryAdmin is
175
232
  } else {
176
233
  authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
177
234
  authorizedDomain,
178
- release);
235
+ releaseVersion);
179
236
  }
180
237
 
181
238
  // get authorized functions for authorized domain
@@ -190,27 +247,12 @@ contract RegistryAdmin is
190
247
  }
191
248
  }
192
249
 
193
- /*function transferAdmin(address to)
194
- external
195
- restricted // only with GIF_ADMIN_ROLE or nft owner
196
- {
197
- _accessManager.revoke(GIF_ADMIN_ROLE, );
198
- _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
199
- }*/
200
-
201
- //--- view functions ----------------------------------------------------//
202
-
203
- function getGifAdminRole() external view returns (RoleId) {
204
- return GIF_ADMIN_ROLE();
205
- }
206
-
207
- function getGifManagerRole() external view returns (RoleId) {
208
- return GIF_MANAGER_ROLE();
209
- }
250
+ //--- private initialization functions -------------------------------------------//
210
251
 
211
- //--- private functions -------------------------------------------------//
212
-
213
- function _setupGifAdminRole(address gifAdmin) private {
252
+ function _setupGifAdminRole(address gifAdmin)
253
+ private
254
+ onlyInitializing()
255
+ {
214
256
 
215
257
  _createRole(
216
258
  GIF_ADMIN_ROLE(),
@@ -220,17 +262,27 @@ contract RegistryAdmin is
220
262
  maxMemberCount: 2, // TODO decide on max member count
221
263
  name: GIF_ADMIN_ROLE_NAME}));
222
264
 
223
- // for ReleaseManager
265
+ // for Registry
224
266
  FunctionInfo[] memory functions;
225
- functions = new FunctionInfo[](2);
226
- functions[0] = toFunction(ReleaseManager.createNextRelease.selector, "createNextRelease");
227
- functions[1] = toFunction(ReleaseManager.activateNextRelease.selector, "activateNextRelease");
228
- _authorizeTargetFunctions(_releaseManager, GIF_ADMIN_ROLE(), functions);
267
+ functions = new FunctionInfo[](1);
268
+ functions[0] = toFunction(IRegistry.registerRegistry.selector, "registerRegistry");
269
+ _authorizeTargetFunctions(_registry, GIF_ADMIN_ROLE(), functions);
270
+
271
+ // for ReleaseRegistry
272
+ functions = new FunctionInfo[](4);
273
+ functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
274
+ functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
275
+ functions[2] = toFunction(ReleaseRegistry.pauseRelease.selector, "pauseRelease");
276
+ functions[3] = toFunction(ReleaseRegistry.unpauseRelease.selector, "unpauseRelease");
277
+ _authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
229
278
 
230
279
  _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
231
280
  }
232
281
 
233
- function _setupGifManagerRole(address gifManager) private {
282
+ function _setupGifManagerRole(address gifManager)
283
+ private
284
+ onlyInitializing()
285
+ {
234
286
 
235
287
  _createRole(
236
288
  GIF_MANAGER_ROLE(),
@@ -251,40 +303,81 @@ contract RegistryAdmin is
251
303
  functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
252
304
  _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
253
305
 
254
- // for ReleaseManager
306
+ // for ReleaseRegistry
255
307
  functions = new FunctionInfo[](2);
256
- functions[0] = toFunction(ReleaseManager.prepareNextRelease.selector, "prepareNextRelease");
257
- functions[1] = toFunction(ReleaseManager.registerService.selector, "registerService");
258
- _authorizeTargetFunctions(_releaseManager, GIF_MANAGER_ROLE(), functions);
308
+ functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
309
+ functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
310
+ _authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
259
311
 
260
312
  _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
261
313
  }
262
314
 
263
315
 
264
- function _setupReleaseManager() private {
316
+ function _setupReleaseRegistry()
317
+ private
318
+ onlyInitializing()
319
+ {
265
320
 
266
- _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME, true, false);
321
+ _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
267
322
 
268
- RoleId releaseManagerRoleId = RoleIdLib.roleForType(RELEASE());
323
+ RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
269
324
  _createRole(
270
- releaseManagerRoleId,
325
+ releaseRegistryRoleId,
271
326
  toRole({
272
327
  adminRoleId: ADMIN_ROLE(),
273
328
  roleType: RoleType.Contract,
274
329
  maxMemberCount: 1,
275
- name: RELEASE_MANAGER_ROLE_NAME}));
330
+ name: RELEASE_REGISTRY_ROLE_NAME}));
276
331
 
277
332
  FunctionInfo[] memory functions;
278
- functions = new FunctionInfo[](2);
333
+ functions = new FunctionInfo[](5);
279
334
  functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
280
335
  functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
281
- _authorizeTargetFunctions(address(this), releaseManagerRoleId, functions);
336
+ functions[2] = toFunction(RegistryAdmin.revokeServiceRoleForAllVersions.selector, "revokeServiceRoleForAllVersions");
337
+ functions[3] = toFunction(RegistryAdmin.grantServiceRole.selector, "grantServiceRole");
338
+ functions[4] = toFunction(RegistryAdmin.revokeServiceRole.selector, "revokeServiceRole");
339
+ _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
282
340
 
283
- _grantRoleToAccount(releaseManagerRoleId, _releaseManager);
341
+ _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
284
342
  }
285
343
 
286
344
 
287
- function _setupStaking() private {
345
+ function _setupRegistry()
346
+ internal
347
+ virtual
348
+ onlyInitializing()
349
+ {
350
+ _createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
351
+
352
+ // registry function authorization for registry service
353
+ RoleId registryServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(REGISTRY());
354
+ _createRole(
355
+ registryServiceRoleId,
356
+ toRole({
357
+ adminRoleId: ADMIN_ROLE(),
358
+ roleType: RoleType.Contract,
359
+ maxMemberCount: MAX_NUM_RELEASES,
360
+ name: REGISTRY_SERVICE_ROLE_NAME}));
361
+
362
+ // authorize registry service
363
+ FunctionInfo[] memory functions;
364
+ functions = new FunctionInfo[](2);
365
+ functions[0] = toFunction(IRegistry.register.selector, "register");
366
+ functions[1] = toFunction(IRegistry.registerWithCustomType.selector, "registerWithCustomType");
367
+ _authorizeTargetFunctions(_registry, registryServiceRoleId, functions);
368
+
369
+ // authorize release registry
370
+ RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
371
+ functions = new FunctionInfo[](1);
372
+ functions[0] = toFunction(IRegistry.registerService.selector, "registerService");
373
+ _authorizeTargetFunctions(_registry, releaseRegistryRoleId, functions);
374
+ }
375
+
376
+
377
+ function _setupStaking()
378
+ private
379
+ onlyInitializing()
380
+ {
288
381
  _createTarget(_staking, STAKING_TARGET_NAME, true, false);
289
382
  _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
290
383
 
@@ -357,7 +450,15 @@ contract RegistryAdmin is
357
450
  functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
358
451
  functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
359
452
  _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
360
-
453
+
361
454
  _grantRoleToAccount(stakingRoleId, _staking);
455
+
456
+ // grant token handler authorizations
457
+ IStaking staking = IStaking(_staking);
458
+ functions = new FunctionInfo[](2);
459
+ functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
460
+ functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
461
+
462
+ _authorizeTargetFunctions(address(staking.getTokenHandler()), stakingRoleId, functions);
362
463
  }
363
464
  }
@@ -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,
@@ -53,8 +39,8 @@ contract RegistryService is
53
39
  address initialAuthority
54
40
  ) = abi.decode(data, (address, address));
55
41
 
56
- initializeService(registryAddress, initialAuthority, owner);
57
- registerInterface(type(IRegistryService).interfaceId);
42
+ _initializeService(registryAddress, initialAuthority, owner);
43
+ _registerInterface(type(IRegistryService).interfaceId);
58
44
  }
59
45
 
60
46
 
@@ -89,21 +75,21 @@ contract RegistryService is
89
75
  instance.linkToRegisteredNftId(); // asume safe
90
76
  }
91
77
 
92
- function registerProduct(IComponent product, address owner)
93
- external
94
- restricted
95
- returns(
96
- IRegistry.ObjectInfo memory info
97
- )
98
- {
99
- // CAN revert if no ERC165 support -> will revert with empty message
100
- if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
101
- revert ErrorRegistryServiceNotProduct(address(product));
102
- }
103
-
104
- info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
105
- info.nftId = getRegistry().register(info);
106
- }
78
+ // function registerProduct(IComponent product, address owner)
79
+ // external
80
+ // restricted
81
+ // returns(
82
+ // IRegistry.ObjectInfo memory info
83
+ // )
84
+ // {
85
+ // // CAN revert if no ERC165 support -> will revert with empty message
86
+ // if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
87
+ // revert ErrorRegistryServiceNotProduct(address(product));
88
+ // }
89
+
90
+ // info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
91
+ // info.nftId = getRegistry().register(info);
92
+ // }
107
93
 
108
94
  function registerComponent(
109
95
  IComponent component,
@@ -125,35 +111,35 @@ contract RegistryService is
125
111
  info.nftId = getRegistry().register(info);
126
112
  }
127
113
 
128
- function registerPool(IComponent pool, address owner)
129
- external
130
- restricted
131
- returns(
132
- IRegistry.ObjectInfo memory info
133
- )
134
- {
135
- if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
136
- revert ErrorRegistryServiceNotPool(address(pool));
137
- }
138
-
139
- info = _getAndVerifyContractInfo(pool, POOL(), owner);
140
- info.nftId = getRegistry().register(info);
141
- }
142
-
143
- function registerDistribution(IComponent distribution, address owner)
144
- external
145
- restricted
146
- returns(
147
- IRegistry.ObjectInfo memory info
148
- )
149
- {
150
- if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
151
- revert ErrorRegistryServiceNotDistribution(address(distribution));
152
- }
153
-
154
- info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
155
- info.nftId = getRegistry().register(info);
156
- }
114
+ // function registerPool(IComponent pool, address owner)
115
+ // external
116
+ // restricted
117
+ // returns(
118
+ // IRegistry.ObjectInfo memory info
119
+ // )
120
+ // {
121
+ // if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
122
+ // revert ErrorRegistryServiceNotPool(address(pool));
123
+ // }
124
+
125
+ // info = _getAndVerifyContractInfo(pool, POOL(), owner);
126
+ // info.nftId = getRegistry().register(info);
127
+ // }
128
+
129
+ // function registerDistribution(IComponent distribution, address owner)
130
+ // external
131
+ // restricted
132
+ // returns(
133
+ // IRegistry.ObjectInfo memory info
134
+ // )
135
+ // {
136
+ // if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
137
+ // revert ErrorRegistryServiceNotDistribution(address(distribution));
138
+ // }
139
+
140
+ // info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
141
+ // info.nftId = getRegistry().register(info);
142
+ // }
157
143
 
158
144
  function registerDistributor(IRegistry.ObjectInfo memory info)
159
145
  external
@@ -254,8 +240,15 @@ contract RegistryService is
254
240
  revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
255
241
  }
256
242
 
257
- if(getRegistry().isRegistered(owner)) {
258
- revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
243
+ if(owner == msg.sender) {
244
+ revert ErrorRegistryServiceInvalidInitialOwner(owner);
245
+ }
246
+
247
+ if(getRegistry().isRegistered(owner)) {
248
+ ObjectType ownerType = getRegistry().getObjectInfo(owner).objectType;
249
+ if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
250
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
251
+ }
259
252
  }
260
253
  }
261
254
 
@@ -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
@@ -21,7 +21,6 @@ contract RegistryServiceManager is
21
21
  address registry, // used by implementation
22
22
  bytes32 salt
23
23
  )
24
- ProxyManager(registry)
25
24
  {
26
25
  if(authority == address(0)) {
27
26
  revert ErrorRegistryAccessManagerAuthorityZero();
@@ -33,7 +32,8 @@ contract RegistryServiceManager is
33
32
 
34
33
  RegistryService srv = new RegistryService{ salt: salt }();
35
34
  bytes memory data = abi.encode(registry, authority);
36
- IVersionable versionable = deployDetermenistic(
35
+ IVersionable versionable = initialize(
36
+ registry,
37
37
  address(srv),
38
38
  data,
39
39
  salt);
@@ -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
+ }