@etherisc/gif-next 0.0.2-a2def05-550 → 0.0.2-a307d03-692

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 (503) hide show
  1. package/README.md +27 -6
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +203 -77
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +200 -16
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +142 -44
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +194 -214
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +132 -128
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +280 -171
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +146 -69
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +119 -110
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +148 -72
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +234 -166
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +175 -151
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +321 -183
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +778 -330
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +176 -57
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +229 -82
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +457 -143
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +781 -202
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +134 -157
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +110 -49
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +473 -342
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +151 -171
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
  108. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +113 -104
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +127 -123
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +156 -81
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +130 -45
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +146 -142
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +161 -262
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +114 -85
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -111
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +133 -135
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +279 -247
  133. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  134. package/artifacts/contracts/pool/Pool.sol/Pool.json +146 -153
  135. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +495 -390
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +168 -55
  141. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +135 -54
  143. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +106 -45
  145. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +260 -195
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +319 -148
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -72
  153. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +89 -9
  155. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +199 -21
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +244 -48
  159. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +105 -52
  161. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +246 -176
  163. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +55 -2
  165. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +377 -148
  167. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  169. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +153 -60
  171. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.json +185 -115
  173. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +123 -54
  175. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  176. package/artifacts/contracts/product/Product.sol/Product.json +256 -191
  177. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.json +117 -63
  179. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +115 -42
  181. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  183. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +117 -17
  185. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  187. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +161 -53
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +326 -259
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +112 -183
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +102 -37
  199. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  200. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  201. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  203. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +414 -250
  205. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  206. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  207. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  208. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  209. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  210. package/artifacts/contracts/shared/Component.sol/Component.json +105 -83
  211. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +375 -533
  213. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -81
  215. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +60 -2
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -65
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +301 -268
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +113 -104
  231. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  233. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  235. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  237. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -6
  239. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  241. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  244. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  245. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  246. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +126 -122
  247. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  248. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  249. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  250. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  251. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  252. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  253. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  254. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
  255. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  256. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -8
  257. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +152 -38
  259. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  260. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  261. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Service.sol/Service.json +60 -2
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  267. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  269. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  270. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +110 -101
  271. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  272. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +77 -16
  273. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +33 -33
  275. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  276. package/artifacts/contracts/staking/Staking.sol/Staking.json +192 -171
  277. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  279. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +127 -53
  281. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  283. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +125 -55
  285. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +107 -42
  287. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +171 -130
  289. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  290. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
  291. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  292. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  294. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  297. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  299. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  301. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  303. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  304. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  305. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  307. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  308. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  309. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  311. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  313. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  315. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  317. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  319. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  321. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  324. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  326. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  328. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  331. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  333. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  335. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  337. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  338. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +79 -27
  340. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  341. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  342. package/contracts/accounting/AccountingService.sol +262 -0
  343. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  344. package/contracts/accounting/IAccountingService.sol +45 -0
  345. package/contracts/authorization/AccessAdmin.sol +231 -131
  346. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  347. package/contracts/authorization/Authorization.sol +321 -201
  348. package/contracts/authorization/IAccess.sol +1 -0
  349. package/contracts/authorization/IAccessAdmin.sol +17 -10
  350. package/contracts/authorization/IAuthorization.sol +27 -7
  351. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  352. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  353. package/contracts/distribution/BasicDistribution.sol +15 -12
  354. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  355. package/contracts/distribution/Distribution.sol +41 -47
  356. package/contracts/distribution/DistributionService.sol +104 -82
  357. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  358. package/contracts/distribution/IDistributionComponent.sol +1 -1
  359. package/contracts/distribution/IDistributionService.sol +19 -19
  360. package/contracts/examples/fire/DamageLevel.sol +59 -0
  361. package/contracts/examples/fire/FirePool.sol +90 -0
  362. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  363. package/contracts/examples/fire/FireProduct.sol +438 -0
  364. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  365. package/contracts/examples/fire/FireUSD.sol +26 -0
  366. package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
  367. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  368. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
  369. package/contracts/examples/unpermissioned/SimplePool.sol +37 -7
  370. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  371. package/contracts/examples/unpermissioned/SimpleProduct.sol +49 -23
  372. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  373. package/contracts/instance/BundleSet.sol +42 -38
  374. package/contracts/instance/IInstance.sol +18 -10
  375. package/contracts/instance/IInstanceService.sol +9 -29
  376. package/contracts/instance/Instance.sol +62 -35
  377. package/contracts/instance/InstanceAdmin.sol +265 -101
  378. package/contracts/instance/InstanceAuthorizationV3.sol +57 -45
  379. package/contracts/instance/InstanceReader.sol +246 -39
  380. package/contracts/instance/InstanceService.sol +86 -149
  381. package/contracts/instance/InstanceServiceManager.sol +6 -7
  382. package/contracts/instance/InstanceStore.sol +13 -2
  383. package/contracts/instance/RiskSet.sol +118 -0
  384. package/contracts/instance/base/ObjectCounter.sol +1 -2
  385. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  386. package/contracts/instance/base/ObjectSet.sol +31 -33
  387. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  388. package/contracts/instance/module/IComponents.sol +13 -8
  389. package/contracts/instance/module/IDistribution.sol +2 -1
  390. package/contracts/instance/module/IPolicy.sol +4 -3
  391. package/contracts/instance/module/IRisk.sol +3 -0
  392. package/contracts/oracle/BasicOracle.sol +0 -1
  393. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  394. package/contracts/oracle/IOracleService.sol +2 -1
  395. package/contracts/oracle/Oracle.sol +5 -16
  396. package/contracts/oracle/OracleService.sol +111 -80
  397. package/contracts/oracle/OracleServiceManager.sol +6 -6
  398. package/contracts/pool/BasicPool.sol +33 -24
  399. package/contracts/pool/BasicPoolAuthorization.sol +27 -9
  400. package/contracts/pool/BundleService.sol +91 -134
  401. package/contracts/pool/BundleServiceManager.sol +6 -6
  402. package/contracts/pool/IBundleService.sol +15 -34
  403. package/contracts/pool/IPoolComponent.sol +19 -15
  404. package/contracts/pool/IPoolService.sol +70 -65
  405. package/contracts/pool/Pool.sol +136 -117
  406. package/contracts/pool/PoolLib.sol +216 -0
  407. package/contracts/pool/PoolService.sol +484 -236
  408. package/contracts/pool/PoolServiceManager.sol +4 -4
  409. package/contracts/product/ApplicationService.sol +32 -21
  410. package/contracts/product/ApplicationServiceManager.sol +4 -4
  411. package/contracts/product/BasicProduct.sol +10 -12
  412. package/contracts/product/BasicProductAuthorization.sol +24 -11
  413. package/contracts/product/ClaimService.sol +300 -155
  414. package/contracts/product/ClaimServiceManager.sol +4 -4
  415. package/contracts/product/IApplicationService.sol +5 -2
  416. package/contracts/product/IClaimService.sol +17 -4
  417. package/contracts/product/IPolicyService.sol +33 -11
  418. package/contracts/product/IPricingService.sol +9 -9
  419. package/contracts/product/IProductComponent.sol +27 -4
  420. package/contracts/product/PolicyService.sol +343 -234
  421. package/contracts/product/PolicyServiceLib.sol +65 -0
  422. package/contracts/product/PolicyServiceManager.sol +4 -4
  423. package/contracts/product/PricingService.sol +31 -28
  424. package/contracts/product/PricingServiceManager.sol +4 -4
  425. package/contracts/product/Product.sol +125 -72
  426. package/contracts/product/RiskService.sol +75 -27
  427. package/contracts/product/RiskServiceManager.sol +4 -4
  428. package/contracts/registry/ChainNft.sol +10 -11
  429. package/contracts/registry/IRegistry.sol +16 -18
  430. package/contracts/registry/IRegistryService.sol +5 -12
  431. package/contracts/registry/IRelease.sol +26 -0
  432. package/contracts/registry/ITransferInterceptor.sol +1 -2
  433. package/contracts/registry/Registry.sol +36 -8
  434. package/contracts/registry/RegistryAdmin.sol +132 -242
  435. package/contracts/registry/RegistryService.sol +36 -47
  436. package/contracts/registry/RegistryServiceManager.sol +3 -3
  437. package/contracts/registry/ReleaseAdmin.sol +245 -0
  438. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  439. package/contracts/registry/ReleaseRegistry.sol +257 -237
  440. package/contracts/registry/ServiceAuthorizationV3.sol +177 -50
  441. package/contracts/registry/TokenRegistry.sol +6 -8
  442. package/contracts/shared/Component.sol +67 -109
  443. package/contracts/shared/ComponentService.sol +369 -386
  444. package/contracts/shared/ComponentServiceManager.sol +8 -5
  445. package/contracts/shared/ComponentVerifyingService.sol +27 -16
  446. package/contracts/shared/ContractLib.sol +253 -0
  447. package/contracts/shared/IComponent.sol +8 -17
  448. package/contracts/shared/IComponentService.sol +30 -38
  449. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  450. package/contracts/shared/ILifecycle.sol +3 -1
  451. package/contracts/shared/INftOwnable.sol +2 -0
  452. package/contracts/shared/IPolicyHolder.sol +12 -13
  453. package/contracts/shared/IRegisterable.sol +23 -1
  454. package/contracts/shared/IService.sol +3 -5
  455. package/contracts/shared/InstanceLinkedComponent.sol +69 -44
  456. package/contracts/shared/KeyValueStore.sol +1 -1
  457. package/contracts/shared/Lifecycle.sol +15 -4
  458. package/contracts/shared/NftOwnable.sol +26 -6
  459. package/contracts/shared/PolicyHolder.sol +12 -6
  460. package/contracts/shared/Registerable.sol +53 -19
  461. package/contracts/shared/RegistryLinked.sol +7 -13
  462. package/contracts/shared/Service.sol +13 -30
  463. package/contracts/shared/TokenHandler.sol +274 -72
  464. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  465. package/contracts/staking/IStaking.sol +5 -8
  466. package/contracts/staking/IStakingService.sol +8 -3
  467. package/contracts/staking/StakeManagerLib.sol +1 -1
  468. package/contracts/staking/Staking.sol +64 -36
  469. package/contracts/staking/StakingManager.sol +8 -6
  470. package/contracts/staking/StakingReader.sol +13 -6
  471. package/contracts/staking/StakingService.sol +45 -22
  472. package/contracts/staking/StakingServiceManager.sol +6 -5
  473. package/contracts/type/Amount.sol +15 -0
  474. package/contracts/type/ClaimId.sol +6 -1
  475. package/contracts/type/Key32.sol +2 -2
  476. package/contracts/type/Key32Set.sol +62 -0
  477. package/contracts/type/NftId.sol +7 -0
  478. package/contracts/type/ObjectType.sol +49 -21
  479. package/contracts/type/PayoutId.sol +10 -10
  480. package/contracts/type/RiskId.sol +35 -4
  481. package/contracts/type/RoleId.sol +23 -15
  482. package/contracts/type/Selector.sol +5 -0
  483. package/contracts/type/StateId.sol +14 -1
  484. package/contracts/type/Timestamp.sol +0 -5
  485. package/contracts/type/UFixed.sol +13 -119
  486. package/contracts/type/Version.sol +15 -5
  487. package/contracts/upgradeability/ProxyManager.sol +68 -34
  488. package/contracts/upgradeability/Versionable.sol +2 -2
  489. package/package.json +4 -3
  490. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  491. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  492. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  493. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  494. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  495. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  496. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  497. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  498. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  499. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  500. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  501. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  502. package/contracts/instance/module/IAccess.sol +0 -46
  503. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,37 +1,38 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
-
6
4
  import {Amount} from "../type/Amount.sol";
7
5
  import {BundleSet} from "./BundleSet.sol";
6
+ import {RiskSet} from "./RiskSet.sol";
7
+ import {COMPONENT, INSTANCE} from "../type/ObjectType.sol";
8
8
  import {IInstance} from "./IInstance.sol";
9
+ import {IComponentService} from "../shared/IComponentService.sol";
9
10
  import {IInstanceService} from "./IInstanceService.sol";
10
11
  import {InstanceReader} from "./InstanceReader.sol";
11
12
  import {InstanceAdmin} from "./InstanceAdmin.sol";
12
13
  import {InstanceStore} from "./InstanceStore.sol";
13
- import {INSTANCE} from "../type/ObjectType.sol";
14
14
  import {IRegistry} from "../registry/IRegistry.sol";
15
+ import {NftId} from "../type/NftId.sol";
15
16
  import {Registerable} from "../shared/Registerable.sol";
16
17
  import {RoleId} from "../type/RoleId.sol";
17
18
  import {Seconds} from "../type/Seconds.sol";
18
19
  import {UFixed} from "../type/UFixed.sol";
19
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
20
20
 
21
21
  contract Instance is
22
22
  IInstance,
23
- AccessManagedUpgradeable,
24
23
  Registerable
25
24
  {
26
- uint256 public constant GIF_MAJOR_VERSION = 3;
27
-
28
25
  bool private _initialized;
29
26
 
27
+ IComponentService internal _componentService;
30
28
  IInstanceService internal _instanceService;
29
+
31
30
  InstanceAdmin internal _instanceAdmin;
32
31
  InstanceReader internal _instanceReader;
33
- BundleSet internal _bundleManager;
32
+ BundleSet internal _bundleSet;
33
+ RiskSet internal _riskSet;
34
34
  InstanceStore internal _instanceStore;
35
+ NftId [] internal _products;
35
36
 
36
37
  modifier onlyChainNft() {
37
38
  if(msg.sender != getRegistry().getChainNftAddress()) {
@@ -43,7 +44,8 @@ contract Instance is
43
44
  function initialize(
44
45
  InstanceAdmin instanceAdmin,
45
46
  InstanceStore instanceStore,
46
- BundleSet bundleManager,
47
+ BundleSet bundleSet,
48
+ RiskSet riskSet,
47
49
  InstanceReader instanceReader,
48
50
  IRegistry registry,
49
51
  address initialOwner
@@ -51,17 +53,15 @@ contract Instance is
51
53
  external
52
54
  initializer()
53
55
  {
54
- _instanceAdmin = instanceAdmin;
55
- if(_instanceAdmin.authority() == address(0)) {
56
- // TODO rename error
56
+ if(address(instanceAdmin) == address(0)) {
57
57
  revert ErrorInstanceInstanceAdminZero();
58
58
  }
59
59
 
60
- // set authority to instance admin authority
61
- __AccessManaged_init(_instanceAdmin.authority());
60
+ _instanceAdmin = instanceAdmin;
62
61
 
63
62
  // setup instance object info
64
- _initializeRegisterable(
63
+ __Registerable_init(
64
+ instanceAdmin.authority(),
65
65
  address(registry),
66
66
  registry.getNftId(),
67
67
  INSTANCE(),
@@ -71,27 +71,45 @@ contract Instance is
71
71
 
72
72
  // store instance supporting contracts
73
73
  _instanceStore = instanceStore;
74
- _bundleManager = bundleManager;
74
+ _bundleSet = bundleSet;
75
+ _riskSet = riskSet;
75
76
  _instanceReader = instanceReader;
76
77
 
77
78
  // initialize instance supporting contracts
78
79
  _instanceStore.initialize();
79
- _bundleManager.initialize();
80
+ _bundleSet.initialize(instanceAdmin.authority(), address(registry));
81
+ _riskSet.initialize(instanceAdmin.authority(), address(registry));
80
82
  _instanceReader.initialize();
81
83
 
84
+ _componentService = IComponentService(
85
+ getRegistry().getServiceAddress(
86
+ COMPONENT(),
87
+ getRelease()));
88
+
82
89
  _instanceService = IInstanceService(
83
90
  getRegistry().getServiceAddress(
84
91
  INSTANCE(),
85
- getMajorVersion()));
92
+ getRelease()));
86
93
 
87
94
  _registerInterface(type(IInstance).interfaceId);
88
95
  }
89
96
 
97
+ //--- ProductRegistration ----------------------------------------------//
98
+
99
+ function registerProduct(address product)
100
+ external
101
+ onlyOwner()
102
+ returns (NftId productNftId)
103
+ {
104
+ // TODO consider verification on instance side
105
+ productNftId = _componentService.registerProduct(product);
106
+ _products.push(productNftId);
107
+ }
108
+
90
109
  //--- Staking ----------------------------------------------------------//
91
110
 
92
111
  function setStakingLockingPeriod(Seconds stakeLockingPeriod)
93
112
  external
94
- // TODO decide if onlyOwner or restricted to instance owner role is better
95
113
  onlyOwner()
96
114
  {
97
115
  _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
@@ -147,7 +165,7 @@ contract Instance is
147
165
  }
148
166
 
149
167
  //--- Targets ------------------------------------------------------------//
150
-
168
+ // TODO consider restricted()
151
169
  function createTarget(address target, string memory name)
152
170
  external
153
171
  onlyOwner()
@@ -168,23 +186,24 @@ contract Instance is
168
186
  // _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
169
187
  }
170
188
 
171
- function setTargetLocked(address target, bool locked)
189
+ function setLocked(address target, bool locked)
172
190
  external
173
191
  onlyOwner()
174
192
  {
175
- // TODO refactor
176
- // _instanceAdmin.setTargetLockedByInstance(target, locked);
193
+ _instanceAdmin.setTargetLocked(target, locked);
177
194
  }
178
195
 
179
- //--- ITransferInterceptor ----------------------------------------------//
180
-
181
- // TODO interception of child components nfts
182
- function nftMint(address to, uint256 tokenId) external onlyChainNft {
183
- // TODO refactor
184
- // _instanceAdmin.transferInstanceOwnerRole(address(0), to);
196
+ function setLockedFromService(address target, bool locked)
197
+ external
198
+ restricted()
199
+ {
200
+ // TODO service can not lock any of instance contracts
201
+ _instanceAdmin.setTargetLocked(target, locked);
185
202
  }
186
203
 
187
- function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
204
+ //--- ITransferInterceptor ----------------------------------------------//
205
+
206
+ function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external onlyChainNft {
188
207
  // TODO refactor
189
208
  // _instanceAdmin.transferInstanceOwnerRole(from, to);
190
209
  }
@@ -205,12 +224,24 @@ contract Instance is
205
224
 
206
225
  //--- external view functions -------------------------------------------//
207
226
 
227
+ function products() external view returns (uint256 productCount) {
228
+ return _products.length;
229
+ }
230
+
231
+ function getProductNftId(uint256 idx) external view returns (NftId productNftId) {
232
+ return _products[idx];
233
+ }
234
+
208
235
  function getInstanceReader() external view returns (InstanceReader) {
209
236
  return _instanceReader;
210
237
  }
211
238
 
212
239
  function getBundleSet() external view returns (BundleSet) {
213
- return _bundleManager;
240
+ return _bundleSet;
241
+ }
242
+
243
+ function getRiskSet() external view returns (RiskSet) {
244
+ return _riskSet;
214
245
  }
215
246
 
216
247
  function getInstanceAdmin() external view returns (InstanceAdmin) {
@@ -221,9 +252,5 @@ contract Instance is
221
252
  return _instanceStore;
222
253
  }
223
254
 
224
- function getMajorVersion() public pure returns (VersionPart majorVersion) {
225
- return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
226
- }
227
-
228
255
  //--- internal view/pure functions --------------------------------------//
229
256
  }
@@ -1,22 +1,20 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
-
6
- import {AccessAdmin} from "../authorization/AccessAdmin.sol";
7
- import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
8
- import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
4
+ import {IAccess} from "../authorization/IAccess.sol";
9
5
  import {IAuthorization} from "../authorization/IAuthorization.sol";
10
- import {IComponent} from "../shared/IComponent.sol";
11
- import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
6
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
12
7
  import {IRegistry} from "../registry/IRegistry.sol";
13
8
  import {IInstance} from "./IInstance.sol";
14
- import {IService} from "../shared/IService.sol";
15
- import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
16
- import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
9
+
10
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
11
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {ObjectType} from "../type/ObjectType.sol";
14
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
17
15
  import {Str, StrLib} from "../type/String.sol";
18
16
  import {TokenHandler} from "../shared/TokenHandler.sol";
19
- import {VersionPart} from "../type/Version.sol";
17
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
20
18
 
21
19
 
22
20
  contract InstanceAdmin is
@@ -26,143 +24,156 @@ contract InstanceAdmin is
26
24
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
27
25
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
28
26
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
+ string public constant RISK_SET_TAGET_NAME = "RiskSet";
29
28
 
30
29
  uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
31
30
 
31
+ error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
32
+ error ErrorInstanceAdminCallerNotInstance(address caller);
33
+ error ErrorInstanceAdminInstanceAlreadyLocked();
32
34
  error ErrorInstanceAdminNotRegistered(address target);
35
+
33
36
  error ErrorInstanceAdminAlreadyAuthorized(address target);
37
+ error ErrorInstanceAdminNotComponentRole(RoleId roleId);
38
+ error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
39
+ error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
40
+
34
41
  error ErrorInstanceAdminReleaseMismatch();
35
42
  error ErrorInstanceAdminExpectedTargetMissing(string targetName);
36
43
 
37
- IInstance _instance;
44
+ IInstance internal _instance;
38
45
  IRegistry internal _registry;
39
- uint64 _idNext;
46
+ uint64 internal _customIdNext;
47
+
48
+ mapping(address target => RoleId roleId) internal _targetRoleId;
49
+ uint64 internal _components;
40
50
 
41
- IModuleAuthorization _instanceAuthorization;
51
+ IAuthorization internal _instanceAuthorization;
52
+
53
+
54
+ modifier onlyInstanceOwner() {
55
+ if(msg.sender != _registry.ownerOf(address(_instance))) {
56
+ revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
57
+ }
58
+ _;
59
+ }
60
+
61
+ modifier onlyInstance() {
62
+ if(msg.sender != address(_instance)) {
63
+ revert ErrorInstanceAdminCallerNotInstance(msg.sender);
64
+ }
65
+ _;
66
+ }
42
67
 
43
68
  /// @dev Only used for master instance admin.
44
69
  /// Contracts created via constructor come with disabled initializers.
45
70
  constructor(
46
- IModuleAuthorization instanceAuthorization
47
- )
48
- AccessAdmin()
49
- {
50
- _instanceAuthorization = instanceAuthorization;
71
+ address instanceAuthorization
72
+ ) {
73
+ initialize(new AccessManagerCloneable());
74
+
75
+ _instanceAuthorization = IAuthorization(instanceAuthorization);
76
+
77
+ _disableInitializers();
51
78
  }
52
79
 
53
- /// @dev Initializes this instance admin with the provided instances authorization specification.
54
- /// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
55
- /// for the inststance authorizatios.
56
- /// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
80
+
57
81
  function initialize(
58
- AccessManagerCloneable accessManager,
59
- IModuleAuthorization instanceAuthorization
82
+ AccessManagerCloneable clonedAccessManager,
83
+ IRegistry registry,
84
+ VersionPart release
60
85
  )
61
86
  external
62
- initializer()
87
+ initializer()
63
88
  {
64
- // create new access manager for this instance admin
65
- _initializeAuthority(address(accessManager));
89
+ __AccessAdmin_init(clonedAccessManager);
66
90
 
67
- // create basic instance independent setup
68
- _createAdminAndPublicRoles();
69
-
70
- // store instance authorization specification
71
- _instanceAuthorization = IModuleAuthorization(instanceAuthorization);
72
- }
73
-
74
- function _checkTargetIsReadyForAuthorization(address target)
75
- internal
76
- view
77
- {
78
- if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
79
- revert ErrorInstanceAdminNotRegistered(target);
80
- }
91
+ clonedAccessManager.completeSetup(
92
+ address(registry),
93
+ release);
81
94
 
82
- if (targetExists(target)) {
83
- revert ErrorInstanceAdminAlreadyAuthorized(target);
84
- }
95
+ _registry = registry;
85
96
  }
86
97
 
87
- /// @dev Completes the initialization of this instance admin using the provided instance.
98
+ /// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
99
+ /// Important: Initialization of instance admin is only complete after calling this function.
88
100
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
89
- function initializeInstanceAuthorization(address instanceAddress)
101
+ function completeSetup(
102
+ address instance,
103
+ address authorization
104
+ )
90
105
  external
106
+ reinitializer(uint64(getRelease().toInt()))
107
+ onlyDeployer()
91
108
  {
92
- _checkTargetIsReadyForAuthorization(instanceAddress);
109
+ _components = 0;
110
+ _customIdNext = CUSTOM_ROLE_ID_MIN;
111
+ _instance = IInstance(instance);
112
+ _instanceAuthorization = IAuthorization(authorization);
93
113
 
94
- _idNext = CUSTOM_ROLE_ID_MIN;
95
- _instance = IInstance(instanceAddress);
96
- _registry = _instance.getRegistry();
114
+ _checkTargetIsReadyForAuthorization(instance);
97
115
 
98
116
  // check matching releases
99
- if (_instanceAuthorization.getRelease() != _instance.getMajorVersion()) {
117
+ if (_instanceAuthorization.getRelease() != getRelease()) {
100
118
  revert ErrorInstanceAdminReleaseMismatch();
101
119
  }
102
120
 
121
+ // create instance role and target
122
+ _setupInstance(instance);
123
+
103
124
  // add instance authorization
104
125
  _createRoles(_instanceAuthorization);
105
- _createModuleTargetsWithRoles();
106
- _createTargetAuthorizations(_instanceAuthorization);
107
126
 
108
- // grant component owner roles to instance owner
109
- _grantComponentOwnerRoles();
127
+ _setupInstanceHelperTargetsWithRoles();
128
+ _createTargetAuthorizations(_instanceAuthorization);
110
129
  }
111
130
 
112
131
 
113
132
  /// @dev Initializes the authorization for the specified component.
114
133
  /// Important: The component MUST be registered.
115
134
  function initializeComponentAuthorization(
116
- IComponent component,
117
- IAuthorization authorization
135
+ IInstanceLinkedComponent component
118
136
  )
119
137
  external
138
+ restricted()
120
139
  {
140
+ // TODO check componentInfo exists
141
+ // TODO deploy token handler here
142
+ // checks
121
143
  _checkTargetIsReadyForAuthorization(address(component));
122
144
 
123
- _createRoles(authorization);
145
+ // setup target and role for component (including token handler)
146
+ _setupComponentAndTokenHandler(component);
124
147
 
125
- // create component target
126
- _createTarget(
127
- address(component),
128
- authorization.getTargetName(),
129
- true, // checkAuthority
130
- false); // custom
148
+ // create other roles
149
+ IAuthorization authorization = component.getAuthorization();
131
150
 
132
- _createTarget(
133
- address(component.getTokenHandler()),
134
- string(abi.encodePacked(authorization.getTargetName(), "TH")),
135
- true,
136
- false);
137
-
138
- // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
139
- FunctionInfo[] memory functions = new FunctionInfo[](3);
140
- functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
141
- functions[1] = toFunction(TokenHandler.collectTokensToThreeRecipients.selector, "collectTokensToThreeRecipients");
142
- functions[2] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
143
-
144
- _authorizeTargetFunctions(
145
- address(component.getTokenHandler()),
146
- getPublicRole(),
147
- functions);
151
+ _createRoles(authorization);
148
152
 
149
- _grantRoleToAccount(
150
- authorization.getTargetRole(
151
- authorization.getTarget()),
152
- address(component));
153
-
154
153
  _createTargetAuthorizations(authorization);
155
154
  }
156
155
 
156
+ // create instance role and target
157
+ function _setupInstance(address instance) internal {
158
+ // create instance role
159
+ RoleId instanceRoleId = _instanceAuthorization.getTargetRole(
160
+ _instanceAuthorization.getMainTarget());
157
161
 
158
- function _grantComponentOwnerRoles()
159
- internal
160
- {
161
- address instanceOwner = _registry.ownerOf(_instance.getNftId());
162
- _grantRoleToAccount(DISTRIBUTION_OWNER_ROLE(), instanceOwner);
163
- _grantRoleToAccount(ORACLE_OWNER_ROLE(), instanceOwner);
164
- _grantRoleToAccount(POOL_OWNER_ROLE(), instanceOwner);
165
- _grantRoleToAccount(PRODUCT_OWNER_ROLE(), instanceOwner);
162
+ _createRole(
163
+ instanceRoleId,
164
+ _instanceAuthorization.getRoleInfo(instanceRoleId));
165
+
166
+ // create instance target
167
+ _createTarget(
168
+ instance,
169
+ _instanceAuthorization.getMainTargetName(),
170
+ true, // checkAuthority
171
+ false); // custom
172
+
173
+ // assign instance role to instance
174
+ _grantRoleToAccount(
175
+ instanceRoleId,
176
+ instance);
166
177
  }
167
178
 
168
179
  /// @dev Creates a custom role
@@ -184,32 +195,183 @@ contract InstanceAdmin is
184
195
  _grantRoleToAccount(roleId, account);
185
196
  }
186
197
 
198
+
199
+ function setInstanceLocked(bool locked)
200
+ external
201
+ onlyInstanceOwner()
202
+ {
203
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
204
+
205
+ if(accessManager.isLocked() == locked) {
206
+ revert ErrorInstanceAdminInstanceAlreadyLocked();
207
+ }
208
+ accessManager.setLocked(locked);
209
+ }
210
+
211
+ function setTargetLocked(address target, bool locked)
212
+ external
213
+ onlyInstance()
214
+ {
215
+ _setTargetClosed(target, locked);
216
+ }
217
+
218
+ /// @dev Returns the number of components that have been registered with this instance.
219
+ function components()
220
+ external
221
+ view
222
+ returns (uint64)
223
+ {
224
+ return _components;
225
+ }
226
+
187
227
  /// @dev Returns the instance authorization specification used to set up this instance admin.
188
228
  function getInstanceAuthorization()
189
229
  external
190
230
  view
191
- returns (IModuleAuthorization instanceAuthorizaion)
231
+ returns (IAuthorization instanceAuthorizaion)
192
232
  {
193
233
  return _instanceAuthorization;
194
234
  }
195
235
 
236
+ // ------------------- Internal functions ------------------- //
237
+
238
+ function _setupComponentAndTokenHandler(IInstanceLinkedComponent component)
239
+ internal
240
+ {
241
+
242
+ IAuthorization authorization = component.getAuthorization();
243
+ string memory targetName = authorization.getMainTargetName();
244
+
245
+ // create component role and target
246
+ RoleId componentRoleId = _createComponentRoleId(component, authorization);
247
+
248
+ // create component's target
249
+ _createTarget(
250
+ address(component),
251
+ targetName,
252
+ true, // checkAuthority
253
+ false); // custom
254
+
255
+ // create component's token handler target
256
+ NftId componentNftId = _registry.getNftIdForAddress(address(component));
257
+ address tokenHandler = address(
258
+ _instance.getInstanceReader().getComponentInfo(
259
+ componentNftId).tokenHandler);
260
+
261
+ _createTarget(
262
+ tokenHandler,
263
+ authorization.getTokenHandlerName(),
264
+ true,
265
+ false);
266
+
267
+ // assign component role to component
268
+ _grantRoleToAccount(
269
+ componentRoleId,
270
+ address(component));
271
+
272
+ // token handler does not require its own role
273
+ // token handler is not calling other components
274
+ }
275
+
276
+
277
+ function _createComponentRoleId(
278
+ IInstanceLinkedComponent component,
279
+ IAuthorization authorization
280
+ )
281
+ internal
282
+ returns (RoleId componentRoleId)
283
+ {
284
+ // checks
285
+ // check component is not yet authorized
286
+ if (_targetRoleId[address(component)].gtz()) {
287
+ revert ErrorInstanceAdminAlreadyAuthorized(address(component));
288
+ }
289
+
290
+ // check generic component role
291
+ RoleId genericComponentRoleId = authorization.getTargetRole(
292
+ authorization.getMainTarget());
293
+
294
+ if (!genericComponentRoleId.isComponentRole()) {
295
+ revert ErrorInstanceAdminNotComponentRole(genericComponentRoleId);
296
+ }
297
+
298
+ // check component role does not exist
299
+ componentRoleId = toComponentRole(
300
+ genericComponentRoleId,
301
+ _components);
302
+
303
+ if (roleExists(componentRoleId)) {
304
+ revert ErrorInstanceAdminRoleAlreadyExists(componentRoleId);
305
+ }
306
+
307
+ // check role info
308
+ IAccess.RoleInfo memory roleInfo = authorization.getRoleInfo(
309
+ genericComponentRoleId);
310
+
311
+ if (roleInfo.roleType != IAccess.RoleType.Contract) {
312
+ revert ErrorInstanceAdminRoleTypeNotContract(
313
+ componentRoleId,
314
+ roleInfo.roleType);
315
+ }
316
+
317
+ // effects
318
+ _targetRoleId[address(component)] = componentRoleId;
319
+ _components++;
320
+
321
+ _createRole(
322
+ componentRoleId,
323
+ roleInfo);
324
+ }
325
+
326
+
327
+ function _checkTargetIsReadyForAuthorization(address target)
328
+ internal
329
+ view
330
+ {
331
+ if (!_registry.isRegistered(target)) {
332
+ revert ErrorInstanceAdminNotRegistered(target);
333
+ }
334
+
335
+ if (targetExists(target)) {
336
+ revert ErrorInstanceAdminAlreadyAuthorized(target);
337
+ }
338
+ }
339
+
196
340
 
197
341
  function _createRoles(IAuthorization authorization)
198
342
  internal
199
343
  {
200
344
  RoleId[] memory roles = authorization.getRoles();
345
+ RoleId mainTargetRoleId = authorization.getTargetRole(
346
+ authorization.getMainTarget());
347
+
201
348
  RoleId roleId;
202
349
  RoleInfo memory roleInfo;
203
350
 
204
351
  for(uint256 i = 0; i < roles.length; i++) {
352
+
205
353
  roleId = roles[i];
206
- _createRole(
207
- roleId,
208
- authorization.getRoleInfo(roleId));
354
+
355
+ // skip main target role, create role if not exists
356
+ if (roleId != mainTargetRoleId && !roleExists(roleId)) {
357
+ _createRole(
358
+ roleId,
359
+ authorization.getRoleInfo(roleId));
360
+ }
209
361
  }
210
362
  }
211
363
 
212
364
 
365
+ function toComponentRole(RoleId roleId, uint64 componentIdx)
366
+ internal
367
+ pure
368
+ returns (RoleId)
369
+ {
370
+ return RoleIdLib.toRoleId(
371
+ RoleIdLib.toInt(roleId) + componentIdx);
372
+ }
373
+
374
+
213
375
  function _createTargetAuthorizations(IAuthorization authorization)
214
376
  internal
215
377
  {
@@ -250,7 +412,7 @@ contract InstanceAdmin is
250
412
  _createTarget(
251
413
  target,
252
414
  targetName,
253
- false, // check authority TODO check normal targets, don't check service targets (they share authority with registry admin)
415
+ false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
254
416
  false);
255
417
 
256
418
  // assign target role if defined
@@ -260,14 +422,16 @@ contract InstanceAdmin is
260
422
  }
261
423
  }
262
424
 
263
- function _createModuleTargetsWithRoles()
425
+ function _setupInstanceHelperTargetsWithRoles()
264
426
  internal
265
427
  {
428
+ // _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
429
+
266
430
  // create module targets
267
- _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
268
431
  _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
269
432
  _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
270
433
  _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
434
+ _checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
271
435
 
272
436
  // create targets for services that need to access the module targets
273
437
  ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();