@etherisc/gif-next 0.0.2-ffa91a6-022 → 3.0.0-06d5e8b-738

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 (504) hide show
  1. package/README.md +124 -332
  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 +111 -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 +370 -141
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1582 -202
  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 +266 -64
  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 +263 -87
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +102 -19
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -38
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +269 -69
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -12
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +376 -147
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -11
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +232 -19
  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 +108 -79
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +268 -68
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +136 -95
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +268 -68
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +728 -0
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1234 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2497 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  65. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  67. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +86 -45
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +268 -68
  73. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
  75. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -105
  77. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +268 -68
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -147
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +268 -68
  83. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  84. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
  85. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  87. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  89. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +374 -35
  91. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +305 -5
  93. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  94. package/artifacts/contracts/instance/Instance.sol/Instance.json +425 -97
  95. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +753 -401
  97. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +236 -80
  99. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +747 -553
  101. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +331 -31
  103. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -42
  105. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1323 -2012
  107. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  109. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
  111. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  113. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  114. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  116. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  118. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  120. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
  122. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  126. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  127. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  128. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  129. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +25 -16
  130. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +282 -65
  132. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -10
  135. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  137. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -10
  139. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
  141. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
  143. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  144. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -58
  145. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +268 -68
  147. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  148. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
  149. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
  151. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  152. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
  153. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  154. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -20
  155. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  156. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
  157. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  158. package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -20
  159. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  160. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
  161. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  162. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +338 -79
  163. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
  165. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  166. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
  167. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
  169. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  170. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -37
  171. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  172. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +268 -68
  173. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  174. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
  175. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
  177. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  178. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
  179. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  180. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
  181. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  182. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
  183. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  184. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
  185. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  186. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -31
  187. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
  189. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  190. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
  191. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  192. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
  193. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
  195. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  196. package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -112
  197. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +115 -65
  199. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  200. package/artifacts/contracts/product/Product.sol/Product.json +40 -31
  201. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  202. package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
  203. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
  205. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  206. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
  208. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  209. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  210. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  212. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
  214. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  215. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +539 -314
  216. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  217. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +335 -76
  218. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  219. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
  220. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
  222. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  223. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +551 -246
  224. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  226. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  227. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +169 -111
  228. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
  230. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  231. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  232. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Component.sol/Component.json +19 -10
  234. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +196 -201
  236. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -64
  238. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
  240. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  241. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  242. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  243. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  244. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  245. package/artifacts/contracts/shared/{ComponentVerifyingService.sol/ComponentVerifyingService.json → IAuthorizedComponent.sol/IAuthorizedComponent.json} +238 -90
  246. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
  248. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +111 -132
  250. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
  252. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  253. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  254. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  255. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  258. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  259. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  261. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  262. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  263. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -10
  264. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  265. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  266. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  267. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  268. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  269. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  270. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  271. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  272. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  273. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  274. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  275. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  276. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  280. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  281. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  282. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  283. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  284. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1390 -134
  285. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  286. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +97 -117
  287. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  288. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  289. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  290. package/artifacts/contracts/staking/Staking.sol/Staking.json +1479 -192
  291. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
  293. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
  295. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  296. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
  297. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  298. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +131 -167
  299. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  300. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
  301. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  302. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
  303. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  304. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  305. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  306. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
  307. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  308. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  310. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  312. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  314. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  316. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  318. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  320. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  322. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  323. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  324. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  326. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  327. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  328. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  330. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  332. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  334. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  336. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  337. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  338. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  340. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  342. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
  344. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
  349. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  350. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
  351. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  352. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  353. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  354. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  355. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  356. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  357. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  358. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
  359. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  360. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  361. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  362. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  363. package/contracts/accounting/AccountingService.sol +15 -3
  364. package/contracts/accounting/IAccountingService.sol +4 -2
  365. package/contracts/authorization/AccessAdmin.sol +303 -326
  366. package/contracts/authorization/AccessAdminLib.sol +535 -23
  367. package/contracts/authorization/AccessManagerCloneable.sol +0 -18
  368. package/contracts/authorization/Authorization.sol +64 -239
  369. package/contracts/authorization/IAccess.sol +29 -12
  370. package/contracts/authorization/IAccessAdmin.sol +25 -53
  371. package/contracts/authorization/IAuthorization.sol +3 -57
  372. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  373. package/contracts/authorization/ServiceAuthorization.sol +228 -34
  374. package/contracts/distribution/BasicDistribution.sol +3 -4
  375. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  376. package/contracts/distribution/Distribution.sol +9 -8
  377. package/contracts/distribution/DistributionService.sol +125 -62
  378. package/contracts/distribution/IDistributionComponent.sol +3 -1
  379. package/contracts/distribution/IDistributionService.sol +20 -8
  380. package/contracts/examples/fire/FireProduct.sol +6 -6
  381. package/contracts/examples/flight/FlightLib.sol +300 -0
  382. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  383. package/contracts/examples/flight/FlightOracle.sol +171 -0
  384. package/contracts/examples/flight/FlightOracleAuthorization.sol +53 -0
  385. package/contracts/examples/flight/FlightPool.sol +89 -0
  386. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  387. package/contracts/examples/flight/FlightProduct.sol +685 -0
  388. package/contracts/examples/flight/FlightProductAuthorization.sol +69 -0
  389. package/contracts/examples/flight/FlightUSD.sol +28 -0
  390. package/contracts/examples/flight/originalV1.sol +396 -0
  391. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
  392. package/contracts/instance/BaseStore.sol +93 -0
  393. package/contracts/instance/IBaseStore.sol +37 -0
  394. package/contracts/instance/IInstance.sol +57 -6
  395. package/contracts/instance/IInstanceService.sol +42 -7
  396. package/contracts/instance/Instance.sol +111 -56
  397. package/contracts/instance/InstanceAdmin.sol +150 -294
  398. package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
  399. package/contracts/instance/InstanceReader.sol +376 -392
  400. package/contracts/instance/InstanceService.sol +186 -134
  401. package/contracts/instance/InstanceStore.sol +153 -128
  402. package/contracts/instance/ProductStore.sol +290 -0
  403. package/contracts/instance/RiskSet.sol +10 -2
  404. package/contracts/instance/TargetNames.sol +10 -0
  405. package/contracts/instance/base/BalanceStore.sol +4 -6
  406. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  407. package/contracts/instance/module/IBundle.sol +6 -5
  408. package/contracts/instance/module/IComponents.sol +15 -5
  409. package/contracts/instance/module/IDistribution.sol +17 -7
  410. package/contracts/instance/module/IPolicy.sol +28 -8
  411. package/contracts/instance/module/IRisk.sol +2 -0
  412. package/contracts/oracle/BasicOracle.sol +2 -3
  413. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  414. package/contracts/oracle/IOracle.sol +9 -4
  415. package/contracts/oracle/IOracleService.sol +12 -12
  416. package/contracts/oracle/Oracle.sol +4 -6
  417. package/contracts/oracle/OracleService.sol +8 -8
  418. package/contracts/pool/BasicPool.sol +4 -16
  419. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  420. package/contracts/pool/BundleService.sol +34 -43
  421. package/contracts/pool/IBundleService.sol +14 -13
  422. package/contracts/pool/IPoolService.sol +7 -2
  423. package/contracts/pool/Pool.sol +6 -18
  424. package/contracts/pool/PoolLib.sol +127 -2
  425. package/contracts/pool/PoolService.sol +40 -181
  426. package/contracts/product/ApplicationService.sol +64 -11
  427. package/contracts/product/BasicProduct.sol +2 -3
  428. package/contracts/product/BasicProductAuthorization.sol +13 -5
  429. package/contracts/product/ClaimService.sol +99 -105
  430. package/contracts/product/IApplicationService.sol +21 -2
  431. package/contracts/product/IClaimService.sol +5 -4
  432. package/contracts/product/IPolicyService.sol +9 -2
  433. package/contracts/product/IRiskService.sol +18 -3
  434. package/contracts/product/PolicyService.sol +40 -59
  435. package/contracts/product/PolicyServiceLib.sol +79 -5
  436. package/contracts/product/PricingService.sol +28 -31
  437. package/contracts/product/Product.sol +40 -16
  438. package/contracts/product/RiskService.sol +50 -15
  439. package/contracts/registry/IRegistry.sol +15 -9
  440. package/contracts/registry/IRelease.sol +6 -3
  441. package/contracts/registry/Registry.sol +15 -9
  442. package/contracts/registry/RegistryAdmin.sol +39 -118
  443. package/contracts/registry/RegistryAuthorization.sol +139 -69
  444. package/contracts/registry/RegistryService.sol +1 -1
  445. package/contracts/registry/ReleaseAdmin.sol +59 -106
  446. package/contracts/registry/ReleaseRegistry.sol +20 -12
  447. package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
  448. package/contracts/registry/TokenRegistry.sol +56 -52
  449. package/contracts/shared/Component.sol +8 -8
  450. package/contracts/shared/ComponentService.sol +245 -262
  451. package/contracts/shared/ContractLib.sol +106 -75
  452. package/contracts/shared/EcdsaChecker.sol +5 -0
  453. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  454. package/contracts/shared/IComponent.sol +1 -1
  455. package/contracts/shared/IComponentService.sol +14 -15
  456. package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
  457. package/contracts/shared/INftOwnable.sol +2 -0
  458. package/contracts/shared/IRegisterable.sol +0 -1
  459. package/contracts/shared/InstanceLinkedComponent.sol +64 -26
  460. package/contracts/shared/NftOwnable.sol +3 -1
  461. package/contracts/shared/PolicyHolder.sol +3 -2
  462. package/contracts/shared/Service.sol +6 -4
  463. package/contracts/staking/IStaking.sol +261 -70
  464. package/contracts/staking/IStakingService.sol +39 -84
  465. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  466. package/contracts/staking/Staking.sol +468 -217
  467. package/contracts/staking/StakingLib.sol +38 -124
  468. package/contracts/staking/StakingManager.sol +4 -3
  469. package/contracts/staking/StakingReader.sol +62 -71
  470. package/contracts/staking/StakingService.sol +42 -185
  471. package/contracts/staking/StakingServiceManager.sol +1 -0
  472. package/contracts/staking/StakingStore.sol +1093 -331
  473. package/contracts/staking/TargetHandler.sol +132 -0
  474. package/contracts/staking/TargetManagerLib.sol +69 -46
  475. package/contracts/type/Amount.sol +4 -0
  476. package/contracts/type/Blocknumber.sol +17 -22
  477. package/contracts/type/ChainId.sol +101 -0
  478. package/contracts/type/Fee.sol +8 -8
  479. package/contracts/type/NftId.sol +3 -3
  480. package/contracts/type/ObjectType.sol +17 -33
  481. package/contracts/type/Referral.sol +6 -0
  482. package/contracts/type/RequestIdSet.sol +62 -0
  483. package/contracts/type/RoleId.sol +57 -59
  484. package/contracts/type/Seconds.sol +23 -0
  485. package/contracts/type/String.sol +42 -0
  486. package/contracts/type/Timestamp.sol +14 -3
  487. package/contracts/type/UFixed.sol +28 -10
  488. package/contracts/upgradeability/IVersionable.sol +3 -0
  489. package/contracts/upgradeability/ProxyManager.sol +26 -12
  490. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  491. package/contracts/upgradeability/Versionable.sol +6 -3
  492. package/package.json +2 -1
  493. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  494. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  495. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  496. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  497. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  498. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  499. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  500. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  501. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  502. package/contracts/shared/IKeyValueStore.sol +0 -54
  503. package/contracts/shared/KeyValueStore.sol +0 -131
  504. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -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
@@ -85,7 +83,7 @@ contract PolicyService is
85
83
 
86
84
  // effects
87
85
  // store updated policy info
88
- instance.getInstanceStore().updatePolicyState(
86
+ instance.getProductStore().updatePolicyState(
89
87
  applicationNftId,
90
88
  DECLINED());
91
89
 
@@ -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,11 +128,11 @@ 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
135
- instance.getInstanceStore().updatePolicy(
135
+ instance.getProductStore().updatePolicy(
136
136
  applicationNftId,
137
137
  applicationInfo,
138
138
  COLLATERALIZED());
@@ -150,8 +150,15 @@ contract PolicyService is
150
150
  bundleNftId,
151
151
  applicationInfo.referralId);
152
152
 
153
- premiumAmount = premium.fullPremiumAmount;
154
- instance.getInstanceStore().createPremium(
153
+ if (premium.premiumAmount > maxPremiumAmount) {
154
+ revert LogPolicyServiceMaxPremiumAmountExceeded(
155
+ applicationNftId,
156
+ maxPremiumAmount,
157
+ premium.premiumAmount);
158
+ }
159
+
160
+ premiumAmount = premium.premiumAmount;
161
+ instance.getProductStore().createPremium(
155
162
  applicationNftId,
156
163
  premium);
157
164
 
@@ -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,11 +240,11 @@ 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
- instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
239
- instance.getInstanceStore().updatePremiumState(policyNftId, PAID());
246
+ instance.getProductStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
247
+ instance.getProductStore().updatePremiumState(policyNftId, PAID());
240
248
 
241
249
  // log premium collection before interactions with token
242
250
  emit LogPolicyServicePolicyPremiumCollected(policyNftId, premium.premiumAmount);
@@ -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,8 +268,8 @@ contract PolicyService is
259
268
  ) = _getAndVerifyCallerForPolicy(policyNftId);
260
269
 
261
270
  // effects
262
- policyInfo = _activate(policyNftId, policyInfo, activateAt);
263
- instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
271
+ policyInfo = PolicyServiceLib.activate(policyNftId, policyInfo, activateAt);
272
+ instance.getProductStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
264
273
 
265
274
  // log policy activation before interactions with policy holder
266
275
  emit LogPolicyServicePolicyActivated(policyNftId, activateAt);
@@ -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) {
@@ -299,7 +309,7 @@ contract PolicyService is
299
309
 
300
310
  // effects
301
311
  policyInfo.activatedAt = newActivateAt;
302
- instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
312
+ instance.getProductStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
303
313
 
304
314
  // log policy activation before interactions with policy holder
305
315
  emit LogPolicyServicePolicyActivatedUpdated(policyNftId, newActivateAt);
@@ -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,8 +414,8 @@ 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();
405
- instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, CLOSED());
417
+ policyInfo.closedAt = TimestampLib.current();
418
+ instance.getProductStore().updatePolicy(policyNftId, policyInfo, CLOSED());
406
419
 
407
420
  // unlink policy from risk and bundle
408
421
  NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
@@ -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,20 +436,13 @@ 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
- instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
445
+ instance.getProductStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
439
446
 
440
447
  emit LogPolicyServicePolicyExpirationUpdated(policyNftId, policyInfo.expiredAt);
441
448
 
@@ -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,
@@ -10,19 +10,93 @@ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
10
10
 
11
11
  library PolicyServiceLib {
12
12
 
13
+ function policyIsActive(InstanceReader instanceReader, NftId policyNftId)
14
+ external
15
+ view
16
+ returns (bool isActive)
17
+ {
18
+ // policy not collateralized
19
+ if (instanceReader.getPolicyState(policyNftId) != COLLATERALIZED()) {
20
+ return false;
21
+ }
22
+
23
+ IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
24
+
25
+ if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
26
+ if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
27
+ if (info.activatedAt > TimestampLib.current()) { return false; } // not yet active
28
+ if (info.expiredAt <= TimestampLib.current()) { return false; } // already expired
29
+
30
+ return true;
31
+ }
32
+
33
+ function activate(
34
+ NftId policyNftId,
35
+ IPolicy.PolicyInfo memory policyInfo,
36
+ Timestamp activateAt
37
+ )
38
+ external
39
+ pure
40
+ returns (IPolicy.PolicyInfo memory)
41
+ {
42
+ // fail if policy has already been activated and activateAt is different
43
+ if(! policyInfo.activatedAt.eqz() && activateAt != policyInfo.activatedAt) {
44
+ revert IPolicyService.ErrorPolicyServicePolicyAlreadyActivated(policyNftId);
45
+ }
46
+
47
+ // ignore if policy has already been activated and activateAt is the same
48
+ if (policyInfo.activatedAt == activateAt) {
49
+ return policyInfo;
50
+ }
51
+
52
+ policyInfo.activatedAt = activateAt;
53
+ policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
54
+
55
+ return policyInfo;
56
+ }
57
+
58
+ function expire(
59
+ InstanceReader instanceReader,
60
+ NftId policyNftId,
61
+ IPolicy.PolicyInfo memory policyInfo,
62
+ Timestamp expireAt
63
+ )
64
+ external
65
+ view
66
+ returns (IPolicy.PolicyInfo memory)
67
+ {
68
+ StateId policyState = instanceReader.getPolicyState(policyNftId);
69
+
70
+ checkExpiration(
71
+ expireAt,
72
+ policyNftId,
73
+ policyState,
74
+ policyInfo);
75
+
76
+ // effects
77
+ // update policyInfo with new expiredAt timestamp
78
+ if (expireAt.gtz()) {
79
+ policyInfo.expiredAt = expireAt;
80
+ } else {
81
+ policyInfo.expiredAt = TimestampLib.current();
82
+ }
83
+
84
+ return policyInfo;
85
+ }
86
+
13
87
  function checkExpiration(
14
88
  Timestamp newExpiredAt,
15
89
  NftId policyNftId,
16
90
  StateId policyState,
17
91
  IPolicy.PolicyInfo memory policyInfo
18
92
  )
19
- external
93
+ public
20
94
  view
21
95
  {
22
96
  if (policyState != COLLATERALIZED()) {
23
97
  revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
24
98
  }
25
- if (TimestampLib.blockTimestamp() < policyInfo.activatedAt) {
99
+ if (TimestampLib.current() < policyInfo.activatedAt) {
26
100
  revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
27
101
  }
28
102
 
@@ -31,8 +105,8 @@ library PolicyServiceLib {
31
105
  revert IPolicyService.ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, newExpiredAt);
32
106
  }
33
107
 
34
- if (newExpiredAt.gtz() && newExpiredAt < TimestampLib.blockTimestamp()) {
35
- revert IPolicyService.ErrorPolicyServicePolicyExpirationTooEarly(policyNftId, TimestampLib.blockTimestamp(), newExpiredAt);
108
+ if (newExpiredAt.gtz() && newExpiredAt < TimestampLib.current()) {
109
+ revert IPolicyService.ErrorPolicyServicePolicyExpirationTooEarly(policyNftId, TimestampLib.current(), newExpiredAt);
36
110
  }
37
111
  }
38
112
 
@@ -56,7 +130,7 @@ library PolicyServiceLib {
56
130
  if (info.claimAmount == info.sumInsuredAmount) { return true; }
57
131
 
58
132
  // not closeable: not yet expired
59
- if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
133
+ if (TimestampLib.current() < info.expiredAt) { return false; }
60
134
 
61
135
  // all conditions to close the policy are met
62
136
  return true;
@@ -1,34 +1,31 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount, AmountLib} from "../type/Amount.sol";
5
- import {Seconds} from "../type/Seconds.sol";
6
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
7
- import {ObjectType} from "../type/ObjectType.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {Fee} from "../type/Fee.sol";
10
- import {ReferralId} from "../type/Referral.sol";
11
- import {RiskId} from "../type/RiskId.sol";
12
- import {PRODUCT, BUNDLE, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
13
- import {IRegistry} from "../registry/IRegistry.sol";
14
-
15
- import {IProductComponent} from "./IProductComponent.sol";
16
-
17
- import {IInstance} from "../instance/IInstance.sol";
18
- import {InstanceReader} from "../instance/InstanceReader.sol";
19
- import {IComponents} from "../instance/module/IComponents.sol";
20
- import {IPolicy} from "../instance/module/IPolicy.sol";
21
4
  import {IBundle} from "../instance/module/IBundle.sol";
5
+ import {IComponents} from "../instance/module/IComponents.sol";
22
6
  import {IDistribution} from "../instance/module/IDistribution.sol";
23
-
24
- import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
25
-
26
- import {IPricingService} from "./IPricingService.sol";
27
7
  import {IDistributionService} from "../distribution/IDistributionService.sol";
8
+ import {IInstance} from "../instance/IInstance.sol";
9
+ import {IPolicy} from "../instance/module/IPolicy.sol";
10
+ import {IPricingService} from "./IPricingService.sol";
11
+ import {IProductComponent} from "./IProductComponent.sol";
12
+ import {IRegistry} from "../registry/IRegistry.sol";
13
+
14
+ import {Amount} from "../type/Amount.sol";
15
+ import {BUNDLE, DISTRIBUTION, PRICE, PRODUCT} from "../type/ObjectType.sol";
16
+ import {ContractLib} from "../shared/ContractLib.sol";
17
+ import {Fee} from "../type/Fee.sol";
18
+ import {InstanceReader} from "../instance/InstanceReader.sol";
19
+ import {NftId} from "../type/NftId.sol";
20
+ import {ObjectType} from "../type/ObjectType.sol";
21
+ import {ReferralId} from "../type/Referral.sol";
22
+ import {RiskId} from "../type/RiskId.sol";
23
+ import {Seconds} from "../type/Seconds.sol";
24
+ import {Service} from "../shared/Service.sol";
28
25
 
29
26
 
30
27
  contract PricingService is
31
- ComponentVerifyingService,
28
+ Service,
32
29
  IPricingService
33
30
  {
34
31
  IDistributionService internal _distributionService;
@@ -81,11 +78,11 @@ contract PricingService is
81
78
  // verify product
82
79
  (
83
80
  IRegistry.ObjectInfo memory registryInfo,
84
- IInstance instance
85
- ) = _getAndVerifyComponentInfo(productNftId, PRODUCT(), false);
81
+ address instanceAddress
82
+ ) = ContractLib.getInfoAndInstance(getRegistry(), productNftId, false);
86
83
 
87
84
  // get instance reader from local instance variable
88
- reader = instance.getInstanceReader();
85
+ reader = IInstance(instanceAddress).getInstanceReader();
89
86
 
90
87
  NftId riskProductNftId = reader.getRiskInfo(riskId).productNftId;
91
88
  if (productNftId != riskProductNftId) {
@@ -145,7 +142,7 @@ contract PricingService is
145
142
  revert ErrorPricingServiceTargetWalletAmountsMismatch();
146
143
  }
147
144
 
148
- if (premium.distributionOwnerFeeFixAmount.toInt() < feeInfo.minDistributionOwnerFee.fixedFee) {
145
+ if (premium.distributionOwnerFeeFixAmount < feeInfo.minDistributionOwnerFee.fixedFee) {
149
146
  revert ErrorPricingServiceFeeCalculationMismatch(
150
147
  premium.distributionFeeFixAmount,
151
148
  premium.distributionFeeVarAmount,
@@ -185,19 +182,19 @@ contract PricingService is
185
182
  premium.netPremiumAmount = netPremiumAmount;
186
183
  premium.fullPremiumAmount = netPremiumAmount;
187
184
 
188
- Amount t = AmountLib.toAmount(feeInfo.productFee.fixedFee);
185
+ Amount t = feeInfo.productFee.fixedFee;
189
186
  premium.productFeeFixAmount = t;
190
187
  premium.fullPremiumAmount = premium.fullPremiumAmount + t;
191
188
 
192
- t = AmountLib.toAmount(feeInfo.poolFee.fixedFee);
189
+ t = feeInfo.poolFee.fixedFee;
193
190
  premium.poolFeeFixAmount = t;
194
191
  premium.fullPremiumAmount = premium.fullPremiumAmount + t;
195
192
 
196
- t = AmountLib.toAmount(bundleInfo.fee.fixedFee);
193
+ t = bundleInfo.fee.fixedFee;
197
194
  premium.bundleFeeFixAmount = t;
198
195
  premium.fullPremiumAmount = premium.fullPremiumAmount + t;
199
196
 
200
- t = AmountLib.toAmount(feeInfo.distributionFee.fixedFee);
197
+ t = feeInfo.distributionFee.fixedFee;
201
198
  premium.distributionFeeFixAmount = t;
202
199
  premium.fullPremiumAmount = premium.fullPremiumAmount + t;
203
200
  }
@@ -267,7 +264,7 @@ contract PricingService is
267
264
  Amount commissionAmount = premium.netPremiumAmount.multiplyWith(distributorTypeInfo.commissionPercentage);
268
265
  premium.commissionAmount = commissionAmount;
269
266
  premium.discountAmount = premium.fullPremiumAmount.multiplyWith(referralInfo.discountPercentage);
270
- premium.distributionOwnerFeeFixAmount = AmountLib.toAmount(minDistributionOwnerFee.fixedFee);
267
+ premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
271
268
  premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
272
269
  premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
273
270
  }
@@ -18,7 +18,7 @@ import {COMPONENT, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "..
18
18
  import {PayoutId} from "../type/PayoutId.sol";
19
19
  import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE, RISK } from "../type/ObjectType.sol";
20
20
  import {ReferralId} from "../type/Referral.sol";
21
- import {RiskId, RiskIdLib} from "../type/RiskId.sol";
21
+ import {RiskId} from "../type/RiskId.sol";
22
22
  import {Seconds} from "../type/Seconds.sol";
23
23
  import {StateId} from "../type/StateId.sol";
24
24
  import {Timestamp} from "../type/Timestamp.sol";
@@ -48,6 +48,7 @@ abstract contract Product is
48
48
  function registerComponent(address component)
49
49
  external
50
50
  virtual
51
+ restricted()
51
52
  onlyOwner()
52
53
  returns (NftId componentNftId)
53
54
  {
@@ -79,6 +80,7 @@ abstract contract Product is
79
80
  )
80
81
  public
81
82
  view
83
+ virtual
82
84
  override
83
85
  onlyNftOfType(bundleNftId, BUNDLE())
84
86
  returns (Amount premiumAmount)
@@ -131,29 +133,27 @@ abstract contract Product is
131
133
  }
132
134
 
133
135
 
134
- function _initializeProduct(
136
+ function __Product_init(
135
137
  address registry,
136
138
  NftId instanceNftId,
137
139
  string memory name,
138
140
  IComponents.ProductInfo memory productInfo,
139
141
  IComponents.FeeInfo memory feeInfo,
140
142
  IAuthorization authorization,
141
- address initialOwner,
142
- bytes memory componentData // writeonly data that will saved in the object info record of the registry
143
+ address initialOwner
143
144
  )
144
145
  internal
145
146
  virtual
146
147
  onlyInitializing()
147
148
  {
148
- _initializeInstanceLinkedComponent(
149
+ __InstanceLinkedComponent_init(
149
150
  registry,
150
151
  instanceNftId,
151
152
  name,
152
153
  PRODUCT(),
153
154
  authorization,
154
155
  productInfo.isInterceptingPolicyTransfers,
155
- initialOwner,
156
- componentData);
156
+ initialOwner);
157
157
 
158
158
  ProductStorage storage $ = _getProductStorage();
159
159
  $._productInfo = productInfo;
@@ -207,16 +207,27 @@ abstract contract Product is
207
207
  );
208
208
  }
209
209
 
210
- function _updateRiskState(
210
+ function _setRiskLocked(
211
211
  RiskId id,
212
- StateId state
212
+ bool locked
213
213
  )
214
214
  internal
215
215
  virtual
216
216
  {
217
- _getProductStorage()._riskService.updateRiskState(
217
+ _getProductStorage()._riskService.setRiskLocked(
218
218
  id,
219
- state
219
+ locked
220
+ );
221
+ }
222
+
223
+ function _closeRisk(
224
+ RiskId id
225
+ )
226
+ internal
227
+ virtual
228
+ {
229
+ _getProductStorage()._riskService.closeRisk(
230
+ id
220
231
  );
221
232
  }
222
233
 
@@ -247,9 +258,20 @@ abstract contract Product is
247
258
  );
248
259
  }
249
260
 
261
+ function _revoke(
262
+ NftId applicationNftId
263
+ )
264
+ internal
265
+ virtual
266
+ {
267
+ _getProductStorage()._applicationService.revoke(
268
+ applicationNftId);
269
+ }
270
+
250
271
  function _createPolicy(
251
272
  NftId applicationNftId,
252
- Timestamp activateAt
273
+ Timestamp activateAt,
274
+ Amount maxPremiumAmount
253
275
  )
254
276
  internal
255
277
  virtual
@@ -257,7 +279,8 @@ abstract contract Product is
257
279
  {
258
280
  premiumAmount = _getProductStorage()._policyService.createPolicy(
259
281
  applicationNftId,
260
- activateAt);
282
+ activateAt,
283
+ maxPremiumAmount);
261
284
  }
262
285
 
263
286
  function _decline(
@@ -387,14 +410,14 @@ abstract contract Product is
387
410
  data);
388
411
  }
389
412
 
390
- function _closeClaim(
413
+ function _cancelConfirmedClaim(
391
414
  NftId policyNftId,
392
415
  ClaimId claimId
393
416
  )
394
417
  internal
395
418
  virtual
396
419
  {
397
- _getProductStorage()._claimService.close(
420
+ _getProductStorage()._claimService.cancelConfirmedClaim(
398
421
  policyNftId,
399
422
  claimId);
400
423
  }
@@ -441,8 +464,9 @@ abstract contract Product is
441
464
  )
442
465
  internal
443
466
  virtual
467
+ returns (Amount netPayoutAmount, Amount processingFeeAmount)
444
468
  {
445
- _getProductStorage()._claimService.processPayout(
469
+ (netPayoutAmount, processingFeeAmount) = _getProductStorage()._claimService.processPayout(
446
470
  policyNftId,
447
471
  payoutId);
448
472
  }