@etherisc/gif-next 0.0.2-f18fb8b-243 → 0.0.2-f1f3b2c-994

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