@etherisc/gif-next 0.0.2-6f943ea-736 → 0.0.2-70111f0-445

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