@etherisc/gif-next 0.0.2-b7d6ed2-016 → 0.0.2-b7e6198-021

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 (446) hide show
  1. package/README.md +12 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +100 -32
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +80 -34
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +52 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +267 -97
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +652 -36
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +222 -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 +175 -27
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +85 -12
  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 +52 -17
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +221 -60
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +20 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +368 -139
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +129 -67
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +19 -0
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +228 -15
  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 +81 -42
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +220 -59
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +102 -51
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +220 -59
  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 +74 -23
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +220 -59
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +34 -15
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +85 -50
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +220 -59
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +264 -68
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +220 -59
  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 +336 -33
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +277 -3
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +349 -74
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +608 -295
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +242 -56
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +478 -290
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +303 -29
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +69 -31
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +148 -84
  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 +2 -2
  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 +23 -4
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +234 -56
  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 -0
  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 -0
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +85 -39
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +37 -26
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +220 -59
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +294 -117
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +113 -47
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +180 -27
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +19 -0
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -1
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +19 -0
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +88 -22
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +324 -65
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +110 -52
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +82 -32
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -0
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +220 -59
  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 +102 -64
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -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 +29 -0
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -0
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -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 +508 -18
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +107 -61
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -72
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +89 -39
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +19 -0
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +70 -32
  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 +18 -7
  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 +56 -45
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +380 -238
  190. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +261 -65
  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 +65 -27
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +384 -186
  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 +131 -79
  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 -0
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +169 -174
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +98 -52
  212. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
  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 -0
  220. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +84 -105
  222. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -0
  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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -0
  238. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
  240. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  241. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  243. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  245. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  247. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  249. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  251. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  253. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  257. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  259. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1383 -117
  261. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +94 -114
  263. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  264. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  265. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  266. package/artifacts/contracts/staking/Staking.sol/Staking.json +1473 -176
  267. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +73 -72
  269. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +113 -58
  271. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -150
  273. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +128 -164
  275. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +73 -43
  277. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1620 -820
  279. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  280. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  281. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  282. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +142 -80
  283. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  284. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -2
  286. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  288. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  290. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  292. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  294. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  296. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  298. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  300. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  302. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  304. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
  306. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  308. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  310. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  312. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  314. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  316. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  318. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  323. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  325. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -2
  327. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  329. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  330. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  331. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  332. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +55 -17
  333. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  334. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  335. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  337. package/contracts/accounting/AccountingService.sol +15 -3
  338. package/contracts/accounting/IAccountingService.sol +2 -0
  339. package/contracts/authorization/AccessAdmin.sol +264 -188
  340. package/contracts/authorization/AccessAdminLib.sol +222 -9
  341. package/contracts/authorization/Authorization.sol +38 -234
  342. package/contracts/authorization/IAccess.sol +14 -4
  343. package/contracts/authorization/IAccessAdmin.sol +19 -45
  344. package/contracts/authorization/IAuthorization.sol +3 -57
  345. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  346. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  347. package/contracts/distribution/BasicDistribution.sol +2 -2
  348. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  349. package/contracts/distribution/Distribution.sol +7 -4
  350. package/contracts/distribution/DistributionService.sol +98 -35
  351. package/contracts/distribution/IDistributionComponent.sol +3 -1
  352. package/contracts/distribution/IDistributionService.sol +20 -8
  353. package/contracts/examples/fire/FireProduct.sol +6 -6
  354. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
  355. package/contracts/instance/IInstance.sol +44 -5
  356. package/contracts/instance/IInstanceService.sol +35 -6
  357. package/contracts/instance/Instance.sol +86 -43
  358. package/contracts/instance/InstanceAdmin.sol +162 -229
  359. package/contracts/instance/InstanceAuthorizationV3.sol +60 -29
  360. package/contracts/instance/InstanceReader.sol +371 -389
  361. package/contracts/instance/InstanceService.sol +123 -82
  362. package/contracts/instance/RiskSet.sol +10 -2
  363. package/contracts/instance/base/BalanceStore.sol +4 -6
  364. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  365. package/contracts/oracle/BasicOracle.sol +1 -1
  366. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  367. package/contracts/oracle/Oracle.sol +2 -2
  368. package/contracts/oracle/OracleService.sol +8 -8
  369. package/contracts/pool/BasicPool.sol +3 -14
  370. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  371. package/contracts/pool/BundleService.sol +34 -43
  372. package/contracts/pool/IBundleService.sol +14 -13
  373. package/contracts/pool/IPoolService.sol +7 -2
  374. package/contracts/pool/Pool.sol +4 -14
  375. package/contracts/pool/PoolLib.sol +127 -2
  376. package/contracts/pool/PoolService.sol +40 -181
  377. package/contracts/product/ApplicationService.sol +62 -9
  378. package/contracts/product/BasicProduct.sol +1 -1
  379. package/contracts/product/BasicProductAuthorization.sol +11 -4
  380. package/contracts/product/ClaimService.sol +56 -58
  381. package/contracts/product/IApplicationService.sol +21 -2
  382. package/contracts/product/IClaimService.sol +5 -4
  383. package/contracts/product/IPolicyService.sol +9 -2
  384. package/contracts/product/IRiskService.sol +18 -3
  385. package/contracts/product/PolicyService.sol +31 -50
  386. package/contracts/product/PolicyServiceLib.sol +79 -5
  387. package/contracts/product/PricingService.sol +22 -25
  388. package/contracts/product/Product.sol +38 -12
  389. package/contracts/product/RiskService.sol +48 -12
  390. package/contracts/registry/IRegistry.sol +11 -9
  391. package/contracts/registry/Registry.sol +15 -9
  392. package/contracts/registry/RegistryAdmin.sol +33 -100
  393. package/contracts/registry/RegistryAuthorization.sol +121 -52
  394. package/contracts/registry/RegistryService.sol +1 -1
  395. package/contracts/registry/ReleaseAdmin.sol +42 -100
  396. package/contracts/registry/ReleaseRegistry.sol +20 -12
  397. package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
  398. package/contracts/registry/TokenRegistry.sol +54 -53
  399. package/contracts/shared/Component.sol +6 -2
  400. package/contracts/shared/ComponentService.sol +234 -255
  401. package/contracts/shared/ContractLib.sol +106 -75
  402. package/contracts/shared/IComponent.sol +1 -1
  403. package/contracts/shared/IComponentService.sol +12 -13
  404. package/contracts/shared/IKeyValueStore.sol +1 -1
  405. package/contracts/shared/INftOwnable.sol +2 -0
  406. package/contracts/shared/IRegisterable.sol +0 -1
  407. package/contracts/shared/InstanceLinkedComponent.sol +4 -5
  408. package/contracts/shared/KeyValueStore.sol +3 -3
  409. package/contracts/shared/NftOwnable.sol +3 -1
  410. package/contracts/shared/PolicyHolder.sol +3 -2
  411. package/contracts/shared/Service.sol +6 -4
  412. package/contracts/staking/IStaking.sol +258 -70
  413. package/contracts/staking/IStakingService.sol +39 -84
  414. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  415. package/contracts/staking/Staking.sol +467 -215
  416. package/contracts/staking/StakingLib.sol +38 -124
  417. package/contracts/staking/StakingManager.sol +4 -3
  418. package/contracts/staking/StakingReader.sol +62 -71
  419. package/contracts/staking/StakingService.sol +42 -185
  420. package/contracts/staking/StakingServiceManager.sol +1 -0
  421. package/contracts/staking/StakingStore.sol +1093 -331
  422. package/contracts/staking/TargetHandler.sol +132 -0
  423. package/contracts/staking/TargetManagerLib.sol +69 -46
  424. package/contracts/type/Amount.sol +4 -0
  425. package/contracts/type/Blocknumber.sol +15 -15
  426. package/contracts/type/ChainId.sol +101 -0
  427. package/contracts/type/NftId.sol +3 -3
  428. package/contracts/type/ObjectType.sol +16 -3
  429. package/contracts/type/RoleId.sol +57 -59
  430. package/contracts/type/Seconds.sol +19 -0
  431. package/contracts/type/String.sol +12 -0
  432. package/contracts/type/Timestamp.sol +4 -2
  433. package/contracts/type/UFixed.sol +1 -0
  434. package/contracts/upgradeability/IVersionable.sol +3 -0
  435. package/contracts/upgradeability/ProxyManager.sol +15 -3
  436. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  437. package/contracts/upgradeability/Versionable.sol +6 -3
  438. package/package.json +1 -1
  439. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  440. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  441. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  442. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  443. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  444. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  445. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  446. 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,10 +14,30 @@ 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
19
38
  error ErrorApplicationServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
20
39
  error ErrorApplicationServiceRiskUnknown(RiskId riskId, NftId productNftId);
21
- error ErrorApplicationServiceRiskPaused(RiskId riskId, NftId productNftId);
40
+ error ErrorApplicationServiceRiskLocked(RiskId riskId, NftId productNftId);
22
41
  error ErrorApplicationServiceBundleUnknown(NftId bundleNftId, NftId poolNftId);
23
42
  error ErrorApplicationServiceBundleLocked(NftId bundleNftId, NftId poolNftId);
24
43
  error ErrorApplicationServiceReferralInvalid(NftId productNftId, NftId distributionNftId, ReferralId referralId);
@@ -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);
@@ -9,7 +9,16 @@ import {StateId} from "../type/StateId.sol";
9
9
 
10
10
  interface IRiskService is IService {
11
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
+
12
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);
13
22
 
14
23
  /// @dev Create a new risk with the given id and provided data.
15
24
  /// The key of the risk derived from the risk id in comination with the product NftId.
@@ -25,9 +34,15 @@ interface IRiskService is IService {
25
34
  bytes memory data
26
35
  ) external;
27
36
 
28
-
29
- 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(
30
40
  RiskId riskId,
31
- StateId newState
41
+ bool locked
42
+ ) external;
43
+
44
+ /// @dev Close the risk with the given id.
45
+ function closeRisk(
46
+ RiskId riskId
32
47
  ) external;
33
48
  }
@@ -1,8 +1,6 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
4
  import {IAccountingService} from "../accounting/IAccountingService.sol";
7
5
  import {IComponentService} from "../shared/IComponentService.sol";
8
6
  import {IComponents} from "../instance/module/IComponents.sol";
@@ -26,7 +24,6 @@ import {PolicyServiceLib} from "./PolicyServiceLib.sol";
26
24
  import {ReferralId} from "../type/Referral.sol";
27
25
  import {RiskId} from "../type/RiskId.sol";
28
26
  import {Service} from "../shared/Service.sol";
29
- import {StateId} from "../type/StateId.sol";
30
27
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
31
28
  import {TokenHandler} from "../shared/TokenHandler.sol";
32
29
  import {VersionPart} from "../type/Version.sol";
@@ -73,6 +70,7 @@ contract PolicyService is
73
70
  )
74
71
  external
75
72
  virtual
73
+ restricted()
76
74
  nonReentrant()
77
75
  {
78
76
  // checks
@@ -96,10 +94,12 @@ contract PolicyService is
96
94
  /// @inheritdoc IPolicyService
97
95
  function createPolicy(
98
96
  NftId applicationNftId, // = policyNftId
99
- Timestamp activateAt
97
+ Timestamp activateAt,
98
+ Amount maxPremiumAmount
100
99
  )
101
100
  external
102
101
  virtual
102
+ restricted()
103
103
  nonReentrant()
104
104
  returns (Amount premiumAmount)
105
105
  {
@@ -128,7 +128,7 @@ contract PolicyService is
128
128
 
129
129
  // optional activation of policy
130
130
  if(activateAt.gtz()) {
131
- applicationInfo = _activate(applicationNftId, applicationInfo, activateAt);
131
+ applicationInfo = PolicyServiceLib.activate(applicationNftId, applicationInfo, activateAt);
132
132
  }
133
133
 
134
134
  // update policy and set state to collateralized
@@ -150,7 +150,14 @@ contract PolicyService is
150
150
  bundleNftId,
151
151
  applicationInfo.referralId);
152
152
 
153
- premiumAmount = premium.fullPremiumAmount;
153
+ if (premium.premiumAmount > maxPremiumAmount) {
154
+ revert LogPolicyServiceMaxPremiumAmountExceeded(
155
+ applicationNftId,
156
+ maxPremiumAmount,
157
+ premium.premiumAmount);
158
+ }
159
+
160
+ premiumAmount = premium.premiumAmount;
154
161
  instance.getInstanceStore().createPremium(
155
162
  applicationNftId,
156
163
  premium);
@@ -186,6 +193,7 @@ contract PolicyService is
186
193
  )
187
194
  external
188
195
  virtual
196
+ restricted()
189
197
  nonReentrant()
190
198
  {
191
199
  // checks
@@ -202,7 +210,7 @@ contract PolicyService is
202
210
  }
203
211
 
204
212
  // check if premium has already been collected
205
- if (instanceReader.getPremiumInfoState(policyNftId) == PAID()) {
213
+ if (instanceReader.getPremiumState(policyNftId) == PAID()) {
206
214
  revert ErrorPolicyServicePremiumAlreadyPaid(policyNftId);
207
215
  }
208
216
 
@@ -232,7 +240,7 @@ contract PolicyService is
232
240
 
233
241
  // optionally activate policy
234
242
  if(activateAt.gtz()) {
235
- policyInfo = _activate(policyNftId, policyInfo, activateAt);
243
+ policyInfo = PolicyServiceLib.activate(policyNftId, policyInfo, activateAt);
236
244
  }
237
245
 
238
246
  instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
@@ -250,6 +258,7 @@ contract PolicyService is
250
258
  function activate(NftId policyNftId, Timestamp activateAt)
251
259
  external
252
260
  virtual
261
+ restricted()
253
262
  nonReentrant()
254
263
  {
255
264
  // checks
@@ -259,7 +268,7 @@ contract PolicyService is
259
268
  ) = _getAndVerifyCallerForPolicy(policyNftId);
260
269
 
261
270
  // effects
262
- policyInfo = _activate(policyNftId, policyInfo, activateAt);
271
+ policyInfo = PolicyServiceLib.activate(policyNftId, policyInfo, activateAt);
263
272
  instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
264
273
 
265
274
  // log policy activation before interactions with policy holder
@@ -277,6 +286,7 @@ contract PolicyService is
277
286
  )
278
287
  external
279
288
  virtual
289
+ restricted()
280
290
  nonReentrant()
281
291
  {
282
292
  // checks
@@ -289,8 +299,8 @@ contract PolicyService is
289
299
  revert ErrorPolicyServicePolicyNotActivated(policyNftId);
290
300
  }
291
301
 
292
- if (newActivateAt < TimestampLib.blockTimestamp()) {
293
- revert ErrorPolicyServicePolicyActivationTooEarly(policyNftId, TimestampLib.blockTimestamp(), newActivateAt);
302
+ if (newActivateAt < TimestampLib.current()) {
303
+ revert ErrorPolicyServicePolicyActivationTooEarly(policyNftId, TimestampLib.current(), newActivateAt);
294
304
  }
295
305
 
296
306
  if (newActivateAt > policyInfo.expiredAt) {
@@ -317,6 +327,7 @@ contract PolicyService is
317
327
  )
318
328
  external
319
329
  virtual
330
+ restricted()
320
331
  nonReentrant()
321
332
  returns (Timestamp expiredAt)
322
333
  {
@@ -344,6 +355,7 @@ contract PolicyService is
344
355
  )
345
356
  external
346
357
  virtual
358
+ restricted()
347
359
  nonReentrant()
348
360
  returns (Timestamp expiredAt)
349
361
  {
@@ -368,6 +380,7 @@ contract PolicyService is
368
380
  )
369
381
  external
370
382
  virtual
383
+ restricted()
371
384
  nonReentrant()
372
385
  {
373
386
  // checks
@@ -387,7 +400,7 @@ contract PolicyService is
387
400
  RiskId riskId = policyInfo.riskId;
388
401
  NftId bundleNftId = policyInfo.bundleNftId;
389
402
 
390
- if (instanceReader.getPremiumInfoState(policyNftId) != PAID()) {
403
+ if (instanceReader.getPremiumState(policyNftId) != PAID()) {
391
404
  revert ErrorPolicyServicePremiumNotPaid(policyNftId, policyInfo.premiumAmount);
392
405
  }
393
406
 
@@ -401,7 +414,7 @@ contract PolicyService is
401
414
  // TODO consider to also set expiredAt to current block timestamp if that timestamp is still in the futue
402
415
 
403
416
  // update policy state to closed
404
- policyInfo.closedAt = TimestampLib.blockTimestamp();
417
+ policyInfo.closedAt = TimestampLib.current();
405
418
  instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, CLOSED());
406
419
 
407
420
  // unlink policy from risk and bundle
@@ -412,6 +425,7 @@ contract PolicyService is
412
425
  emit LogPolicyServicePolicyClosed(policyNftId);
413
426
  }
414
427
 
428
+
415
429
  /// @dev shared functionality for expire() and policyExpire().
416
430
  function _expire(
417
431
  IInstance instance,
@@ -422,19 +436,12 @@ contract PolicyService is
422
436
  internal
423
437
  returns (Timestamp)
424
438
  {
425
- PolicyServiceLib.checkExpiration(
426
- expireAt,
439
+ policyInfo = PolicyServiceLib.expire(
440
+ instance.getInstanceReader(),
427
441
  policyNftId,
428
- instance.getInstanceReader().getPolicyState(policyNftId),
429
- policyInfo);
442
+ policyInfo,
443
+ expireAt);
430
444
 
431
- // effects
432
- // update policyInfo with new expiredAt timestamp
433
- if (expireAt.gtz()) {
434
- policyInfo.expiredAt = expireAt;
435
- } else {
436
- policyInfo.expiredAt = TimestampLib.blockTimestamp();
437
- }
438
445
  instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
439
446
 
440
447
  emit LogPolicyServicePolicyExpirationUpdated(policyNftId, policyInfo.expiredAt);
@@ -446,32 +453,6 @@ contract PolicyService is
446
453
  }
447
454
 
448
455
 
449
- function _activate(
450
- NftId policyNftId,
451
- IPolicy.PolicyInfo memory policyInfo,
452
- Timestamp activateAt
453
- )
454
- internal
455
- virtual
456
- view
457
- returns (IPolicy.PolicyInfo memory)
458
- {
459
- // fail if policy has already been activated and activateAt is different
460
- if(! policyInfo.activatedAt.eqz() && activateAt != policyInfo.activatedAt) {
461
- revert ErrorPolicyServicePolicyAlreadyActivated(policyNftId);
462
- }
463
-
464
- // ignore if policy has already been activated and activateAt is the same
465
- if (policyInfo.activatedAt == activateAt) {
466
- return policyInfo;
467
- }
468
-
469
- policyInfo.activatedAt = activateAt;
470
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
471
-
472
- return policyInfo;
473
- }
474
-
475
456
  /// @dev update counters by calling the involved services
476
457
  function _processSale(
477
458
  InstanceReader instanceReader,