@etherisc/gif-next 0.0.2-b1059a4-617 → 0.0.2-b109dbd-819

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 (720) hide show
  1. package/README.md +136 -93
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +368 -362
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1850 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +950 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → distribution/IDistributionService.sol/IDistributionService.json} +591 -695
  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 +1480 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2045 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -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 +1423 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2471 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -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 +540 -1878
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +599 -59
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +602 -2684
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1983 -723
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +582 -333
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +201 -122
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3784 -0
  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 +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  102. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  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 +4 -0
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  119. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +312 -292
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +482 -554
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1454 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +870 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1041 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  135. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +401 -383
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +455 -542
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1552 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +894 -0
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +415 -73
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IPricingService.sol/IPricingService.json} +306 -226
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  167. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +520 -310
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → product/IRiskService.sol/IRiskService.json} +230 -199
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  181. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +780 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +512 -28
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +315 -122
  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 -0
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +996 -121
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +389 -257
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +212 -109
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -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 +1389 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  216. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  217. package/artifacts/contracts/shared/Component.sol/Component.json +705 -0
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1535 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +854 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  231. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +248 -131
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +38 -10
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +163 -3
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +187 -17
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +47 -70
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +145 -100
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +172 -104
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1646 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1196 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +2054 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +842 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1425 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +782 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +265 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  356. package/contracts/accounting/AccountingService.sol +274 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +47 -0
  359. package/contracts/authorization/AccessAdmin.sol +780 -0
  360. package/contracts/authorization/AccessAdminLib.sol +396 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  362. package/contracts/authorization/Authorization.sol +169 -0
  363. package/contracts/authorization/IAccess.sol +67 -0
  364. package/contracts/authorization/IAccessAdmin.sol +144 -0
  365. package/contracts/authorization/IAuthorization.sol +27 -0
  366. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  367. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  368. package/contracts/distribution/BasicDistribution.sol +141 -0
  369. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  370. package/contracts/distribution/Distribution.sol +247 -0
  371. package/contracts/distribution/DistributionService.sol +448 -0
  372. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  373. package/contracts/distribution/IDistributionComponent.sol +45 -0
  374. package/contracts/distribution/IDistributionService.sol +115 -0
  375. package/contracts/examples/fire/DamageLevel.sol +59 -0
  376. package/contracts/examples/fire/FirePool.sol +86 -0
  377. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  378. package/contracts/examples/fire/FireProduct.sol +433 -0
  379. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  380. package/contracts/examples/fire/FireUSD.sol +26 -0
  381. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  382. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  384. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  385. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BundleSet.sol +130 -0
  389. package/contracts/instance/IInstance.sol +119 -66
  390. package/contracts/instance/IInstanceService.sol +81 -26
  391. package/contracts/instance/Instance.sol +255 -200
  392. package/contracts/instance/InstanceAdmin.sol +383 -0
  393. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  394. package/contracts/instance/InstanceReader.sol +530 -191
  395. package/contracts/instance/InstanceService.sol +394 -354
  396. package/contracts/instance/InstanceServiceManager.sol +14 -29
  397. package/contracts/instance/InstanceStore.sol +298 -0
  398. package/contracts/instance/RiskSet.sol +118 -0
  399. package/contracts/instance/base/BalanceStore.sol +121 -0
  400. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  401. package/contracts/instance/base/ObjectCounter.sol +20 -0
  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 +10 -9
  406. package/contracts/instance/module/IComponents.sol +62 -0
  407. package/contracts/instance/module/IDistribution.sol +25 -10
  408. package/contracts/instance/module/IPolicy.sol +78 -20
  409. package/contracts/instance/module/IRisk.sol +6 -1
  410. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  411. package/contracts/oracle/BasicOracle.sol +45 -0
  412. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  413. package/contracts/oracle/IOracle.sol +41 -0
  414. package/contracts/oracle/IOracleComponent.sol +33 -0
  415. package/contracts/oracle/IOracleService.sol +66 -0
  416. package/contracts/oracle/Oracle.sol +154 -0
  417. package/contracts/oracle/OracleService.sol +310 -0
  418. package/contracts/oracle/OracleServiceManager.sol +39 -0
  419. package/contracts/pool/BasicPool.sol +173 -0
  420. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  421. package/contracts/pool/BundleService.sol +406 -0
  422. package/contracts/pool/BundleServiceManager.sol +39 -0
  423. package/contracts/pool/IBundleService.sol +121 -0
  424. package/contracts/pool/IPoolComponent.sol +62 -0
  425. package/contracts/pool/IPoolService.sol +170 -0
  426. package/contracts/pool/Pool.sol +343 -0
  427. package/contracts/pool/PoolLib.sol +359 -0
  428. package/contracts/pool/PoolService.sol +614 -0
  429. package/contracts/pool/PoolServiceManager.sol +39 -0
  430. package/contracts/product/ApplicationService.sol +327 -0
  431. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  432. package/contracts/product/BasicProduct.sol +49 -0
  433. package/contracts/product/BasicProductAuthorization.sol +63 -0
  434. package/contracts/product/ClaimService.sol +641 -0
  435. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  436. package/contracts/{instance/service → product}/IApplicationService.sol +42 -36
  437. package/contracts/product/IClaimService.sol +135 -0
  438. package/contracts/product/IPolicyService.sol +102 -0
  439. package/contracts/product/IPricingService.sol +40 -0
  440. package/contracts/product/IProductComponent.sol +62 -0
  441. package/contracts/product/IRiskService.sol +37 -0
  442. package/contracts/product/PolicyService.sol +645 -0
  443. package/contracts/product/PolicyServiceLib.sol +139 -0
  444. package/contracts/product/PolicyServiceManager.sol +39 -0
  445. package/contracts/product/PricingService.sol +306 -0
  446. package/contracts/product/PricingServiceManager.sol +39 -0
  447. package/contracts/product/Product.sol +472 -0
  448. package/contracts/product/RiskService.sol +163 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +83 -36
  451. package/contracts/registry/IRegistry.sol +106 -30
  452. package/contracts/registry/IRegistryService.sol +36 -41
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -1
  455. package/contracts/registry/Registry.sol +478 -206
  456. package/contracts/registry/RegistryAdmin.sol +188 -0
  457. package/contracts/registry/RegistryAuthorization.sol +284 -0
  458. package/contracts/registry/RegistryService.sol +90 -132
  459. package/contracts/registry/RegistryServiceManager.sol +23 -32
  460. package/contracts/registry/ReleaseAdmin.sol +195 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  462. package/contracts/registry/ReleaseRegistry.sol +520 -0
  463. package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
  464. package/contracts/registry/TokenRegistry.sol +263 -65
  465. package/contracts/shared/Component.sol +210 -0
  466. package/contracts/shared/ComponentService.sol +679 -0
  467. package/contracts/shared/ComponentServiceManager.sol +38 -0
  468. package/contracts/shared/ContractLib.sol +311 -0
  469. package/contracts/shared/IComponent.sol +58 -0
  470. package/contracts/shared/IComponentService.sol +111 -0
  471. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  472. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  473. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  474. package/contracts/shared/INftOwnable.sol +6 -2
  475. package/contracts/shared/IPolicyHolder.sol +23 -14
  476. package/contracts/shared/IRegisterable.sol +22 -1
  477. package/contracts/shared/IRegistryLinked.sol +0 -1
  478. package/contracts/shared/IService.sol +12 -5
  479. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  480. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  481. package/contracts/shared/KeyValueStore.sol +131 -0
  482. package/contracts/shared/Lifecycle.sol +88 -0
  483. package/contracts/shared/NftIdSet.sol +65 -0
  484. package/contracts/shared/NftOwnable.sol +36 -27
  485. package/contracts/shared/PolicyHolder.sol +23 -41
  486. package/contracts/shared/Registerable.sol +51 -19
  487. package/contracts/shared/RegistryLinked.sol +9 -19
  488. package/contracts/shared/Service.sol +38 -29
  489. package/contracts/shared/TokenHandler.sol +327 -12
  490. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  491. package/contracts/staking/IStaking.sol +195 -0
  492. package/contracts/staking/IStakingService.sol +170 -0
  493. package/contracts/staking/Staking.sol +605 -0
  494. package/contracts/staking/StakingLib.sol +281 -0
  495. package/contracts/staking/StakingLifecycle.sol +23 -0
  496. package/contracts/staking/StakingManager.sol +52 -0
  497. package/contracts/staking/StakingReader.sol +199 -0
  498. package/contracts/staking/StakingService.sol +468 -0
  499. package/contracts/staking/StakingServiceManager.sol +45 -0
  500. package/contracts/staking/StakingStore.sol +606 -0
  501. package/contracts/staking/TargetManagerLib.sol +211 -0
  502. package/contracts/{types → type}/AddressSet.sol +1 -1
  503. package/contracts/type/Amount.sol +150 -0
  504. package/contracts/{types → type}/Blocknumber.sol +27 -3
  505. package/contracts/{types → type}/ClaimId.sol +31 -3
  506. package/contracts/type/Fee.sol +66 -0
  507. package/contracts/{types → type}/Key32.sol +2 -2
  508. package/contracts/type/Key32Set.sol +62 -0
  509. package/contracts/{types → type}/NftId.sol +28 -15
  510. package/contracts/{types → type}/NftIdSet.sol +2 -2
  511. package/contracts/type/ObjectType.sol +307 -0
  512. package/contracts/type/PayoutId.sol +82 -0
  513. package/contracts/{types → type}/Referral.sol +6 -1
  514. package/contracts/type/RequestId.sol +75 -0
  515. package/contracts/type/RiskId.sol +75 -0
  516. package/contracts/type/RoleId.sol +180 -0
  517. package/contracts/type/Seconds.sol +105 -0
  518. package/contracts/type/Selector.sol +107 -0
  519. package/contracts/{types → type}/StateId.sol +48 -4
  520. package/contracts/type/String.sol +65 -0
  521. package/contracts/{types → type}/Timestamp.sol +33 -19
  522. package/contracts/type/UFixed.sol +262 -0
  523. package/contracts/{types → type}/Version.sol +59 -7
  524. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  525. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  526. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  527. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  528. package/package.json +12 -8
  529. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  530. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  531. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  532. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  533. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  534. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  535. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  536. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  537. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  539. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  540. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  541. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  542. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  543. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  544. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  546. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  548. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  549. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  550. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  551. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  552. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -254
  553. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
  557. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  559. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
  561. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  563. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
  565. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  567. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -935
  569. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -677
  571. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +0 -622
  574. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
  576. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -480
  578. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
  581. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -373
  583. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1109
  585. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  587. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -716
  589. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  591. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
  593. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  594. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  595. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  596. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  597. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  598. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  599. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  600. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  601. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  602. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  603. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  604. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  605. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  606. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  607. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  608. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  609. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  610. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  611. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  613. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  615. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -510
  617. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  619. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  621. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  623. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  624. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  625. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  626. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  627. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  629. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  631. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  633. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  635. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  637. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  638. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  639. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  641. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  642. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  643. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  645. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  647. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  649. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  651. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  653. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  655. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  657. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  659. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  661. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  663. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  665. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  667. package/contracts/components/Component.sol +0 -241
  668. package/contracts/components/Distribution.sol +0 -308
  669. package/contracts/components/IComponent.sol +0 -54
  670. package/contracts/components/IDistributionComponent.sol +0 -100
  671. package/contracts/components/IPoolComponent.sol +0 -87
  672. package/contracts/components/IProductComponent.sol +0 -39
  673. package/contracts/components/Pool.sol +0 -254
  674. package/contracts/components/Product.sol +0 -285
  675. package/contracts/instance/BundleManager.sol +0 -125
  676. package/contracts/instance/InstanceAccessManager.sol +0 -297
  677. package/contracts/instance/ObjectManager.sol +0 -84
  678. package/contracts/instance/base/ComponentService.sol +0 -134
  679. package/contracts/instance/base/KeyValueStore.sol +0 -172
  680. package/contracts/instance/base/Lifecycle.sol +0 -100
  681. package/contracts/instance/module/IAccess.sol +0 -47
  682. package/contracts/instance/module/ISetup.sol +0 -47
  683. package/contracts/instance/module/ITreasury.sol +0 -23
  684. package/contracts/instance/service/ApplicationService.sol +0 -268
  685. package/contracts/instance/service/BundleService.sol +0 -298
  686. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  687. package/contracts/instance/service/ClaimService.sol +0 -151
  688. package/contracts/instance/service/DistributionService.sol +0 -277
  689. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  690. package/contracts/instance/service/IBundleService.sol +0 -54
  691. package/contracts/instance/service/IClaimService.sol +0 -61
  692. package/contracts/instance/service/IDistributionService.sol +0 -65
  693. package/contracts/instance/service/IPolicyService.sol +0 -89
  694. package/contracts/instance/service/IPoolService.sol +0 -20
  695. package/contracts/instance/service/IProductService.sol +0 -40
  696. package/contracts/instance/service/PolicyService.sol +0 -474
  697. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  698. package/contracts/instance/service/PoolService.sol +0 -109
  699. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  700. package/contracts/instance/service/ProductService.sol +0 -233
  701. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  702. package/contracts/registry/RegistryAccessManager.sol +0 -216
  703. package/contracts/registry/ReleaseManager.sol +0 -322
  704. package/contracts/shared/ContractDeployerLib.sol +0 -72
  705. package/contracts/test/TestFee.sol +0 -25
  706. package/contracts/test/TestRegisterable.sol +0 -18
  707. package/contracts/test/TestRoleId.sol +0 -14
  708. package/contracts/test/TestService.sol +0 -25
  709. package/contracts/test/TestToken.sol +0 -26
  710. package/contracts/test/TestVersion.sol +0 -44
  711. package/contracts/test/TestVersionable.sol +0 -17
  712. package/contracts/types/ChainId.sol +0 -38
  713. package/contracts/types/Fee.sol +0 -56
  714. package/contracts/types/NumberId.sol +0 -52
  715. package/contracts/types/ObjectType.sol +0 -156
  716. package/contracts/types/PayoutId.sol +0 -54
  717. package/contracts/types/RiskId.sol +0 -43
  718. package/contracts/types/RoleId.sol +0 -90
  719. package/contracts/types/UFixed.sol +0 -325
  720. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,641 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IClaimService} from "./IClaimService.sol";
5
+ import {IInstance} from "../instance/IInstance.sol";
6
+ import {IPolicy} from "../instance/module/IPolicy.sol";
7
+ import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
8
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
9
+ import {IPolicyService} from "../product/IPolicyService.sol";
10
+ import {IPoolService} from "../pool/IPoolService.sol";
11
+ import {IRegistry} from "../registry/IRegistry.sol";
12
+
13
+ import {Amount, AmountLib} from "../type/Amount.sol";
14
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
15
+ import {ContractLib} from "../shared/ContractLib.sol";
16
+ import {InstanceReader} from "../instance/InstanceReader.sol";
17
+ import {InstanceStore} from "../instance/InstanceStore.sol";
18
+ import {NftId} from "../type/NftId.sol";
19
+ import {ObjectType, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
20
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
21
+ import {Service} from "../shared/Service.sol";
22
+ import {StateId} from "../type/StateId.sol";
23
+ import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CANCELLED, CONFIRMED, CLOSED, EXPECTED, PAID} from "../type/StateId.sol";
24
+ import {TimestampLib} from "../type/Timestamp.sol";
25
+
26
+
27
+ contract ClaimService is
28
+ Service,
29
+ IClaimService
30
+ {
31
+
32
+ IPolicyService internal _policyService;
33
+ IPoolService internal _poolService;
34
+
35
+ function _initialize(
36
+ address owner,
37
+ bytes memory data
38
+ )
39
+ internal
40
+ virtual override
41
+ initializer()
42
+ {
43
+ (
44
+ address authority,
45
+ address registry
46
+ ) = abi.decode(data, (address, address));
47
+
48
+ __Service_init(authority, registry, owner);
49
+
50
+ _policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
51
+ _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
52
+
53
+ _registerInterface(type(IClaimService).interfaceId);
54
+ }
55
+
56
+ function submit(
57
+ NftId policyNftId,
58
+ Amount claimAmount,
59
+ bytes memory claimData // claim submission data
60
+ )
61
+ external
62
+ virtual
63
+ // nonReentrant() // prevents creating a reinsurance claim in a single tx
64
+ restricted()
65
+ returns (ClaimId claimId)
66
+ {
67
+ // checks
68
+ (
69
+ ,,,
70
+ InstanceStore instanceStore,
71
+ IPolicy.PolicyInfo memory policyInfo
72
+ ) = _verifyCallerWithPolicy(policyNftId);
73
+
74
+ // check policy is in its active period
75
+ if(policyInfo.activatedAt.eqz() || TimestampLib.blockTimestamp() >= policyInfo.expiredAt) {
76
+ revert ErrorClaimServicePolicyNotOpen(policyNftId);
77
+ }
78
+
79
+ _checkClaimAmount(policyNftId, policyInfo, claimAmount);
80
+
81
+ // effects
82
+ // create new claim
83
+ claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
84
+ instanceStore.createClaim(
85
+ policyNftId,
86
+ claimId,
87
+ IPolicy.ClaimInfo({
88
+ claimAmount: claimAmount,
89
+ paidAmount: AmountLib.zero(),
90
+ payoutsCount: 0,
91
+ openPayoutsCount: 0,
92
+ submissionData: claimData,
93
+ processData: "",
94
+ closedAt: TimestampLib.zero()}));
95
+
96
+ // update and save policy info with instance
97
+ // policy claim amount is only updated when claim is confirmed
98
+ policyInfo.claimsCount += 1;
99
+ policyInfo.openClaimsCount += 1;
100
+ instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
101
+
102
+ emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
103
+ }
104
+
105
+
106
+ function confirm(
107
+ NftId policyNftId,
108
+ ClaimId claimId,
109
+ Amount confirmedAmount,
110
+ bytes memory data // claim processing data
111
+ )
112
+ external
113
+ virtual
114
+ restricted()
115
+ // nonReentrant() // prevents creating a reinsurance claim in a single tx
116
+ {
117
+ // checks
118
+ _checkNftType(policyNftId, POLICY());
119
+
120
+ (
121
+ NftId productNftId,
122
+ IInstance instance,
123
+ InstanceReader instanceReader,
124
+ InstanceStore instanceStore,
125
+ IPolicy.PolicyInfo memory policyInfo
126
+ ) = _verifyCallerWithPolicy(policyNftId);
127
+
128
+ _checkClaimAmount(policyNftId, policyInfo, confirmedAmount);
129
+
130
+ // effects
131
+ // check/update claim info
132
+ IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
133
+ claimInfo.claimAmount = confirmedAmount;
134
+ claimInfo.processData = data;
135
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
136
+
137
+ // update and save policy info with instance
138
+ policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
139
+ instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
140
+
141
+ // should policy still be active it needs to become expired
142
+ if (policyInfo.claimAmount >= policyInfo.sumInsuredAmount) {
143
+ _policyService.expirePolicy(instance, policyNftId, TimestampLib.blockTimestamp());
144
+ }
145
+
146
+ emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
147
+
148
+ // interactions
149
+ // callback to pool if applicable
150
+ _processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
151
+
152
+ // callback to policy holder if applicable
153
+ _policyHolderClaimConfirmed(policyNftId, claimId, confirmedAmount);
154
+ }
155
+
156
+
157
+ function decline(
158
+ NftId policyNftId,
159
+ ClaimId claimId,
160
+ bytes memory data // claim processing data
161
+ )
162
+ external
163
+ virtual
164
+ restricted()
165
+ // nonReentrant() // prevents creating a reinsurance claim in a single tx
166
+ {
167
+ _checkNftType(policyNftId, POLICY());
168
+
169
+ (
170
+ ,,
171
+ InstanceReader instanceReader,
172
+ InstanceStore instanceStore,
173
+ IPolicy.PolicyInfo memory policyInfo
174
+ ) = _verifyCallerWithPolicy(policyNftId);
175
+
176
+ // check/update claim info
177
+ IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
178
+ claimInfo.processData = data;
179
+ claimInfo.closedAt = TimestampLib.blockTimestamp();
180
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
181
+
182
+ // update and save policy info with instance
183
+ policyInfo.openClaimsCount -= 1;
184
+ instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
185
+
186
+ emit LogClaimServiceClaimDeclined(policyNftId, claimId);
187
+ }
188
+
189
+
190
+ function revoke(
191
+ NftId policyNftId,
192
+ ClaimId claimId
193
+ )
194
+ external
195
+ virtual
196
+ restricted()
197
+ // nonReentrant() // prevents creating a reinsurance claim in a single tx
198
+ {
199
+ (
200
+ ,,
201
+ InstanceReader instanceReader,
202
+ InstanceStore instanceStore,
203
+ IPolicy.PolicyInfo memory policyInfo
204
+ ) = _verifyCallerWithPolicy(policyNftId);
205
+
206
+ // check/update claim info
207
+ IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
208
+ claimInfo.closedAt = TimestampLib.blockTimestamp();
209
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
210
+
211
+ // update and save policy info with instance
212
+ policyInfo.openClaimsCount -= 1;
213
+ instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
214
+
215
+ emit LogClaimServiceClaimRevoked(policyNftId, claimId);
216
+ }
217
+
218
+
219
+ function close(
220
+ NftId policyNftId,
221
+ ClaimId claimId
222
+ )
223
+ external
224
+ virtual
225
+ restricted()
226
+ // nonReentrant() // prevents creating a reinsurance claim in a single tx
227
+ {
228
+ _checkNftType(policyNftId, POLICY());
229
+
230
+ (
231
+ ,,
232
+ InstanceReader instanceReader,
233
+ InstanceStore instanceStore,
234
+ ) = _verifyCallerWithPolicy(policyNftId);
235
+
236
+ // check/update claim info
237
+ IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, CONFIRMED());
238
+
239
+ // check claim has no open payouts
240
+ if(claimInfo.openPayoutsCount > 0) {
241
+ revert ErrorClaimServiceClaimWithOpenPayouts(
242
+ policyNftId,
243
+ claimId,
244
+ claimInfo.openPayoutsCount);
245
+ }
246
+
247
+ // check claim paid amount matches with claim amount
248
+ if(claimInfo.paidAmount.toInt() < claimInfo.claimAmount.toInt()) {
249
+ revert ErrorClaimServiceClaimWithMissingPayouts(
250
+ policyNftId,
251
+ claimId,
252
+ claimInfo.claimAmount,
253
+ claimInfo.paidAmount);
254
+ }
255
+
256
+ claimInfo.closedAt = TimestampLib.blockTimestamp();
257
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
258
+
259
+ emit LogClaimServiceClaimClosed(policyNftId, claimId);
260
+ }
261
+
262
+
263
+ function createPayoutForBeneficiary(
264
+ NftId policyNftId,
265
+ ClaimId claimId,
266
+ Amount amount,
267
+ address beneficiary,
268
+ bytes memory data
269
+ )
270
+ external
271
+ virtual
272
+ restricted()
273
+ // nonReentrant() // prevents creating a reinsurance claim in a single tx
274
+ returns (PayoutId payoutId)
275
+ {
276
+ if (beneficiary == address(0)) {
277
+ revert ErrorClaimServiceBeneficiaryIsZero(policyNftId, claimId);
278
+ }
279
+
280
+ return _createPayout(
281
+ policyNftId,
282
+ claimId,
283
+ amount,
284
+ beneficiary,
285
+ data);
286
+ }
287
+
288
+
289
+ function createPayout(
290
+ NftId policyNftId,
291
+ ClaimId claimId,
292
+ Amount amount,
293
+ bytes memory data
294
+ )
295
+ external
296
+ virtual
297
+ restricted()
298
+ // nonReentrant() // prevents creating a reinsurance payout in a single tx
299
+ returns (PayoutId payoutId)
300
+ {
301
+ _checkNftType(policyNftId, POLICY());
302
+
303
+ return _createPayout(
304
+ policyNftId,
305
+ claimId,
306
+ amount,
307
+ address(0), // defaults to owner of policy nft
308
+ data);
309
+ }
310
+
311
+
312
+ function processPayout(
313
+ NftId policyNftId,
314
+ PayoutId payoutId
315
+ )
316
+ external
317
+ virtual
318
+ restricted()
319
+ // nonReentrant() // prevents creating a reinsurance payout in a single tx
320
+ returns (Amount netPayoutAmount, Amount processingFeeAmount)
321
+ {
322
+ // checks
323
+ (
324
+ ,,
325
+ InstanceReader instanceReader,
326
+ InstanceStore instanceStore,
327
+ IPolicy.PolicyInfo memory policyInfo
328
+ ) = _verifyCallerWithPolicy(policyNftId);
329
+
330
+ IPolicy.ClaimInfo memory claimInfo;
331
+ address payoutBeneficiary;
332
+ Amount payoutAmount;
333
+
334
+ {
335
+ // check that payout exists and is open
336
+ IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
337
+ payoutBeneficiary = payoutInfo.beneficiary;
338
+ payoutAmount = payoutInfo.amount;
339
+ StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
340
+ if(payoutState != EXPECTED()) {
341
+ revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
342
+ }
343
+
344
+ // check that payout amount does not violate claim amount
345
+ claimInfo = instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
346
+ if(claimInfo.paidAmount + payoutInfo.amount > claimInfo.claimAmount) {
347
+ revert ErrorClaimServicePayoutExceedsClaimAmount(
348
+ policyNftId,
349
+ payoutId.toClaimId(),
350
+ claimInfo.claimAmount,
351
+ claimInfo.paidAmount + payoutInfo.amount);
352
+ }
353
+
354
+ // effects
355
+ // update and save payout info with instance
356
+ payoutInfo.paidAt = TimestampLib.blockTimestamp();
357
+ instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
358
+ }
359
+
360
+ // update and save claim info with instance
361
+ {
362
+ ClaimId claimId = payoutId.toClaimId();
363
+ // TODO cleanup
364
+ // IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
365
+ claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
366
+ claimInfo.openPayoutsCount -= 1;
367
+
368
+ // check if this payout is closing the linked claim
369
+ // update claim and policy info accordingly
370
+ if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
371
+ claimInfo.closedAt = TimestampLib.blockTimestamp();
372
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
373
+
374
+ policyInfo.openClaimsCount -= 1;
375
+ } else {
376
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
377
+ }
378
+ }
379
+
380
+ // update and save policy info with instance
381
+ policyInfo.payoutAmount = policyInfo.payoutAmount + payoutAmount;
382
+ instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
383
+
384
+ emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount);
385
+
386
+ // effects + interactions (push tokens to beneficiary, product)
387
+ // delegate to pool to update book keeping and moving tokens payout
388
+ (netPayoutAmount, processingFeeAmount) = _poolService.processPayout(
389
+ instanceReader,
390
+ instanceStore,
391
+ policyInfo.productNftId, // product nft id
392
+ policyNftId,
393
+ policyInfo.bundleNftId,
394
+ payoutId,
395
+ payoutAmount,
396
+ payoutBeneficiary);
397
+ }
398
+
399
+ function cancelPayout(
400
+ NftId policyNftId,
401
+ PayoutId payoutId
402
+ )
403
+ external
404
+ virtual
405
+ restricted()
406
+ {
407
+ // checks
408
+ (
409
+ ,,
410
+ InstanceReader instanceReader,
411
+ InstanceStore instanceStore,
412
+ ) = _verifyCallerWithPolicy(policyNftId);
413
+
414
+ StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
415
+ if (payoutState != EXPECTED()) {
416
+ revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
417
+ }
418
+
419
+ // effects
420
+ // update and save payout info with instance
421
+ instanceStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
422
+
423
+ {
424
+ ClaimId claimId = payoutId.toClaimId();
425
+ IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
426
+ claimInfo.openPayoutsCount -= 1;
427
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
428
+ }
429
+
430
+ emit LogClaimServicePayoutCancelled(policyNftId, payoutId);
431
+ }
432
+
433
+ // internal functions
434
+
435
+ function _checkClaimAmount(
436
+ NftId policyNftId,
437
+ IPolicy.PolicyInfo memory policyInfo,
438
+ Amount claimAmount
439
+ )
440
+ internal
441
+ pure
442
+ {
443
+ // check claim amount > 0
444
+ if (claimAmount.eqz()) {
445
+ revert ErrorClaimServiceClaimAmountIsZero(policyNftId);
446
+ }
447
+
448
+ // check policy including this claim is still within sum insured
449
+ if(policyInfo.claimAmount + claimAmount > policyInfo.sumInsuredAmount) {
450
+ revert ErrorClaimServiceClaimExceedsSumInsured(
451
+ policyNftId,
452
+ policyInfo.sumInsuredAmount,
453
+ policyInfo.payoutAmount + claimAmount);
454
+ }
455
+ }
456
+
457
+ function _createPayout(
458
+ NftId policyNftId,
459
+ ClaimId claimId,
460
+ Amount amount,
461
+ address beneficiary,
462
+ bytes memory data
463
+ )
464
+ internal
465
+ virtual
466
+ returns (PayoutId payoutId)
467
+ {
468
+ // checks
469
+ (
470
+ ,,
471
+ InstanceReader instanceReader,
472
+ InstanceStore instanceStore,
473
+ // IPolicy.PolicyInfo memory policyInfo
474
+ ) = _verifyCallerWithPolicy(policyNftId);
475
+
476
+ IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
477
+
478
+ {
479
+ // check claim state
480
+ StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
481
+ if (claimState != CONFIRMED()) {
482
+ revert ErrorClaimServiceClaimNotConfirmed(policyNftId, claimId, claimState);
483
+ }
484
+
485
+ // check total payout amount remains within claim limit
486
+ Amount newPaidAmount = claimInfo.paidAmount + amount;
487
+ if (newPaidAmount > claimInfo.claimAmount) {
488
+ revert ErrorClaimServicePayoutExceedsClaimAmount(
489
+ policyNftId, claimId, claimInfo.claimAmount, newPaidAmount);
490
+ }
491
+ }
492
+
493
+ // effects
494
+ // create payout info with instance
495
+ uint24 payoutNo = claimInfo.payoutsCount + 1;
496
+ payoutId = PayoutIdLib.toPayoutId(claimId, payoutNo);
497
+ if (beneficiary == address(0)) {
498
+ beneficiary = getRegistry().ownerOf(policyNftId);
499
+ }
500
+
501
+ instanceStore.createPayout(
502
+ policyNftId,
503
+ payoutId,
504
+ IPolicy.PayoutInfo({
505
+ claimId: payoutId.toClaimId(),
506
+ amount: amount,
507
+ beneficiary: beneficiary,
508
+ data: data,
509
+ paidAt: TimestampLib.zero()}));
510
+
511
+ // update and save claim info with instance
512
+ claimInfo.payoutsCount += 1;
513
+ claimInfo.openPayoutsCount += 1;
514
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
515
+
516
+ emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
517
+ }
518
+
519
+
520
+ function _verifyCallerWithPolicy(
521
+ NftId policyNftId
522
+ )
523
+ internal
524
+ view
525
+ virtual
526
+ returns (
527
+ NftId productNftId,
528
+ IInstance instance,
529
+ InstanceReader instanceReader,
530
+ InstanceStore instanceStore,
531
+ IPolicy.PolicyInfo memory policyInfo
532
+ )
533
+ {
534
+ (productNftId, instance) = _getAndVerifyActiveProduct();
535
+ instanceReader = instance.getInstanceReader();
536
+ instanceStore = instance.getInstanceStore();
537
+
538
+ // check caller(product) policy match
539
+ policyInfo = instanceReader.getPolicyInfo(policyNftId);
540
+ if(policyInfo.productNftId != productNftId) {
541
+ revert ErrorClaimServicePolicyProductMismatch(policyNftId,
542
+ policyInfo.productNftId,
543
+ productNftId);
544
+ }
545
+ }
546
+
547
+
548
+ function _getAndVerifyActiveProduct()
549
+ internal
550
+ view
551
+ returns (
552
+ NftId productNftId,
553
+ IInstance instance
554
+ )
555
+ {
556
+ (
557
+ IRegistry.ObjectInfo memory info,
558
+ address instanceAddress
559
+ ) = ContractLib.getAndVerifyComponent(
560
+ getRegistry(),
561
+ msg.sender, // caller
562
+ PRODUCT(),
563
+ true); // isActive
564
+
565
+ // get component nft id and instance
566
+ productNftId = info.nftId;
567
+ instance = IInstance(instanceAddress);
568
+ }
569
+
570
+ function _verifyClaim(
571
+ InstanceReader instanceReader,
572
+ NftId policyNftId,
573
+ ClaimId claimId,
574
+ StateId expectedState
575
+ )
576
+ internal
577
+ view
578
+ returns (
579
+ IPolicy.ClaimInfo memory claimInfo
580
+ )
581
+ {
582
+ // check claim is created state
583
+ StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
584
+ if(claimState != expectedState) {
585
+ revert ErrorClaimServiceClaimNotInExpectedState(
586
+ policyNftId, claimId, expectedState, claimState);
587
+ }
588
+
589
+ // get claim info
590
+ claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
591
+ }
592
+
593
+ function _processConfirmedClaimByPool(
594
+ InstanceReader instanceReader,
595
+ NftId productNftId,
596
+ NftId policyNftId,
597
+ ClaimId claimId,
598
+ Amount amount
599
+ )
600
+ internal
601
+ {
602
+ NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
603
+ if (instanceReader.getPoolInfo(poolNftId).isProcessingConfirmedClaims) {
604
+ address poolAddress = getRegistry().getObjectAddress(poolNftId);
605
+ IPoolComponent(poolAddress).processConfirmedClaim(policyNftId, claimId, amount);
606
+ }
607
+ }
608
+
609
+
610
+ function _policyHolderClaimConfirmed(
611
+ NftId policyNftId,
612
+ ClaimId claimId,
613
+ Amount confirmedAmount
614
+ )
615
+ internal
616
+ {
617
+ IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
618
+ if(address(policyHolder) != address(0)) {
619
+ policyHolder.claimConfirmed(policyNftId, claimId, confirmedAmount);
620
+ }
621
+ }
622
+
623
+ // TODO: move to policy helper lib or something
624
+ function _getPolicyHolder(NftId policyNftId)
625
+ internal
626
+ view
627
+ returns (IPolicyHolder policyHolder)
628
+ {
629
+ address policyHolderAddress = getRegistry().ownerOf(policyNftId);
630
+ policyHolder = IPolicyHolder(policyHolderAddress);
631
+
632
+ if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
633
+ policyHolder = IPolicyHolder(address(0));
634
+ }
635
+ }
636
+
637
+
638
+ function _getDomain() internal pure override returns(ObjectType) {
639
+ return CLAIM();
640
+ }
641
+ }
@@ -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 {
@@ -11,15 +11,18 @@ contract ClaimServiceManager is ProxyManager {
11
11
 
12
12
  /// @dev initializes proxy manager with service implementation
13
13
  constructor(
14
- address registryAddress
15
- )
16
- ProxyManager(registryAddress)
14
+ address authority,
15
+ address registry,
16
+ bytes32 salt
17
+ )
17
18
  {
18
- ClaimService svc = new ClaimService();
19
- bytes memory data = abi.encode(registryAddress, address(this));
20
- IVersionable versionable = deploy(
19
+ ClaimService svc = new ClaimService{salt: salt}();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
21
23
  address(svc),
22
- data);
24
+ data,
25
+ salt);
23
26
 
24
27
  _claimService = ClaimService(address(versionable));
25
28
  }