@etherisc/gif-next 0.0.2-d67ce7f-686 → 0.0.2-d6a50e7-658

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 (503) hide show
  1. package/README.md +32 -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 +158 -70
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  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 +97 -37
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  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 +175 -371
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +115 -295
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +239 -295
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -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 +127 -64
  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 +502 -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 +470 -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 +470 -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 +502 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -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 +130 -61
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +165 -157
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +317 -143
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +927 -262
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +692 -443
  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/IAccess.sol/IAccess.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +127 -323
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +102 -130
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +103 -283
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +125 -305
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +170 -337
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -133
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +86 -67
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -163
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +303 -207
  134. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  135. package/artifacts/contracts/pool/Pool.sol/Pool.json +122 -313
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +384 -410
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +122 -104
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  141. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  145. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +238 -357
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +421 -222
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -108
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +303 -9
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +302 -150
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  161. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +235 -202
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  163. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +347 -378
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +115 -109
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  172. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  173. package/artifacts/contracts/product/Product.sol/Product.json +236 -355
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +315 -34
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  186. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  188. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/Registry.sol/Registry.json +521 -95
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +275 -160
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +412 -246
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  206. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Component.sol/Component.json +89 -240
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +502 -617
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -133
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +448 -260
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
  228. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  238. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +102 -282
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  259. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +674 -49
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  268. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +64 -94
  273. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  274. package/artifacts/contracts/staking/Staking.sol/Staking.json +217 -359
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +119 -104
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +149 -108
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
  289. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  290. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  292. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  299. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  301. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  302. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  303. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  305. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  306. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  307. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  309. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  311. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  315. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  317. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
  319. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  321. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  325. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  328. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  330. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  332. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  334. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  337. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  339. package/contracts/accounting/AccountingService.sol +262 -0
  340. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  341. package/contracts/accounting/IAccountingService.sol +45 -0
  342. package/contracts/authorization/AccessAdmin.sol +192 -124
  343. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  344. package/contracts/authorization/Authorization.sol +111 -40
  345. package/contracts/authorization/IAccess.sol +1 -0
  346. package/contracts/authorization/IAccessAdmin.sol +10 -6
  347. package/contracts/authorization/IAuthorization.sol +13 -7
  348. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  349. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  350. package/contracts/distribution/BasicDistribution.sol +8 -7
  351. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  352. package/contracts/distribution/Distribution.sol +33 -41
  353. package/contracts/distribution/DistributionService.sol +112 -91
  354. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  355. package/contracts/distribution/IDistributionComponent.sol +1 -1
  356. package/contracts/distribution/IDistributionService.sol +14 -11
  357. package/contracts/examples/fire/DamageLevel.sol +59 -0
  358. package/contracts/examples/fire/FirePool.sol +90 -0
  359. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  360. package/contracts/examples/fire/FireProduct.sol +438 -0
  361. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  362. package/contracts/examples/fire/FireUSD.sol +26 -0
  363. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  364. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  365. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  366. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  367. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  368. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  369. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  370. package/contracts/instance/BundleSet.sol +42 -38
  371. package/contracts/instance/IInstance.sol +16 -36
  372. package/contracts/instance/IInstanceService.sol +9 -29
  373. package/contracts/instance/Instance.sol +47 -66
  374. package/contracts/instance/InstanceAdmin.sol +133 -73
  375. package/contracts/instance/InstanceAuthorizationV3.sol +55 -34
  376. package/contracts/instance/InstanceReader.sol +218 -27
  377. package/contracts/instance/InstanceService.sol +125 -164
  378. package/contracts/instance/InstanceServiceManager.sol +6 -7
  379. package/contracts/instance/InstanceStore.sol +23 -2
  380. package/contracts/instance/RiskSet.sol +118 -0
  381. package/contracts/instance/base/ObjectCounter.sol +1 -2
  382. package/contracts/instance/base/ObjectLifecycle.sol +10 -1
  383. package/contracts/instance/base/ObjectSet.sol +31 -33
  384. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  385. package/contracts/instance/module/IComponents.sol +14 -10
  386. package/contracts/instance/module/IPolicy.sol +25 -24
  387. package/contracts/instance/module/IRisk.sol +3 -0
  388. package/contracts/oracle/BasicOracle.sol +0 -1
  389. package/contracts/oracle/IOracleService.sol +2 -1
  390. package/contracts/oracle/Oracle.sol +7 -17
  391. package/contracts/oracle/OracleService.sol +113 -81
  392. package/contracts/oracle/OracleServiceManager.sol +6 -6
  393. package/contracts/pool/BasicPool.sol +35 -26
  394. package/contracts/pool/BasicPoolAuthorization.sol +14 -4
  395. package/contracts/pool/BundleService.sol +105 -117
  396. package/contracts/pool/BundleServiceManager.sol +6 -6
  397. package/contracts/pool/IBundleService.sol +8 -20
  398. package/contracts/pool/IPoolComponent.sol +19 -15
  399. package/contracts/pool/IPoolService.sol +52 -48
  400. package/contracts/pool/Pool.sol +145 -128
  401. package/contracts/pool/PoolService.sol +297 -207
  402. package/contracts/pool/PoolServiceManager.sol +4 -4
  403. package/contracts/product/ApplicationService.sol +72 -43
  404. package/contracts/product/ApplicationServiceManager.sol +4 -4
  405. package/contracts/product/BasicProduct.sol +11 -12
  406. package/contracts/product/BasicProductAuthorization.sol +1 -3
  407. package/contracts/product/ClaimService.sol +422 -138
  408. package/contracts/product/ClaimServiceManager.sol +4 -4
  409. package/contracts/product/IApplicationService.sol +6 -2
  410. package/contracts/product/IClaimService.sol +43 -7
  411. package/contracts/product/IPolicyService.sol +42 -37
  412. package/contracts/product/IPricingService.sol +10 -10
  413. package/contracts/product/IProductComponent.sol +27 -5
  414. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  415. package/contracts/product/PolicyService.sol +477 -283
  416. package/contracts/product/PolicyServiceManager.sol +4 -4
  417. package/contracts/product/PricingService.sol +66 -62
  418. package/contracts/product/PricingServiceManager.sol +4 -4
  419. package/contracts/product/Product.sol +143 -91
  420. package/contracts/product/RiskService.sol +151 -0
  421. package/contracts/product/RiskServiceManager.sol +39 -0
  422. package/contracts/registry/ChainNft.sol +72 -40
  423. package/contracts/registry/IRegistry.sol +58 -28
  424. package/contracts/registry/IRegistryService.sol +5 -12
  425. package/contracts/registry/IRelease.sol +26 -0
  426. package/contracts/registry/ITransferInterceptor.sol +1 -2
  427. package/contracts/registry/Registry.sol +353 -203
  428. package/contracts/registry/RegistryAdmin.sol +161 -182
  429. package/contracts/registry/RegistryService.sol +37 -48
  430. package/contracts/registry/RegistryServiceManager.sol +3 -3
  431. package/contracts/registry/ReleaseAdmin.sol +245 -0
  432. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  433. package/contracts/registry/ReleaseRegistry.sol +258 -232
  434. package/contracts/registry/ServiceAuthorizationV3.sol +94 -52
  435. package/contracts/registry/TokenRegistry.sol +6 -8
  436. package/contracts/shared/Component.sol +72 -127
  437. package/contracts/shared/ComponentService.sol +427 -377
  438. package/contracts/shared/ComponentServiceManager.sol +8 -5
  439. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  440. package/contracts/shared/ContractLib.sol +252 -0
  441. package/contracts/shared/IComponent.sol +8 -18
  442. package/contracts/shared/IComponentService.sol +45 -37
  443. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  444. package/contracts/shared/ILifecycle.sol +3 -1
  445. package/contracts/shared/INftOwnable.sol +2 -0
  446. package/contracts/shared/IPolicyHolder.sol +12 -22
  447. package/contracts/shared/IRegisterable.sol +23 -1
  448. package/contracts/shared/IService.sol +3 -5
  449. package/contracts/shared/InitializableERC165.sol +2 -2
  450. package/contracts/shared/InstanceLinkedComponent.sol +72 -47
  451. package/contracts/shared/KeyValueStore.sol +1 -1
  452. package/contracts/shared/Lifecycle.sol +15 -4
  453. package/contracts/shared/NftOwnable.sol +29 -9
  454. package/contracts/shared/PolicyHolder.sol +15 -52
  455. package/contracts/shared/Registerable.sol +55 -21
  456. package/contracts/shared/RegistryLinked.sol +9 -14
  457. package/contracts/shared/Service.sol +15 -32
  458. package/contracts/shared/TokenHandler.sol +356 -29
  459. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  460. package/contracts/staking/IStaking.sol +11 -5
  461. package/contracts/staking/IStakingService.sol +0 -3
  462. package/contracts/staking/StakeManagerLib.sol +18 -25
  463. package/contracts/staking/Staking.sol +71 -61
  464. package/contracts/staking/StakingManager.sol +8 -6
  465. package/contracts/staking/StakingReader.sol +12 -5
  466. package/contracts/staking/StakingService.sol +57 -25
  467. package/contracts/staking/StakingServiceManager.sol +2 -2
  468. package/contracts/staking/TargetManagerLib.sol +7 -3
  469. package/contracts/type/Amount.sol +15 -0
  470. package/contracts/type/ClaimId.sol +6 -1
  471. package/contracts/type/Key32.sol +2 -2
  472. package/contracts/type/Key32Set.sol +62 -0
  473. package/contracts/type/NftId.sol +7 -0
  474. package/contracts/type/ObjectType.sol +36 -17
  475. package/contracts/type/PayoutId.sol +10 -10
  476. package/contracts/type/RiskId.sol +35 -4
  477. package/contracts/type/RoleId.sol +4 -13
  478. package/contracts/type/Seconds.sol +8 -0
  479. package/contracts/type/StateId.sol +15 -1
  480. package/contracts/type/Timestamp.sol +0 -5
  481. package/contracts/type/UFixed.sol +13 -119
  482. package/contracts/type/Version.sol +15 -5
  483. package/contracts/upgradeability/ProxyManager.sol +68 -34
  484. package/contracts/upgradeability/Versionable.sol +2 -2
  485. package/package.json +4 -3
  486. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  487. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  488. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  489. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  490. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  491. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  492. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  493. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  494. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  495. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  496. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  497. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  498. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  499. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  500. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  501. package/contracts/product/ProductService.sol +0 -99
  502. package/contracts/product/ProductServiceManager.sol +0 -39
  503. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,25 +1,20 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
4
  import {Amount} from "../type/Amount.sol";
7
- import {ClaimId} from "../type/ClaimId.sol";
5
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
8
6
  import {DistributorType} from "../type/DistributorType.sol";
9
- import {Fee, FeeLib} from "../type/Fee.sol";
10
7
  import {Key32} from "../type/Key32.sol";
11
8
  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";
9
+ import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, FEE, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
10
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
14
11
  import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
15
12
  import {RequestId} from "../type/RequestId.sol";
16
13
  import {RiskId} from "../type/RiskId.sol";
17
14
  import {RoleId} from "../type/RoleId.sol";
18
15
  import {StateId} from "../type/StateId.sol";
19
- import {UFixed, MathLib, UFixedLib} from "../type/UFixed.sol";
20
- import {Version} from "../type/Version.sol";
16
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
21
17
 
22
- import {IRegistry} from "../registry/IRegistry.sol";
23
18
  import {IBundle} from "../instance/module/IBundle.sol";
24
19
  import {IComponents} from "../instance/module/IComponents.sol";
25
20
  import {IDistribution} from "../instance/module/IDistribution.sol";
@@ -31,6 +26,8 @@ import {IRisk} from "../instance/module/IRisk.sol";
31
26
  import {TimestampLib} from "../type/Timestamp.sol";
32
27
 
33
28
  import {InstanceStore} from "./InstanceStore.sol";
29
+ import {BundleSet} from "./BundleSet.sol";
30
+ import {RiskSet} from "./RiskSet.sol";
34
31
 
35
32
 
36
33
  contract InstanceReader {
@@ -42,6 +39,8 @@ contract InstanceReader {
42
39
 
43
40
  IInstance internal _instance;
44
41
  InstanceStore internal _store;
42
+ BundleSet internal _bundleSet;
43
+ RiskSet internal _riskSet;
45
44
 
46
45
  /// @dev This initializer needs to be called from the instance itself.
47
46
  function initialize() public {
@@ -53,7 +52,9 @@ contract InstanceReader {
53
52
  }
54
53
 
55
54
  /// @dev This initializer needs to be called from the instance itself.
56
- function initializeWithInstance(address instanceAddress) public {
55
+ function initializeWithInstance(address instanceAddress)
56
+ public
57
+ {
57
58
  if(_initialized) {
58
59
  revert ErrorInstanceReaderAlreadyInitialized();
59
60
  }
@@ -61,6 +62,8 @@ contract InstanceReader {
61
62
  _initialized = true;
62
63
  _instance = IInstance(instanceAddress);
63
64
  _store = _instance.getInstanceStore();
65
+ _bundleSet = _instance.getBundleSet();
66
+ _riskSet = _instance.getRiskSet();
64
67
  }
65
68
 
66
69
 
@@ -85,14 +88,67 @@ contract InstanceReader {
85
88
  return _store.getState(toPolicyKey(policyNftId));
86
89
  }
87
90
 
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)
91
+ function getPremiumInfo(NftId policyNftId)
92
+ public
93
+ view
94
+ returns (IPolicy.PremiumInfo memory info)
95
+ {
96
+ bytes memory data = _store.getData(toPremiumKey(policyNftId));
97
+ if (data.length > 0) {
98
+ return abi.decode(data, (IPolicy.PremiumInfo));
99
+ }
100
+ }
101
+
102
+ function getPremiumInfoState(NftId policyNftId)
103
+ public
104
+ view
105
+ returns (StateId state)
106
+ {
107
+ return _store.getState(toPremiumKey(policyNftId));
108
+ }
109
+
110
+ function bundles(NftId poolNftId)
111
+ public
112
+ view
113
+ returns (uint256 bundleCount)
114
+ {
115
+ return _bundleSet.bundles(poolNftId);
116
+ }
117
+
118
+ function activeBundles(NftId poolNftId)
119
+ public
120
+ view
121
+ returns (uint256 bundleCount)
122
+ {
123
+ return _bundleSet.activeBundles(poolNftId);
124
+ }
125
+
126
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx)
127
+ public
128
+ view
129
+ returns (NftId bundleNftId)
130
+ {
131
+ return _bundleSet.getActiveBundleNftId(poolNftId, idx);
132
+ }
133
+
134
+ function getBundleNftId(NftId poolNftId, uint256 idx)
135
+ public
136
+ view
137
+ returns (NftId bundleNftId)
138
+ {
139
+ return _bundleSet.getBundleNftId(poolNftId, idx);
140
+ }
141
+
142
+ function getBundleState(NftId bundleNftId)
143
+ public
144
+ view
145
+ returns (StateId state)
146
+ {
147
+ return _store.getState(toBundleKey(bundleNftId));
148
+ }
149
+
150
+ /// @dev Returns true iff policy is active.
151
+ function policyIsActive(NftId policyNftId)
96
152
  public
97
153
  view
98
154
  returns (bool isCloseable)
@@ -101,17 +157,27 @@ contract InstanceReader {
101
157
 
102
158
  if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
103
159
  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
160
+ if (info.activatedAt > TimestampLib.blockTimestamp()) { return false; } // not yet active
161
+ if (info.expiredAt <= TimestampLib.blockTimestamp()) { return false; } // already expired
106
162
 
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; }
163
+ return true;
164
+ }
165
+
166
+ function claims(NftId policyNftId)
167
+ public
168
+ view
169
+ returns (uint16 claimCount)
170
+ {
171
+ return getPolicyInfo(policyNftId).claimsCount;
172
+ }
109
173
 
110
- // not closeable: not yet expired
111
- if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
112
174
 
113
- // all conditionsl to close the policy are met
114
- return true;
175
+ function getClaimId(uint idx)
176
+ public
177
+ view
178
+ returns (ClaimId claimId)
179
+ {
180
+ return ClaimIdLib.toClaimId(idx + 1);
115
181
  }
116
182
 
117
183
  function getClaimInfo(NftId policyNftId, ClaimId claimId)
@@ -125,6 +191,7 @@ contract InstanceReader {
125
191
  }
126
192
  }
127
193
 
194
+
128
195
  function getClaimState(NftId policyNftId, ClaimId claimId)
129
196
  public
130
197
  view
@@ -133,6 +200,34 @@ contract InstanceReader {
133
200
  return _store.getState(claimId.toKey32(policyNftId));
134
201
  }
135
202
 
203
+
204
+ function payouts(NftId policyNftId, ClaimId claimId)
205
+ public
206
+ view
207
+ returns (uint24 payoutCount)
208
+ {
209
+ return getClaimInfo(policyNftId, claimId).payoutsCount;
210
+ }
211
+
212
+
213
+ function getPayoutId(ClaimId claimId, uint24 idx)
214
+ public
215
+ view
216
+ returns (PayoutId payoutId)
217
+ {
218
+ return PayoutIdLib.toPayoutId(claimId, idx + 1);
219
+ }
220
+
221
+
222
+ function getRemainingClaimableAmount(NftId policyNftId)
223
+ public
224
+ view
225
+ returns (Amount remainingClaimableAmount)
226
+ {
227
+ IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
228
+ return info.sumInsuredAmount - info.claimAmount;
229
+ }
230
+
136
231
  function getPayoutInfo(NftId policyNftId, PayoutId payoutId)
137
232
  public
138
233
  view
@@ -152,6 +247,38 @@ contract InstanceReader {
152
247
  return _store.getState(payoutId.toKey32(policyNftId));
153
248
  }
154
249
 
250
+ function risks(NftId productNftId)
251
+ public
252
+ view
253
+ returns (uint256 riskCount)
254
+ {
255
+ return _riskSet.risks(productNftId);
256
+ }
257
+
258
+ function getRiskId(NftId productNftId, uint256 idx)
259
+ public
260
+ view
261
+ returns (RiskId riskId)
262
+ {
263
+ return _riskSet.getRiskId(productNftId, idx);
264
+ }
265
+
266
+ function activeRisks(NftId productNftId)
267
+ public
268
+ view
269
+ returns (uint256 activeRiskCount)
270
+ {
271
+ return _riskSet.activeRisks(productNftId);
272
+ }
273
+
274
+ function getActiveRiskId(NftId productNftId, uint256 idx)
275
+ public
276
+ view
277
+ returns (RiskId riskId)
278
+ {
279
+ return _riskSet.getActiveRiskId(productNftId, idx);
280
+ }
281
+
155
282
  function getRiskInfo(RiskId riskId)
156
283
  public
157
284
  view
@@ -163,6 +290,44 @@ contract InstanceReader {
163
290
  }
164
291
  }
165
292
 
293
+ function getRiskState(RiskId riskId)
294
+ public
295
+ view
296
+ returns (StateId stateId)
297
+ {
298
+ bytes memory data = _store.getData(riskId.toKey32());
299
+ return _store.getState(riskId.toKey32());
300
+ }
301
+
302
+ function policiesForRisk(RiskId riskId)
303
+ public
304
+ view
305
+ returns (uint256 linkedPolicies)
306
+ {
307
+ return _riskSet.linkedPolicies(riskId);
308
+ }
309
+
310
+ function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
311
+ public
312
+ view
313
+ returns (NftId linkedPolicyNftId)
314
+ {
315
+ return _riskSet.getLinkedPolicyNftId(riskId, idx);
316
+ }
317
+
318
+ function getWallet(NftId componentNftId)
319
+ public
320
+ view
321
+ returns (address tokenHandler)
322
+ {
323
+ bytes memory data = _store.getData(toComponentKey(componentNftId));
324
+
325
+ if (data.length > 0) {
326
+ IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
327
+ return info.tokenHandler.getWallet();
328
+ }
329
+ }
330
+
166
331
  function getTokenHandler(NftId componentNftId)
167
332
  public
168
333
  view
@@ -243,6 +408,17 @@ contract InstanceReader {
243
408
  }
244
409
  }
245
410
 
411
+ function getFeeInfo(NftId productNftId)
412
+ public
413
+ view
414
+ returns (IComponents.FeeInfo memory feeInfo)
415
+ {
416
+ bytes memory data = _store.getData(toFeeKey(productNftId));
417
+ if (data.length > 0) {
418
+ return abi.decode(data, (IComponents.FeeInfo));
419
+ }
420
+ }
421
+
246
422
  function getPoolInfo(NftId poolNftId)
247
423
  public
248
424
  view
@@ -353,7 +529,7 @@ contract InstanceReader {
353
529
  }
354
530
 
355
531
 
356
- function isTargetLocked(address target) public view returns (bool) {
532
+ function isLocked(address target) public view returns (bool) {
357
533
  return _instance.getInstanceAdmin().isTargetLocked(target);
358
534
  }
359
535
 
@@ -361,6 +537,9 @@ contract InstanceReader {
361
537
  return policyNftId.toKey32(POLICY());
362
538
  }
363
539
 
540
+ function toPremiumKey(NftId policyNftId) public pure returns (Key32) {
541
+ return policyNftId.toKey32(PREMIUM());
542
+ }
364
543
 
365
544
  function toDistributorKey(NftId distributorNftId) public pure returns (Key32) {
366
545
  return distributorNftId.toKey32(DISTRIBUTOR());
@@ -386,6 +565,10 @@ contract InstanceReader {
386
565
  return productNftId.toKey32(PRODUCT());
387
566
  }
388
567
 
568
+ function toFeeKey(NftId productNftId) public pure returns (Key32) {
569
+ return productNftId.toKey32(FEE());
570
+ }
571
+
389
572
  // low level function
390
573
  function getInstance() external view returns (IInstance instance) {
391
574
  return _instance;
@@ -395,6 +578,14 @@ contract InstanceReader {
395
578
  return _store;
396
579
  }
397
580
 
581
+ function getBundleSet() external view returns (BundleSet bundleSet) {
582
+ return _bundleSet;
583
+ }
584
+
585
+ function getRiskSet() external view returns (RiskSet riskSet) {
586
+ return _riskSet;
587
+ }
588
+
398
589
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
399
590
  return UFixedLib.toUFixed(value, exp);
400
591
  }