@etherisc/gif-next 0.0.2-d16f92c-416 → 0.0.2-d1ee1ae-450

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 (592) hide show
  1. package/README.md +120 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -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 +1494 -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/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +404 -369
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +48 -10
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1225 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +119 -605
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +487 -269
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +169 -119
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +133 -279
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  41. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +311 -67
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1461 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2018 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2405 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +239 -55
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +155 -116
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +254 -182
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1581 -253
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1153 -396
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -341
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -128
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +940 -754
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  101. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +130 -136
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +121 -413
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +169 -190
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +140 -98
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +349 -206
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +159 -105
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +212 -35
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +128 -396
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -308
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +125 -684
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +705 -552
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +189 -107
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +208 -176
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +118 -100
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +431 -234
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +158 -124
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -268
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +465 -307
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +155 -109
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +244 -329
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -140
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  181. package/artifacts/contracts/product/Product.sol/Product.json +268 -567
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +367 -63
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +600 -127
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +666 -549
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +104 -90
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +101 -16
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  216. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  217. package/artifacts/contracts/shared/Component.sol/Component.json +67 -277
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +545 -569
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +152 -132
  222. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  224. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +661 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  232. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +499 -252
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -133
  238. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
  240. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  242. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  244. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  246. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  248. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  252. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  254. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +106 -366
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  256. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  258. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  260. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  268. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  269. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  270. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  276. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  278. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +196 -143
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  280. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +155 -23
  281. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  282. package/artifacts/contracts/staking/Staking.sol/Staking.json +292 -393
  283. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +142 -103
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +41 -73
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +224 -171
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +121 -95
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  296. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +218 -182
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +94 -48
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  300. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  314. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  318. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +59 -4
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +181 -14
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  339. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
  345. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  350. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  352. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  354. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  356. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  357. package/contracts/accounting/AccountingService.sol +261 -0
  358. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  359. package/contracts/accounting/IAccountingService.sol +45 -0
  360. package/contracts/authorization/AccessAdmin.sol +704 -0
  361. package/contracts/authorization/AccessAdminLib.sol +183 -0
  362. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  363. package/contracts/authorization/Authorization.sol +365 -0
  364. package/contracts/authorization/IAccess.sol +57 -0
  365. package/contracts/authorization/IAccessAdmin.sol +170 -0
  366. package/contracts/authorization/IAuthorization.sol +80 -0
  367. package/contracts/{registry → authorization}/IServiceAuthorization.sol +11 -6
  368. package/contracts/{registry → authorization}/ServiceAuthorization.sol +45 -25
  369. package/contracts/distribution/BasicDistribution.sol +141 -0
  370. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  371. package/contracts/distribution/Distribution.sol +124 -139
  372. package/contracts/distribution/DistributionService.sol +220 -126
  373. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  374. package/contracts/distribution/IDistributionComponent.sol +19 -42
  375. package/contracts/distribution/IDistributionService.sol +44 -22
  376. package/contracts/examples/fire/DamageLevel.sol +59 -0
  377. package/contracts/examples/fire/FirePool.sol +86 -0
  378. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  379. package/contracts/examples/fire/FireProduct.sol +433 -0
  380. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  381. package/contracts/examples/fire/FireUSD.sol +26 -0
  382. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  383. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  384. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  385. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  386. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  387. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  388. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  389. package/contracts/instance/BundleSet.sol +130 -0
  390. package/contracts/instance/IInstance.sol +68 -49
  391. package/contracts/instance/IInstanceService.sol +34 -43
  392. package/contracts/instance/Instance.sol +164 -122
  393. package/contracts/instance/InstanceAdmin.sol +363 -244
  394. package/contracts/instance/InstanceAuthorizationV3.sol +236 -0
  395. package/contracts/instance/InstanceReader.sol +306 -48
  396. package/contracts/instance/InstanceService.sol +223 -200
  397. package/contracts/instance/InstanceServiceManager.sol +8 -13
  398. package/contracts/instance/InstanceStore.sol +35 -6
  399. package/contracts/instance/RiskSet.sol +118 -0
  400. package/contracts/instance/base/BalanceStore.sol +3 -5
  401. package/contracts/instance/base/ObjectCounter.sol +1 -2
  402. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  403. package/contracts/instance/base/ObjectSet.sol +77 -0
  404. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  405. package/contracts/instance/module/IBundle.sol +6 -5
  406. package/contracts/instance/module/IComponents.sol +30 -20
  407. package/contracts/instance/module/IDistribution.sol +21 -9
  408. package/contracts/instance/module/IPolicy.sol +50 -29
  409. package/contracts/instance/module/IRisk.sol +5 -0
  410. package/contracts/mock/Dip.sol +1 -1
  411. package/contracts/oracle/BasicOracle.sol +45 -0
  412. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  413. package/contracts/oracle/IOracle.sol +25 -4
  414. package/contracts/oracle/IOracleComponent.sol +2 -1
  415. package/contracts/oracle/IOracleService.sol +2 -1
  416. package/contracts/oracle/Oracle.sol +62 -53
  417. package/contracts/oracle/OracleService.sol +117 -85
  418. package/contracts/oracle/OracleServiceManager.sol +8 -11
  419. package/contracts/pool/BasicPool.sol +173 -0
  420. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  421. package/contracts/pool/BundleService.sol +204 -105
  422. package/contracts/pool/BundleServiceManager.sol +8 -11
  423. package/contracts/pool/IBundleService.sol +31 -22
  424. package/contracts/pool/IPoolComponent.sol +20 -70
  425. package/contracts/pool/IPoolService.sol +90 -75
  426. package/contracts/pool/Pool.sol +207 -163
  427. package/contracts/pool/PoolLib.sol +309 -0
  428. package/contracts/pool/PoolService.sol +391 -256
  429. package/contracts/pool/PoolServiceManager.sol +6 -9
  430. package/contracts/product/ApplicationService.sol +102 -78
  431. package/contracts/product/ApplicationServiceManager.sol +6 -6
  432. package/contracts/product/BasicProduct.sol +49 -0
  433. package/contracts/product/BasicProductAuthorization.sol +58 -0
  434. package/contracts/product/ClaimService.sol +373 -175
  435. package/contracts/product/ClaimServiceManager.sol +6 -6
  436. package/contracts/product/IApplicationService.sol +9 -2
  437. package/contracts/product/IClaimService.sol +44 -8
  438. package/contracts/product/IPolicyService.sol +53 -36
  439. package/contracts/product/IPricingService.sol +11 -10
  440. package/contracts/product/IProductComponent.sol +29 -9
  441. package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
  442. package/contracts/product/PolicyService.sol +436 -271
  443. package/contracts/product/PolicyServiceLib.sol +119 -0
  444. package/contracts/product/PolicyServiceManager.sol +6 -9
  445. package/contracts/product/PricingService.sol +69 -60
  446. package/contracts/product/PricingServiceManager.sol +6 -9
  447. package/contracts/product/Product.sol +232 -140
  448. package/contracts/product/RiskService.sol +157 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +72 -40
  451. package/contracts/registry/IRegistry.sol +78 -32
  452. package/contracts/registry/IRegistryService.sol +3 -10
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -2
  455. package/contracts/registry/Registry.sol +368 -220
  456. package/contracts/registry/RegistryAdmin.sol +174 -249
  457. package/contracts/registry/RegistryAuthorization.sol +271 -0
  458. package/contracts/registry/RegistryService.sol +41 -66
  459. package/contracts/registry/RegistryServiceManager.sol +5 -5
  460. package/contracts/registry/ReleaseAdmin.sol +253 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  462. package/contracts/registry/ReleaseRegistry.sol +517 -0
  463. package/contracts/registry/ServiceAuthorizationV3.sol +192 -60
  464. package/contracts/registry/TokenRegistry.sol +12 -11
  465. package/contracts/shared/Component.sol +65 -136
  466. package/contracts/shared/ComponentService.sol +425 -381
  467. package/contracts/shared/ComponentServiceManager.sol +10 -7
  468. package/contracts/shared/ComponentVerifyingService.sol +29 -18
  469. package/contracts/shared/ContractLib.sol +347 -0
  470. package/contracts/shared/IComponent.sol +5 -17
  471. package/contracts/shared/IComponentService.sol +49 -41
  472. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  473. package/contracts/shared/IKeyValueStore.sol +1 -0
  474. package/contracts/shared/ILifecycle.sol +3 -2
  475. package/contracts/shared/INftOwnable.sol +2 -0
  476. package/contracts/shared/IPolicyHolder.sol +12 -22
  477. package/contracts/shared/IRegisterable.sol +23 -1
  478. package/contracts/shared/IService.sol +4 -6
  479. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  480. package/contracts/shared/InstanceLinkedComponent.sol +95 -45
  481. package/contracts/shared/KeyValueStore.sol +7 -3
  482. package/contracts/shared/Lifecycle.sol +30 -72
  483. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  484. package/contracts/shared/NftOwnable.sol +31 -11
  485. package/contracts/shared/PolicyHolder.sol +17 -57
  486. package/contracts/shared/Registerable.sol +52 -21
  487. package/contracts/shared/RegistryLinked.sol +9 -14
  488. package/contracts/shared/Service.sol +18 -36
  489. package/contracts/shared/TokenHandler.sol +310 -26
  490. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  491. package/contracts/staking/IStaking.sol +26 -15
  492. package/contracts/staking/IStakingService.sol +31 -9
  493. package/contracts/staking/Staking.sol +125 -88
  494. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
  495. package/contracts/staking/StakingLifecycle.sol +23 -0
  496. package/contracts/staking/StakingManager.sol +10 -12
  497. package/contracts/staking/StakingReader.sol +26 -33
  498. package/contracts/staking/StakingService.sol +93 -37
  499. package/contracts/staking/StakingServiceManager.sol +8 -7
  500. package/contracts/staking/StakingStore.sol +17 -24
  501. package/contracts/staking/TargetManagerLib.sol +7 -3
  502. package/contracts/type/Amount.sol +27 -5
  503. package/contracts/type/Blocknumber.sol +7 -1
  504. package/contracts/type/ClaimId.sol +6 -1
  505. package/contracts/type/Fee.sol +8 -8
  506. package/contracts/type/Key32.sol +2 -2
  507. package/contracts/type/Key32Set.sol +62 -0
  508. package/contracts/type/NftId.sol +7 -0
  509. package/contracts/type/ObjectType.sol +80 -27
  510. package/contracts/type/PayoutId.sol +10 -10
  511. package/contracts/type/Referral.sol +1 -0
  512. package/contracts/type/RiskId.sol +38 -6
  513. package/contracts/type/RoleId.sol +75 -94
  514. package/contracts/type/Seconds.sol +21 -1
  515. package/contracts/type/Selector.sol +5 -0
  516. package/contracts/type/StateId.sol +15 -1
  517. package/contracts/type/Timestamp.sol +10 -5
  518. package/contracts/type/UFixed.sol +61 -125
  519. package/contracts/type/Version.sol +57 -6
  520. package/contracts/{shared → upgradeability}/ProxyManager.sol +82 -47
  521. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  522. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  523. package/package.json +9 -6
  524. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  526. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  527. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  528. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  529. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  530. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  531. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  532. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  533. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  534. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  535. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  536. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  537. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  538. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  539. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
  540. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  541. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
  542. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  543. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  544. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  545. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  546. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  547. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  548. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  549. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  550. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  551. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  552. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  553. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  554. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  555. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  556. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  557. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  558. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  559. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  560. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  561. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  562. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  563. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  564. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  565. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  566. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  567. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  568. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  569. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  570. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  571. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  572. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  573. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  574. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  575. package/contracts/instance/BundleManager.sol +0 -126
  576. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  577. package/contracts/instance/base/ObjectManager.sol +0 -80
  578. package/contracts/instance/module/IAccess.sol +0 -46
  579. package/contracts/product/ProductService.sol +0 -124
  580. package/contracts/product/ProductServiceManager.sol +0 -42
  581. package/contracts/registry/ReleaseManager.sol +0 -527
  582. package/contracts/shared/AccessAdmin.sol +0 -759
  583. package/contracts/shared/AccessManagerCustom.sol +0 -741
  584. package/contracts/shared/AccessManagerExtended.sol +0 -481
  585. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  586. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  587. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  588. package/contracts/shared/IAccessAdmin.sol +0 -168
  589. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  590. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  591. package/contracts/shared/InitializableCustom.sol +0 -177
  592. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {ClaimService} from "./ClaimService.sol";
7
7
 
8
8
  contract ClaimServiceManager is ProxyManager {
@@ -12,14 +12,14 @@ contract ClaimServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with service implementation
13
13
  constructor(
14
14
  address authority,
15
- address registryAddress,
15
+ address registry,
16
16
  bytes32 salt
17
17
  )
18
- ProxyManager(registryAddress)
19
18
  {
20
19
  ClaimService svc = new ClaimService{salt: salt}();
21
- bytes memory data = abi.encode(registryAddress, address(this), authority);
22
- IVersionable versionable = deployDetermenistic(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
23
  address(svc),
24
24
  data,
25
25
  salt);
@@ -15,8 +15,14 @@ import {Seconds} from "../type/Seconds.sol";
15
15
  /// only product components may call transaction functions
16
16
  interface IApplicationService is IService {
17
17
 
18
- error ErrorApplicationServiceNotProduct(NftId callerNftId, ObjectType callerType);
19
- error ErrorApplicationServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
18
+ // _checkLinkedApplicationParameters
19
+ error ErrorApplicationServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
20
+ error ErrorApplicationServiceRiskUnknown(RiskId riskId, NftId productNftId);
21
+ error ErrorApplicationServiceRiskPaused(RiskId riskId, NftId productNftId);
22
+ error ErrorApplicationServiceBundleUnknown(NftId bundleNftId, NftId poolNftId);
23
+ error ErrorApplicationServiceBundleLocked(NftId bundleNftId, NftId poolNftId);
24
+ error ErrorApplicationServiceReferralInvalid(NftId productNftId, NftId distributionNftId, ReferralId referralId);
25
+
20
26
 
21
27
  /// @dev creates a new application based on the specified attributes
22
28
  /// may only be called by a product component
@@ -24,6 +30,7 @@ interface IApplicationService is IService {
24
30
  address applicationOwner,
25
31
  RiskId riskId,
26
32
  Amount sumInsuredAmount,
33
+ Amount premiumAmount,
27
34
  Seconds lifetime,
28
35
  NftId bundleNftId,
29
36
  ReferralId referralId,
@@ -19,23 +19,33 @@ import {Fee} from "../type/Fee.sol";
19
19
  interface IClaimService is
20
20
  IService
21
21
  {
22
-
23
22
  event LogClaimServiceClaimSubmitted(NftId policyNftId, ClaimId claimId, Amount claimAmount);
24
23
  event LogClaimServiceClaimConfirmed(NftId policyNftId, ClaimId claimId, Amount confirmedAmount);
25
24
  event LogClaimServiceClaimDeclined(NftId policyNftId, ClaimId claimId);
25
+ event LogClaimServiceClaimRevoked(NftId policyNftId, ClaimId claimId);
26
26
  event LogClaimServiceClaimClosed(NftId policyNftId, ClaimId claimId);
27
27
 
28
- event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount);
29
- event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary, Amount netAmount);
28
+ event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary);
29
+ event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount);
30
+ event LogClaimServicePayoutCancelled(NftId policyNftId, PayoutId payoutId);
31
+
32
+ error ErrorClaimServiceBeneficiarySet(NftId policyNftId, PayoutId payoutId, address beneficiary);
30
33
 
31
34
  error ErrorClaimServicePolicyProductMismatch(NftId policyNftId, NftId expectedProduct, NftId actualProduct);
32
35
  error ErrorClaimServicePolicyNotOpen(NftId policyNftId);
36
+ error ErrorClaimServiceClaimAmountIsZero(NftId policyNftId);
33
37
  error ErrorClaimServiceClaimExceedsSumInsured(NftId policyNftId, Amount sumInsured, Amount payoutsIncludingClaimAmount);
38
+ error ErrorClaimServiceBeneficiaryIsZero(NftId policyNftId, ClaimId claimId);
39
+ error ErrorClaimsServicePayoutAmountIsZero(NftId policyNftId, PayoutId payoutId);
34
40
 
35
- error ErrorClaimServiceClaimWithOpenPayouts(NftId policyNftId, ClaimId claimId, uint8 openPayouts);
41
+ error ErrorClaimServiceClaimWithOpenPayouts(NftId policyNftId, ClaimId claimId, uint24 openPayouts);
36
42
  error ErrorClaimServiceClaimWithMissingPayouts(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount paidAmount);
37
43
  error ErrorClaimServiceClaimNotInExpectedState(NftId policyNftId, ClaimId claimId, StateId expectedState, StateId actualState);
38
44
 
45
+ error ErrorClaimServiceClaimNotConfirmed(NftId policyNftId, ClaimId claimId, StateId actualState);
46
+ error ErrorClaimServicePayoutExceedsClaimAmount(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount totalPayoutAmount);
47
+ error ErrorClaimServicePayoutNotExpected(NftId policyNftId, PayoutId payoutId, StateId actualState);
48
+
39
49
  /// @dev create a new claim for the specified policy
40
50
  /// returns the id of the newly created claim
41
51
  /// function can only be called by product, policy needs to match with calling product
@@ -46,9 +56,6 @@ interface IClaimService is
46
56
  ) external returns (ClaimId claimId);
47
57
 
48
58
 
49
- // TODO add claim revoke functionality
50
-
51
-
52
59
  /// @dev declines the specified claim
53
60
  /// function can only be called by product, policy needs to match with calling product
54
61
  function decline(
@@ -58,6 +65,14 @@ interface IClaimService is
58
65
  ) external;
59
66
 
60
67
 
68
+ /// @dev revokes the specified claim
69
+ /// function can only be called by product, policy needs to match with calling product
70
+ function revoke(
71
+ NftId policyNftId,
72
+ ClaimId claimId
73
+ ) external;
74
+
75
+
61
76
  /// @dev confirms the specified claim and specifies the payout amount
62
77
  /// function can only be called by product, policy needs to match with calling product
63
78
  function confirm(
@@ -76,7 +91,8 @@ interface IClaimService is
76
91
  ) external;
77
92
 
78
93
 
79
- /// @dev creates a new payout for the specified claim
94
+ /// @dev Creates a new payout for the specified claim.
95
+ /// The beneficiary is the holder of the policy NFT
80
96
  /// returns the id of the newly created payout, this id is unique for the specified policy
81
97
  /// function can only be called by product, policy needs to match with calling product
82
98
  function createPayout(
@@ -89,6 +105,20 @@ interface IClaimService is
89
105
  returns (PayoutId payoutId);
90
106
 
91
107
 
108
+ /// @dev Creates a new payout for the specified claim and beneficiary.
109
+ /// returns the id of the newly created payout, this id is unique for the specified policy
110
+ /// function can only be called by product, policy needs to match with calling product
111
+ function createPayoutForBeneficiary(
112
+ NftId policyNftId,
113
+ ClaimId claimId,
114
+ Amount amount,
115
+ address beneficiary,
116
+ bytes memory data
117
+ )
118
+ external
119
+ returns (PayoutId payoutId);
120
+
121
+
92
122
  /// @dev processes the specified payout
93
123
  /// this includes moving the payout token to the beneficiary (default: policy holder)
94
124
  /// function can only be called by product, policy needs to match with calling product
@@ -96,4 +126,10 @@ interface IClaimService is
96
126
  NftId policyNftId,
97
127
  PayoutId payoutId
98
128
  ) external;
129
+
130
+ /// @dev cancels the specified payout. no tokens are moved, payout is set to cancelled.
131
+ function cancelPayout(
132
+ NftId policyNftId,
133
+ PayoutId payoutId
134
+ ) external;
99
135
  }
@@ -1,78 +1,95 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IRisk} from "../instance/module/IRisk.sol";
5
4
  import {IService} from "../shared/IService.sol";
6
5
 
7
6
  import {Amount} from "../type/Amount.sol";
8
- import {ClaimId} from "../type/ClaimId.sol";
7
+ import {IInstance} from "../instance/IInstance.sol";
8
+ import {InstanceReader} from "../instance/InstanceReader.sol";
9
9
  import {NftId} from "../type/NftId.sol";
10
- import {PayoutId} from "../type/PayoutId.sol";
11
- import {ReferralId} from "../type/Referral.sol";
12
- import {RiskId} from "../type/RiskId.sol";
13
- import {Seconds} from "../type/Seconds.sol";
14
10
  import {StateId} from "../type/StateId.sol";
15
11
  import {Timestamp} from "../type/Timestamp.sol";
16
- import {UFixed} from "../type/UFixed.sol";
17
- import {Fee} from "../type/Fee.sol";
18
12
 
19
13
  interface IPolicyService is IService {
20
14
 
15
+ event LogPolicyServicePolicyCreated(NftId policyNftId, Amount premiumAmount, Timestamp activatedAt);
16
+ event LogPolicyServicePolicyDeclined(NftId policyNftId);
17
+ event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
18
+ event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
19
+ event LogPolicyServicePolicyActivatedUpdated(NftId policyNftId, Timestamp activatedAt);
20
+ event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
21
+ event LogPolicyServicePolicyClosed(NftId policyNftId);
22
+
21
23
  error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
22
24
  error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
23
- error ErrorPolicyServicePolicyStateNotCollateralizedOrApplied(NftId applicationNftId);
25
+ error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
26
+ error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
27
+
28
+ error ErrorPolicyServicePolicyNotActivated(NftId policyNftId);
29
+ error ErrorPolicyServicePolicyActivationTooEarly(NftId policyNftId, Timestamp lowerLimit, Timestamp activatedAt);
30
+ error ErrorPolicyServicePolicyActivationTooLate(NftId policyNftId, Timestamp upperLimit, Timestamp activatedAt);
31
+
32
+ error ErrorPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
33
+ error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId);
24
34
 
25
- error ErrorPolicyServicePremiumHigherThanExpected(Amount premiumExpectedAmount, Amount premiumToBePaidAmount);
26
- error ErrorPolicyServiceBalanceInsufficient(address policyOwner, uint256 premiumAmount, uint256 balance);
27
- error ErrorPolicyServiceAllowanceInsufficient(address policyOwner, address tokenHandler, uint256 premiumAmount, uint256 allowance);
35
+ error ErrorPolicyServicePolicyNotCloseable(NftId policyNftId);
28
36
 
29
- error ErrorIPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
30
- error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId, Amount premiumPaidAmount);
31
- error ErrorIPolicyServicePolicyNotActivated(NftId policyNftId);
32
- error ErrorIPolicyServicePolicyAlreadyClosed(NftId policyNftId);
33
- error ErrorIPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
34
- error ErrorPolicyServicePremiumNotFullyPaid(NftId policyNftId, Amount premiumAmount, Amount premiumPaidAmount);
35
- error ErrorIPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
36
- error ErrorIPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
37
+ error ErrorPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
38
+ error ErrorPolicyServicePremiumNotPaid(NftId policyNftId, Amount premiumAmount);
39
+ error ErrorPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
40
+ error ErrorPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
41
+ error ErrorPolicyServicePolicyExpirationTooLate(NftId policyNftId, Timestamp upperLimit, Timestamp expiredAt);
42
+ error ErrorPolicyServicePolicyExpirationTooEarly(NftId policyNftId, Timestamp lowerLimit, Timestamp expiredAt);
37
43
 
38
44
  error ErrorPolicyServicePremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount recalculatedPremiumAmount);
39
45
  error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
40
46
 
41
- /// @dev collateralizes the policy represented by {policyNftId}
42
- /// sets the policy state to collateralized
43
- /// may set the policy state to activated and set the activation date
44
- /// optionally collects premiums and activates the policy.
45
- /// - premium payment is only attempted if requirePremiumPayment is set to true
46
- /// - activation is only done if activateAt is a non-zero timestamp
47
- /// an application can only be collateralized in applied state
48
- /// only the related product may collateralize an application
49
- function collateralize(
50
- NftId policyNftId,
51
- bool requirePremiumPayment,
47
+ /// @dev creates the policy from {applicationNftId}.
48
+ /// After successful completion of the function the policy can be referenced using the application NftId.
49
+ /// Locks the sum insured amount in the pool, but does not transfer tokens. Call collectPremium to transfer tokens.
50
+ /// Sets the policy state to collateralized.
51
+ /// Optionally activates the policy if activateAt is a non-zero timestamp.
52
+ /// only the related product may create a policy from an application
53
+ function createPolicy(
54
+ NftId applicationNftId,
52
55
  Timestamp activateAt
53
- ) external;
56
+ )
57
+ external
58
+ returns (Amount premiumAmount);
54
59
 
55
60
  /// @dev declines an application represented by {policyNftId}
56
61
  /// an application can only be declined in applied state
57
62
  /// only the related product may decline an application
58
63
  function decline(NftId policyNftId) external;
59
64
 
60
- /// @dev collects the premium token for the specified policy
65
+ /// @dev collects the premium token for the specified policy (must be in COLLATERALIZED state)
61
66
  function collectPremium(NftId policyNftId, Timestamp activateAt) external;
62
67
 
63
68
  /// @dev activates the specified policy and sets the activation date in the policy metadata
64
69
  /// to activate a policy it needs to be in underwritten state
65
70
  function activate(NftId policyNftId, Timestamp activateAt) external;
66
71
 
67
- /// @dev expires the specified policy and sets the expiry date in the policy metadata
72
+ /// @dev adjusts the activation date of the specified policy and sets the new activation date in the policy metadata
73
+ /// to adjust the activation date of a policy it needs to have an activation date set.
74
+ /// the new activation date must not be before the current block timestamp or after the expiry date
75
+ function adjustActivation(NftId policyNftId, Timestamp newActivateAt) external;
76
+
77
+ /// @dev Expires the specified policy and sets the expiry date in the policy metadata.
78
+ /// Function consumers are products.
79
+ /// If expiry date is set to 0, then the earliest possible expiry date (current blocktime) is set
68
80
  /// to expire a policy it must be in active state, policies may be expired even when the predefined expiry date is still in the future
69
81
  /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
70
82
  /// this function can only be called by a product. the policy needs to match with the calling product
71
- function expire(NftId policyNftId) external;
83
+ /// @return expiredAt the effective expiry date
84
+ function expire(NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
72
85
 
73
- /// @dev closes the specified policy and sets the closed data in the policy metadata
86
+ /// @dev Closes the specified policy and sets the closed data in the policy metadata
74
87
  /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
75
88
  /// this function can only be called by a product. the policy needs to match with the calling product
76
89
  function close(NftId policyNftId) external;
77
90
 
91
+ /// @dev Expires the specified policy and sets the expiry date in the policy metadata.
92
+ /// Function consumers is claim service.
93
+ function expirePolicy(IInstance instance, NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
94
+
78
95
  }
@@ -14,15 +14,16 @@ interface IPricingService is IService
14
14
  {
15
15
 
16
16
  error ErrorPricingServiceTargetWalletAmountsMismatch();
17
- error ErrorIPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
18
- error ErrorIPricingServiceFeeCalculationMismatch(
19
- uint256 distributionFeeFixAmount,
20
- uint256 distributionFeeVarAmount,
21
- uint256 distributionOwnerFeeFixAmount,
22
- uint256 distributionOwnerFeeVarAmount,
23
- uint256 commissionAmount,
24
- uint256 discountAmount
25
- );
17
+ error ErrorPricingServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
18
+ error ErrorPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
19
+ error ErrorPricingServiceFeeCalculationMismatch(
20
+ Amount distributionFeeFixAmount,
21
+ Amount distributionFeeVarAmount,
22
+ Amount distributionOwnerFeeFixAmount,
23
+ Amount distributionOwnerFeeVarAmount,
24
+ Amount commissionAmount,
25
+ Amount discountAmount
26
+ );
26
27
 
27
28
  function calculatePremium(
28
29
  NftId productNftId,
@@ -35,5 +36,5 @@ interface IPricingService is IService
35
36
  )
36
37
  external
37
38
  view
38
- returns (IPolicy.Premium memory premium);
39
+ returns (IPolicy.PremiumInfo memory premium);
39
40
  }
@@ -2,21 +2,36 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {Fee} from "../type/Fee.sol";
5
+ import {ClaimId} from "../type/ClaimId.sol";
6
6
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
7
  import {IComponents} from "../instance/module/IComponents.sol";
8
8
  import {NftId} from "../type/NftId.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
9
10
  import {ReferralId} from "../type/Referral.sol";
10
11
  import {RiskId} from "../type/RiskId.sol";
11
12
  import {Seconds} from "../type/Seconds.sol";
12
13
 
13
- interface IProductComponent is IInstanceLinkedComponent {
14
-
15
- function setFees(
16
- Fee memory productFee,
17
- Fee memory processingFee
14
+ interface IProductComponent is
15
+ IInstanceLinkedComponent
16
+ {
17
+
18
+ // @dev register a new component for this product cluster.
19
+ function registerComponent(address component)
20
+ external
21
+ returns (NftId componentNftId);
22
+
23
+ /// @dev Callback function to inform product compnent about arrival of funding for a claim.
24
+ /// The callback is called by the pool service after the corresponding pool triggers this function.
25
+ /// The callback is only called when the product's property isProcessingFundedClaims is set.
26
+ function processFundedClaim(
27
+ NftId policyNftId,
28
+ ClaimId claimId,
29
+ Amount availableAmount
18
30
  ) external;
19
31
 
32
+
33
+ /// @dev Calculates the premium amount for the provided application data.
34
+ /// The returned premium amounts takes into account potential discounts and fees.
20
35
  function calculatePremium(
21
36
  Amount sumInsuredAmount,
22
37
  RiskId riskId,
@@ -26,6 +41,10 @@ interface IProductComponent is IInstanceLinkedComponent {
26
41
  ReferralId referralId
27
42
  ) external view returns (Amount premiumAmount);
28
43
 
44
+
45
+ /// @dev Calculates the net premium amount for the provided application data.
46
+ /// The returned net premium amounts only covers the cost of collateralizing the application.
47
+ /// This amount purely depends on the use case specific risk and does not include any fees/commission.
29
48
  function calculateNetPremium(
30
49
  Amount sumInsuredAmount,
31
50
  RiskId riskId,
@@ -34,9 +53,10 @@ interface IProductComponent is IInstanceLinkedComponent {
34
53
  ) external view returns (Amount netPremiumAmount);
35
54
 
36
55
 
37
- /// @dev returns initial pool specific infos for this pool
56
+ /// @dev returns initial product specific infos
38
57
  function getInitialProductInfo() external view returns (IComponents.ProductInfo memory info);
39
58
 
40
- function getPoolNftId() external view returns (NftId poolNftId);
41
- function getDistributionNftId() external view returns (NftId distributionNftId);
59
+ /// @dev returns initial fee infos
60
+ function getInitialFeeInfo() external view returns (IComponents.FeeInfo memory info);
61
+
42
62
  }
@@ -1,23 +1,23 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IRisk} from "../instance/module/IRisk.sol";
5
4
  import {IService} from "../shared/IService.sol";
6
5
 
7
6
  import {NftId} from "../type/NftId.sol";
8
- import {ReferralId} from "../type/Referral.sol";
9
7
  import {RiskId} from "../type/RiskId.sol";
10
8
  import {StateId} from "../type/StateId.sol";
11
- import {Timestamp} from "../type/Timestamp.sol";
12
- import {UFixed} from "../type/UFixed.sol";
13
- import {Fee} from "../type/Fee.sol";
14
9
 
15
- interface IProductService is IService {
10
+ interface IRiskService is IService {
16
11
 
12
+ error ErrorRiskServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
13
+
14
+ /// @dev Create a new risk with the given id and provided data.
15
+ /// The key of the risk derived from the risk id in comination with the product NftId.
16
+ /// Risk data is stored in the instance store.
17
17
  function createRisk(
18
- RiskId riskId,
18
+ bytes32 id,
19
19
  bytes memory data
20
- ) external;
20
+ ) external returns (RiskId riskId);
21
21
 
22
22
 
23
23
  function updateRisk(