@etherisc/gif-next 0.0.2-c9ad04b-284 → 0.0.2-c9f64c2-575

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 (512) hide show
  1. package/README.md +28 -7
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +495 -254
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +273 -16
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +391 -199
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +139 -15
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +194 -214
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +261 -27
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +132 -128
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +280 -171
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +146 -69
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +119 -110
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +148 -72
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +234 -166
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +175 -151
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +321 -183
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +787 -333
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +204 -38
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +127 -95
  73. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  74. package/artifacts/contracts/instance/Instance.sol/Instance.json +246 -60
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +734 -324
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +205 -90
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +781 -202
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +158 -171
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -53
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +473 -342
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  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/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +151 -171
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +243 -29
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +113 -104
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +127 -123
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +156 -81
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +130 -45
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +146 -142
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +261 -27
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +161 -262
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +114 -85
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -111
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +133 -135
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +279 -247
  135. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  136. package/artifacts/contracts/pool/Pool.sol/Pool.json +146 -153
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +495 -390
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +168 -55
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +135 -54
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +106 -45
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +260 -195
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +261 -27
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +319 -148
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -72
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +89 -9
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +199 -21
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +244 -48
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +105 -52
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +246 -176
  165. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +65 -6
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +377 -148
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +153 -60
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +185 -115
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +123 -54
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  178. package/artifacts/contracts/product/Product.sol/Product.json +256 -191
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +143 -67
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +123 -42
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +117 -17
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  193. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/Registry.sol/Registry.json +161 -53
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +590 -433
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  198. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +112 -183
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +102 -37
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +417 -249
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  213. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  214. package/artifacts/contracts/shared/Component.sol/Component.json +105 -83
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +478 -514
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +139 -80
  219. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +60 -2
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -65
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +431 -284
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +113 -104
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -6
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +126 -122
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -8
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +152 -38
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  266. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Service.sol/Service.json +60 -2
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +116 -89
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +77 -16
  278. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +33 -33
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +192 -171
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -54
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +125 -55
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +107 -42
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +171 -130
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  302. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  304. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  306. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  308. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  309. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  310. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  312. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  313. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  314. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  316. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  318. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  320. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  322. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  324. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  326. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  333. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  336. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  338. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  340. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  342. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  344. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +79 -27
  345. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  346. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  347. package/contracts/accounting/AccountingService.sol +262 -0
  348. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  349. package/contracts/accounting/IAccountingService.sol +45 -0
  350. package/contracts/authorization/AccessAdmin.sol +337 -222
  351. package/contracts/authorization/AccessAdminLib.sol +183 -0
  352. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  353. package/contracts/authorization/Authorization.sol +350 -202
  354. package/contracts/authorization/IAccess.sol +1 -0
  355. package/contracts/authorization/IAccessAdmin.sol +69 -35
  356. package/contracts/authorization/IAuthorization.sol +33 -7
  357. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  358. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  359. package/contracts/distribution/BasicDistribution.sol +15 -12
  360. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  361. package/contracts/distribution/Distribution.sol +41 -47
  362. package/contracts/distribution/DistributionService.sol +104 -82
  363. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  364. package/contracts/distribution/IDistributionComponent.sol +1 -1
  365. package/contracts/distribution/IDistributionService.sol +19 -19
  366. package/contracts/examples/fire/DamageLevel.sol +59 -0
  367. package/contracts/examples/fire/FirePool.sol +90 -0
  368. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  369. package/contracts/examples/fire/FireProduct.sol +437 -0
  370. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  371. package/contracts/examples/fire/FireUSD.sol +26 -0
  372. package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
  373. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  374. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
  375. package/contracts/examples/unpermissioned/SimplePool.sol +37 -7
  376. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleProduct.sol +53 -27
  378. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  379. package/contracts/instance/BundleSet.sol +42 -38
  380. package/contracts/instance/IInstance.sol +56 -16
  381. package/contracts/instance/IInstanceService.sol +21 -30
  382. package/contracts/instance/Instance.sol +101 -41
  383. package/contracts/instance/InstanceAdmin.sol +287 -122
  384. package/contracts/instance/InstanceAuthorizationV3.sol +90 -59
  385. package/contracts/instance/InstanceReader.sol +246 -39
  386. package/contracts/instance/InstanceService.sol +167 -184
  387. package/contracts/instance/InstanceServiceManager.sol +6 -7
  388. package/contracts/instance/InstanceStore.sol +13 -2
  389. package/contracts/instance/RiskSet.sol +118 -0
  390. package/contracts/instance/base/ObjectCounter.sol +1 -2
  391. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  392. package/contracts/instance/base/ObjectSet.sol +31 -33
  393. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  394. package/contracts/instance/module/IComponents.sol +13 -8
  395. package/contracts/instance/module/IDistribution.sol +2 -1
  396. package/contracts/instance/module/IPolicy.sol +4 -3
  397. package/contracts/instance/module/IRisk.sol +3 -0
  398. package/contracts/oracle/BasicOracle.sol +0 -1
  399. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  400. package/contracts/oracle/IOracleService.sol +2 -1
  401. package/contracts/oracle/Oracle.sol +5 -16
  402. package/contracts/oracle/OracleService.sol +111 -80
  403. package/contracts/oracle/OracleServiceManager.sol +6 -6
  404. package/contracts/pool/BasicPool.sol +33 -24
  405. package/contracts/pool/BasicPoolAuthorization.sol +27 -9
  406. package/contracts/pool/BundleService.sol +91 -134
  407. package/contracts/pool/BundleServiceManager.sol +6 -6
  408. package/contracts/pool/IBundleService.sol +15 -34
  409. package/contracts/pool/IPoolComponent.sol +19 -15
  410. package/contracts/pool/IPoolService.sol +70 -65
  411. package/contracts/pool/Pool.sol +136 -117
  412. package/contracts/pool/PoolLib.sol +216 -0
  413. package/contracts/pool/PoolService.sol +484 -236
  414. package/contracts/pool/PoolServiceManager.sol +4 -4
  415. package/contracts/product/ApplicationService.sol +32 -21
  416. package/contracts/product/ApplicationServiceManager.sol +4 -4
  417. package/contracts/product/BasicProduct.sol +10 -12
  418. package/contracts/product/BasicProductAuthorization.sol +24 -11
  419. package/contracts/product/ClaimService.sol +300 -155
  420. package/contracts/product/ClaimServiceManager.sol +4 -4
  421. package/contracts/product/IApplicationService.sol +5 -2
  422. package/contracts/product/IClaimService.sol +17 -4
  423. package/contracts/product/IPolicyService.sol +33 -11
  424. package/contracts/product/IPricingService.sol +9 -9
  425. package/contracts/product/IProductComponent.sol +27 -4
  426. package/contracts/product/IRiskService.sol +5 -8
  427. package/contracts/product/PolicyService.sol +337 -246
  428. package/contracts/product/PolicyServiceLib.sol +65 -0
  429. package/contracts/product/PolicyServiceManager.sol +4 -4
  430. package/contracts/product/PricingService.sol +31 -28
  431. package/contracts/product/PricingServiceManager.sol +4 -4
  432. package/contracts/product/Product.sol +119 -75
  433. package/contracts/product/RiskService.sol +80 -33
  434. package/contracts/product/RiskServiceManager.sol +4 -4
  435. package/contracts/registry/ChainNft.sol +10 -11
  436. package/contracts/registry/IRegistry.sol +16 -18
  437. package/contracts/registry/IRegistryService.sol +5 -12
  438. package/contracts/registry/IRelease.sol +26 -0
  439. package/contracts/registry/ITransferInterceptor.sol +1 -2
  440. package/contracts/registry/Registry.sol +36 -8
  441. package/contracts/registry/RegistryAdmin.sol +145 -351
  442. package/contracts/registry/RegistryAuthorization.sol +266 -0
  443. package/contracts/registry/RegistryService.sol +36 -47
  444. package/contracts/registry/RegistryServiceManager.sol +3 -3
  445. package/contracts/registry/ReleaseAdmin.sol +253 -0
  446. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  447. package/contracts/registry/ReleaseRegistry.sol +271 -245
  448. package/contracts/registry/ServiceAuthorizationV3.sol +180 -50
  449. package/contracts/registry/TokenRegistry.sol +6 -8
  450. package/contracts/shared/Component.sol +69 -110
  451. package/contracts/shared/ComponentService.sol +423 -375
  452. package/contracts/shared/ComponentServiceManager.sol +8 -5
  453. package/contracts/shared/ComponentVerifyingService.sol +27 -16
  454. package/contracts/shared/ContractLib.sol +281 -0
  455. package/contracts/shared/IComponent.sol +8 -17
  456. package/contracts/shared/IComponentService.sol +40 -38
  457. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  458. package/contracts/shared/ILifecycle.sol +3 -1
  459. package/contracts/shared/INftOwnable.sol +2 -0
  460. package/contracts/shared/IPolicyHolder.sol +12 -13
  461. package/contracts/shared/IRegisterable.sol +23 -1
  462. package/contracts/shared/IService.sol +3 -5
  463. package/contracts/shared/InitializableERC165.sol +9 -1
  464. package/contracts/shared/InstanceLinkedComponent.sol +69 -44
  465. package/contracts/shared/KeyValueStore.sol +1 -1
  466. package/contracts/shared/Lifecycle.sol +15 -4
  467. package/contracts/shared/NftOwnable.sol +27 -7
  468. package/contracts/shared/PolicyHolder.sol +12 -6
  469. package/contracts/shared/Registerable.sol +50 -19
  470. package/contracts/shared/RegistryLinked.sol +7 -13
  471. package/contracts/shared/Service.sol +13 -30
  472. package/contracts/shared/TokenHandler.sol +275 -72
  473. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  474. package/contracts/staking/IStaking.sol +9 -8
  475. package/contracts/staking/IStakingService.sol +8 -3
  476. package/contracts/staking/StakeManagerLib.sol +1 -1
  477. package/contracts/staking/Staking.sol +64 -36
  478. package/contracts/staking/StakingManager.sol +8 -6
  479. package/contracts/staking/StakingReader.sol +13 -6
  480. package/contracts/staking/StakingService.sol +45 -22
  481. package/contracts/staking/StakingServiceManager.sol +6 -5
  482. package/contracts/type/Amount.sol +15 -0
  483. package/contracts/type/ClaimId.sol +6 -1
  484. package/contracts/type/Key32.sol +2 -2
  485. package/contracts/type/Key32Set.sol +62 -0
  486. package/contracts/type/NftId.sol +7 -0
  487. package/contracts/type/ObjectType.sol +54 -35
  488. package/contracts/type/PayoutId.sol +10 -10
  489. package/contracts/type/RiskId.sol +38 -6
  490. package/contracts/type/RoleId.sol +23 -15
  491. package/contracts/type/Selector.sol +5 -0
  492. package/contracts/type/StateId.sol +14 -1
  493. package/contracts/type/Timestamp.sol +0 -5
  494. package/contracts/type/UFixed.sol +13 -119
  495. package/contracts/type/Version.sol +54 -5
  496. package/contracts/upgradeability/ProxyManager.sol +68 -34
  497. package/contracts/upgradeability/Versionable.sol +2 -2
  498. package/package.json +5 -4
  499. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  500. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  501. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  502. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  503. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  504. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  505. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  506. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  507. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  508. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  509. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  510. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  511. package/contracts/instance/module/IAccess.sol +0 -46
  512. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,79 +1,62 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {
5
- PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE
6
- } from "../../contracts/type/ObjectType.sol";
7
-
8
- import {
9
- DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE
10
- } from "../../contracts/type/RoleId.sol";
11
-
12
- import {BundleSet} from "../instance/BundleSet.sol";
13
4
  import {IAccess} from "../authorization/IAccess.sol";
5
+
6
+ import {Authorization} from "../authorization/Authorization.sol";
7
+ import {ACCOUNTING, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK} from "../../contracts/type/ObjectType.sol";
8
+ import {BundleSet} from "../instance/BundleSet.sol";
14
9
  import {Instance} from "../instance/Instance.sol";
15
10
  import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
16
11
  import {InstanceStore} from "../instance/InstanceStore.sol";
17
- import {ModuleAuthorization} from "../authorization/ModuleAuthorization.sol";
12
+ import {PUBLIC_ROLE} from "../type/RoleId.sol";
13
+ import {RiskSet} from "../instance/RiskSet.sol";
18
14
 
19
15
 
20
16
  contract InstanceAuthorizationV3
21
- is ModuleAuthorization
17
+ is Authorization
22
18
  {
23
19
 
20
+ string public constant INSTANCE_ROLE_NAME = "InstanceRole";
21
+
24
22
  string public constant INSTANCE_TARGET_NAME = "Instance";
25
23
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
26
24
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
27
25
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
26
+ string public constant RISK_SET_TARGET_NAME = "RiskSet";
28
27
 
29
- string public constant INSTANCE_ROLE_NAME = "InstanceRole";
30
- string public constant DISTRIBUTION_OWNER_ROLE_NAME = "DistributionOwnerRole";
31
- string public constant ORACLE_OWNER_ROLE_NAME = "OracleOwnerRole";
32
- string public constant POOL_OWNER_ROLE_NAME = "PoolOwnerRole";
33
- string public constant PRODUCT_OWNER_ROLE_NAME = "ProductOwnerRole";
34
-
35
- constructor() ModuleAuthorization(INSTANCE_TARGET_NAME) {}
36
-
37
-
38
- function _setupRoles()
39
- internal
40
- override
41
- {
42
- _addGifRole(DISTRIBUTION_OWNER_ROLE(), DISTRIBUTION_OWNER_ROLE_NAME);
43
- _addGifRole(ORACLE_OWNER_ROLE(), ORACLE_OWNER_ROLE_NAME);
44
- _addGifRole(POOL_OWNER_ROLE(), POOL_OWNER_ROLE_NAME);
45
- _addGifRole(PRODUCT_OWNER_ROLE(), PRODUCT_OWNER_ROLE_NAME);
46
- }
47
-
48
-
49
- function _setupTargets()
50
- internal
51
- override
52
- {
53
- // instance target
54
- _addTargetWithRole(
55
- INSTANCE_TARGET_NAME,
56
- _getTargetRoleId(INSTANCE()),
57
- INSTANCE_ROLE_NAME);
58
-
59
- // instance supporting targets
60
- _addTarget(INSTANCE_STORE_TARGET_NAME);
61
- _addTarget(INSTANCE_ADMIN_TARGET_NAME);
62
- _addTarget(BUNDLE_SET_TARGET_NAME);
28
+ constructor()
29
+ Authorization(INSTANCE_TARGET_NAME, INSTANCE(), false, false)
30
+ { }
63
31
 
32
+ function _setupServiceTargets() internal virtual override {
64
33
  // service targets relevant to instance
65
34
  _addServiceTargetWithRole(INSTANCE());
35
+ _addServiceTargetWithRole(ACCOUNTING());
66
36
  _addServiceTargetWithRole(COMPONENT());
67
37
  _addServiceTargetWithRole(DISTRIBUTION());
68
38
  _addServiceTargetWithRole(ORACLE());
69
39
  _addServiceTargetWithRole(POOL());
70
40
  _addServiceTargetWithRole(BUNDLE());
71
- _addServiceTargetWithRole(PRODUCT());
41
+ _addServiceTargetWithRole(RISK());
72
42
  _addServiceTargetWithRole(APPLICATION());
73
43
  _addServiceTargetWithRole(POLICY());
74
44
  _addServiceTargetWithRole(CLAIM());
75
45
  }
76
46
 
47
+ function _setupTargets()
48
+ internal
49
+ override
50
+ {
51
+ // instance supporting targets
52
+ // _addGifContractTarget(INSTANCE_ADMIN_TARGET_NAME);
53
+ _addTarget(INSTANCE_ADMIN_TARGET_NAME);
54
+ _addTarget(INSTANCE_STORE_TARGET_NAME);
55
+ _addTarget(BUNDLE_SET_TARGET_NAME);
56
+ _addTarget(RISK_SET_TARGET_NAME);
57
+
58
+ }
59
+
77
60
 
78
61
  function _setupTargetAuthorizations()
79
62
  internal
@@ -83,6 +66,7 @@ contract InstanceAuthorizationV3
83
66
  _setupInstanceAdminAuthorization();
84
67
  _setupInstanceStoreAuthorization();
85
68
  _setupBundleSetAuthorization();
69
+ _setUpRiskSetAuthorization();
86
70
  }
87
71
 
88
72
 
@@ -93,11 +77,31 @@ contract InstanceAuthorizationV3
93
77
 
94
78
  // authorize bundle service role
95
79
  functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
96
- _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
97
- _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
98
80
  _authorize(functions, BundleSet.add.selector, "add");
99
81
  _authorize(functions, BundleSet.lock.selector, "lock");
100
82
  _authorize(functions, BundleSet.unlock.selector, "unlock");
83
+
84
+ // authorize bundle service role
85
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(POLICY()));
86
+ _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
87
+ _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
88
+ }
89
+
90
+ function _setUpRiskSetAuthorization()
91
+ internal
92
+ {
93
+ IAccess.FunctionInfo[] storage functions;
94
+
95
+ // authorize risk service role
96
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
97
+ _authorize(functions, RiskSet.add.selector, "add");
98
+ _authorize(functions, RiskSet.pause.selector, "pause");
99
+ _authorize(functions, RiskSet.activate.selector, "activate");
100
+
101
+ // authorize policy service role
102
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(POLICY()));
103
+ _authorize(functions, RiskSet.linkPolicy.selector, "linkPolicy");
104
+ _authorize(functions, RiskSet.unlinkPolicy.selector, "unlinkPolicy");
101
105
  }
102
106
 
103
107
 
@@ -106,6 +110,24 @@ contract InstanceAuthorizationV3
106
110
  {
107
111
  IAccess.FunctionInfo[] storage functions;
108
112
 
113
+ // authorize instance service role
114
+ functions = _authorizeForTarget(INSTANCE_TARGET_NAME, PUBLIC_ROLE());
115
+ _authorize(functions, Instance.registerProduct.selector, "registerProduct");
116
+ _authorize(functions, Instance.upgradeInstanceReader.selector, "upgradeInstanceReader");
117
+
118
+ // staking
119
+ _authorize(functions, Instance.setStakingLockingPeriod.selector, "setStakingLockingPeriod");
120
+ _authorize(functions, Instance.setStakingRewardRate.selector, "setStakingRewardRate");
121
+ _authorize(functions, Instance.refillStakingRewardReserves.selector, "refillStakingRewardReserves");
122
+ _authorize(functions, Instance.withdrawStakingRewardReserves.selector, "withdrawStakingRewardReserves");
123
+
124
+ // custom authz
125
+ _authorize(functions, Instance.createRole.selector, "createRole");
126
+ _authorize(functions, Instance.grantRole.selector, "grantRole");
127
+ _authorize(functions, Instance.revokeRole.selector, "revokeRole");
128
+ _authorize(functions, Instance.createTarget.selector, "createTarget");
129
+ _authorize(functions, Instance.setTargetFunctionRole.selector, "setTargetFunctionRole");
130
+
109
131
  // authorize instance service role
110
132
  functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(INSTANCE()));
111
133
  _authorize(functions, Instance.setInstanceReader.selector, "setInstanceReader");
@@ -117,12 +139,15 @@ contract InstanceAuthorizationV3
117
139
  {
118
140
  IAccess.FunctionInfo[] storage functions;
119
141
 
120
- // authorize instance role
121
- functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _getTargetRoleId(INSTANCE()));
122
- _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
142
+ // authorize component service role
143
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
144
+ _authorize(functions, InstanceAdmin.setInstanceLocked.selector, "setInstanceLocked");
145
+ _authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
123
146
 
124
- // authorize instance service role
125
- // functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
147
+ // authorize component service role
148
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
149
+ _authorize(functions, InstanceAdmin.initializeComponentAuthorization.selector, "initializeComponentAuthoriz");
150
+ _authorize(functions, InstanceAdmin.setComponentLocked.selector, "setComponentLocked");
126
151
  }
127
152
 
128
153
 
@@ -131,6 +156,13 @@ contract InstanceAuthorizationV3
131
156
  {
132
157
  IAccess.FunctionInfo[] storage functions;
133
158
 
159
+ // authorize accounting service role
160
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ACCOUNTING()));
161
+ _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
162
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
163
+ _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
164
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
165
+
134
166
  // authorize component service role
135
167
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
136
168
  _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
@@ -138,11 +170,9 @@ contract InstanceAuthorizationV3
138
170
  _authorize(functions, InstanceStore.createPool.selector, "createPool");
139
171
  _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
140
172
  _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
141
- _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
142
- _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
143
- _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
144
- _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
145
-
173
+ _authorize(functions, InstanceStore.createFee.selector, "createFee");
174
+ _authorize(functions, InstanceStore.updateFee.selector, "updateFee");
175
+
146
176
  // authorize distribution service role
147
177
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
148
178
  _authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
@@ -174,7 +204,7 @@ contract InstanceAuthorizationV3
174
204
  _authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
175
205
 
176
206
  // authorize product service role
177
- functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(PRODUCT()));
207
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
178
208
  _authorize(functions, InstanceStore.createRisk.selector, "createRisk");
179
209
  _authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
180
210
  _authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
@@ -199,6 +229,7 @@ contract InstanceAuthorizationV3
199
229
  _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
200
230
  _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
201
231
  _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
232
+ _authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
202
233
  }
203
234
  }
204
235
 
@@ -1,19 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../type/Amount.sol";
5
- import {ClaimId} from "../type/ClaimId.sol";
6
- import {DistributorType} from "../type/DistributorType.sol";
7
- import {Key32} from "../type/Key32.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
10
- import {PayoutId} from "../type/PayoutId.sol";
11
- import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
12
- import {RequestId} from "../type/RequestId.sol";
13
- import {RiskId} from "../type/RiskId.sol";
14
- import {RoleId} from "../type/RoleId.sol";
15
- import {StateId} from "../type/StateId.sol";
16
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
17
5
 
18
6
  import {IBundle} from "../instance/module/IBundle.sol";
19
7
  import {IComponents} from "../instance/module/IComponents.sol";
@@ -22,10 +10,28 @@ import {IInstance} from "./IInstance.sol";
22
10
  import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
23
11
  import {IOracle} from "../oracle/IOracle.sol";
24
12
  import {IPolicy} from "../instance/module/IPolicy.sol";
13
+ import {IRegistry} from "../registry/IRegistry.sol";
25
14
  import {IRisk} from "../instance/module/IRisk.sol";
26
15
  import {TimestampLib} from "../type/Timestamp.sol";
27
16
 
17
+ import {Amount} from "../type/Amount.sol";
18
+ import {BundleSet} from "./BundleSet.sol";
19
+ import {BUNDLE, COMPONENT, DISTRIBUTOR, DISTRIBUTION, FEE, PREMIUM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
20
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
21
+ import {DistributorType} from "../type/DistributorType.sol";
28
22
  import {InstanceStore} from "./InstanceStore.sol";
23
+ import {Key32} from "../type/Key32.sol";
24
+ import {NftId} from "../type/NftId.sol";
25
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
26
+ import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
27
+ import {RequestId} from "../type/RequestId.sol";
28
+ import {RiskId} from "../type/RiskId.sol";
29
+ import {RiskSet} from "./RiskSet.sol";
30
+ import {RoleId} from "../type/RoleId.sol";
31
+ import {StateId} from "../type/StateId.sol";
32
+ import {TokenHandler} from "../shared/TokenHandler.sol";
33
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
34
+
29
35
 
30
36
 
31
37
  contract InstanceReader {
@@ -35,8 +41,12 @@ contract InstanceReader {
35
41
 
36
42
  bool private _initialized = false;
37
43
 
44
+ IRegistry internal _registry;
38
45
  IInstance internal _instance;
46
+
39
47
  InstanceStore internal _store;
48
+ BundleSet internal _bundleSet;
49
+ RiskSet internal _riskSet;
40
50
 
41
51
  /// @dev This initializer needs to be called from the instance itself.
42
52
  function initialize() public {
@@ -47,17 +57,48 @@ contract InstanceReader {
47
57
  initializeWithInstance(msg.sender);
48
58
  }
49
59
 
50
- /// @dev This initializer needs to be called from the instance itself.
51
- function initializeWithInstance(address instanceAddress) public {
60
+ function initializeWithInstance(address instanceAddress)
61
+ public
62
+ {
52
63
  if(_initialized) {
53
64
  revert ErrorInstanceReaderAlreadyInitialized();
54
65
  }
55
66
 
56
67
  _initialized = true;
57
68
  _instance = IInstance(instanceAddress);
69
+ _registry = _instance.getRegistry();
70
+
58
71
  _store = _instance.getInstanceStore();
72
+ _bundleSet = _instance.getBundleSet();
73
+ _riskSet = _instance.getRiskSet();
74
+ }
75
+
76
+
77
+ // instance level functions
78
+
79
+ function getRegistry() public view returns (IRegistry registry) {
80
+ return _registry;
59
81
  }
60
82
 
83
+ function getInstanceNftId() public view returns (NftId instanceNftid) {
84
+ return _registry.getNftIdForAddress(address(_instance));
85
+ }
86
+
87
+ function getInstance() public view returns (IInstance instance) {
88
+ return _instance;
89
+ }
90
+
91
+ function components() public view returns (uint256 componentCount) {
92
+ return _instance.getInstanceAdmin().components();
93
+ }
94
+
95
+ function products() public view returns (uint256 productCount) {
96
+ return _instance.products();
97
+ }
98
+
99
+ function getProductNftId(uint256 idx) public view returns (NftId productNftId) {
100
+ return _instance.getProductNftId(idx);
101
+ }
61
102
 
62
103
  // module specific functions
63
104
 
@@ -99,6 +140,38 @@ contract InstanceReader {
99
140
  return _store.getState(toPremiumKey(policyNftId));
100
141
  }
101
142
 
143
+ function bundles(NftId poolNftId)
144
+ public
145
+ view
146
+ returns (uint256 bundleCount)
147
+ {
148
+ return _bundleSet.bundles(poolNftId);
149
+ }
150
+
151
+ function activeBundles(NftId poolNftId)
152
+ public
153
+ view
154
+ returns (uint256 bundleCount)
155
+ {
156
+ return _bundleSet.activeBundles(poolNftId);
157
+ }
158
+
159
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx)
160
+ public
161
+ view
162
+ returns (NftId bundleNftId)
163
+ {
164
+ return _bundleSet.getActiveBundleNftId(poolNftId, idx);
165
+ }
166
+
167
+ function getBundleNftId(NftId poolNftId, uint256 idx)
168
+ public
169
+ view
170
+ returns (NftId bundleNftId)
171
+ {
172
+ return _bundleSet.getBundleNftId(poolNftId, idx);
173
+ }
174
+
102
175
  function getBundleState(NftId bundleNftId)
103
176
  public
104
177
  view
@@ -107,14 +180,8 @@ contract InstanceReader {
107
180
  return _store.getState(toBundleKey(bundleNftId));
108
181
  }
109
182
 
110
- /// @dev returns true iff policy may be closed
111
- /// a policy can be closed all conditions below are met
112
- /// - policy exists
113
- /// - has been activated
114
- /// - is not yet closed
115
- /// - has no open claims
116
- /// - claim amount matches sum insured amount or is expired
117
- function policyIsCloseable(NftId policyNftId)
183
+ /// @dev Returns true iff policy is active.
184
+ function policyIsActive(NftId policyNftId)
118
185
  public
119
186
  view
120
187
  returns (bool isCloseable)
@@ -123,17 +190,27 @@ contract InstanceReader {
123
190
 
124
191
  if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
125
192
  if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
126
- if (info.closedAt.gtz()) { return false; } // not closeable: already closed
127
- if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
193
+ if (info.activatedAt > TimestampLib.blockTimestamp()) { return false; } // not yet active
194
+ if (info.expiredAt <= TimestampLib.blockTimestamp()) { return false; } // already expired
128
195
 
129
- // closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
130
- if (info.claimAmount == info.sumInsuredAmount) { return true; }
196
+ return true;
197
+ }
198
+
199
+ function claims(NftId policyNftId)
200
+ public
201
+ view
202
+ returns (uint16 claimCount)
203
+ {
204
+ return getPolicyInfo(policyNftId).claimsCount;
205
+ }
131
206
 
132
- // not closeable: not yet expired
133
- if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
134
207
 
135
- // all conditionsl to close the policy are met
136
- return true;
208
+ function getClaimId(uint idx)
209
+ public
210
+ view
211
+ returns (ClaimId claimId)
212
+ {
213
+ return ClaimIdLib.toClaimId(idx + 1);
137
214
  }
138
215
 
139
216
  function getClaimInfo(NftId policyNftId, ClaimId claimId)
@@ -147,6 +224,7 @@ contract InstanceReader {
147
224
  }
148
225
  }
149
226
 
227
+
150
228
  function getClaimState(NftId policyNftId, ClaimId claimId)
151
229
  public
152
230
  view
@@ -155,6 +233,34 @@ contract InstanceReader {
155
233
  return _store.getState(claimId.toKey32(policyNftId));
156
234
  }
157
235
 
236
+
237
+ function payouts(NftId policyNftId, ClaimId claimId)
238
+ public
239
+ view
240
+ returns (uint24 payoutCount)
241
+ {
242
+ return getClaimInfo(policyNftId, claimId).payoutsCount;
243
+ }
244
+
245
+
246
+ function getPayoutId(ClaimId claimId, uint24 idx)
247
+ public
248
+ view
249
+ returns (PayoutId payoutId)
250
+ {
251
+ return PayoutIdLib.toPayoutId(claimId, idx + 1);
252
+ }
253
+
254
+
255
+ function getRemainingClaimableAmount(NftId policyNftId)
256
+ public
257
+ view
258
+ returns (Amount remainingClaimableAmount)
259
+ {
260
+ IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
261
+ return info.sumInsuredAmount - info.claimAmount;
262
+ }
263
+
158
264
  function getPayoutInfo(NftId policyNftId, PayoutId payoutId)
159
265
  public
160
266
  view
@@ -174,6 +280,38 @@ contract InstanceReader {
174
280
  return _store.getState(payoutId.toKey32(policyNftId));
175
281
  }
176
282
 
283
+ function risks(NftId productNftId)
284
+ public
285
+ view
286
+ returns (uint256 riskCount)
287
+ {
288
+ return _riskSet.risks(productNftId);
289
+ }
290
+
291
+ function getRiskId(NftId productNftId, uint256 idx)
292
+ public
293
+ view
294
+ returns (RiskId riskId)
295
+ {
296
+ return _riskSet.getRiskId(productNftId, idx);
297
+ }
298
+
299
+ function activeRisks(NftId productNftId)
300
+ public
301
+ view
302
+ returns (uint256 activeRiskCount)
303
+ {
304
+ return _riskSet.activeRisks(productNftId);
305
+ }
306
+
307
+ function getActiveRiskId(NftId productNftId, uint256 idx)
308
+ public
309
+ view
310
+ returns (RiskId riskId)
311
+ {
312
+ return _riskSet.getActiveRiskId(productNftId, idx);
313
+ }
314
+
177
315
  function getRiskInfo(RiskId riskId)
178
316
  public
179
317
  view
@@ -185,19 +323,68 @@ contract InstanceReader {
185
323
  }
186
324
  }
187
325
 
326
+ function getRiskState(RiskId riskId)
327
+ public
328
+ view
329
+ returns (StateId stateId)
330
+ {
331
+ bytes memory data = _store.getData(riskId.toKey32());
332
+ return _store.getState(riskId.toKey32());
333
+ }
334
+
335
+ function policiesForRisk(RiskId riskId)
336
+ public
337
+ view
338
+ returns (uint256 linkedPolicies)
339
+ {
340
+ return _riskSet.linkedPolicies(riskId);
341
+ }
342
+
343
+ function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
344
+ public
345
+ view
346
+ returns (NftId linkedPolicyNftId)
347
+ {
348
+ return _riskSet.getLinkedPolicyNftId(riskId, idx);
349
+ }
350
+
351
+
352
+ function getToken(NftId componentNftId)
353
+ public
354
+ view
355
+ returns (IERC20Metadata token)
356
+ {
357
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
358
+ if (address(tokenHandler) != address(0)) {
359
+ return tokenHandler.TOKEN();
360
+ }
361
+ }
362
+
363
+
364
+ function getWallet(NftId componentNftId)
365
+ public
366
+ view
367
+ returns (address wallet)
368
+ {
369
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
370
+ if (address(tokenHandler) != address(0)) {
371
+ return tokenHandler.getWallet();
372
+ }
373
+ }
374
+
375
+
188
376
  function getTokenHandler(NftId componentNftId)
189
377
  public
190
378
  view
191
- returns (address tokenHandler)
379
+ returns (TokenHandler tokenHandler)
192
380
  {
193
381
  bytes memory data = _store.getData(toComponentKey(componentNftId));
194
-
195
382
  if (data.length > 0) {
196
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
197
- return address(info.tokenHandler);
383
+ return abi.decode(data, (IComponents.ComponentInfo)).tokenHandler;
198
384
  }
199
385
  }
200
386
 
387
+
201
388
  function getBundleInfo(NftId bundleNftId)
202
389
  public
203
390
  view
@@ -265,6 +452,17 @@ contract InstanceReader {
265
452
  }
266
453
  }
267
454
 
455
+ function getFeeInfo(NftId productNftId)
456
+ public
457
+ view
458
+ returns (IComponents.FeeInfo memory feeInfo)
459
+ {
460
+ bytes memory data = _store.getData(toFeeKey(productNftId));
461
+ if (data.length > 0) {
462
+ return abi.decode(data, (IComponents.FeeInfo));
463
+ }
464
+ }
465
+
268
466
  function getPoolInfo(NftId poolNftId)
269
467
  public
270
468
  view
@@ -375,7 +573,7 @@ contract InstanceReader {
375
573
  }
376
574
 
377
575
 
378
- function isTargetLocked(address target) public view returns (bool) {
576
+ function isLocked(address target) public view returns (bool) {
379
577
  return _instance.getInstanceAdmin().isTargetLocked(target);
380
578
  }
381
579
 
@@ -411,15 +609,24 @@ contract InstanceReader {
411
609
  return productNftId.toKey32(PRODUCT());
412
610
  }
413
611
 
414
- // low level function
415
- function getInstance() external view returns (IInstance instance) {
416
- return _instance;
612
+ function toFeeKey(NftId productNftId) public pure returns (Key32) {
613
+ return productNftId.toKey32(FEE());
417
614
  }
418
615
 
616
+ // low level function
617
+
419
618
  function getInstanceStore() external view returns (IKeyValueStore store) {
420
619
  return _store;
421
620
  }
422
621
 
622
+ function getBundleSet() external view returns (BundleSet bundleSet) {
623
+ return _bundleSet;
624
+ }
625
+
626
+ function getRiskSet() external view returns (RiskSet riskSet) {
627
+ return _riskSet;
628
+ }
629
+
423
630
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
424
631
  return UFixedLib.toUFixed(value, exp);
425
632
  }