@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,12 +4,12 @@ pragma solidity ^0.8.20;
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
6
  import {IAccess} from "../authorization/IAccess.sol";
7
+ import {IBaseStore} from "./IBaseStore.sol";
7
8
  import {IBundle} from "../instance/module/IBundle.sol";
8
9
  import {IComponents} from "../instance/module/IComponents.sol";
9
10
  import {IDistribution} from "../instance/module/IDistribution.sol";
10
11
  import {IDistributionService} from "../distribution/IDistributionService.sol";
11
12
  import {IInstance} from "./IInstance.sol";
12
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
13
13
  import {IOracle} from "../oracle/IOracle.sol";
14
14
  import {IPolicy} from "../instance/module/IPolicy.sol";
15
15
  import {IRegistry} from "../registry/IRegistry.sol";
@@ -18,7 +18,7 @@ import {IRisk} from "../instance/module/IRisk.sol";
18
18
  import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
19
19
  import {Amount} from "../type/Amount.sol";
20
20
  import {BundleSet} from "./BundleSet.sol";
21
- import {BUNDLE, COMPONENT, DISTRIBUTOR, DISTRIBUTION, FEE, PREMIUM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
21
+ import {BUNDLE, COMPONENT, DISTRIBUTION, PREMIUM, POLICY} from "../type/ObjectType.sol";
22
22
  import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
23
23
  import {DistributorType} from "../type/DistributorType.sol";
24
24
  import {InstanceAdmin} from "./InstanceAdmin.sol";
@@ -27,6 +27,7 @@ import {Key32} from "../type/Key32.sol";
27
27
  import {NftId} from "../type/NftId.sol";
28
28
  import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
29
29
  import {PolicyServiceLib} from "../product/PolicyServiceLib.sol";
30
+ import {ProductStore} from "./ProductStore.sol";
30
31
  import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
31
32
  import {RequestId} from "../type/RequestId.sol";
32
33
  import {RiskId} from "../type/RiskId.sol";
@@ -51,6 +52,7 @@ contract InstanceReader {
51
52
  InstanceAdmin internal _instanceAdmin;
52
53
 
53
54
  InstanceStore internal _store;
55
+ ProductStore internal _productStore;
54
56
  BundleSet internal _bundleSet;
55
57
  RiskSet internal _riskSet;
56
58
  IDistributionService internal _distributionService;
@@ -79,6 +81,7 @@ contract InstanceReader {
79
81
  _registry = _instance.getRegistry();
80
82
 
81
83
  _store = _instance.getInstanceStore();
84
+ _productStore = _instance.getProductStore();
82
85
  _bundleSet = _instance.getBundleSet();
83
86
  _riskSet = _instance.getRiskSet();
84
87
  _distributionService = IDistributionService(_registry.getServiceAddress(DISTRIBUTION(), _instance.getRelease()));
@@ -107,17 +110,10 @@ contract InstanceReader {
107
110
 
108
111
  //--- component functions ------------------------------------------------------//
109
112
 
110
- /// @dev Returns the number of registered components.
111
- /// Components may be products, distributions, oracles or pools.
112
- function components() public view returns (uint256 componentCount) {
113
- return _instanceAdmin.components();
114
- }
115
-
116
113
 
117
114
  /// @dev Returns the component info for the given component NFT ID.
118
115
  function getComponentInfo(NftId componentNftId) public view returns (IComponents.ComponentInfo memory info) {
119
- (bytes memory data, bool success) = _getData(_toComponentKey(componentNftId));
120
- if (success) { return abi.decode(data, (IComponents.ComponentInfo)); }
116
+ return _store.getComponentInfo(componentNftId);
121
117
  }
122
118
 
123
119
 
@@ -133,8 +129,10 @@ contract InstanceReader {
133
129
  /// The wallet holds the component's funds. Tokens collected by the component are transferred to the wallet and
134
130
  /// Tokens distributed from the component are transferred from this wallet.
135
131
  function getWallet(NftId componentNftId) public view returns (address wallet) {
136
- TokenHandler tokenHandler = getTokenHandler(componentNftId);
137
- if (address(tokenHandler) != address(0)) { return tokenHandler.getWallet(); }
132
+ IComponents.ComponentInfo memory info = getComponentInfo(componentNftId);
133
+ if (address(info.tokenHandler) != address(0)) {
134
+ return info.tokenHandler.getWallet();
135
+ }
138
136
  }
139
137
 
140
138
 
@@ -143,8 +141,10 @@ contract InstanceReader {
143
141
  /// To allow a component to collect funds from an account, it has to create a corresponding allowance from the
144
142
  /// account to the address of the component's token handler.
145
143
  function getTokenHandler(NftId componentNftId) public view returns (TokenHandler tokenHandler) {
146
- (bytes memory data, bool success) = _getData(_toComponentKey(componentNftId));
147
- if (success) { return abi.decode(data, (IComponents.ComponentInfo)).tokenHandler; }
144
+ IComponents.ComponentInfo memory info = _store.getComponentInfo(componentNftId);
145
+ if(address(info.tokenHandler) != address(0)) {
146
+ return info.tokenHandler;
147
+ }
148
148
  }
149
149
 
150
150
 
@@ -184,15 +184,13 @@ contract InstanceReader {
184
184
 
185
185
  /// @dev Returns the product info for the given product NFT ID.
186
186
  function getProductInfo(NftId productNftId) public view returns (IComponents.ProductInfo memory info) {
187
- (bytes memory data, bool success) = _getData(productNftId.toKey32(PRODUCT()));
188
- if (success) { return abi.decode(data, (IComponents.ProductInfo)); }
187
+ return _productStore.getProductInfo(productNftId);
189
188
  }
190
189
 
191
190
 
192
191
  /// @dev Returns the current fee settings for the given product NFT ID.
193
192
  function getFeeInfo(NftId productNftId) public view returns (IComponents.FeeInfo memory feeInfo) {
194
- (bytes memory data, bool success) = _getData(productNftId.toKey32(FEE()));
195
- if (success) { return abi.decode(data, (IComponents.FeeInfo)); }
193
+ return _productStore.getFeeInfo(productNftId);
196
194
  }
197
195
 
198
196
  //--- risk functions ---------------------------------------------------------//
@@ -223,14 +221,13 @@ contract InstanceReader {
223
221
 
224
222
  /// @dev Returns the risk info for the given risk ID.
225
223
  function getRiskInfo(RiskId riskId) public view returns (IRisk.RiskInfo memory info) {
226
- (bytes memory data, bool success) = _getData(riskId.toKey32());
227
- if (success) { return abi.decode(data, (IRisk.RiskInfo)); }
224
+ return _productStore.getRiskInfo(riskId);
228
225
  }
229
226
 
230
227
 
231
228
  /// @dev Returns the risk state for the given risk ID.
232
229
  function getRiskState(RiskId riskId) public view returns (StateId stateId) {
233
- return getState(riskId.toKey32());
230
+ return _productStore.getState(riskId.toKey32());
234
231
  }
235
232
 
236
233
 
@@ -250,14 +247,13 @@ contract InstanceReader {
250
247
 
251
248
  /// @dev Returns the info for the given policy NFT ID.
252
249
  function getPolicyInfo(NftId policyNftId) public view returns (IPolicy.PolicyInfo memory info) {
253
- (bytes memory data, bool success) = _getData(_toPolicyKey(policyNftId));
254
- if (success) { return abi.decode(data, (IPolicy.PolicyInfo)); }
250
+ return _productStore.getPolicyInfo(policyNftId);
255
251
  }
256
252
 
257
253
 
258
254
  /// @dev Returns the state for the given policy NFT ID.
259
255
  function getPolicyState(NftId policyNftId) public view returns (StateId state) {
260
- return getState(_toPolicyKey(policyNftId));
256
+ return _productStore.getState(_toPolicyKey(policyNftId));
261
257
  }
262
258
 
263
259
 
@@ -282,16 +278,13 @@ contract InstanceReader {
282
278
 
283
279
  /// @dev Returns the claim info for the given policy NFT ID and claim ID.
284
280
  function getClaimInfo(NftId policyNftId, ClaimId claimId) public view returns (IPolicy.ClaimInfo memory info) {
285
- (bytes memory data, bool success) = _getData(claimId.toKey32(policyNftId));
286
- if (success) {
287
- return abi.decode(data, (IPolicy.ClaimInfo));
288
- }
281
+ return _productStore.getClaimInfo(policyNftId, claimId);
289
282
  }
290
283
 
291
284
 
292
285
  /// @dev Returns the current claim state for the given policy NFT ID and claim ID.
293
286
  function getClaimState(NftId policyNftId, ClaimId claimId) public view returns (StateId state) {
294
- return getState(claimId.toKey32(policyNftId));
287
+ return _productStore.getState(claimId.toKey32(policyNftId));
295
288
  }
296
289
 
297
290
 
@@ -319,44 +312,40 @@ contract InstanceReader {
319
312
 
320
313
  /// @dev Returns the payout info for the given policy NFT ID and payout ID.
321
314
  function getPayoutInfo(NftId policyNftId, PayoutId payoutId) public view returns (IPolicy.PayoutInfo memory info) {
322
- (bytes memory data, bool success) = _getData(payoutId.toKey32(policyNftId));
323
- if (success) { return abi.decode(data, (IPolicy.PayoutInfo)); }
315
+ return _productStore.getPayoutInfo(policyNftId, payoutId);
324
316
  }
325
317
 
326
318
 
327
319
  /// @dev Returns the payout state for the given policy NFT ID and payout ID.
328
320
  function getPayoutState(NftId policyNftId, PayoutId payoutId) public view returns (StateId state) {
329
- return getState(payoutId.toKey32(policyNftId));
321
+ return _productStore.getState(payoutId.toKey32(policyNftId));
330
322
  }
331
323
 
332
324
  //--- premium functions -------------------------------------------------------//
333
325
 
334
326
  /// @dev Returns the premium info for the given policy NFT ID.
335
327
  function getPremiumInfo(NftId policyNftId) public view returns (IPolicy.PremiumInfo memory info) {
336
- (bytes memory data, bool success) = _getData(_toPremiumKey(policyNftId));
337
- if (success) { return abi.decode(data, (IPolicy.PremiumInfo)); }
328
+ return _productStore.getPremiumInfo(policyNftId);
338
329
  }
339
330
 
340
331
 
341
332
  /// @dev Returns the premium state for the given policy NFT ID.
342
333
  function getPremiumState(NftId policyNftId) public view returns (StateId state) {
343
- return getState(_toPremiumKey(policyNftId));
334
+ return _productStore.getState(_toPremiumKey(policyNftId));
344
335
  }
345
336
 
346
337
  //--- oracle functions ---------------------------------------------------------//
347
338
 
348
339
  /// @dev Returns the request info for the given oracle request ID.
349
340
  function getRequestInfo(RequestId requestId) public view returns (IOracle.RequestInfo memory requestInfo) {
350
- (bytes memory data, bool success) = _getData(requestId.toKey32());
351
- if (success) { return abi.decode(data, (IOracle.RequestInfo)); }
341
+ return _store.getRequestInfo(requestId);
352
342
  }
353
343
 
354
344
  //--- pool functions -----------------------------------------------------------//
355
345
 
356
346
  /// @dev Returns the pool info for the given pool NFT ID.
357
347
  function getPoolInfo(NftId poolNftId) public view returns (IComponents.PoolInfo memory info) {
358
- (bytes memory data, bool success) = _getData(poolNftId.toKey32(POOL()));
359
- if (success) { return abi.decode(data, (IComponents.PoolInfo)); }
348
+ return _store.getPoolInfo(poolNftId);
360
349
  }
361
350
 
362
351
  //--- bundle functions -------------------------------------------------------//
@@ -387,8 +376,7 @@ contract InstanceReader {
387
376
 
388
377
  /// @dev Returns the bundle info for the given bundle NFT ID.
389
378
  function getBundleInfo(NftId bundleNftId) public view returns (IBundle.BundleInfo memory info) {
390
- (bytes memory data, bool success) = _getData(_toBundleKey(bundleNftId));
391
- if (success) { return abi.decode(data, (IBundle.BundleInfo)); }
379
+ return _store.getBundleInfo(bundleNftId);
392
380
  }
393
381
 
394
382
 
@@ -400,14 +388,12 @@ contract InstanceReader {
400
388
  //--- distribution functions -------------------------------------------------------//
401
389
 
402
390
  function getDistributorTypeInfo(DistributorType distributorType) public view returns (IDistribution.DistributorTypeInfo memory info) {
403
- (bytes memory data, bool success) = _getData(distributorType.toKey32());
404
- if (success) { return abi.decode(data, (IDistribution.DistributorTypeInfo)); }
391
+ return _store.getDistributorTypeInfo(distributorType);
405
392
  }
406
393
 
407
394
 
408
395
  function getDistributorInfo(NftId distributorNftId) public view returns (IDistribution.DistributorInfo memory info) {
409
- (bytes memory data, bool success) = _getData(distributorNftId.toKey32(DISTRIBUTOR()));
410
- if (success) { return abi.decode(data, (IDistribution.DistributorInfo)); }
396
+ return _store.getDistributorInfo(distributorNftId);
411
397
  }
412
398
 
413
399
 
@@ -424,8 +410,7 @@ contract InstanceReader {
424
410
 
425
411
 
426
412
  function getReferralInfo(ReferralId referralId) public view returns (IDistribution.ReferralInfo memory info) {
427
- (bytes memory data, bool success) = _getData(referralId.toKey32());
428
- if (success) { return abi.decode(data, (IDistribution.ReferralInfo)); }
413
+ return _store.getReferralInfo(referralId);
429
414
  }
430
415
 
431
416
 
@@ -569,22 +554,16 @@ contract InstanceReader {
569
554
  return _instanceAdmin;
570
555
  }
571
556
 
572
- function getInstanceStore() external view returns (IKeyValueStore store) {
573
- return _store;
574
- }
575
-
576
-
577
557
  function getBundleSet() external view returns (BundleSet bundleSet) {
578
558
  return _bundleSet;
579
559
  }
580
560
 
581
-
582
561
  function getRiskSet() external view returns (RiskSet riskSet) {
583
562
  return _riskSet;
584
563
  }
585
564
 
586
565
 
587
- function getMetadata(Key32 key) public view returns (IKeyValueStore.Metadata memory metadata) {
566
+ function getMetadata(Key32 key) public view returns (IBaseStore.Metadata memory metadata) {
588
567
  return _store.getMetadata(key);
589
568
  }
590
569
 
@@ -605,11 +584,6 @@ contract InstanceReader {
605
584
 
606
585
  //--- internal functions ----------------------------------------------------//
607
586
 
608
- function _getData(Key32 key) internal view returns (bytes memory data, bool success) {
609
- data = _store.getData(key);
610
- return (data, data.length > 0);
611
- }
612
-
613
587
 
614
588
  function _toPolicyKey(NftId policyNftId) internal pure returns (Key32) {
615
589
  return policyNftId.toKey32(POLICY());
@@ -21,6 +21,7 @@ import {InstanceReader} from "./InstanceReader.sol";
21
21
  import {InstanceStore} from "./InstanceStore.sol";
22
22
  import {NftId} from "../type/NftId.sol";
23
23
  import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
24
+ import {ProductStore} from "./ProductStore.sol";
24
25
  import {RiskSet} from "./RiskSet.sol";
25
26
  import {RoleId} from "../type/RoleId.sol";
26
27
  import {Seconds} from "../type/Seconds.sol";
@@ -49,6 +50,7 @@ contract InstanceService is
49
50
  address internal _masterInstanceBundleSet;
50
51
  address internal _masterInstanceRiskSet;
51
52
  address internal _masterInstanceStore;
53
+ address internal _masterProductStore;
52
54
 
53
55
 
54
56
  modifier onlyInstance() {
@@ -323,45 +325,54 @@ contract InstanceService is
323
325
  if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
324
326
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
325
327
 
326
- IInstance instance = IInstance(instanceAddress);
327
- address accessManagerAddress = instance.authority();
328
- InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
329
- address instanceAdminAddress = address(instanceAdmin);
330
- InstanceReader instanceReader = instance.getInstanceReader();
331
- address instanceReaderAddress = address(instanceReader);
332
- BundleSet bundleSet = instance.getBundleSet();
333
- address bundleSetAddress = address(bundleSet);
334
- RiskSet riskSet = instance.getRiskSet();
335
- address riskSetAddress = address(riskSet);
336
- InstanceStore instanceStore = instance.getInstanceStore();
337
- address instanceStoreAddress = address(instanceStore);
338
-
339
- if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
340
- if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
341
- if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
342
- if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
343
- if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
344
- if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
345
-
346
- if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
347
- if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
348
- if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
349
- if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
350
- if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
351
- if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
352
- if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
353
-
354
- _masterAccessManager = accessManagerAddress;
355
- _masterInstanceAdmin = instanceAdminAddress;
356
- _masterInstance = instanceAddress;
357
- _masterInstanceReader = instanceReaderAddress;
358
- _masterInstanceBundleSet = bundleSetAddress;
359
- _masterInstanceRiskSet = riskSetAddress;
360
- _masterInstanceStore = instanceStoreAddress;
328
+ {
329
+ IInstance instance = IInstance(instanceAddress);
330
+ address accessManagerAddress = instance.authority();
331
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
332
+ address instanceAdminAddress = address(instanceAdmin);
333
+ InstanceReader instanceReader = instance.getInstanceReader();
334
+ address instanceReaderAddress = address(instanceReader);
335
+ BundleSet bundleSet = instance.getBundleSet();
336
+ address bundleSetAddress = address(bundleSet);
337
+ RiskSet riskSet = instance.getRiskSet();
338
+ address riskSetAddress = address(riskSet);
339
+ InstanceStore instanceStore = instance.getInstanceStore();
340
+ address instanceStoreAddress = address(instanceStore);
341
+ ProductStore productStore = instance.getProductStore();
342
+ address productStoreAddress = address(productStore);
343
+
344
+ if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
345
+ if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
346
+ if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
347
+ if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
348
+ if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
349
+ if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
350
+ if(productStoreAddress == address(0)) { revert ErrorInstanceServiceProductStoreZero(); } // TODO: rename exception
351
+
352
+ if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
353
+ if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
354
+ if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
355
+ if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
356
+ if(productStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceProductStoreAuthorityMismatch(); }
357
+ if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
358
+ if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
359
+ if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
360
+
361
+ _masterAccessManager = accessManagerAddress;
362
+ _masterInstanceAdmin = instanceAdminAddress;
363
+ _masterInstance = instanceAddress;
364
+ _masterInstanceReader = instanceReaderAddress;
365
+ _masterInstanceBundleSet = bundleSetAddress;
366
+ _masterInstanceRiskSet = riskSetAddress;
367
+ _masterInstanceStore = instanceStoreAddress;
368
+ _masterProductStore = productStoreAddress;
369
+ }
361
370
 
362
- IInstance masterInstance = IInstance(_masterInstance);
363
- IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
364
- masterInstanceNftId = info.nftId;
371
+ {
372
+ IInstance masterInstance = IInstance(_masterInstance);
373
+ IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
374
+ masterInstanceNftId = info.nftId;
375
+ }
365
376
  }
366
377
 
367
378
 
@@ -426,11 +437,14 @@ contract InstanceService is
426
437
  // clone instance
427
438
  Instance clonedInstance = Instance(Clones.clone(_masterInstance));
428
439
  clonedInstance.initialize(
429
- instanceAdmin,
430
- InstanceStore(Clones.clone(address(_masterInstanceStore))),
431
- BundleSet(Clones.clone(_masterInstanceBundleSet)),
432
- RiskSet(Clones.clone(_masterInstanceRiskSet)),
433
- InstanceReader(Clones.clone(address(_masterInstanceReader))),
440
+ IInstance.InstanceContracts({
441
+ instanceAdmin: instanceAdmin,
442
+ instanceStore: InstanceStore(Clones.clone(address(_masterInstanceStore))),
443
+ productStore: ProductStore(Clones.clone(address(_masterProductStore))),
444
+ bundleSet: BundleSet(Clones.clone(_masterInstanceBundleSet)),
445
+ riskSet: RiskSet(Clones.clone(_masterInstanceRiskSet)),
446
+ instanceReader: InstanceReader(Clones.clone(address(_masterInstanceReader)))
447
+ }),
434
448
  getRegistry(),
435
449
  getRelease(),
436
450
  instanceOwner,