@etherisc/gif-next 0.0.2-82c6d88-499 → 0.0.2-8311e70-020

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 (571) hide show
  1. package/README.md +67 -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 +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 +851 -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 +853 -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 +192 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  99. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +141 -126
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +127 -398
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +435 -202
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +163 -97
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +270 -27
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +132 -379
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +448 -217
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +124 -662
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +569 -396
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -91
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +318 -8
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +361 -113
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -237
  165. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  166. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +455 -318
  169. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
  171. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.json +230 -312
  173. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  175. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  176. package/artifacts/contracts/product/Product.sol/Product.json +258 -536
  177. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  179. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  181. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  183. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +340 -55
  185. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
  187. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +566 -112
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +396 -436
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  199. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  200. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  201. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  203. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1325 -0
  205. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  206. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +101 -16
  207. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  208. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +5 -5
  209. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  210. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  211. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +578 -492
  213. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -113
  215. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +550 -209
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +127 -123
  231. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
  233. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  235. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  237. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  239. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  241. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  244. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  246. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -351
  248. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
  250. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  252. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  254. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  256. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  258. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  260. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  262. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  268. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  270. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  272. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
  274. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
  276. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  277. package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
  278. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  279. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  280. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
  282. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  284. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
  286. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
  288. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +186 -164
  290. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  292. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  293. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  294. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  296. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  298. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  300. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  302. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  304. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  306. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  308. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  310. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  312. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  314. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  316. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  318. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  320. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  322. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  324. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  326. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  328. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  330. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  332. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  334. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  336. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  338. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  340. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +66 -2
  342. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  343. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  344. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  345. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  346. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  347. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  348. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  349. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  350. package/contracts/accounting/AccountingService.sol +262 -0
  351. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  352. package/contracts/accounting/IAccountingService.sol +45 -0
  353. package/contracts/{shared → authorization}/AccessAdmin.sol +271 -371
  354. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  355. package/contracts/authorization/Authorization.sol +289 -0
  356. package/contracts/authorization/IAccess.sol +49 -0
  357. package/contracts/{shared → authorization}/IAccessAdmin.sol +31 -59
  358. package/contracts/authorization/IAuthorization.sol +60 -0
  359. package/contracts/{registry → authorization}/IServiceAuthorization.sol +11 -6
  360. package/contracts/{registry → authorization}/ServiceAuthorization.sol +45 -25
  361. package/contracts/distribution/BasicDistribution.sol +139 -0
  362. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  363. package/contracts/distribution/Distribution.sol +147 -121
  364. package/contracts/distribution/DistributionService.sol +160 -100
  365. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  366. package/contracts/distribution/IDistributionComponent.sol +26 -40
  367. package/contracts/distribution/IDistributionService.sol +28 -9
  368. package/contracts/examples/fire/DamageLevel.sol +59 -0
  369. package/contracts/examples/fire/FirePool.sol +90 -0
  370. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  371. package/contracts/examples/fire/FireProduct.sol +438 -0
  372. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  373. package/contracts/examples/fire/FireUSD.sol +26 -0
  374. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  375. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  376. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  377. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  378. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  379. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  380. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  381. package/contracts/instance/BundleSet.sol +130 -0
  382. package/contracts/instance/IInstance.sol +23 -44
  383. package/contracts/instance/IInstanceService.sol +16 -41
  384. package/contracts/instance/Instance.sol +92 -120
  385. package/contracts/instance/InstanceAdmin.sol +250 -255
  386. package/contracts/instance/InstanceAuthorizationV3.sol +225 -0
  387. package/contracts/instance/InstanceReader.sol +238 -34
  388. package/contracts/instance/InstanceService.sol +145 -180
  389. package/contracts/instance/InstanceServiceManager.sol +8 -13
  390. package/contracts/instance/InstanceStore.sol +35 -6
  391. package/contracts/instance/RiskSet.sol +118 -0
  392. package/contracts/instance/base/ObjectCounter.sol +1 -2
  393. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  394. package/contracts/instance/base/ObjectSet.sol +77 -0
  395. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  396. package/contracts/instance/module/IBundle.sol +1 -1
  397. package/contracts/instance/module/IComponents.sol +14 -15
  398. package/contracts/instance/module/IDistribution.sol +0 -1
  399. package/contracts/instance/module/IPolicy.sol +26 -25
  400. package/contracts/instance/module/IRisk.sol +3 -0
  401. package/contracts/mock/Dip.sol +1 -1
  402. package/contracts/oracle/BasicOracle.sol +47 -0
  403. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  404. package/contracts/oracle/IOracle.sol +16 -0
  405. package/contracts/oracle/IOracleComponent.sol +2 -1
  406. package/contracts/oracle/IOracleService.sol +2 -1
  407. package/contracts/oracle/Oracle.sol +64 -53
  408. package/contracts/oracle/OracleService.sol +113 -81
  409. package/contracts/oracle/OracleServiceManager.sol +8 -11
  410. package/contracts/pool/BasicPool.sol +175 -0
  411. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  412. package/contracts/pool/BundleService.sol +231 -102
  413. package/contracts/pool/BundleServiceManager.sol +8 -11
  414. package/contracts/pool/IBundleService.sol +33 -18
  415. package/contracts/pool/IPoolComponent.sol +20 -70
  416. package/contracts/pool/IPoolService.sol +53 -50
  417. package/contracts/pool/Pool.sol +208 -162
  418. package/contracts/pool/PoolService.sol +343 -180
  419. package/contracts/pool/PoolServiceManager.sol +6 -9
  420. package/contracts/product/ApplicationService.sol +83 -78
  421. package/contracts/product/ApplicationServiceManager.sol +6 -6
  422. package/contracts/product/BasicProduct.sol +51 -0
  423. package/contracts/product/BasicProductAuthorization.sol +41 -0
  424. package/contracts/product/ClaimService.sol +425 -159
  425. package/contracts/product/ClaimServiceManager.sol +6 -6
  426. package/contracts/product/IApplicationService.sol +6 -2
  427. package/contracts/product/IClaimService.sol +44 -7
  428. package/contracts/product/IPolicyService.sol +46 -34
  429. package/contracts/product/IPricingService.sol +10 -10
  430. package/contracts/product/IProductComponent.sol +29 -9
  431. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  432. package/contracts/product/PolicyService.sol +520 -259
  433. package/contracts/product/PolicyServiceManager.sol +6 -9
  434. package/contracts/product/PricingService.sol +66 -62
  435. package/contracts/product/PricingServiceManager.sol +6 -9
  436. package/contracts/product/Product.sol +220 -134
  437. package/contracts/product/RiskService.sol +151 -0
  438. package/contracts/product/RiskServiceManager.sol +39 -0
  439. package/contracts/registry/ChainNft.sol +72 -40
  440. package/contracts/registry/IRegistry.sol +72 -32
  441. package/contracts/registry/IRegistryService.sol +3 -10
  442. package/contracts/registry/IRelease.sol +26 -0
  443. package/contracts/registry/ITransferInterceptor.sol +1 -2
  444. package/contracts/registry/Registry.sol +364 -220
  445. package/contracts/registry/RegistryAdmin.sol +228 -217
  446. package/contracts/registry/RegistryService.sol +41 -66
  447. package/contracts/registry/RegistryServiceManager.sol +5 -5
  448. package/contracts/registry/ReleaseAdmin.sol +245 -0
  449. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  450. package/contracts/registry/ReleaseRegistry.sol +511 -0
  451. package/contracts/registry/ServiceAuthorizationV3.sol +102 -60
  452. package/contracts/registry/TokenRegistry.sol +8 -10
  453. package/contracts/shared/Component.sol +71 -126
  454. package/contracts/shared/ComponentService.sol +463 -380
  455. package/contracts/shared/ComponentServiceManager.sol +10 -7
  456. package/contracts/shared/ComponentVerifyingService.sol +29 -18
  457. package/contracts/shared/ContractLib.sol +252 -0
  458. package/contracts/shared/IComponent.sol +8 -17
  459. package/contracts/shared/IComponentService.sol +53 -39
  460. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  461. package/contracts/shared/IKeyValueStore.sol +1 -0
  462. package/contracts/shared/ILifecycle.sol +3 -2
  463. package/contracts/shared/INftOwnable.sol +2 -0
  464. package/contracts/shared/IPolicyHolder.sol +12 -22
  465. package/contracts/shared/IRegisterable.sol +23 -1
  466. package/contracts/shared/IService.sol +4 -6
  467. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  468. package/contracts/shared/InstanceLinkedComponent.sol +95 -42
  469. package/contracts/shared/KeyValueStore.sol +7 -3
  470. package/contracts/shared/Lifecycle.sol +30 -72
  471. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  472. package/contracts/shared/NftOwnable.sol +31 -11
  473. package/contracts/shared/PolicyHolder.sol +17 -57
  474. package/contracts/shared/Registerable.sol +55 -21
  475. package/contracts/shared/RegistryLinked.sol +9 -14
  476. package/contracts/shared/Service.sol +18 -36
  477. package/contracts/shared/TokenHandler.sol +357 -26
  478. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  479. package/contracts/staking/IStaking.sol +12 -7
  480. package/contracts/staking/IStakingService.sol +12 -8
  481. package/contracts/staking/StakeManagerLib.sol +18 -25
  482. package/contracts/staking/Staking.sol +86 -73
  483. package/contracts/staking/StakingLifecycle.sol +23 -0
  484. package/contracts/staking/StakingManager.sol +10 -12
  485. package/contracts/staking/StakingReader.sol +23 -20
  486. package/contracts/staking/StakingService.sol +64 -36
  487. package/contracts/staking/StakingServiceManager.sol +4 -4
  488. package/contracts/staking/StakingStore.sol +15 -23
  489. package/contracts/staking/TargetManagerLib.sol +7 -3
  490. package/contracts/type/Amount.sol +27 -5
  491. package/contracts/type/Blocknumber.sol +7 -1
  492. package/contracts/type/ClaimId.sol +6 -1
  493. package/contracts/type/Key32.sol +2 -2
  494. package/contracts/type/Key32Set.sol +62 -0
  495. package/contracts/type/NftId.sol +7 -0
  496. package/contracts/type/ObjectType.sol +73 -24
  497. package/contracts/type/PayoutId.sol +10 -10
  498. package/contracts/type/Referral.sol +1 -0
  499. package/contracts/type/RiskId.sol +35 -4
  500. package/contracts/type/RoleId.sol +57 -93
  501. package/contracts/type/Seconds.sol +21 -1
  502. package/contracts/type/StateId.sol +15 -1
  503. package/contracts/type/Timestamp.sol +10 -5
  504. package/contracts/type/UFixed.sol +40 -121
  505. package/contracts/type/Version.sol +18 -6
  506. package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
  507. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  508. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  509. package/package.json +8 -5
  510. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  511. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  512. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  513. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  514. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  515. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  516. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  517. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  518. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  519. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  520. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  521. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  522. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  523. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
  524. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  525. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
  526. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  527. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  528. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  529. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  530. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  531. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  532. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  533. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  534. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  535. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  536. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  537. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  538. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  539. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  540. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  541. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  542. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  543. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  544. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  545. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  546. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  547. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  548. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  549. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  550. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  551. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  552. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  553. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  554. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  555. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  556. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  557. package/contracts/instance/BundleManager.sol +0 -126
  558. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  559. package/contracts/instance/base/ObjectManager.sol +0 -80
  560. package/contracts/product/ProductService.sol +0 -124
  561. package/contracts/product/ProductServiceManager.sol +0 -42
  562. package/contracts/registry/ReleaseManager.sol +0 -527
  563. package/contracts/shared/AccessManagerCustom.sol +0 -741
  564. package/contracts/shared/AccessManagerExtended.sol +0 -481
  565. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  566. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  567. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  568. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  569. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  570. package/contracts/shared/InitializableCustom.sol +0 -177
  571. /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
  }