@etherisc/gif-next 0.0.2-bb3faee-097 → 0.0.2-bb9ecaf-723

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 (345) hide show
  1. package/README.md +15 -320
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +2 -2
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +49 -29
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +201 -130
  9. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +845 -126
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +73 -46
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +105 -77
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +12 -2
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +12 -2
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +38 -32
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +8 -18
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +93 -54
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -10
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +2 -2
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +79 -59
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +0 -10
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +20 -30
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +93 -54
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +64 -74
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +93 -54
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +21 -31
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +93 -54
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +16 -26
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +24 -34
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +93 -54
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +25 -35
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +93 -54
  61. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  62. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +50 -228
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  65. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  66. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +23 -0
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +20 -0
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +70 -35
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +335 -284
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +82 -112
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +55 -175
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +40 -20
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +45 -25
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1362 -2115
  85. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  86. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  99. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +6 -16
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +87 -48
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +0 -10
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -10
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +54 -34
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +0 -10
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +93 -54
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +66 -46
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +0 -10
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +0 -10
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +2 -2
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +67 -47
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +48 -28
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +0 -10
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +93 -54
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +74 -74
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +71 -51
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  156. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +0 -10
  157. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +2 -2
  160. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  161. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  162. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +64 -44
  164. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  165. package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
  166. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +55 -35
  168. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  169. package/artifacts/contracts/product/Product.sol/Product.json +0 -10
  170. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  171. package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
  172. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +46 -26
  174. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  177. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  179. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +312 -217
  183. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  184. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +126 -63
  185. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  187. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  188. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +41 -21
  189. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +330 -211
  191. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +98 -86
  194. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +62 -40
  196. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  198. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  199. package/artifacts/contracts/shared/Component.sol/Component.json +0 -10
  200. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +28 -28
  202. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +65 -45
  204. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  205. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  206. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  210. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -10
  211. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  213. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +0 -10
  214. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  215. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  221. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +0 -10
  223. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  224. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  225. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  226. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  227. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  228. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  229. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  231. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  232. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  233. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  234. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  235. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  236. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  237. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  238. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  239. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  240. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -10
  241. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  242. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  243. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  244. package/artifacts/contracts/staking/Staking.sol/Staking.json +22 -48
  245. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
  247. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  248. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +50 -38
  249. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  250. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  251. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  252. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
  253. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  254. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +44 -24
  255. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  256. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +198 -166
  257. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  258. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
  259. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  260. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  261. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  262. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +21 -2
  265. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  271. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  288. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  289. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  290. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +22 -6
  291. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  292. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  293. package/contracts/authorization/AccessAdmin.sol +220 -321
  294. package/contracts/authorization/AccessAdminLib.sol +309 -27
  295. package/contracts/authorization/AccessManagerCloneable.sol +0 -18
  296. package/contracts/authorization/Authorization.sol +30 -9
  297. package/contracts/authorization/IAccess.sol +13 -14
  298. package/contracts/authorization/IAccessAdmin.sol +9 -11
  299. package/contracts/authorization/ServiceAuthorization.sol +10 -30
  300. package/contracts/distribution/BasicDistribution.sol +1 -2
  301. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  302. package/contracts/distribution/Distribution.sol +2 -4
  303. package/contracts/instance/BaseStore.sol +93 -0
  304. package/contracts/instance/IBaseStore.sol +37 -0
  305. package/contracts/instance/IInstance.sol +11 -0
  306. package/contracts/instance/IInstanceService.sol +2 -0
  307. package/contracts/instance/Instance.sol +18 -14
  308. package/contracts/instance/InstanceAdmin.sol +43 -119
  309. package/contracts/instance/InstanceAuthorizationV3.sol +49 -40
  310. package/contracts/instance/InstanceReader.sol +33 -59
  311. package/contracts/instance/InstanceService.sol +57 -43
  312. package/contracts/instance/InstanceStore.sol +153 -128
  313. package/contracts/instance/ProductStore.sol +290 -0
  314. package/contracts/instance/TargetNames.sol +10 -0
  315. package/contracts/instance/module/IComponents.sol +0 -2
  316. package/contracts/oracle/BasicOracle.sol +1 -2
  317. package/contracts/oracle/BasicOracleAuthorization.sol +1 -1
  318. package/contracts/oracle/Oracle.sol +2 -4
  319. package/contracts/pool/BasicPool.sol +1 -2
  320. package/contracts/pool/BasicPoolAuthorization.sol +1 -1
  321. package/contracts/pool/Pool.sol +2 -4
  322. package/contracts/product/ApplicationService.sol +2 -2
  323. package/contracts/product/BasicProduct.sol +1 -2
  324. package/contracts/product/BasicProductAuthorization.sol +1 -1
  325. package/contracts/product/ClaimService.sol +49 -53
  326. package/contracts/product/PolicyService.sol +9 -9
  327. package/contracts/product/Product.sol +2 -4
  328. package/contracts/product/RiskService.sol +3 -4
  329. package/contracts/registry/RegistryAdmin.sol +12 -30
  330. package/contracts/registry/RegistryAuthorization.sol +32 -31
  331. package/contracts/registry/ReleaseAdmin.sol +13 -9
  332. package/contracts/shared/Component.sol +2 -6
  333. package/contracts/shared/ComponentService.sol +22 -18
  334. package/contracts/shared/InstanceLinkedComponent.sol +2 -4
  335. package/contracts/staking/IStaking.sol +0 -1
  336. package/contracts/staking/Staking.sol +6 -6
  337. package/contracts/staking/StakingStore.sol +6 -0
  338. package/contracts/type/Blocknumber.sol +4 -9
  339. package/contracts/upgradeability/ProxyManager.sol +2 -2
  340. package/package.json +1 -1
  341. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  342. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  343. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  344. package/contracts/shared/IKeyValueStore.sol +0 -54
  345. package/contracts/shared/KeyValueStore.sol +0 -131
@@ -4,7 +4,8 @@ pragma solidity ^0.8.20;
4
4
  import {IAccess} from "../authorization/IAccess.sol";
5
5
  import {IServiceAuthorization} from "./IServiceAuthorization.sol";
6
6
 
7
- import {ADMIN_ROLE_NAME, PUBLIC_ROLE_NAME} from "./AccessAdmin.sol";
7
+ import {AccessAdminLib} from "./AccessAdminLib.sol";
8
+ import {BlocknumberLib} from "../type/Blocknumber.sol";
8
9
  import {InitializableERC165} from "../shared/InitializableERC165.sol";
9
10
  import {ObjectType, ObjectTypeLib, ALL} from "../type/ObjectType.sol";
10
11
  import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
@@ -87,8 +88,8 @@ contract ServiceAuthorization is
87
88
  _commitHash = commitHash;
88
89
 
89
90
  // setup of roles defined in OpenZeppelin AccessManager
90
- _addRole(ADMIN_ROLE(), _toRoleInfo(ADMIN_ROLE(), RoleType.Core, 1, ADMIN_ROLE_NAME()));
91
- _addRole(PUBLIC_ROLE(), _toRoleInfo(ADMIN_ROLE(), RoleType.Core, 1, PUBLIC_ROLE_NAME()));
91
+ _addRole(ADMIN_ROLE(), AccessAdminLib.adminRoleInfo());
92
+ _addRole(PUBLIC_ROLE(), AccessAdminLib.publicRoleInfo());
92
93
 
93
94
  // defines service domains relevant for the authorization
94
95
  _setupDomains();
@@ -163,7 +164,7 @@ contract ServiceAuthorization is
163
164
 
164
165
  /// @inheritdoc IServiceAuthorization
165
166
  function roleExists(RoleId roleId) public view returns(bool exists) {
166
- return _roleInfo[roleId].roleType != RoleType.Undefined;
167
+ return _roleInfo[roleId].targetType != TargetType.Undefined;
167
168
  }
168
169
 
169
170
  /// @inheritdoc IServiceAuthorization
@@ -238,7 +239,9 @@ contract ServiceAuthorization is
238
239
  if (roleId != RoleIdLib.zero()) {
239
240
  // add role if new
240
241
  if (!roleExists(roleId)) {
241
- _addContractRole(roleId, roleName);
242
+ _addRole(
243
+ roleId,
244
+ AccessAdminLib.serviceRoleInfo(roleName));
242
245
  }
243
246
 
244
247
  // link target to role
@@ -247,18 +250,6 @@ contract ServiceAuthorization is
247
250
  }
248
251
 
249
252
 
250
- /// @dev Add a contract role for the provided role id and name.
251
- function _addContractRole(RoleId roleId, string memory name) internal {
252
- _addRole(
253
- roleId,
254
- _toRoleInfo(
255
- ADMIN_ROLE(),
256
- RoleType.Contract,
257
- 1,
258
- name));
259
- }
260
-
261
-
262
253
  /// @dev Use this method to to add an authorized role.
263
254
  function _addRole(RoleId roleId, RoleInfo memory info) internal {
264
255
  _roles.push(roleId);
@@ -266,18 +257,6 @@ contract ServiceAuthorization is
266
257
  }
267
258
 
268
259
 
269
- /// @dev creates a role info object from the provided parameters
270
- function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
271
- return RoleInfo({
272
- name: StrLib.toStr(name),
273
- adminRoleId: adminRoleId,
274
- roleType: roleType,
275
- maxMemberCount: maxMemberCount,
276
- createdAt: TimestampLib.current(),
277
- pausedAt: TimestampLib.max()});
278
- }
279
-
280
-
281
260
  /// @dev Use this method to authorize the specified domain to access the service domain.
282
261
  function _authorizeForService(
283
262
  ObjectType serviceDomain,
@@ -315,6 +294,7 @@ contract ServiceAuthorization is
315
294
  IAccess.FunctionInfo({
316
295
  selector: SelectorLib.toSelector(selector),
317
296
  name: StrLib.toStr(name),
318
- createdAt: TimestampLib.current()}));
297
+ createdAt: TimestampLib.current(),
298
+ lastUpdateIn: BlocknumberLib.current()}));
319
299
  }
320
300
  }
@@ -135,7 +135,6 @@ contract BasicDistribution is
135
135
  authorization,
136
136
  false,
137
137
  initialOwner,
138
- name,
139
- ""); // component specifc data
138
+ name);
140
139
  }
141
140
  }
@@ -22,7 +22,7 @@ contract BasicDistributionAuthorization
22
22
  DISTRIBUTION(),
23
23
  3,
24
24
  COMMIT_HASH,
25
- true,
25
+ TargetType.Component,
26
26
  true)
27
27
  {}
28
28
 
@@ -109,8 +109,7 @@ abstract contract Distribution is
109
109
  IAuthorization authorization,
110
110
  bool isInterceptor,
111
111
  address initialOwner,
112
- string memory name,
113
- bytes memory componentData // component specifidc data
112
+ string memory name
114
113
  )
115
114
  internal
116
115
  virtual
@@ -123,8 +122,7 @@ abstract contract Distribution is
123
122
  DISTRIBUTION(),
124
123
  authorization,
125
124
  isInterceptor,
126
- initialOwner,
127
- componentData);
125
+ initialOwner);
128
126
 
129
127
  DistributionStorage storage $ = _getDistributionStorage();
130
128
  $._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
@@ -0,0 +1,93 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IBaseStore} from "./IBaseStore.sol";
5
+
6
+ import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
7
+ import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
+ import {StateId, KEEP_STATE} from "../type/StateId.sol";
10
+ import {Lifecycle} from "../shared/Lifecycle.sol";
11
+
12
+ abstract contract BaseStore is
13
+ Lifecycle,
14
+ IBaseStore
15
+ {
16
+
17
+ mapping(Key32 key32 => IBaseStore.Metadata metadata) private _metadata;
18
+
19
+ function _createMetadata(
20
+ Key32 key32
21
+ )
22
+ internal
23
+ {
24
+ ObjectType objectType = key32.toObjectType();
25
+ if (objectType.eqz()) {
26
+ revert ErrorBaseStoreTypeUndefined(objectType);
27
+ }
28
+
29
+ Metadata storage metadata = _metadata[key32];
30
+ if (metadata.updatedIn.gtz()) {
31
+ revert ErrorBaseStoreAlreadyCreated(key32, objectType);
32
+ }
33
+
34
+ if(!hasLifecycle(objectType)) {
35
+ revert ErrorBaseStoreNoLifecycle(objectType);
36
+ }
37
+
38
+ Blocknumber blocknumber = BlocknumberLib.current();
39
+ StateId initialState = getInitialState(objectType);
40
+
41
+ // set metadata
42
+ metadata.objectType = objectType;
43
+ metadata.state = initialState;
44
+ metadata.updatedIn = blocknumber;
45
+ }
46
+
47
+ function _updateState(
48
+ Key32 key32,
49
+ StateId state
50
+ )
51
+ internal
52
+ returns (Blocknumber lastUpdatedIn, StateId oldState)
53
+ {
54
+ if (state.eqz()) {
55
+ revert ErrorBaseStoreStateZero(key32);
56
+ }
57
+
58
+ Metadata storage metadata = _metadata[key32];
59
+ oldState = metadata.state;
60
+ lastUpdatedIn = metadata.updatedIn;
61
+
62
+ if (oldState.eqz()) {
63
+ revert ErrorBaseStoreNotExisting(key32);
64
+ }
65
+
66
+ // update state
67
+ if(state != KEEP_STATE()) {
68
+ checkTransition(oldState, metadata.objectType, oldState, state);
69
+ metadata.state = state;
70
+
71
+ // solhint-disable-next-line avoid-tx-origin
72
+ }
73
+
74
+ // update metadata
75
+ metadata.updatedIn = BlocknumberLib.current();
76
+ }
77
+
78
+ function exists(Key32 key32) public view returns (bool) {
79
+ return _metadata[key32].state.gtz();
80
+ }
81
+
82
+ function getMetadata(Key32 key32) public view returns (Metadata memory metadata) {
83
+ return _metadata[key32];
84
+ }
85
+
86
+ function getState(Key32 key32) public view returns (StateId state) {
87
+ return _metadata[key32].state;
88
+ }
89
+
90
+ function toKey32(ObjectType objectType, KeyId id) external pure override returns(Key32) {
91
+ return Key32Lib.toKey32(objectType, id);
92
+ }
93
+ }
@@ -0,0 +1,37 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ILifecycle} from "../shared/ILifecycle.sol";
5
+
6
+ import {Blocknumber} from "../type/Blocknumber.sol";
7
+ import {Key32, KeyId} from "../type/Key32.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
+ import {StateId} from "../type/StateId.sol";
10
+
11
+
12
+ interface IBaseStore is ILifecycle {
13
+
14
+ error ErrorBaseStoreTypeUndefined(ObjectType objectType);
15
+ error ErrorBaseStoreAlreadyCreated(Key32 key, ObjectType objectType);
16
+ error ErrorBaseStoreNoLifecycle(ObjectType objectType);
17
+ error ErrorBaseStoreStateZero(Key32 key);
18
+ error ErrorBaseStoreNotExisting(Key32 key);
19
+
20
+
21
+ struct Metadata {
22
+ // slot 0
23
+ ObjectType objectType;
24
+ StateId state;
25
+ Blocknumber updatedIn;
26
+ }
27
+
28
+ /// @dev check if a metadata entry with the key exists
29
+ function exists(Key32 key) external view returns (bool);
30
+ /// @dev retrieve the metadata for a given key
31
+ function getMetadata(Key32 key) external view returns (Metadata memory metadata);
32
+ /// @dev retrieve the state for a given key
33
+ function getState(Key32 key) external view returns (StateId state);
34
+
35
+ /// @dev convert an object type and an id to a key32
36
+ function toKey32(ObjectType objectType, KeyId id) external pure returns(Key32);
37
+ }
@@ -11,6 +11,7 @@ import {InstanceAdmin} from "./InstanceAdmin.sol";
11
11
  import {InstanceReader} from "./InstanceReader.sol";
12
12
  import {InstanceStore} from "./InstanceStore.sol";
13
13
  import {NftId} from "../type/NftId.sol";
14
+ import {ProductStore} from "./ProductStore.sol";
14
15
  import {RoleId} from "../type/RoleId.sol";
15
16
  import {Seconds} from "../type/Seconds.sol";
16
17
  import {UFixed} from "../type/UFixed.sol";
@@ -51,6 +52,15 @@ interface IInstance is
51
52
  error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
52
53
  error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
53
54
 
55
+ struct InstanceContracts {
56
+ InstanceAdmin instanceAdmin;
57
+ InstanceStore instanceStore;
58
+ ProductStore productStore;
59
+ BundleSet bundleSet;
60
+ RiskSet riskSet;
61
+ InstanceReader instanceReader;
62
+ }
63
+
54
64
  struct InstanceInfo {
55
65
  uint64 requestsCount;
56
66
  }
@@ -141,5 +151,6 @@ interface IInstance is
141
151
  function getRiskSet() external view returns (RiskSet);
142
152
  function getInstanceAdmin() external view returns (InstanceAdmin);
143
153
  function getInstanceStore() external view returns (InstanceStore);
154
+ function getProductStore() external view returns (ProductStore);
144
155
  function isTokenRegistryDisabled() external view returns (bool);
145
156
  }
@@ -39,6 +39,7 @@ interface IInstanceService is IService {
39
39
  error ErrorInstanceServiceBundleSetZero();
40
40
  error ErrorInstanceServiceRiskSetZero();
41
41
  error ErrorInstanceServiceInstanceStoreZero();
42
+ error ErrorInstanceServiceProductStoreZero();
42
43
 
43
44
  error ErrorInstanceServiceInstanceAuthorityMismatch();
44
45
  error ErrorInstanceServiceBundleSetAuthorityMismatch();
@@ -47,6 +48,7 @@ interface IInstanceService is IService {
47
48
  error ErrorInstanceServiceBundleSetInstanceMismatch();
48
49
  error ErrorInstanceServiceRiskSetInstanceMismatch();
49
50
  error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
51
+ error ErrorInstanceServiceProductStoreAuthorityMismatch();
50
52
 
51
53
  error ErrorInstanceServiceRequestUnauhorized(address caller);
52
54
  error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
@@ -15,6 +15,7 @@ import {InstanceReader} from "./InstanceReader.sol";
15
15
  import {InstanceAdmin} from "./InstanceAdmin.sol";
16
16
  import {InstanceStore} from "./InstanceStore.sol";
17
17
  import {NftId} from "../type/NftId.sol";
18
+ import {ProductStore} from "./ProductStore.sol";
18
19
  import {Registerable} from "../shared/Registerable.sol";
19
20
  import {RoleId} from "../type/RoleId.sol";
20
21
  import {Seconds} from "../type/Seconds.sol";
@@ -35,6 +36,7 @@ contract Instance is
35
36
  BundleSet internal _bundleSet;
36
37
  RiskSet internal _riskSet;
37
38
  InstanceStore internal _instanceStore;
39
+ ProductStore internal _productStore;
38
40
  NftId [] internal _products;
39
41
  bool internal _tokenRegistryDisabled;
40
42
 
@@ -56,11 +58,7 @@ contract Instance is
56
58
 
57
59
 
58
60
  function initialize(
59
- InstanceAdmin instanceAdmin,
60
- InstanceStore instanceStore,
61
- BundleSet bundleSet,
62
- RiskSet riskSet,
63
- InstanceReader instanceReader,
61
+ InstanceContracts memory instanceContracts,
64
62
  IRegistry registry,
65
63
  VersionPart release,
66
64
  address initialOwner,
@@ -69,15 +67,15 @@ contract Instance is
69
67
  external
70
68
  initializer()
71
69
  {
72
- if(address(instanceAdmin) == address(0)) {
70
+ if(address(instanceContracts.instanceAdmin) == address(0)) {
73
71
  revert ErrorInstanceInstanceAdminZero();
74
72
  }
75
73
 
76
- _instanceAdmin = instanceAdmin;
74
+ _instanceAdmin = instanceContracts.instanceAdmin;
77
75
 
78
76
  // setup instance object info
79
77
  __Registerable_init({
80
- authority: instanceAdmin.authority(),
78
+ authority: instanceContracts.instanceAdmin.authority(),
81
79
  registry: address(registry),
82
80
  parentNftId: registry.getNftId(),
83
81
  objectType: INSTANCE(),
@@ -86,15 +84,17 @@ contract Instance is
86
84
  data: ""});
87
85
 
88
86
  // store instance supporting contracts
89
- _instanceStore = instanceStore;
90
- _bundleSet = bundleSet;
91
- _riskSet = riskSet;
92
- _instanceReader = instanceReader;
87
+ _instanceStore = instanceContracts.instanceStore;
88
+ _productStore = instanceContracts.productStore;
89
+ _bundleSet = instanceContracts.bundleSet;
90
+ _riskSet = instanceContracts.riskSet;
91
+ _instanceReader = instanceContracts.instanceReader;
93
92
 
94
93
  // initialize instance supporting contracts
95
94
  _instanceStore.initialize();
96
- _bundleSet.initialize(instanceAdmin.authority(), address(registry));
97
- _riskSet.initialize(instanceAdmin.authority(), address(registry));
95
+ _productStore.initialize();
96
+ _bundleSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
97
+ _riskSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
98
98
  _instanceReader.initialize();
99
99
 
100
100
  _componentService = IComponentService(
@@ -341,6 +341,10 @@ contract Instance is
341
341
  return _instanceStore;
342
342
  }
343
343
 
344
+ function getProductStore() external view returns (ProductStore) {
345
+ return _productStore;
346
+ }
347
+
344
348
  function isTokenRegistryDisabled() external view returns (bool) {
345
349
  return _tokenRegistryDisabled;
346
350
  }