@etherisc/gif-next 0.0.2-f13c010-035 → 0.0.2-f13fd28-503

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 (462) 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 +106 -186
  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 +154 -108
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -53
  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 +50 -3
  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 +258 -290
  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 +137 -129
  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 +641 -310
  60. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  61. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  62. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -39
  64. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
  66. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/Instance.sol/Instance.json +163 -56
  68. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +362 -99
  70. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +140 -40
  72. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +550 -224
  74. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
  76. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
  78. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +410 -370
  80. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  81. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  82. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  83. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  84. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  87. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  89. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  91. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  92. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  93. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  98. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -154
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
  103. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +44 -58
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +58 -90
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +152 -33
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +127 -331
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -87
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  123. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +56 -136
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +164 -217
  128. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  129. package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
  130. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  132. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +302 -353
  134. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  135. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +93 -51
  136. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  137. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
  138. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
  140. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  141. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
  142. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  143. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
  144. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -179
  146. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +74 -64
  148. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  149. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
  150. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  152. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
  154. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  156. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  157. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +150 -144
  158. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
  160. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  161. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +211 -180
  162. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  163. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  164. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +76 -50
  166. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
  168. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
  170. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  171. package/artifacts/contracts/product/Product.sol/Product.json +163 -175
  172. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -73
  174. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -24
  176. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  178. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -2
  180. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  182. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  183. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  184. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  185. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/Registry.sol/Registry.json +88 -40
  187. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +262 -220
  189. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
  191. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
  193. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  194. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  195. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  197. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +318 -52
  199. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  201. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  203. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  204. package/artifacts/contracts/shared/Component.sol/Component.json +57 -75
  205. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  206. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +225 -439
  207. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +74 -64
  209. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  211. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
  213. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  219. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
  221. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +125 -282
  223. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
  225. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  226. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  227. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  231. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  234. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  235. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  236. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -89
  237. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  238. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  239. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  240. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  241. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  243. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  244. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  245. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  246. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  247. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  248. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  249. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  250. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  251. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  252. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +289 -112
  253. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  255. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  256. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +70 -30
  257. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  258. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +65 -83
  259. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  260. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +98 -3
  261. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  262. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +49 -33
  263. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  264. package/artifacts/contracts/staking/Staking.sol/Staking.json +145 -176
  265. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  266. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  267. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +62 -46
  269. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
  271. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +151 -49
  273. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +51 -25
  275. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
  277. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  278. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
  279. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  280. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
  282. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  285. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  287. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  289. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  291. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  292. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  293. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  295. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  296. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  297. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  299. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  301. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  303. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  305. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +62 -5
  307. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  309. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  312. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  314. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  318. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
  320. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  322. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  324. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  325. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  326. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
  327. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  328. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  329. package/contracts/accounting/AccountingService.sol +262 -0
  330. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  331. package/contracts/accounting/IAccountingService.sol +45 -0
  332. package/contracts/authorization/AccessAdmin.sol +177 -84
  333. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  334. package/contracts/authorization/Authorization.sol +277 -229
  335. package/contracts/authorization/IAccessAdmin.sol +13 -7
  336. package/contracts/authorization/IAuthorization.sol +15 -1
  337. package/contracts/distribution/BasicDistribution.sol +6 -6
  338. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  339. package/contracts/distribution/Distribution.sol +32 -30
  340. package/contracts/distribution/DistributionService.sol +36 -34
  341. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  342. package/contracts/distribution/IDistributionService.sol +5 -6
  343. package/contracts/examples/fire/FirePool.sol +22 -5
  344. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  345. package/contracts/examples/fire/FireProduct.sol +31 -8
  346. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  347. package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
  348. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  349. package/contracts/examples/unpermissioned/SimplePool.sol +33 -3
  350. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  351. package/contracts/examples/unpermissioned/SimpleProduct.sol +47 -21
  352. package/contracts/instance/BundleSet.sol +42 -38
  353. package/contracts/instance/IInstance.sol +13 -9
  354. package/contracts/instance/IInstanceService.sol +9 -9
  355. package/contracts/instance/Instance.sol +33 -18
  356. package/contracts/instance/InstanceAdmin.sol +247 -84
  357. package/contracts/instance/InstanceAuthorizationV3.sol +50 -31
  358. package/contracts/instance/InstanceReader.sol +162 -32
  359. package/contracts/instance/InstanceService.sol +73 -82
  360. package/contracts/instance/InstanceServiceManager.sol +1 -1
  361. package/contracts/instance/InstanceStore.sol +13 -2
  362. package/contracts/instance/RiskSet.sol +118 -0
  363. package/contracts/instance/base/ObjectCounter.sol +1 -2
  364. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  365. package/contracts/instance/base/ObjectSet.sol +31 -33
  366. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  367. package/contracts/instance/module/IComponents.sol +4 -4
  368. package/contracts/instance/module/IPolicy.sol +2 -1
  369. package/contracts/instance/module/IRisk.sol +3 -0
  370. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  371. package/contracts/oracle/Oracle.sol +1 -1
  372. package/contracts/oracle/OracleService.sol +92 -73
  373. package/contracts/oracle/OracleServiceManager.sol +1 -1
  374. package/contracts/pool/BasicPool.sol +24 -3
  375. package/contracts/pool/BasicPoolAuthorization.sol +27 -8
  376. package/contracts/pool/BundleService.sol +47 -145
  377. package/contracts/pool/BundleServiceManager.sol +1 -1
  378. package/contracts/pool/IBundleService.sol +15 -43
  379. package/contracts/pool/IPoolComponent.sol +1 -7
  380. package/contracts/pool/IPoolService.sol +58 -60
  381. package/contracts/pool/Pool.sol +106 -96
  382. package/contracts/pool/PoolLib.sol +216 -0
  383. package/contracts/pool/PoolService.sol +427 -214
  384. package/contracts/pool/PoolServiceManager.sol +1 -1
  385. package/contracts/product/ApplicationService.sol +15 -15
  386. package/contracts/product/ApplicationServiceManager.sol +1 -1
  387. package/contracts/product/BasicProduct.sol +9 -11
  388. package/contracts/product/BasicProductAuthorization.sol +24 -10
  389. package/contracts/product/ClaimService.sol +157 -137
  390. package/contracts/product/ClaimServiceManager.sol +1 -1
  391. package/contracts/product/IApplicationService.sol +5 -2
  392. package/contracts/product/IClaimService.sol +14 -2
  393. package/contracts/product/IPolicyService.sol +26 -11
  394. package/contracts/product/IProductComponent.sol +4 -1
  395. package/contracts/product/PolicyService.sol +277 -261
  396. package/contracts/product/PolicyServiceLib.sol +65 -0
  397. package/contracts/product/PolicyServiceManager.sol +1 -1
  398. package/contracts/product/PricingService.sol +23 -19
  399. package/contracts/product/PricingServiceManager.sol +3 -3
  400. package/contracts/product/Product.sol +62 -39
  401. package/contracts/product/RiskService.sol +74 -25
  402. package/contracts/product/RiskServiceManager.sol +1 -1
  403. package/contracts/registry/ChainNft.sol +4 -2
  404. package/contracts/registry/IRegistry.sol +10 -15
  405. package/contracts/registry/IRelease.sol +26 -0
  406. package/contracts/registry/Registry.sol +16 -3
  407. package/contracts/registry/RegistryAdmin.sol +132 -226
  408. package/contracts/registry/RegistryService.sol +3 -3
  409. package/contracts/registry/RegistryServiceManager.sol +1 -1
  410. package/contracts/registry/ReleaseAdmin.sol +245 -0
  411. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  412. package/contracts/registry/ReleaseRegistry.sol +129 -119
  413. package/contracts/registry/ServiceAuthorizationV3.sol +93 -40
  414. package/contracts/registry/TokenRegistry.sol +6 -8
  415. package/contracts/shared/Component.sol +61 -105
  416. package/contracts/shared/ComponentService.sol +301 -295
  417. package/contracts/shared/ComponentServiceManager.sol +1 -1
  418. package/contracts/shared/ComponentVerifyingService.sol +16 -14
  419. package/contracts/shared/ContractLib.sol +224 -9
  420. package/contracts/shared/IComponent.sol +4 -17
  421. package/contracts/shared/IComponentService.sol +16 -25
  422. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  423. package/contracts/shared/IRegisterable.sol +15 -4
  424. package/contracts/shared/IService.sol +3 -5
  425. package/contracts/shared/InstanceLinkedComponent.sol +4 -20
  426. package/contracts/shared/NftOwnable.sol +4 -4
  427. package/contracts/shared/PolicyHolder.sol +1 -1
  428. package/contracts/shared/Registerable.sol +44 -20
  429. package/contracts/shared/RegistryLinked.sol +7 -13
  430. package/contracts/shared/Service.sol +8 -27
  431. package/contracts/shared/TokenHandler.sol +263 -105
  432. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  433. package/contracts/staking/IStaking.sol +6 -9
  434. package/contracts/staking/IStakingService.sol +11 -1
  435. package/contracts/staking/StakeManagerLib.sol +63 -7
  436. package/contracts/staking/Staking.sol +72 -39
  437. package/contracts/staking/StakingReader.sol +1 -1
  438. package/contracts/staking/StakingService.sol +56 -14
  439. package/contracts/staking/StakingServiceManager.sol +5 -4
  440. package/contracts/type/Key32.sol +2 -2
  441. package/contracts/type/Key32Set.sol +62 -0
  442. package/contracts/type/NftId.sol +6 -0
  443. package/contracts/type/ObjectType.sol +48 -21
  444. package/contracts/type/RiskId.sol +23 -6
  445. package/contracts/type/RoleId.sol +24 -4
  446. package/contracts/type/Selector.sol +5 -0
  447. package/contracts/type/Timestamp.sol +0 -5
  448. package/contracts/type/UFixed.sol +9 -119
  449. package/contracts/type/Version.sol +15 -5
  450. package/contracts/upgradeability/ProxyManager.sol +1 -1
  451. package/package.json +3 -3
  452. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  453. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  454. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  455. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  456. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +0 -4
  457. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +0 -206
  458. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  459. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  460. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  461. package/contracts/instance/module/IAccess.sol +0 -46
  462. 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,18 +57,36 @@ 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();
74
+ }
75
+
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));
62
85
  }
63
86
 
87
+ function getInstance() public view returns (IInstance instance) {
88
+ return _instance;
89
+ }
64
90
 
65
91
  // module specific functions
66
92
 
@@ -102,10 +128,18 @@ contract InstanceReader {
102
128
  return _store.getState(toPremiumKey(policyNftId));
103
129
  }
104
130
 
131
+ function bundles(NftId poolNftId)
132
+ public
133
+ view
134
+ returns (uint256 bundleCount)
135
+ {
136
+ return _bundleSet.bundles(poolNftId);
137
+ }
138
+
105
139
  function activeBundles(NftId poolNftId)
106
140
  public
107
141
  view
108
- returns (uint256 bundles)
142
+ returns (uint256 bundleCount)
109
143
  {
110
144
  return _bundleSet.activeBundles(poolNftId);
111
145
  }
@@ -118,6 +152,14 @@ contract InstanceReader {
118
152
  return _bundleSet.getActiveBundleNftId(poolNftId, idx);
119
153
  }
120
154
 
155
+ function getBundleNftId(NftId poolNftId, uint256 idx)
156
+ public
157
+ view
158
+ returns (NftId bundleNftId)
159
+ {
160
+ return _bundleSet.getBundleNftId(poolNftId, idx);
161
+ }
162
+
121
163
  function getBundleState(NftId bundleNftId)
122
164
  public
123
165
  view
@@ -145,7 +187,7 @@ contract InstanceReader {
145
187
  function claims(NftId policyNftId)
146
188
  public
147
189
  view
148
- returns (uint16 claims)
190
+ returns (uint16 claimCount)
149
191
  {
150
192
  return getPolicyInfo(policyNftId).claimsCount;
151
193
  }
@@ -183,7 +225,7 @@ contract InstanceReader {
183
225
  function payouts(NftId policyNftId, ClaimId claimId)
184
226
  public
185
227
  view
186
- returns (uint24 payouts)
228
+ returns (uint24 payoutCount)
187
229
  {
188
230
  return getClaimInfo(policyNftId, claimId).payoutsCount;
189
231
  }
@@ -226,6 +268,38 @@ contract InstanceReader {
226
268
  return _store.getState(payoutId.toKey32(policyNftId));
227
269
  }
228
270
 
271
+ function risks(NftId productNftId)
272
+ public
273
+ view
274
+ returns (uint256 riskCount)
275
+ {
276
+ return _riskSet.risks(productNftId);
277
+ }
278
+
279
+ function getRiskId(NftId productNftId, uint256 idx)
280
+ public
281
+ view
282
+ returns (RiskId riskId)
283
+ {
284
+ return _riskSet.getRiskId(productNftId, idx);
285
+ }
286
+
287
+ function activeRisks(NftId productNftId)
288
+ public
289
+ view
290
+ returns (uint256 activeRiskCount)
291
+ {
292
+ return _riskSet.activeRisks(productNftId);
293
+ }
294
+
295
+ function getActiveRiskId(NftId productNftId, uint256 idx)
296
+ public
297
+ view
298
+ returns (RiskId riskId)
299
+ {
300
+ return _riskSet.getActiveRiskId(productNftId, idx);
301
+ }
302
+
229
303
  function getRiskInfo(RiskId riskId)
230
304
  public
231
305
  view
@@ -237,32 +311,68 @@ contract InstanceReader {
237
311
  }
238
312
  }
239
313
 
240
- function getWallet(NftId componentNftId)
314
+ function getRiskState(RiskId riskId)
315
+ public
316
+ view
317
+ returns (StateId stateId)
318
+ {
319
+ bytes memory data = _store.getData(riskId.toKey32());
320
+ return _store.getState(riskId.toKey32());
321
+ }
322
+
323
+ function policiesForRisk(RiskId riskId)
241
324
  public
242
325
  view
243
- returns (address tokenHandler)
326
+ returns (uint256 linkedPolicies)
244
327
  {
245
- bytes memory data = _store.getData(toComponentKey(componentNftId));
328
+ return _riskSet.linkedPolicies(riskId);
329
+ }
246
330
 
247
- if (data.length > 0) {
248
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
249
- return info.wallet;
331
+ function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
332
+ public
333
+ view
334
+ returns (NftId linkedPolicyNftId)
335
+ {
336
+ return _riskSet.getLinkedPolicyNftId(riskId, idx);
337
+ }
338
+
339
+
340
+ function getToken(NftId componentNftId)
341
+ public
342
+ view
343
+ returns (IERC20Metadata token)
344
+ {
345
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
346
+ if (address(tokenHandler) != address(0)) {
347
+ return tokenHandler.TOKEN();
348
+ }
349
+ }
350
+
351
+
352
+ function getWallet(NftId componentNftId)
353
+ public
354
+ view
355
+ returns (address wallet)
356
+ {
357
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
358
+ if (address(tokenHandler) != address(0)) {
359
+ return tokenHandler.getWallet();
250
360
  }
251
361
  }
252
362
 
363
+
253
364
  function getTokenHandler(NftId componentNftId)
254
365
  public
255
366
  view
256
- returns (address tokenHandler)
367
+ returns (TokenHandler tokenHandler)
257
368
  {
258
369
  bytes memory data = _store.getData(toComponentKey(componentNftId));
259
-
260
370
  if (data.length > 0) {
261
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
262
- return address(info.tokenHandler);
371
+ return abi.decode(data, (IComponents.ComponentInfo)).tokenHandler;
263
372
  }
264
373
  }
265
374
 
375
+
266
376
  function getBundleInfo(NftId bundleNftId)
267
377
  public
268
378
  view
@@ -330,6 +440,17 @@ contract InstanceReader {
330
440
  }
331
441
  }
332
442
 
443
+ function getFeeInfo(NftId productNftId)
444
+ public
445
+ view
446
+ returns (IComponents.FeeInfo memory feeInfo)
447
+ {
448
+ bytes memory data = _store.getData(toFeeKey(productNftId));
449
+ if (data.length > 0) {
450
+ return abi.decode(data, (IComponents.FeeInfo));
451
+ }
452
+ }
453
+
333
454
  function getPoolInfo(NftId poolNftId)
334
455
  public
335
456
  view
@@ -440,7 +561,7 @@ contract InstanceReader {
440
561
  }
441
562
 
442
563
 
443
- function isTargetLocked(address target) public view returns (bool) {
564
+ function isLocked(address target) public view returns (bool) {
444
565
  return _instance.getInstanceAdmin().isTargetLocked(target);
445
566
  }
446
567
 
@@ -476,15 +597,24 @@ contract InstanceReader {
476
597
  return productNftId.toKey32(PRODUCT());
477
598
  }
478
599
 
479
- // low level function
480
- function getInstance() external view returns (IInstance instance) {
481
- return _instance;
600
+ function toFeeKey(NftId productNftId) public pure returns (Key32) {
601
+ return productNftId.toKey32(FEE());
482
602
  }
483
603
 
604
+ // low level function
605
+
484
606
  function getInstanceStore() external view returns (IKeyValueStore store) {
485
607
  return _store;
486
608
  }
487
609
 
610
+ function getBundleSet() external view returns (BundleSet bundleSet) {
611
+ return _bundleSet;
612
+ }
613
+
614
+ function getRiskSet() external view returns (RiskSet riskSet) {
615
+ return _riskSet;
616
+ }
617
+
488
618
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
489
619
  return UFixedLib.toUFixed(value, exp);
490
620
  }
@@ -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
  }
@@ -17,7 +17,7 @@ contract InstanceServiceManager is ProxyManager {
17
17
  )
18
18
  {
19
19
  InstanceService svc = new InstanceService{salt: salt}();
20
- bytes memory data = abi.encode(registry, authority);
20
+ bytes memory data = abi.encode(authority, registry);
21
21
  IVersionable versionable = initialize(
22
22
  registry,
23
23
  address(svc),