@etherisc/gif-next 0.0.2-89c8f37-711 → 0.0.2-8a72793-100

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