@etherisc/gif-next 0.0.2-7d65090-351 → 0.0.2-7d7c399-947

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 (568) hide show
  1. package/README.md +75 -9
  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 +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1341 -0
  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 +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +181 -278
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +48 -10
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +144 -544
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +368 -245
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +143 -109
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +201 -261
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +230 -49
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +134 -78
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +116 -126
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +162 -215
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1354 -262
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +966 -328
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +135 -330
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +97 -111
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +651 -531
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  97. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  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/mock/Dip.sol/Dip.json +2 -2
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +141 -126
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +127 -398
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +435 -202
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +163 -97
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +270 -27
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +132 -379
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +448 -217
  135. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  136. package/artifacts/contracts/pool/Pool.sol/Pool.json +124 -662
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +569 -396
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -91
  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 +4 -0
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
  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 +318 -8
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +361 -113
  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 +260 -237
  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 +455 -318
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +230 -312
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +258 -536
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +340 -55
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  186. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  189. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/Registry.sol/Registry.json +566 -112
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +396 -436
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1325 -0
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +101 -16
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +5 -5
  207. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  208. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +578 -492
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -113
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  223. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  225. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +550 -209
  227. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +127 -123
  229. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
  231. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  232. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  233. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  235. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  237. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  239. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  243. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  245. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -351
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  247. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
  248. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  251. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  253. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  255. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  259. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  260. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  261. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  267. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  268. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  269. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  271. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
  272. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
  274. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  275. package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
  276. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  277. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +186 -164
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  289. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  290. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  291. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  292. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  294. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  296. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  298. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  300. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  302. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  304. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  305. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  306. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  308. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  309. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  310. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  312. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  314. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  316. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  318. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  320. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  322. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  324. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  326. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  328. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  330. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  332. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  334. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  336. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  338. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +66 -2
  340. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  341. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  342. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  343. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  344. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  345. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  346. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  347. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  348. package/contracts/accounting/AccountingService.sol +262 -0
  349. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  350. package/contracts/accounting/IAccountingService.sol +45 -0
  351. package/contracts/{shared → authorization}/AccessAdmin.sol +271 -371
  352. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  353. package/contracts/authorization/Authorization.sol +289 -0
  354. package/contracts/authorization/IAccess.sol +49 -0
  355. package/contracts/{shared → authorization}/IAccessAdmin.sol +31 -59
  356. package/contracts/authorization/IAuthorization.sol +60 -0
  357. package/contracts/{registry → authorization}/IServiceAuthorization.sol +11 -6
  358. package/contracts/{registry → authorization}/ServiceAuthorization.sol +45 -25
  359. package/contracts/distribution/BasicDistribution.sol +139 -0
  360. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  361. package/contracts/distribution/Distribution.sol +147 -121
  362. package/contracts/distribution/DistributionService.sol +160 -100
  363. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  364. package/contracts/distribution/IDistributionComponent.sol +26 -40
  365. package/contracts/distribution/IDistributionService.sol +28 -9
  366. package/contracts/examples/fire/DamageLevel.sol +59 -0
  367. package/contracts/examples/fire/FirePool.sol +90 -0
  368. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  369. package/contracts/examples/fire/FireProduct.sol +438 -0
  370. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  371. package/contracts/examples/fire/FireUSD.sol +26 -0
  372. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  373. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  374. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  375. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  376. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  378. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  379. package/contracts/instance/BundleSet.sol +130 -0
  380. package/contracts/instance/IInstance.sol +23 -44
  381. package/contracts/instance/IInstanceService.sol +16 -41
  382. package/contracts/instance/Instance.sol +92 -120
  383. package/contracts/instance/InstanceAdmin.sol +250 -255
  384. package/contracts/instance/InstanceAuthorizationV3.sol +225 -0
  385. package/contracts/instance/InstanceReader.sol +238 -34
  386. package/contracts/instance/InstanceService.sol +145 -180
  387. package/contracts/instance/InstanceServiceManager.sol +8 -13
  388. package/contracts/instance/InstanceStore.sol +35 -6
  389. package/contracts/instance/RiskSet.sol +117 -0
  390. package/contracts/instance/base/ObjectCounter.sol +1 -2
  391. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  392. package/contracts/instance/base/ObjectSet.sol +78 -0
  393. package/contracts/instance/module/IBundle.sol +1 -1
  394. package/contracts/instance/module/IComponents.sol +14 -15
  395. package/contracts/instance/module/IDistribution.sol +0 -1
  396. package/contracts/instance/module/IPolicy.sol +26 -25
  397. package/contracts/instance/module/IRisk.sol +3 -0
  398. package/contracts/mock/Dip.sol +1 -1
  399. package/contracts/oracle/BasicOracle.sol +47 -0
  400. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  401. package/contracts/oracle/IOracle.sol +16 -0
  402. package/contracts/oracle/IOracleComponent.sol +2 -1
  403. package/contracts/oracle/IOracleService.sol +2 -1
  404. package/contracts/oracle/Oracle.sol +64 -53
  405. package/contracts/oracle/OracleService.sol +113 -81
  406. package/contracts/oracle/OracleServiceManager.sol +8 -11
  407. package/contracts/pool/BasicPool.sol +175 -0
  408. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  409. package/contracts/pool/BundleService.sol +231 -102
  410. package/contracts/pool/BundleServiceManager.sol +8 -11
  411. package/contracts/pool/IBundleService.sol +33 -18
  412. package/contracts/pool/IPoolComponent.sol +20 -70
  413. package/contracts/pool/IPoolService.sol +53 -50
  414. package/contracts/pool/Pool.sol +208 -162
  415. package/contracts/pool/PoolService.sol +343 -180
  416. package/contracts/pool/PoolServiceManager.sol +6 -9
  417. package/contracts/product/ApplicationService.sol +83 -78
  418. package/contracts/product/ApplicationServiceManager.sol +6 -6
  419. package/contracts/product/BasicProduct.sol +51 -0
  420. package/contracts/product/BasicProductAuthorization.sol +41 -0
  421. package/contracts/product/ClaimService.sol +425 -159
  422. package/contracts/product/ClaimServiceManager.sol +6 -6
  423. package/contracts/product/IApplicationService.sol +6 -2
  424. package/contracts/product/IClaimService.sol +44 -7
  425. package/contracts/product/IPolicyService.sol +46 -34
  426. package/contracts/product/IPricingService.sol +10 -10
  427. package/contracts/product/IProductComponent.sol +29 -9
  428. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  429. package/contracts/product/PolicyService.sol +520 -259
  430. package/contracts/product/PolicyServiceManager.sol +6 -9
  431. package/contracts/product/PricingService.sol +66 -62
  432. package/contracts/product/PricingServiceManager.sol +6 -9
  433. package/contracts/product/Product.sol +220 -134
  434. package/contracts/product/RiskService.sol +151 -0
  435. package/contracts/product/RiskServiceManager.sol +39 -0
  436. package/contracts/registry/ChainNft.sol +72 -40
  437. package/contracts/registry/IRegistry.sol +72 -32
  438. package/contracts/registry/IRegistryService.sol +3 -10
  439. package/contracts/registry/IRelease.sol +26 -0
  440. package/contracts/registry/ITransferInterceptor.sol +1 -2
  441. package/contracts/registry/Registry.sol +364 -220
  442. package/contracts/registry/RegistryAdmin.sol +228 -217
  443. package/contracts/registry/RegistryService.sol +41 -66
  444. package/contracts/registry/RegistryServiceManager.sol +5 -5
  445. package/contracts/registry/ReleaseAdmin.sol +245 -0
  446. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  447. package/contracts/registry/ReleaseRegistry.sol +511 -0
  448. package/contracts/registry/ServiceAuthorizationV3.sol +102 -60
  449. package/contracts/registry/TokenRegistry.sol +8 -10
  450. package/contracts/shared/Component.sol +71 -126
  451. package/contracts/shared/ComponentService.sol +463 -380
  452. package/contracts/shared/ComponentServiceManager.sol +10 -7
  453. package/contracts/shared/ComponentVerifyingService.sol +29 -18
  454. package/contracts/shared/ContractLib.sol +252 -0
  455. package/contracts/shared/IComponent.sol +8 -17
  456. package/contracts/shared/IComponentService.sol +53 -39
  457. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  458. package/contracts/shared/IKeyValueStore.sol +1 -0
  459. package/contracts/shared/ILifecycle.sol +3 -2
  460. package/contracts/shared/INftOwnable.sol +2 -0
  461. package/contracts/shared/IPolicyHolder.sol +12 -22
  462. package/contracts/shared/IRegisterable.sol +23 -1
  463. package/contracts/shared/IService.sol +4 -6
  464. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  465. package/contracts/shared/InstanceLinkedComponent.sol +95 -42
  466. package/contracts/shared/KeyValueStore.sol +7 -3
  467. package/contracts/shared/Lifecycle.sol +30 -72
  468. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  469. package/contracts/shared/NftOwnable.sol +31 -11
  470. package/contracts/shared/PolicyHolder.sol +17 -57
  471. package/contracts/shared/Registerable.sol +55 -21
  472. package/contracts/shared/RegistryLinked.sol +9 -14
  473. package/contracts/shared/Service.sol +18 -36
  474. package/contracts/shared/TokenHandler.sol +357 -26
  475. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  476. package/contracts/staking/IStaking.sol +12 -7
  477. package/contracts/staking/IStakingService.sol +12 -8
  478. package/contracts/staking/StakeManagerLib.sol +18 -25
  479. package/contracts/staking/Staking.sol +86 -73
  480. package/contracts/staking/StakingLifecycle.sol +23 -0
  481. package/contracts/staking/StakingManager.sol +10 -12
  482. package/contracts/staking/StakingReader.sol +23 -20
  483. package/contracts/staking/StakingService.sol +64 -36
  484. package/contracts/staking/StakingServiceManager.sol +4 -4
  485. package/contracts/staking/StakingStore.sol +15 -23
  486. package/contracts/staking/TargetManagerLib.sol +7 -3
  487. package/contracts/type/Amount.sol +27 -5
  488. package/contracts/type/Blocknumber.sol +7 -1
  489. package/contracts/type/ClaimId.sol +6 -1
  490. package/contracts/type/Key32.sol +2 -2
  491. package/contracts/type/Key32Set.sol +62 -0
  492. package/contracts/type/NftId.sol +7 -0
  493. package/contracts/type/ObjectType.sol +73 -24
  494. package/contracts/type/PayoutId.sol +10 -10
  495. package/contracts/type/Referral.sol +1 -0
  496. package/contracts/type/RiskId.sol +35 -4
  497. package/contracts/type/RoleId.sol +57 -93
  498. package/contracts/type/Seconds.sol +21 -1
  499. package/contracts/type/StateId.sol +15 -1
  500. package/contracts/type/Timestamp.sol +10 -5
  501. package/contracts/type/UFixed.sol +40 -121
  502. package/contracts/type/Version.sol +18 -6
  503. package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
  504. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  505. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  506. package/package.json +9 -5
  507. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  508. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  509. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  510. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  511. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  512. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  513. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  514. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  515. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  516. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  517. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  518. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  519. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  520. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
  521. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  522. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
  523. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  524. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  525. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  526. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  527. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  528. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  529. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  530. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  531. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  532. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  533. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  534. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  535. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  536. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  537. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  538. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  539. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  540. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  541. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  542. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  543. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  544. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  545. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  546. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  547. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  548. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  549. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  550. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  551. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  552. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  553. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  554. package/contracts/instance/BundleManager.sol +0 -126
  555. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  556. package/contracts/instance/base/ObjectManager.sol +0 -80
  557. package/contracts/product/ProductService.sol +0 -124
  558. package/contracts/product/ProductServiceManager.sol +0 -42
  559. package/contracts/registry/ReleaseManager.sol +0 -527
  560. package/contracts/shared/AccessManagerCustom.sol +0 -741
  561. package/contracts/shared/AccessManagerExtended.sol +0 -481
  562. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  563. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  564. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  565. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  566. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  567. package/contracts/shared/InitializableCustom.sol +0 -177
  568. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -0,0 +1,225 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {
5
+ ACCOUNTING, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK
6
+ } from "../../contracts/type/ObjectType.sol";
7
+
8
+ import {BundleSet} from "../instance/BundleSet.sol";
9
+ import {RiskSet} from "../instance/RiskSet.sol";
10
+ import {IAccess} from "../authorization/IAccess.sol";
11
+ import {Instance} from "../instance/Instance.sol";
12
+ import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
13
+ import {InstanceStore} from "../instance/InstanceStore.sol";
14
+ import {Authorization} from "../authorization/Authorization.sol";
15
+
16
+
17
+ contract InstanceAuthorizationV3
18
+ is Authorization
19
+ {
20
+
21
+ string public constant INSTANCE_ROLE_NAME = "InstanceRole";
22
+
23
+ string public constant INSTANCE_TARGET_NAME = "Instance";
24
+ string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
25
+ string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
26
+ string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
+ string public constant RISK_SET_TARGET_NAME = "RiskSet";
28
+
29
+ constructor() Authorization(INSTANCE_TARGET_NAME) {}
30
+
31
+
32
+ function _setupRoles()
33
+ internal
34
+ override
35
+ {
36
+ // empty implementation
37
+ }
38
+
39
+
40
+ function _setupTargets()
41
+ internal
42
+ override
43
+ {
44
+ // instance target
45
+ _addTargetWithRole(
46
+ INSTANCE_TARGET_NAME,
47
+ _toTargetRoleId(INSTANCE()),
48
+ INSTANCE_ROLE_NAME);
49
+
50
+ // instance supporting targets
51
+ _addTarget(INSTANCE_STORE_TARGET_NAME);
52
+ _addTarget(INSTANCE_ADMIN_TARGET_NAME);
53
+ _addTarget(BUNDLE_SET_TARGET_NAME);
54
+ _addTarget(RISK_SET_TARGET_NAME);
55
+
56
+ // service targets relevant to instance
57
+ _addServiceTargetWithRole(INSTANCE());
58
+ _addServiceTargetWithRole(ACCOUNTING());
59
+ _addServiceTargetWithRole(COMPONENT());
60
+ _addServiceTargetWithRole(DISTRIBUTION());
61
+ _addServiceTargetWithRole(ORACLE());
62
+ _addServiceTargetWithRole(POOL());
63
+ _addServiceTargetWithRole(BUNDLE());
64
+ _addServiceTargetWithRole(RISK());
65
+ _addServiceTargetWithRole(APPLICATION());
66
+ _addServiceTargetWithRole(POLICY());
67
+ _addServiceTargetWithRole(CLAIM());
68
+ }
69
+
70
+
71
+ function _setupTargetAuthorizations()
72
+ internal
73
+ override
74
+ {
75
+ _setupInstanceAuthorization();
76
+ _setupInstanceAdminAuthorization();
77
+ _setupInstanceStoreAuthorization();
78
+ _setupBundleSetAuthorization();
79
+ _setUpRiskSetAuthorization();
80
+ }
81
+
82
+
83
+ function _setupBundleSetAuthorization()
84
+ internal
85
+ {
86
+ IAccess.FunctionInfo[] storage functions;
87
+
88
+ // authorize bundle service role
89
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
90
+ _authorize(functions, BundleSet.add.selector, "add");
91
+ _authorize(functions, BundleSet.lock.selector, "lock");
92
+ _authorize(functions, BundleSet.unlock.selector, "unlock");
93
+
94
+ // authorize bundle service role
95
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(POLICY()));
96
+ _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
97
+ _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
98
+ }
99
+
100
+ function _setUpRiskSetAuthorization()
101
+ internal
102
+ {
103
+ IAccess.FunctionInfo[] storage functions;
104
+
105
+ // authorize risk service role
106
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
107
+ _authorize(functions, RiskSet.add.selector, "add");
108
+ _authorize(functions, RiskSet.pause.selector, "pause");
109
+ _authorize(functions, RiskSet.activate.selector, "activate");
110
+
111
+ // authorize policy service role
112
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(POLICY()));
113
+ _authorize(functions, RiskSet.linkPolicy.selector, "linkPolicy");
114
+ _authorize(functions, RiskSet.unlinkPolicy.selector, "unlinkPolicy");
115
+ }
116
+
117
+
118
+ function _setupInstanceAuthorization()
119
+ internal
120
+ {
121
+ IAccess.FunctionInfo[] storage functions;
122
+
123
+ // authorize instance service role
124
+ functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(INSTANCE()));
125
+ _authorize(functions, Instance.setInstanceReader.selector, "setInstanceReader");
126
+ }
127
+
128
+
129
+ function _setupInstanceAdminAuthorization()
130
+ internal
131
+ {
132
+ IAccess.FunctionInfo[] storage functions;
133
+
134
+ // authorize instance role
135
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
136
+ _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
137
+
138
+ // authorize component service role
139
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
140
+ _authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
141
+ }
142
+
143
+
144
+ function _setupInstanceStoreAuthorization()
145
+ internal
146
+ {
147
+ IAccess.FunctionInfo[] storage functions;
148
+
149
+ // authorize accounting service role
150
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ACCOUNTING()));
151
+ _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
152
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
153
+ _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
154
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
155
+
156
+ // authorize component service role
157
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
158
+ _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
159
+ _authorize(functions, InstanceStore.updateComponent.selector, "updateComponent");
160
+ _authorize(functions, InstanceStore.createPool.selector, "createPool");
161
+ _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
162
+ _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
163
+ _authorize(functions, InstanceStore.createFee.selector, "createFee");
164
+ _authorize(functions, InstanceStore.updateFee.selector, "updateFee");
165
+
166
+ // authorize distribution service role
167
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
168
+ _authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
169
+ _authorize(functions, InstanceStore.updateDistributorType.selector, "updateDistributorType");
170
+ _authorize(functions, InstanceStore.updateDistributorTypeState.selector, "updateDistributorTypeState");
171
+ _authorize(functions, InstanceStore.createDistributor.selector, "createDistributor");
172
+ _authorize(functions, InstanceStore.updateDistributor.selector, "updateDistributor");
173
+ _authorize(functions, InstanceStore.updateDistributorState.selector, "updateDistributorState");
174
+ _authorize(functions, InstanceStore.createReferral.selector, "createReferral");
175
+ _authorize(functions, InstanceStore.updateReferral.selector, "updateReferral");
176
+ _authorize(functions, InstanceStore.updateReferralState.selector, "updateReferralState");
177
+
178
+ // authorize oracle service role
179
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ORACLE()));
180
+ _authorize(functions, InstanceStore.createRequest.selector, "createRequest");
181
+ _authorize(functions, InstanceStore.updateRequest.selector, "updateRequest");
182
+ _authorize(functions, InstanceStore.updateRequestState.selector, "updateRequestState");
183
+
184
+ // authorize pool service role
185
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POOL()));
186
+ _authorize(functions, InstanceStore.updatePool.selector, "updatePool");
187
+
188
+ // authorize bundle service role
189
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(BUNDLE()));
190
+ _authorize(functions, InstanceStore.createBundle.selector, "createBundle");
191
+ _authorize(functions, InstanceStore.updateBundle.selector, "updateBundle");
192
+ _authorize(functions, InstanceStore.updateBundleState.selector, "updateBundleState");
193
+ _authorize(functions, InstanceStore.increaseLocked.selector, "increaseLocked");
194
+ _authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
195
+
196
+ // authorize product service role
197
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
198
+ _authorize(functions, InstanceStore.createRisk.selector, "createRisk");
199
+ _authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
200
+ _authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
201
+
202
+ // authorize application service role
203
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(APPLICATION()));
204
+ _authorize(functions, InstanceStore.createApplication.selector, "createApplication");
205
+ _authorize(functions, InstanceStore.updateApplication.selector, "updateApplication");
206
+ _authorize(functions, InstanceStore.updateApplicationState.selector, "updateApplicationState");
207
+
208
+ // authorize policy service role
209
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
210
+ _authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
211
+ _authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
212
+ _authorize(functions, InstanceStore.createPremium.selector, "createPremium");
213
+ _authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
214
+
215
+ // authorize claim service role
216
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
217
+ _authorize(functions, InstanceStore.updatePolicyClaims.selector, "updatePolicyClaims");
218
+ _authorize(functions, InstanceStore.createClaim.selector, "createClaim");
219
+ _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
220
+ _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
221
+ _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
222
+ _authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
223
+ }
224
+ }
225
+
@@ -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 {
@@ -38,24 +35,35 @@ contract InstanceReader {
38
35
  error ErrorInstanceReaderAlreadyInitialized();
39
36
  error ErrorInstanceReaderInstanceAddressZero();
40
37
 
41
- bool private _initialized;
38
+ bool private _initialized = false;
42
39
 
43
40
  IInstance internal _instance;
44
41
  InstanceStore internal _store;
42
+ BundleSet internal _bundleSet;
43
+ RiskSet internal _riskSet;
45
44
 
46
- function initialize(address instance) public {
45
+ /// @dev This initializer needs to be called from the instance itself.
46
+ function initialize() public {
47
47
  if(_initialized) {
48
48
  revert ErrorInstanceReaderAlreadyInitialized();
49
49
  }
50
50
 
51
- if(instance == address(0)) {
52
- revert ErrorInstanceReaderInstanceAddressZero();
53
- }
51
+ initializeWithInstance(msg.sender);
52
+ }
54
53
 
55
- _instance = IInstance(instance);
56
- _store = _instance.getInstanceStore();
54
+ /// @dev This initializer needs to be called from the instance itself.
55
+ function initializeWithInstance(address instanceAddress)
56
+ public
57
+ {
58
+ if(_initialized) {
59
+ revert ErrorInstanceReaderAlreadyInitialized();
60
+ }
57
61
 
58
62
  _initialized = true;
63
+ _instance = IInstance(instanceAddress);
64
+ _store = _instance.getInstanceStore();
65
+ _bundleSet = _instance.getBundleSet();
66
+ _riskSet = _instance.getRiskSet();
59
67
  }
60
68
 
61
69
 
@@ -80,14 +88,67 @@ contract InstanceReader {
80
88
  return _store.getState(toPolicyKey(policyNftId));
81
89
  }
82
90
 
83
- /// @dev returns true iff policy may be closed
84
- /// a policy can be closed all conditions below are met
85
- /// - policy exists
86
- /// - has been activated
87
- /// - is not yet closed
88
- /// - has no open claims
89
- /// - claim amount matches sum insured amount or is expired
90
- 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)
91
152
  public
92
153
  view
93
154
  returns (bool isCloseable)
@@ -96,17 +157,27 @@ contract InstanceReader {
96
157
 
97
158
  if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
98
159
  if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
99
- if (info.closedAt.gtz()) { return false; } // not closeable: already closed
100
- 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
101
162
 
102
- // closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
103
- 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
+ }
104
173
 
105
- // not closeable: not yet expired
106
- if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
107
174
 
108
- // all conditionsl to close the policy are met
109
- return true;
175
+ function getClaimId(uint idx)
176
+ public
177
+ view
178
+ returns (ClaimId claimId)
179
+ {
180
+ return ClaimIdLib.toClaimId(idx + 1);
110
181
  }
111
182
 
112
183
  function getClaimInfo(NftId policyNftId, ClaimId claimId)
@@ -120,6 +191,7 @@ contract InstanceReader {
120
191
  }
121
192
  }
122
193
 
194
+
123
195
  function getClaimState(NftId policyNftId, ClaimId claimId)
124
196
  public
125
197
  view
@@ -128,6 +200,34 @@ contract InstanceReader {
128
200
  return _store.getState(claimId.toKey32(policyNftId));
129
201
  }
130
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
+
131
231
  function getPayoutInfo(NftId policyNftId, PayoutId payoutId)
132
232
  public
133
233
  view
@@ -147,6 +247,38 @@ contract InstanceReader {
147
247
  return _store.getState(payoutId.toKey32(policyNftId));
148
248
  }
149
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
+
150
282
  function getRiskInfo(RiskId riskId)
151
283
  public
152
284
  view
@@ -158,6 +290,44 @@ contract InstanceReader {
158
290
  }
159
291
  }
160
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
+
161
331
  function getTokenHandler(NftId componentNftId)
162
332
  public
163
333
  view
@@ -238,6 +408,17 @@ contract InstanceReader {
238
408
  }
239
409
  }
240
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
+
241
422
  function getPoolInfo(NftId poolNftId)
242
423
  public
243
424
  view
@@ -339,15 +520,26 @@ contract InstanceReader {
339
520
 
340
521
 
341
522
  function hasRole(address account, RoleId roleId) public view returns (bool isMember) {
342
- (isMember, ) = _instance.getInstanceAccessManager().hasRole(
343
- roleId.toInt(), account);
523
+ return _instance.getInstanceAdmin().hasRole(account, roleId);
524
+ }
525
+
526
+
527
+ function hasAdminRole(address account, RoleId roleId) public view returns (bool isMember) {
528
+ return _instance.getInstanceAdmin().hasAdminRole(account, roleId);
344
529
  }
345
530
 
346
531
 
532
+ function isLocked(address target) public view returns (bool) {
533
+ return _instance.getInstanceAdmin().isTargetLocked(target);
534
+ }
535
+
347
536
  function toPolicyKey(NftId policyNftId) public pure returns (Key32) {
348
537
  return policyNftId.toKey32(POLICY());
349
538
  }
350
539
 
540
+ function toPremiumKey(NftId policyNftId) public pure returns (Key32) {
541
+ return policyNftId.toKey32(PREMIUM());
542
+ }
351
543
 
352
544
  function toDistributorKey(NftId distributorNftId) public pure returns (Key32) {
353
545
  return distributorNftId.toKey32(DISTRIBUTOR());
@@ -373,6 +565,10 @@ contract InstanceReader {
373
565
  return productNftId.toKey32(PRODUCT());
374
566
  }
375
567
 
568
+ function toFeeKey(NftId productNftId) public pure returns (Key32) {
569
+ return productNftId.toKey32(FEE());
570
+ }
571
+
376
572
  // low level function
377
573
  function getInstance() external view returns (IInstance instance) {
378
574
  return _instance;
@@ -382,6 +578,14 @@ contract InstanceReader {
382
578
  return _store;
383
579
  }
384
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
+
385
589
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
386
590
  return UFixedLib.toUFixed(value, exp);
387
591
  }