@etherisc/gif-next 0.0.2-f13c010-035 → 0.0.2-f15b559-661

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 (467) 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 +148 -62
  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 +149 -21
  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 +82 -12
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +108 -188
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +244 -190
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +82 -56
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -73
  38. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +101 -164
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +152 -33
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +256 -296
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +139 -131
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +90 -126
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +638 -301
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  62. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  64. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -39
  66. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
  68. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/Instance.sol/Instance.json +163 -56
  70. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +375 -99
  72. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +140 -40
  74. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +586 -215
  76. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
  78. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
  80. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +412 -372
  82. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  84. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  86. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  87. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  89. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  91. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  93. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  95. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  100. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -154
  103. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
  105. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +44 -58
  108. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  110. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +58 -90
  112. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
  114. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
  116. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
  118. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +152 -33
  120. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +127 -331
  122. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -87
  124. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +56 -136
  126. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
  128. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +164 -217
  130. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  131. package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
  132. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  134. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +302 -353
  136. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +93 -51
  138. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
  140. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
  142. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
  144. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
  146. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -179
  148. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +74 -64
  150. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
  152. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  154. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
  156. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  158. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +150 -144
  160. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +37 -7
  162. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +211 -180
  164. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +76 -50
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
  172. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  173. package/artifacts/contracts/product/Product.sol/Product.json +163 -175
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.json +114 -77
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +62 -24
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -2
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  186. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  187. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/Registry.sol/Registry.json +88 -40
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +262 -220
  191. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
  193. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
  195. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  197. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  199. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +318 -52
  201. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  203. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  205. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  206. package/artifacts/contracts/shared/Component.sol/Component.json +57 -75
  207. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +225 -439
  209. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +74 -64
  211. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
  215. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +125 -282
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  228. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  233. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  236. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  238. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -89
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  240. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  241. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  243. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  245. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  247. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  249. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  251. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  253. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +289 -112
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  257. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +70 -30
  259. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +62 -80
  261. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
  263. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  264. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +33 -33
  265. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  266. package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -173
  267. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  269. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +58 -46
  271. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
  273. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +101 -49
  275. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +47 -25
  277. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
  279. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  280. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
  281. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  282. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
  284. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  287. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  289. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  291. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  293. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  294. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  295. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  297. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  298. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  299. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  301. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  303. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  305. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  307. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
  309. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  311. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  314. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  316. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  320. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
  322. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  324. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  326. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  327. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  328. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
  329. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  330. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  331. package/contracts/accounting/AccountingService.sol +262 -0
  332. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  333. package/contracts/accounting/IAccountingService.sol +45 -0
  334. package/contracts/authorization/AccessAdmin.sol +177 -84
  335. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  336. package/contracts/authorization/Authorization.sol +277 -229
  337. package/contracts/authorization/IAccessAdmin.sol +13 -7
  338. package/contracts/authorization/IAuthorization.sol +15 -1
  339. package/contracts/distribution/BasicDistribution.sol +13 -11
  340. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  341. package/contracts/distribution/Distribution.sol +42 -38
  342. package/contracts/distribution/DistributionService.sol +54 -51
  343. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  344. package/contracts/distribution/IDistributionService.sol +19 -19
  345. package/contracts/examples/fire/FirePool.sol +22 -5
  346. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  347. package/contracts/examples/fire/FireProduct.sol +32 -10
  348. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  349. package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
  350. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  351. package/contracts/examples/unpermissioned/SimplePool.sol +33 -3
  352. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  353. package/contracts/examples/unpermissioned/SimpleProduct.sol +51 -25
  354. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  355. package/contracts/instance/BundleSet.sol +42 -38
  356. package/contracts/instance/IInstance.sol +13 -9
  357. package/contracts/instance/IInstanceService.sol +9 -9
  358. package/contracts/instance/Instance.sol +33 -18
  359. package/contracts/instance/InstanceAdmin.sol +242 -84
  360. package/contracts/instance/InstanceAuthorizationV3.sol +50 -31
  361. package/contracts/instance/InstanceReader.sol +174 -32
  362. package/contracts/instance/InstanceService.sol +73 -82
  363. package/contracts/instance/InstanceServiceManager.sol +1 -1
  364. package/contracts/instance/InstanceStore.sol +13 -2
  365. package/contracts/instance/RiskSet.sol +118 -0
  366. package/contracts/instance/base/ObjectCounter.sol +1 -2
  367. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  368. package/contracts/instance/base/ObjectSet.sol +31 -33
  369. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  370. package/contracts/instance/module/IComponents.sol +4 -4
  371. package/contracts/instance/module/IDistribution.sol +2 -1
  372. package/contracts/instance/module/IPolicy.sol +2 -1
  373. package/contracts/instance/module/IRisk.sol +3 -0
  374. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  375. package/contracts/oracle/Oracle.sol +1 -1
  376. package/contracts/oracle/OracleService.sol +92 -73
  377. package/contracts/oracle/OracleServiceManager.sol +1 -1
  378. package/contracts/pool/BasicPool.sol +24 -3
  379. package/contracts/pool/BasicPoolAuthorization.sol +27 -8
  380. package/contracts/pool/BundleService.sol +47 -145
  381. package/contracts/pool/BundleServiceManager.sol +1 -1
  382. package/contracts/pool/IBundleService.sol +15 -43
  383. package/contracts/pool/IPoolComponent.sol +1 -7
  384. package/contracts/pool/IPoolService.sol +58 -60
  385. package/contracts/pool/Pool.sol +106 -96
  386. package/contracts/pool/PoolLib.sol +216 -0
  387. package/contracts/pool/PoolService.sol +427 -214
  388. package/contracts/pool/PoolServiceManager.sol +1 -1
  389. package/contracts/product/ApplicationService.sol +15 -15
  390. package/contracts/product/ApplicationServiceManager.sol +1 -1
  391. package/contracts/product/BasicProduct.sol +9 -11
  392. package/contracts/product/BasicProductAuthorization.sol +24 -10
  393. package/contracts/product/ClaimService.sol +157 -137
  394. package/contracts/product/ClaimServiceManager.sol +1 -1
  395. package/contracts/product/IApplicationService.sol +5 -2
  396. package/contracts/product/IClaimService.sol +14 -2
  397. package/contracts/product/IPolicyService.sol +26 -11
  398. package/contracts/product/IProductComponent.sol +4 -1
  399. package/contracts/product/IRiskService.sol +5 -8
  400. package/contracts/product/PolicyService.sol +244 -253
  401. package/contracts/product/PolicyServiceLib.sol +65 -0
  402. package/contracts/product/PolicyServiceManager.sol +1 -1
  403. package/contracts/product/PricingService.sol +23 -19
  404. package/contracts/product/PricingServiceManager.sol +3 -3
  405. package/contracts/product/Product.sol +66 -52
  406. package/contracts/product/RiskService.sol +79 -31
  407. package/contracts/product/RiskServiceManager.sol +1 -1
  408. package/contracts/registry/ChainNft.sol +4 -2
  409. package/contracts/registry/IRegistry.sol +10 -15
  410. package/contracts/registry/IRelease.sol +26 -0
  411. package/contracts/registry/Registry.sol +16 -3
  412. package/contracts/registry/RegistryAdmin.sol +132 -226
  413. package/contracts/registry/RegistryService.sol +3 -3
  414. package/contracts/registry/RegistryServiceManager.sol +1 -1
  415. package/contracts/registry/ReleaseAdmin.sol +245 -0
  416. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  417. package/contracts/registry/ReleaseRegistry.sol +129 -119
  418. package/contracts/registry/ServiceAuthorizationV3.sol +93 -40
  419. package/contracts/registry/TokenRegistry.sol +6 -8
  420. package/contracts/shared/Component.sol +61 -105
  421. package/contracts/shared/ComponentService.sol +301 -295
  422. package/contracts/shared/ComponentServiceManager.sol +1 -1
  423. package/contracts/shared/ComponentVerifyingService.sol +16 -14
  424. package/contracts/shared/ContractLib.sol +224 -9
  425. package/contracts/shared/IComponent.sol +4 -17
  426. package/contracts/shared/IComponentService.sol +16 -25
  427. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  428. package/contracts/shared/IRegisterable.sol +15 -4
  429. package/contracts/shared/IService.sol +3 -5
  430. package/contracts/shared/InstanceLinkedComponent.sol +4 -20
  431. package/contracts/shared/NftOwnable.sol +4 -4
  432. package/contracts/shared/PolicyHolder.sol +1 -1
  433. package/contracts/shared/Registerable.sol +44 -20
  434. package/contracts/shared/RegistryLinked.sol +7 -13
  435. package/contracts/shared/Service.sol +8 -27
  436. package/contracts/shared/TokenHandler.sol +263 -105
  437. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  438. package/contracts/staking/IStaking.sol +5 -8
  439. package/contracts/staking/IStakingService.sol +8 -0
  440. package/contracts/staking/StakeManagerLib.sol +1 -1
  441. package/contracts/staking/Staking.sol +62 -33
  442. package/contracts/staking/StakingReader.sol +1 -1
  443. package/contracts/staking/StakingService.sol +35 -12
  444. package/contracts/staking/StakingServiceManager.sol +5 -4
  445. package/contracts/type/Key32.sol +2 -2
  446. package/contracts/type/Key32Set.sol +62 -0
  447. package/contracts/type/NftId.sol +6 -0
  448. package/contracts/type/ObjectType.sol +48 -21
  449. package/contracts/type/RiskId.sol +26 -8
  450. package/contracts/type/RoleId.sol +24 -4
  451. package/contracts/type/Selector.sol +5 -0
  452. package/contracts/type/Timestamp.sol +0 -5
  453. package/contracts/type/UFixed.sol +9 -119
  454. package/contracts/type/Version.sol +15 -5
  455. package/contracts/upgradeability/ProxyManager.sol +1 -1
  456. package/package.json +3 -3
  457. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  458. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  459. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  460. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  461. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +0 -4
  462. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +0 -206
  463. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  464. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  465. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  466. package/contracts/instance/module/IAccess.sol +0 -46
  467. package/contracts/shared/ComponentServiceHelperLib.sol +0 -118
@@ -1,32 +1,37 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {IBundle} from "../instance/module/IBundle.sol";
7
+ import {IComponents} from "../instance/module/IComponents.sol";
8
+ import {IDistribution} from "../instance/module/IDistribution.sol";
9
+ import {IInstance} from "./IInstance.sol";
10
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
11
+ import {IOracle} from "../oracle/IOracle.sol";
12
+ import {IPolicy} from "../instance/module/IPolicy.sol";
13
+ import {IRegistry} from "../registry/IRegistry.sol";
14
+ import {IRisk} from "../instance/module/IRisk.sol";
15
+ import {TimestampLib} from "../type/Timestamp.sol";
16
+
4
17
  import {Amount} from "../type/Amount.sol";
18
+ import {BundleSet} from "./BundleSet.sol";
19
+ import {BUNDLE, COMPONENT, DISTRIBUTOR, DISTRIBUTION, FEE, PREMIUM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
5
20
  import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
6
21
  import {DistributorType} from "../type/DistributorType.sol";
22
+ import {InstanceStore} from "./InstanceStore.sol";
7
23
  import {Key32} from "../type/Key32.sol";
8
24
  import {NftId} from "../type/NftId.sol";
9
- import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
10
25
  import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
11
26
  import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
12
27
  import {RequestId} from "../type/RequestId.sol";
13
28
  import {RiskId} from "../type/RiskId.sol";
29
+ import {RiskSet} from "./RiskSet.sol";
14
30
  import {RoleId} from "../type/RoleId.sol";
15
31
  import {StateId} from "../type/StateId.sol";
32
+ import {TokenHandler} from "../shared/TokenHandler.sol";
16
33
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
17
34
 
18
- import {IBundle} from "../instance/module/IBundle.sol";
19
- import {IComponents} from "../instance/module/IComponents.sol";
20
- import {IDistribution} from "../instance/module/IDistribution.sol";
21
- import {IInstance} from "./IInstance.sol";
22
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
23
- import {IOracle} from "../oracle/IOracle.sol";
24
- import {IPolicy} from "../instance/module/IPolicy.sol";
25
- import {IRisk} from "../instance/module/IRisk.sol";
26
- import {TimestampLib} from "../type/Timestamp.sol";
27
-
28
- import {InstanceStore} from "./InstanceStore.sol";
29
- import {BundleSet} from "./BundleSet.sol";
30
35
 
31
36
 
32
37
  contract InstanceReader {
@@ -36,9 +41,12 @@ contract InstanceReader {
36
41
 
37
42
  bool private _initialized = false;
38
43
 
44
+ IRegistry internal _registry;
39
45
  IInstance internal _instance;
46
+
40
47
  InstanceStore internal _store;
41
48
  BundleSet internal _bundleSet;
49
+ RiskSet internal _riskSet;
42
50
 
43
51
  /// @dev This initializer needs to be called from the instance itself.
44
52
  function initialize() public {
@@ -49,19 +57,49 @@ contract InstanceReader {
49
57
  initializeWithInstance(msg.sender);
50
58
  }
51
59
 
52
- /// @dev This initializer needs to be called from the instance itself.
53
- function initializeWithInstance(address instanceAddress) public {
60
+ function initializeWithInstance(address instanceAddress)
61
+ public
62
+ {
54
63
  if(_initialized) {
55
64
  revert ErrorInstanceReaderAlreadyInitialized();
56
65
  }
57
66
 
58
67
  _initialized = true;
59
68
  _instance = IInstance(instanceAddress);
69
+ _registry = _instance.getRegistry();
70
+
60
71
  _store = _instance.getInstanceStore();
61
72
  _bundleSet = _instance.getBundleSet();
73
+ _riskSet = _instance.getRiskSet();
62
74
  }
63
75
 
64
76
 
77
+ // instance level functions
78
+
79
+ function getRegistry() public view returns (IRegistry registry) {
80
+ return _registry;
81
+ }
82
+
83
+ function getInstanceNftId() public view returns (NftId instanceNftid) {
84
+ return _registry.getNftIdForAddress(address(_instance));
85
+ }
86
+
87
+ function getInstance() public view returns (IInstance instance) {
88
+ return _instance;
89
+ }
90
+
91
+ function components() public view returns (uint256 componentCount) {
92
+ return _instance.getInstanceAdmin().components();
93
+ }
94
+
95
+ function products() public view returns (uint256 productCount) {
96
+ return _instance.products();
97
+ }
98
+
99
+ function getProductNftId(uint256 idx) public view returns (NftId productNftId) {
100
+ return _instance.getProductNftId(idx);
101
+ }
102
+
65
103
  // module specific functions
66
104
 
67
105
  function getPolicyInfo(NftId policyNftId)
@@ -102,10 +140,18 @@ contract InstanceReader {
102
140
  return _store.getState(toPremiumKey(policyNftId));
103
141
  }
104
142
 
143
+ function bundles(NftId poolNftId)
144
+ public
145
+ view
146
+ returns (uint256 bundleCount)
147
+ {
148
+ return _bundleSet.bundles(poolNftId);
149
+ }
150
+
105
151
  function activeBundles(NftId poolNftId)
106
152
  public
107
153
  view
108
- returns (uint256 bundles)
154
+ returns (uint256 bundleCount)
109
155
  {
110
156
  return _bundleSet.activeBundles(poolNftId);
111
157
  }
@@ -118,6 +164,14 @@ contract InstanceReader {
118
164
  return _bundleSet.getActiveBundleNftId(poolNftId, idx);
119
165
  }
120
166
 
167
+ function getBundleNftId(NftId poolNftId, uint256 idx)
168
+ public
169
+ view
170
+ returns (NftId bundleNftId)
171
+ {
172
+ return _bundleSet.getBundleNftId(poolNftId, idx);
173
+ }
174
+
121
175
  function getBundleState(NftId bundleNftId)
122
176
  public
123
177
  view
@@ -145,7 +199,7 @@ contract InstanceReader {
145
199
  function claims(NftId policyNftId)
146
200
  public
147
201
  view
148
- returns (uint16 claims)
202
+ returns (uint16 claimCount)
149
203
  {
150
204
  return getPolicyInfo(policyNftId).claimsCount;
151
205
  }
@@ -183,7 +237,7 @@ contract InstanceReader {
183
237
  function payouts(NftId policyNftId, ClaimId claimId)
184
238
  public
185
239
  view
186
- returns (uint24 payouts)
240
+ returns (uint24 payoutCount)
187
241
  {
188
242
  return getClaimInfo(policyNftId, claimId).payoutsCount;
189
243
  }
@@ -226,6 +280,38 @@ contract InstanceReader {
226
280
  return _store.getState(payoutId.toKey32(policyNftId));
227
281
  }
228
282
 
283
+ function risks(NftId productNftId)
284
+ public
285
+ view
286
+ returns (uint256 riskCount)
287
+ {
288
+ return _riskSet.risks(productNftId);
289
+ }
290
+
291
+ function getRiskId(NftId productNftId, uint256 idx)
292
+ public
293
+ view
294
+ returns (RiskId riskId)
295
+ {
296
+ return _riskSet.getRiskId(productNftId, idx);
297
+ }
298
+
299
+ function activeRisks(NftId productNftId)
300
+ public
301
+ view
302
+ returns (uint256 activeRiskCount)
303
+ {
304
+ return _riskSet.activeRisks(productNftId);
305
+ }
306
+
307
+ function getActiveRiskId(NftId productNftId, uint256 idx)
308
+ public
309
+ view
310
+ returns (RiskId riskId)
311
+ {
312
+ return _riskSet.getActiveRiskId(productNftId, idx);
313
+ }
314
+
229
315
  function getRiskInfo(RiskId riskId)
230
316
  public
231
317
  view
@@ -237,32 +323,68 @@ contract InstanceReader {
237
323
  }
238
324
  }
239
325
 
240
- function getWallet(NftId componentNftId)
326
+ function getRiskState(RiskId riskId)
327
+ public
328
+ view
329
+ returns (StateId stateId)
330
+ {
331
+ bytes memory data = _store.getData(riskId.toKey32());
332
+ return _store.getState(riskId.toKey32());
333
+ }
334
+
335
+ function policiesForRisk(RiskId riskId)
241
336
  public
242
337
  view
243
- returns (address tokenHandler)
338
+ returns (uint256 linkedPolicies)
244
339
  {
245
- bytes memory data = _store.getData(toComponentKey(componentNftId));
340
+ return _riskSet.linkedPolicies(riskId);
341
+ }
246
342
 
247
- if (data.length > 0) {
248
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
249
- return info.wallet;
343
+ function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
344
+ public
345
+ view
346
+ returns (NftId linkedPolicyNftId)
347
+ {
348
+ return _riskSet.getLinkedPolicyNftId(riskId, idx);
349
+ }
350
+
351
+
352
+ function getToken(NftId componentNftId)
353
+ public
354
+ view
355
+ returns (IERC20Metadata token)
356
+ {
357
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
358
+ if (address(tokenHandler) != address(0)) {
359
+ return tokenHandler.TOKEN();
250
360
  }
251
361
  }
252
362
 
363
+
364
+ function getWallet(NftId componentNftId)
365
+ public
366
+ view
367
+ returns (address wallet)
368
+ {
369
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
370
+ if (address(tokenHandler) != address(0)) {
371
+ return tokenHandler.getWallet();
372
+ }
373
+ }
374
+
375
+
253
376
  function getTokenHandler(NftId componentNftId)
254
377
  public
255
378
  view
256
- returns (address tokenHandler)
379
+ returns (TokenHandler tokenHandler)
257
380
  {
258
381
  bytes memory data = _store.getData(toComponentKey(componentNftId));
259
-
260
382
  if (data.length > 0) {
261
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
262
- return address(info.tokenHandler);
383
+ return abi.decode(data, (IComponents.ComponentInfo)).tokenHandler;
263
384
  }
264
385
  }
265
386
 
387
+
266
388
  function getBundleInfo(NftId bundleNftId)
267
389
  public
268
390
  view
@@ -330,6 +452,17 @@ contract InstanceReader {
330
452
  }
331
453
  }
332
454
 
455
+ function getFeeInfo(NftId productNftId)
456
+ public
457
+ view
458
+ returns (IComponents.FeeInfo memory feeInfo)
459
+ {
460
+ bytes memory data = _store.getData(toFeeKey(productNftId));
461
+ if (data.length > 0) {
462
+ return abi.decode(data, (IComponents.FeeInfo));
463
+ }
464
+ }
465
+
333
466
  function getPoolInfo(NftId poolNftId)
334
467
  public
335
468
  view
@@ -440,7 +573,7 @@ contract InstanceReader {
440
573
  }
441
574
 
442
575
 
443
- function isTargetLocked(address target) public view returns (bool) {
576
+ function isLocked(address target) public view returns (bool) {
444
577
  return _instance.getInstanceAdmin().isTargetLocked(target);
445
578
  }
446
579
 
@@ -476,15 +609,24 @@ contract InstanceReader {
476
609
  return productNftId.toKey32(PRODUCT());
477
610
  }
478
611
 
479
- // low level function
480
- function getInstance() external view returns (IInstance instance) {
481
- return _instance;
612
+ function toFeeKey(NftId productNftId) public pure returns (Key32) {
613
+ return productNftId.toKey32(FEE());
482
614
  }
483
615
 
616
+ // low level function
617
+
484
618
  function getInstanceStore() external view returns (IKeyValueStore store) {
485
619
  return _store;
486
620
  }
487
621
 
622
+ function getBundleSet() external view returns (BundleSet bundleSet) {
623
+ return _bundleSet;
624
+ }
625
+
626
+ function getRiskSet() external view returns (RiskSet riskSet) {
627
+ return _riskSet;
628
+ }
629
+
488
630
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
489
631
  return UFixedLib.toUFixed(value, exp);
490
632
  }
@@ -2,32 +2,26 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
- import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
5
 
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
7
7
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
8
8
  import {Amount} from "../type/Amount.sol";
9
9
  import {BundleSet} from "./BundleSet.sol";
10
+ import {RiskSet} from "./RiskSet.sol";
10
11
  import {ChainNft} from "../registry/ChainNft.sol";
11
12
  import {NftId} from "../type/NftId.sol";
12
13
  import {RoleId} from "../type/RoleId.sol";
13
- import {SecondsLib} from "../type/Seconds.sol";
14
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
15
- import {ADMIN_ROLE} from "../type/RoleId.sol";
16
- import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
15
+ import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
17
16
 
18
17
  import {Service} from "../shared/Service.sol";
19
- import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
20
- import {IService} from "../shared/IService.sol";
21
-
22
- import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
23
- import {IPoolComponent} from "../pool/IPoolComponent.sol";
24
- import {IProductComponent} from "../product/IProductComponent.sol";
25
18
 
26
19
  import {IRegistry} from "../registry/IRegistry.sol";
27
20
  import {IRegistryService} from "../registry/IRegistryService.sol";
28
21
  import {IStakingService} from "../staking/IStakingService.sol";
29
22
  import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
30
23
 
24
+ import {IComponentService} from "../shared/IComponentService.sol";
31
25
  import {Instance} from "./Instance.sol";
32
26
  import {IInstance} from "./IInstance.sol";
33
27
  import {InstanceAdmin} from "./InstanceAdmin.sol";
@@ -35,7 +29,7 @@ import {IInstanceService} from "./IInstanceService.sol";
35
29
  import {InstanceReader} from "./InstanceReader.sol";
36
30
  import {InstanceStore} from "./InstanceStore.sol";
37
31
  import {Seconds} from "../type/Seconds.sol";
38
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
32
+ import {VersionPart} from "../type/Version.sol";
39
33
 
40
34
 
41
35
  contract InstanceService is
@@ -48,12 +42,14 @@ contract InstanceService is
48
42
 
49
43
  IRegistryService internal _registryService;
50
44
  IStakingService internal _stakingService;
45
+ IComponentService internal _componentService;
51
46
 
52
47
  address internal _masterAccessManager;
53
48
  address internal _masterInstanceAdmin;
54
49
  address internal _masterInstance;
55
50
  address internal _masterInstanceReader;
56
51
  address internal _masterInstanceBundleSet;
52
+ address internal _masterInstanceRiskSet;
57
53
  address internal _masterInstanceStore;
58
54
 
59
55
 
@@ -85,6 +81,7 @@ contract InstanceService is
85
81
  _;
86
82
  }
87
83
 
84
+
88
85
  // TODO check component - service - instance version match
89
86
  modifier onlyComponent() {
90
87
  if (! getRegistry().isRegisteredComponent(msg.sender)) {
@@ -95,9 +92,10 @@ contract InstanceService is
95
92
 
96
93
  function createInstance()
97
94
  external
95
+ restricted()
98
96
  returns (
99
- Instance clonedInstance,
100
- NftId clonedInstanceNftId
97
+ IInstance instance,
98
+ NftId instanceNftId
101
99
  )
102
100
  {
103
101
  // tx sender will become instance owner
@@ -105,30 +103,35 @@ contract InstanceService is
105
103
 
106
104
  // create instance admin and instance
107
105
  InstanceAdmin instanceAdmin = _createInstanceAdmin();
108
- clonedInstance = _createInstance(instanceAdmin, instanceOwner);
106
+ instance = _createInstance(instanceAdmin, instanceOwner);
109
107
 
110
108
  // register cloned instance with registry
111
- clonedInstanceNftId = _registryService.registerInstance(
112
- clonedInstance, instanceOwner).nftId;
109
+ instanceNftId = _registryService.registerInstance(
110
+ instance, instanceOwner).nftId;
113
111
 
114
112
  // register cloned instance as staking target
115
113
  _stakingService.createInstanceTarget(
116
- clonedInstanceNftId,
114
+ instanceNftId,
117
115
  TargetManagerLib.getDefaultLockingPeriod(),
118
116
  TargetManagerLib.getDefaultRewardRate());
119
117
 
120
118
  // MUST be set after instance is set up and registered
121
- instanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
119
+ IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
120
+ VersionPart release = AccessManagerCloneable(authority()).getRelease();
121
+ instanceAdmin.completeSetup(
122
+ address(instance),
123
+ address(instanceAuthorization));
122
124
 
123
125
  emit LogInstanceCloned(
124
- clonedInstanceNftId,
125
- address(clonedInstance));
126
+ instanceNftId,
127
+ address(instance));
126
128
  }
127
129
 
128
130
 
129
131
  function setStakingLockingPeriod(Seconds stakeLockingPeriod)
130
132
  external
131
133
  virtual
134
+ restricted()
132
135
  onlyInstance()
133
136
  {
134
137
  NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
@@ -141,6 +144,7 @@ contract InstanceService is
141
144
  function setStakingRewardRate(UFixed rewardRate)
142
145
  external
143
146
  virtual
147
+ restricted()
144
148
  onlyInstance()
145
149
  {
146
150
  NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
@@ -153,6 +157,7 @@ contract InstanceService is
153
157
  function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
154
158
  external
155
159
  virtual
160
+ restricted()
156
161
  onlyInstance()
157
162
  {
158
163
  NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
@@ -166,6 +171,7 @@ contract InstanceService is
166
171
  function withdrawStakingRewardReserves(Amount dipAmount)
167
172
  external
168
173
  virtual
174
+ restricted()
169
175
  onlyInstance()
170
176
  returns (Amount newBalance)
171
177
  {
@@ -175,46 +181,31 @@ contract InstanceService is
175
181
  dipAmount);
176
182
  }
177
183
 
178
-
179
- function setComponentLocked(bool locked)
180
- external
181
- virtual
182
- onlyComponent()
184
+ function upgradeInstanceReader(NftId instanceNftId)
185
+ external
186
+ nonReentrant()
187
+ restricted()
188
+ onlyInstanceOwner(instanceNftId)
189
+ onlyNftOfType(instanceNftId, INSTANCE())
183
190
  {
184
- // checks
185
- address componentAddress = msg.sender;
186
-
187
- if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
188
- revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
189
- }
190
-
191
191
  IRegistry registry = getRegistry();
192
- NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
193
-
194
- IInstance instance = IInstance(
195
- registry.getObjectAddress(instanceNftId));
196
-
197
- // no revert in case already locked
198
- // TODO refactor/implement
199
- // instance.getInstanceAdmin().setTargetLockedByService(
200
- // componentAddress,
201
- // locked);
202
- }
203
-
204
-
205
- function getMasterInstanceReader() external view returns (address) {
206
- return _masterInstanceReader;
192
+ IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
193
+ Instance instance = Instance(instanceInfo.objectAddress);
194
+
195
+ InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
196
+ upgradedInstanceReaderClone.initializeWithInstance(address(instance));
197
+ instance.setInstanceReader(upgradedInstanceReaderClone);
207
198
  }
208
199
 
209
200
  function setAndRegisterMasterInstance(address instanceAddress)
210
- external
211
- onlyOwner
212
- returns(NftId masterInstanceNftId)
201
+ external
202
+ onlyOwner()
203
+ returns(NftId masterInstanceNftId)
213
204
  {
214
205
  if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
215
206
  if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
216
207
  if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
217
-
208
+ if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
218
209
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
219
210
 
220
211
  IInstance instance = IInstance(instanceAddress);
@@ -223,28 +214,34 @@ contract InstanceService is
223
214
  address instanceAdminAddress = address(instanceAdmin);
224
215
  InstanceReader instanceReader = instance.getInstanceReader();
225
216
  address instanceReaderAddress = address(instanceReader);
226
- BundleSet bundleManager = instance.getBundleSet();
227
- address bundleManagerAddress = address(bundleManager);
217
+ BundleSet bundleSet = instance.getBundleSet();
218
+ address bundleSetAddress = address(bundleSet);
219
+ RiskSet riskSet = instance.getRiskSet();
220
+ address riskSetAddress = address(riskSet);
228
221
  InstanceStore instanceStore = instance.getInstanceStore();
229
222
  address instanceStoreAddress = address(instanceStore);
230
223
 
231
224
  if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
232
225
  if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
233
226
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
234
- if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
227
+ if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
228
+ if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
235
229
  if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
236
230
 
237
231
  if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
238
- if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
232
+ if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
233
+ if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
239
234
  if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
240
- if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
235
+ if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
236
+ if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
241
237
  if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
242
238
 
243
239
  _masterAccessManager = accessManagerAddress;
244
240
  _masterInstanceAdmin = instanceAdminAddress;
245
241
  _masterInstance = instanceAddress;
246
242
  _masterInstanceReader = instanceReaderAddress;
247
- _masterInstanceBundleSet = bundleManagerAddress;
243
+ _masterInstanceBundleSet = bundleSetAddress;
244
+ _masterInstanceRiskSet = riskSetAddress;
248
245
  _masterInstanceStore = instanceStoreAddress;
249
246
 
250
247
  IInstance masterInstance = IInstance(_masterInstance);
@@ -252,7 +249,10 @@ contract InstanceService is
252
249
  masterInstanceNftId = info.nftId;
253
250
  }
254
251
 
255
- function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
252
+ function upgradeMasterInstanceReader(address instanceReaderAddress)
253
+ external
254
+ onlyOwner
255
+ {
256
256
  if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
257
257
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
258
258
  if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
@@ -263,18 +263,8 @@ contract InstanceService is
263
263
  _masterInstanceReader = instanceReaderAddress;
264
264
  }
265
265
 
266
- function upgradeInstanceReader(NftId instanceNftId)
267
- external
268
- onlyInstanceOwner(instanceNftId)
269
- onlyNftOfType(instanceNftId, INSTANCE())
270
- {
271
- IRegistry registry = getRegistry();
272
- IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
273
- Instance instance = Instance(instanceInfo.objectAddress);
274
-
275
- InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
276
- upgradedInstanceReaderClone.initializeWithInstance(address(instance));
277
- instance.setInstanceReader(upgradedInstanceReaderClone);
266
+ function getMasterInstanceReader() external view returns (address) {
267
+ return _masterInstanceReader;
278
268
  }
279
269
 
280
270
  /// @dev create new cloned instance admin
@@ -285,19 +275,16 @@ contract InstanceService is
285
275
  returns (InstanceAdmin clonedInstanceAdmin)
286
276
  {
287
277
  // start with setting up a new OZ access manager
278
+ // TODO consider _masterInstanceAdmin.authority() instead of _masterAccessManager
288
279
  AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
289
280
  Clones.clone(_masterAccessManager));
290
281
 
291
282
  // set up the instance admin
292
283
  clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
293
- clonedAccessManager.initialize(
294
- address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
295
-
296
- address authorization = address(
297
- InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
298
284
  clonedInstanceAdmin.initialize(
299
285
  clonedAccessManager,
300
- authorization);
286
+ getRegistry(),
287
+ getRelease());
301
288
  }
302
289
 
303
290
 
@@ -309,21 +296,24 @@ contract InstanceService is
309
296
  )
310
297
  internal
311
298
  virtual
312
- returns (Instance clonedInstance)
299
+ returns (IInstance)
313
300
  {
314
301
  InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
315
302
  BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
303
+ RiskSet clonedRiskSet = RiskSet(Clones.clone(_masterInstanceRiskSet));
316
304
  InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
317
305
 
318
306
  // clone instance
319
- clonedInstance = Instance(Clones.clone(_masterInstance));
307
+ Instance clonedInstance = Instance(Clones.clone(_masterInstance));
320
308
  clonedInstance.initialize(
321
309
  instanceAdmin,
322
310
  clonedInstanceStore,
323
311
  clonedBundleSet,
312
+ clonedRiskSet,
324
313
  clonedInstanceReader,
325
314
  getRegistry(),
326
315
  instanceOwner);
316
+ return clonedInstance;
327
317
  }
328
318
 
329
319
 
@@ -366,14 +356,15 @@ contract InstanceService is
366
356
  initializer()
367
357
  {
368
358
  (
369
- address registryAddress,
370
- address authority
359
+ address authority,
360
+ address registry
371
361
  ) = abi.decode(data, (address, address));
372
362
 
373
- _initializeService(registryAddress, authority, owner);
363
+ __Service_init(authority, registry, owner);
374
364
 
375
365
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
376
366
  _stakingService = IStakingService(_getServiceAddress(STAKING()));
367
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
377
368
 
378
369
  _registerInterface(type(IInstanceService).interfaceId);
379
370
  }