@etherisc/gif-next 0.0.2-da2c7dd-538 → 0.0.2-da87b00-860

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 (469) hide show
  1. package/README.md +57 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +573 -288
  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 +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +295 -47
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +452 -210
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +119 -14
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +64 -142
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +275 -59
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -88
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +448 -148
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +143 -77
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -87
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +296 -20
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -100
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +274 -58
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -124
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +274 -58
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +126 -166
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +274 -58
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -63
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -138
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +274 -58
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -180
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +274 -58
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +427 -28
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +335 -12
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +430 -62
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +822 -402
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +299 -58
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +619 -402
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +367 -64
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -55
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +448 -374
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +33 -35
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +294 -53
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -21
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -21
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -69
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +274 -58
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -58
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -31
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -31
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +273 -50
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -41
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -48
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +274 -58
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +113 -75
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +208 -1
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -42
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +224 -18
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +118 -72
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +116 -114
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +100 -70
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +40 -42
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +258 -44
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +84 -42
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  186. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +704 -472
  190. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  191. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +710 -407
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +184 -128
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  206. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Component.sol/Component.json +19 -21
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -71
  212. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
  214. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  218. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -21
  220. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +119 -147
  222. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -21
  224. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
  226. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  227. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  228. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  229. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  232. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  235. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  236. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  238. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -21
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  240. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
  241. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  243. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  247. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  251. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  252. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  261. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1450 -140
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  263. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
  264. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  265. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  266. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/Staking.sol/Staking.json +1624 -272
  268. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +135 -68
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +86 -52
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1600 -818
  280. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  281. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  282. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  283. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
  284. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  285. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  287. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  289. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  291. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  293. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  295. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  319. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  328. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
  332. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
  336. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  340. package/contracts/accounting/AccountingService.sol +15 -3
  341. package/contracts/accounting/IAccountingService.sol +4 -2
  342. package/contracts/authorization/AccessAdmin.sol +389 -298
  343. package/contracts/authorization/AccessAdminLib.sol +396 -0
  344. package/contracts/authorization/AccessManagerCloneable.sol +40 -31
  345. package/contracts/authorization/Authorization.sol +60 -228
  346. package/contracts/authorization/IAccess.sol +25 -7
  347. package/contracts/authorization/IAccessAdmin.sol +81 -80
  348. package/contracts/authorization/IAuthorization.sol +3 -51
  349. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  350. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  351. package/contracts/distribution/BasicDistribution.sol +6 -6
  352. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  353. package/contracts/distribution/Distribution.sol +10 -52
  354. package/contracts/distribution/DistributionService.sol +154 -64
  355. package/contracts/distribution/IDistributionComponent.sol +3 -10
  356. package/contracts/distribution/IDistributionService.sol +24 -10
  357. package/contracts/examples/fire/FirePool.sol +0 -4
  358. package/contracts/examples/fire/FireProduct.sol +6 -10
  359. package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
  360. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  361. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  362. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
  363. package/contracts/instance/IInstance.sol +87 -12
  364. package/contracts/instance/IInstanceService.sol +52 -7
  365. package/contracts/instance/Instance.sol +148 -48
  366. package/contracts/instance/InstanceAdmin.sol +227 -281
  367. package/contracts/instance/InstanceAuthorizationV3.sol +79 -26
  368. package/contracts/instance/InstanceReader.sol +375 -380
  369. package/contracts/instance/InstanceService.sol +230 -134
  370. package/contracts/instance/RiskSet.sol +10 -2
  371. package/contracts/instance/base/BalanceStore.sol +4 -6
  372. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  373. package/contracts/instance/module/IBundle.sol +6 -5
  374. package/contracts/instance/module/IComponents.sol +16 -5
  375. package/contracts/instance/module/IDistribution.sol +19 -7
  376. package/contracts/instance/module/IPolicy.sol +28 -8
  377. package/contracts/instance/module/IRisk.sol +2 -0
  378. package/contracts/oracle/BasicOracle.sol +2 -4
  379. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  380. package/contracts/oracle/IOracle.sol +9 -4
  381. package/contracts/oracle/Oracle.sol +2 -4
  382. package/contracts/oracle/OracleService.sol +8 -8
  383. package/contracts/pool/BasicPool.sol +3 -16
  384. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  385. package/contracts/pool/BundleService.sol +34 -43
  386. package/contracts/pool/IBundleService.sol +14 -13
  387. package/contracts/pool/IPoolService.sol +7 -2
  388. package/contracts/pool/Pool.sol +4 -16
  389. package/contracts/pool/PoolLib.sol +127 -2
  390. package/contracts/pool/PoolService.sol +41 -184
  391. package/contracts/product/ApplicationService.sol +83 -15
  392. package/contracts/product/BasicProduct.sol +1 -3
  393. package/contracts/product/BasicProductAuthorization.sol +11 -4
  394. package/contracts/product/ClaimService.sol +56 -58
  395. package/contracts/product/IApplicationService.sol +24 -2
  396. package/contracts/product/IClaimService.sol +5 -4
  397. package/contracts/product/IPolicyService.sol +9 -2
  398. package/contracts/product/IPricingService.sol +1 -0
  399. package/contracts/product/IRiskService.sol +21 -3
  400. package/contracts/product/PolicyService.sol +31 -68
  401. package/contracts/product/PolicyServiceLib.sol +79 -5
  402. package/contracts/product/PricingService.sol +33 -31
  403. package/contracts/product/Product.sol +38 -14
  404. package/contracts/product/RiskService.sol +55 -9
  405. package/contracts/registry/IRegistry.sol +15 -9
  406. package/contracts/registry/IRelease.sol +6 -3
  407. package/contracts/registry/Registry.sol +15 -9
  408. package/contracts/registry/RegistryAdmin.sol +100 -263
  409. package/contracts/registry/RegistryAuthorization.sol +336 -0
  410. package/contracts/registry/RegistryService.sol +1 -1
  411. package/contracts/registry/ReleaseAdmin.sol +62 -112
  412. package/contracts/registry/ReleaseRegistry.sol +57 -43
  413. package/contracts/registry/ServiceAuthorizationV3.sol +128 -33
  414. package/contracts/registry/TokenRegistry.sol +56 -52
  415. package/contracts/shared/Component.sol +18 -31
  416. package/contracts/shared/ComponentService.sol +239 -244
  417. package/contracts/shared/ContractLib.sol +134 -75
  418. package/contracts/shared/IComponent.sol +1 -4
  419. package/contracts/shared/IComponentService.sol +21 -22
  420. package/contracts/shared/IKeyValueStore.sol +1 -1
  421. package/contracts/shared/INftOwnable.sol +2 -0
  422. package/contracts/shared/IRegisterable.sol +0 -1
  423. package/contracts/shared/InitializableERC165.sol +9 -1
  424. package/contracts/shared/InstanceLinkedComponent.sol +4 -7
  425. package/contracts/shared/KeyValueStore.sol +3 -3
  426. package/contracts/shared/NftOwnable.sol +4 -2
  427. package/contracts/shared/PolicyHolder.sol +3 -2
  428. package/contracts/shared/Registerable.sol +1 -4
  429. package/contracts/shared/Service.sol +6 -4
  430. package/contracts/shared/TokenHandler.sol +5 -4
  431. package/contracts/staking/IStaking.sol +266 -64
  432. package/contracts/staking/IStakingService.sol +44 -82
  433. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  434. package/contracts/staking/Staking.sol +473 -202
  435. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  436. package/contracts/staking/StakingManager.sol +4 -3
  437. package/contracts/staking/StakingReader.sol +58 -77
  438. package/contracts/staking/StakingService.sol +49 -158
  439. package/contracts/staking/StakingServiceManager.sol +1 -0
  440. package/contracts/staking/StakingStore.sol +1089 -330
  441. package/contracts/staking/TargetHandler.sol +132 -0
  442. package/contracts/staking/TargetManagerLib.sol +69 -46
  443. package/contracts/type/Amount.sol +4 -0
  444. package/contracts/type/Blocknumber.sol +15 -15
  445. package/contracts/type/ChainId.sol +101 -0
  446. package/contracts/type/Fee.sol +8 -8
  447. package/contracts/type/NftId.sol +3 -3
  448. package/contracts/type/ObjectType.sol +21 -17
  449. package/contracts/type/RoleId.sol +57 -59
  450. package/contracts/type/Seconds.sol +19 -0
  451. package/contracts/type/String.sol +12 -0
  452. package/contracts/type/Timestamp.sol +4 -2
  453. package/contracts/type/UFixed.sol +28 -10
  454. package/contracts/type/Version.sol +39 -0
  455. package/contracts/upgradeability/IVersionable.sol +3 -0
  456. package/contracts/upgradeability/ProxyManager.sol +25 -11
  457. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  458. package/contracts/upgradeability/Versionable.sol +6 -3
  459. package/package.json +2 -2
  460. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  461. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  462. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  463. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  464. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  465. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  466. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  467. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  468. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  469. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -2,7 +2,6 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IClaimService} from "./IClaimService.sol";
5
- import {IComponents} from "../instance/module/IComponents.sol";
6
5
  import {IInstance} from "../instance/IInstance.sol";
7
6
  import {IPolicy} from "../instance/module/IPolicy.sol";
8
7
  import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
@@ -14,11 +13,10 @@ import {IRegistry} from "../registry/IRegistry.sol";
14
13
  import {Amount, AmountLib} from "../type/Amount.sol";
15
14
  import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
16
15
  import {ContractLib} from "../shared/ContractLib.sol";
17
- import {FeeLib} from "../type/Fee.sol";
18
16
  import {InstanceReader} from "../instance/InstanceReader.sol";
19
17
  import {InstanceStore} from "../instance/InstanceStore.sol";
20
18
  import {NftId} from "../type/NftId.sol";
21
- import {ObjectType, COMPONENT, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
19
+ import {ObjectType, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
22
20
  import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
23
21
  import {Service} from "../shared/Service.sol";
24
22
  import {StateId} from "../type/StateId.sol";
@@ -68,14 +66,13 @@ contract ClaimService is
68
66
  {
69
67
  // checks
70
68
  (
71
- ,
72
- IInstance instance,,
69
+ ,,,
73
70
  InstanceStore instanceStore,
74
71
  IPolicy.PolicyInfo memory policyInfo
75
72
  ) = _verifyCallerWithPolicy(policyNftId);
76
73
 
77
74
  // check policy is in its active period
78
- if(policyInfo.activatedAt.eqz() || TimestampLib.blockTimestamp() >= policyInfo.expiredAt) {
75
+ if(policyInfo.activatedAt.eqz() || TimestampLib.current() >= policyInfo.expiredAt) {
79
76
  revert ErrorClaimServicePolicyNotOpen(policyNftId);
80
77
  }
81
78
 
@@ -114,6 +111,7 @@ contract ClaimService is
114
111
  )
115
112
  external
116
113
  virtual
114
+ restricted()
117
115
  // nonReentrant() // prevents creating a reinsurance claim in a single tx
118
116
  {
119
117
  // checks
@@ -142,7 +140,7 @@ contract ClaimService is
142
140
 
143
141
  // should policy still be active it needs to become expired
144
142
  if (policyInfo.claimAmount >= policyInfo.sumInsuredAmount) {
145
- _policyService.expirePolicy(instance, policyNftId, TimestampLib.blockTimestamp());
143
+ _policyService.expirePolicy(instance, policyNftId, TimestampLib.current());
146
144
  }
147
145
 
148
146
  emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
@@ -163,13 +161,13 @@ contract ClaimService is
163
161
  )
164
162
  external
165
163
  virtual
164
+ restricted()
166
165
  // nonReentrant() // prevents creating a reinsurance claim in a single tx
167
166
  {
168
167
  _checkNftType(policyNftId, POLICY());
169
168
 
170
169
  (
171
- ,
172
- IInstance instance,
170
+ ,,
173
171
  InstanceReader instanceReader,
174
172
  InstanceStore instanceStore,
175
173
  IPolicy.PolicyInfo memory policyInfo
@@ -178,7 +176,7 @@ contract ClaimService is
178
176
  // check/update claim info
179
177
  IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
180
178
  claimInfo.processData = data;
181
- claimInfo.closedAt = TimestampLib.blockTimestamp();
179
+ claimInfo.closedAt = TimestampLib.current();
182
180
  instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
183
181
 
184
182
  // update and save policy info with instance
@@ -195,11 +193,11 @@ contract ClaimService is
195
193
  )
196
194
  external
197
195
  virtual
196
+ restricted()
198
197
  // nonReentrant() // prevents creating a reinsurance claim in a single tx
199
198
  {
200
199
  (
201
- ,
202
- IInstance instance,
200
+ ,,
203
201
  InstanceReader instanceReader,
204
202
  InstanceStore instanceStore,
205
203
  IPolicy.PolicyInfo memory policyInfo
@@ -207,7 +205,7 @@ contract ClaimService is
207
205
 
208
206
  // check/update claim info
209
207
  IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
210
- claimInfo.closedAt = TimestampLib.blockTimestamp();
208
+ claimInfo.closedAt = TimestampLib.current();
211
209
  instanceStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
212
210
 
213
211
  // update and save policy info with instance
@@ -218,22 +216,21 @@ contract ClaimService is
218
216
  }
219
217
 
220
218
 
221
- function close(
219
+ function cancelConfirmedClaim(
222
220
  NftId policyNftId,
223
221
  ClaimId claimId
224
222
  )
225
223
  external
226
224
  virtual
225
+ restricted()
227
226
  // nonReentrant() // prevents creating a reinsurance claim in a single tx
228
227
  {
229
228
  _checkNftType(policyNftId, POLICY());
230
229
 
231
230
  (
232
- ,
233
- IInstance instance,
231
+ ,,
234
232
  InstanceReader instanceReader,
235
233
  InstanceStore instanceStore,
236
- IPolicy.PolicyInfo memory policyInfo
237
234
  ) = _verifyCallerWithPolicy(policyNftId);
238
235
 
239
236
  // check/update claim info
@@ -247,17 +244,10 @@ contract ClaimService is
247
244
  claimInfo.openPayoutsCount);
248
245
  }
249
246
 
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
- }
247
+ claimInfo.closedAt = TimestampLib.current();
248
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, CANCELLED());
258
249
 
259
- claimInfo.closedAt = TimestampLib.blockTimestamp();
260
- instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
250
+ emit LogClaimServiceClaimCancelled(policyNftId, claimId);
261
251
  }
262
252
 
263
253
 
@@ -270,6 +260,7 @@ contract ClaimService is
270
260
  )
271
261
  external
272
262
  virtual
263
+ restricted()
273
264
  // nonReentrant() // prevents creating a reinsurance claim in a single tx
274
265
  returns (PayoutId payoutId)
275
266
  {
@@ -294,6 +285,7 @@ contract ClaimService is
294
285
  )
295
286
  external
296
287
  virtual
288
+ restricted()
297
289
  // nonReentrant() // prevents creating a reinsurance payout in a single tx
298
290
  returns (PayoutId payoutId)
299
291
  {
@@ -314,51 +306,58 @@ contract ClaimService is
314
306
  )
315
307
  external
316
308
  virtual
309
+ restricted()
317
310
  // nonReentrant() // prevents creating a reinsurance payout in a single tx
311
+ returns (Amount netPayoutAmount, Amount processingFeeAmount)
318
312
  {
319
313
  // checks
320
314
  (
321
- NftId productNftId,,
322
- // IInstance instance,
315
+ ,,
323
316
  InstanceReader instanceReader,
324
317
  InstanceStore instanceStore,
325
318
  IPolicy.PolicyInfo memory policyInfo
326
319
  ) = _verifyCallerWithPolicy(policyNftId);
327
320
 
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
- }
321
+ IPolicy.ClaimInfo memory claimInfo;
322
+ address payoutBeneficiary;
323
+ Amount payoutAmount;
324
+
325
+ {
326
+ // check that payout exists and is open
327
+ IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
328
+ payoutBeneficiary = payoutInfo.beneficiary;
329
+ payoutAmount = payoutInfo.amount;
330
+ StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
331
+ if(payoutState != EXPECTED()) {
332
+ revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
333
+ }
334
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
- }
335
+ // check that payout amount does not violate claim amount
336
+ 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
344
 
345
- // effects
346
- // update and save payout info with instance
347
- payoutInfo.paidAt = TimestampLib.blockTimestamp();
348
- instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
345
+ // effects
346
+ // update and save payout info with instance
347
+ payoutInfo.paidAt = TimestampLib.current();
348
+ instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
349
+ }
349
350
 
350
351
  // update and save claim info with instance
351
- Amount payoutAmount = payoutInfo.amount;
352
352
  {
353
353
  ClaimId claimId = payoutId.toClaimId();
354
- IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
355
354
  claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
356
355
  claimInfo.openPayoutsCount -= 1;
357
356
 
358
357
  // check if this payout is closing the linked claim
359
358
  // update claim and policy info accordingly
360
359
  if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
361
- claimInfo.closedAt = TimestampLib.blockTimestamp();
360
+ claimInfo.closedAt = TimestampLib.current();
362
361
  instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
363
362
 
364
363
  policyInfo.openClaimsCount -= 1;
@@ -375,7 +374,7 @@ contract ClaimService is
375
374
 
376
375
  // effects + interactions (push tokens to beneficiary, product)
377
376
  // delegate to pool to update book keeping and moving tokens payout
378
- _poolService.processPayout(
377
+ (netPayoutAmount, processingFeeAmount) = _poolService.processPayout(
379
378
  instanceReader,
380
379
  instanceStore,
381
380
  policyInfo.productNftId, // product nft id
@@ -383,7 +382,7 @@ contract ClaimService is
383
382
  policyInfo.bundleNftId,
384
383
  payoutId,
385
384
  payoutAmount,
386
- payoutInfo.beneficiary);
385
+ payoutBeneficiary);
387
386
  }
388
387
 
389
388
  function cancelPayout(
@@ -392,14 +391,13 @@ contract ClaimService is
392
391
  )
393
392
  external
394
393
  virtual
394
+ restricted()
395
395
  {
396
396
  // checks
397
397
  (
398
- ,
399
- IInstance instance,
398
+ ,,
400
399
  InstanceReader instanceReader,
401
400
  InstanceStore instanceStore,
402
- IPolicy.PolicyInfo memory policyInfo
403
401
  ) = _verifyCallerWithPolicy(policyNftId);
404
402
 
405
403
  StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
@@ -522,7 +520,7 @@ contract ClaimService is
522
520
  IPolicy.PolicyInfo memory policyInfo
523
521
  )
524
522
  {
525
- (productNftId, instance) = _getAndVerifyActiveComponent(PRODUCT());
523
+ (productNftId, instance) = _getAndVerifyActiveProduct();
526
524
  instanceReader = instance.getInstanceReader();
527
525
  instanceStore = instance.getInstanceStore();
528
526
 
@@ -536,7 +534,7 @@ contract ClaimService is
536
534
  }
537
535
 
538
536
 
539
- function _getAndVerifyActiveComponent(ObjectType expectedType)
537
+ function _getAndVerifyActiveProduct()
540
538
  internal
541
539
  view
542
540
  returns (
@@ -6,7 +6,6 @@ import {IService} from "../shared/IService.sol";
6
6
 
7
7
  import {Amount} from "../type/Amount.sol";
8
8
  import {NftId} from "../type/NftId.sol";
9
- import {ObjectType} from "../type/ObjectType.sol";
10
9
  import {ReferralId} from "../type/Referral.sol";
11
10
  import {RiskId} from "../type/RiskId.sol";
12
11
  import {Seconds} from "../type/Seconds.sol";
@@ -15,11 +14,34 @@ import {Seconds} from "../type/Seconds.sol";
15
14
  /// only product components may call transaction functions
16
15
  interface IApplicationService is IService {
17
16
 
17
+ event LogApplicationServiceApplicationCreated(
18
+ NftId applicationNftId,
19
+ NftId productNftId,
20
+ NftId bundleNftId,
21
+ RiskId riskId,
22
+ ReferralId referralId,
23
+ address applicationOwner,
24
+ Amount sumInsuredAmount,
25
+ Amount premiumAmount,
26
+ Seconds lifetime);
27
+ event LogApplicationServiceApplicationRenewed(NftId policyNftId, NftId bundleNftId);
28
+ event LogApplicationServiceApplicationAdjusted(
29
+ NftId applicationNftId,
30
+ NftId bundleNftId,
31
+ RiskId riskId,
32
+ ReferralId referralId,
33
+ Amount sumInsuredAmount,
34
+ Seconds lifetime);
35
+ event LogApplicationServiceApplicationRevoked(NftId applicationNftId);
36
+
18
37
  // _checkLinkedApplicationParameters
38
+ error ErrorApplicationServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
19
39
  error ErrorApplicationServiceRiskUnknown(RiskId riskId, NftId productNftId);
20
- error ErrorApplicationServiceRiskPaused(RiskId riskId, NftId productNftId);
40
+ error ErrorApplicationServiceRiskLocked(RiskId riskId, NftId productNftId);
21
41
  error ErrorApplicationServiceBundleUnknown(NftId bundleNftId, NftId poolNftId);
22
42
  error ErrorApplicationServiceBundleLocked(NftId bundleNftId, NftId poolNftId);
43
+ error ErrorApplicationServiceReferralInvalid(NftId productNftId, NftId distributionNftId, ReferralId referralId);
44
+
23
45
 
24
46
  /// @dev creates a new application based on the specified attributes
25
47
  /// may only be called by a product component
@@ -23,7 +23,7 @@ interface IClaimService is
23
23
  event LogClaimServiceClaimConfirmed(NftId policyNftId, ClaimId claimId, Amount confirmedAmount);
24
24
  event LogClaimServiceClaimDeclined(NftId policyNftId, ClaimId claimId);
25
25
  event LogClaimServiceClaimRevoked(NftId policyNftId, ClaimId claimId);
26
- event LogClaimServiceClaimClosed(NftId policyNftId, ClaimId claimId);
26
+ event LogClaimServiceClaimCancelled(NftId policyNftId, ClaimId claimId);
27
27
 
28
28
  event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary);
29
29
  event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount);
@@ -83,9 +83,10 @@ interface IClaimService is
83
83
  ) external;
84
84
 
85
85
 
86
- /// @dev closes the specified claim
86
+ /// @dev cancels a confirmed claim before it has been fully paid out.
87
+ /// Can only be called when there are not pending payouts
87
88
  /// function can only be called by product, policy needs to match with calling product
88
- function close(
89
+ function cancelConfirmedClaim(
89
90
  NftId policyNftId,
90
91
  ClaimId claimId
91
92
  ) external;
@@ -125,7 +126,7 @@ interface IClaimService is
125
126
  function processPayout(
126
127
  NftId policyNftId,
127
128
  PayoutId payoutId
128
- ) external;
129
+ ) external returns (Amount netPayoutAmount, Amount processingFeeAmount);
129
130
 
130
131
  /// @dev cancels the specified payout. no tokens are moved, payout is set to cancelled.
131
132
  function cancelPayout(
@@ -5,7 +5,6 @@ import {IService} from "../shared/IService.sol";
5
5
 
6
6
  import {Amount} from "../type/Amount.sol";
7
7
  import {IInstance} from "../instance/IInstance.sol";
8
- import {InstanceReader} from "../instance/InstanceReader.sol";
9
8
  import {NftId} from "../type/NftId.sol";
10
9
  import {StateId} from "../type/StateId.sol";
11
10
  import {Timestamp} from "../type/Timestamp.sol";
@@ -20,6 +19,7 @@ interface IPolicyService is IService {
20
19
  event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
21
20
  event LogPolicyServicePolicyClosed(NftId policyNftId);
22
21
 
22
+ error LogPolicyServiceMaxPremiumAmountExceeded(NftId policyNftId, Amount maxPremiumAmount, Amount premiumAmount);
23
23
  error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
24
24
  error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
25
25
  error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
@@ -45,14 +45,21 @@ interface IPolicyService is IService {
45
45
  error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
46
46
 
47
47
  /// @dev creates the policy from {applicationNftId}.
48
+ /// @param applicationNftId the application NftId
49
+ /// @param activateAt the timestamp when the policy should be activated
50
+ /// @param maxPremiumAmount the maximum premium amount that the policy holder is willing to pay
51
+ /// During policy creation, the effective premium amount is calculated based on the provided parameters. If this
52
+ /// amount is higher than the maxPremiumAmount, the function will revert.
48
53
  /// After successful completion of the function the policy can be referenced using the application NftId.
49
54
  /// Locks the sum insured amount in the pool, but does not transfer tokens. Call collectPremium to transfer tokens.
50
55
  /// Sets the policy state to collateralized.
51
56
  /// Optionally activates the policy if activateAt is a non-zero timestamp.
52
57
  /// only the related product may create a policy from an application
58
+ /// @return premiumAmount the effective premium amount
53
59
  function createPolicy(
54
60
  NftId applicationNftId,
55
- Timestamp activateAt
61
+ Timestamp activateAt,
62
+ Amount maxPremiumAmount
56
63
  )
57
64
  external
58
65
  returns (Amount premiumAmount);
@@ -14,6 +14,7 @@ interface IPricingService is IService
14
14
  {
15
15
 
16
16
  error ErrorPricingServiceTargetWalletAmountsMismatch();
17
+ error ErrorPricingServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
17
18
  error ErrorPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
18
19
  error ErrorPricingServiceFeeCalculationMismatch(
19
20
  Amount distributionFeeFixAmount,
@@ -3,11 +3,23 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IService} from "../shared/IService.sol";
5
5
 
6
+ import {NftId} from "../type/NftId.sol";
6
7
  import {RiskId} from "../type/RiskId.sol";
7
8
  import {StateId} from "../type/StateId.sol";
8
9
 
9
10
  interface IRiskService is IService {
10
11
 
12
+ event LogRiskServiceRiskCreated(NftId productNftId, RiskId riskId);
13
+ event LogRiskServiceRiskUpdated(NftId productNftId, RiskId riskId);
14
+ event LogRiskServiceRiskLocked(NftId productNftId, RiskId riskId);
15
+ event LogRiskServiceRiskUnlocked(NftId productNftId, RiskId riskId);
16
+ event LogRiskServiceRiskClosed(NftId productNftId, RiskId riskId);
17
+
18
+ error ErrorRiskServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
19
+ error ErrorRiskServiceRiskNotActive(NftId productNftId, RiskId riskId);
20
+ error ErrorRiskServiceUnknownRisk(NftId productNftId, RiskId riskId);
21
+ error ErrorRiskServiceRiskNotLocked(NftId productNftId, RiskId riskId);
22
+
11
23
  /// @dev Create a new risk with the given id and provided data.
12
24
  /// The key of the risk derived from the risk id in comination with the product NftId.
13
25
  /// Risk data is stored in the instance store.
@@ -22,9 +34,15 @@ interface IRiskService is IService {
22
34
  bytes memory data
23
35
  ) external;
24
36
 
25
-
26
- function updateRiskState(
37
+ /// @dev Locks/unlocks the risk with the given id.
38
+ /// No new policies can be underwritten for a locked risk.
39
+ function setRiskLocked(
27
40
  RiskId riskId,
28
- StateId newState
41
+ bool locked
42
+ ) external;
43
+
44
+ /// @dev Close the risk with the given id.
45
+ function closeRisk(
46
+ RiskId riskId
29
47
  ) external;
30
48
  }