@etherisc/gif-next 0.0.2-fd2113c-488 → 0.0.2-fd2ea71-734

Sign up to get free protection for your applications and to get access to all the features.
Files changed (468) hide show
  1. package/README.md +49 -4
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1489 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -303
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +214 -90
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +71 -55
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +91 -160
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +103 -16
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +35 -96
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +132 -140
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -125
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +90 -219
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  61. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  63. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  65. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  71. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  73. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1126 -0
  75. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  77. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  79. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -37
  81. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +40 -168
  84. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  85. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
  86. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
  88. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  89. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1395 -0
  90. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  92. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  93. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +394 -62
  94. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +107 -43
  96. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  97. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
  98. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -289
  100. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +194 -54
  102. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  103. package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -428
  104. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  105. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +262 -90
  106. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +52 -36
  108. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  109. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +33 -44
  110. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -40
  112. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  113. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1243 -0
  114. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  116. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  117. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +88 -72
  118. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
  120. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  121. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  122. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
  124. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +188 -108
  126. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  128. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -79
  129. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  130. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
  131. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  132. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +254 -174
  133. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  134. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +59 -43
  135. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  136. package/artifacts/contracts/product/PricingService.sol/PricingService.json +63 -58
  137. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
  139. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  140. package/artifacts/contracts/product/Product.sol/Product.json +32 -228
  141. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  142. package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
  143. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
  145. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  146. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  147. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  148. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
  149. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  150. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  151. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  152. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -73
  154. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  155. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +234 -389
  156. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  157. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  158. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
  160. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  161. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  162. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  163. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  164. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  165. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -16
  166. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  167. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  168. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  169. package/artifacts/contracts/shared/Component.sol/Component.json +0 -64
  170. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  171. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +255 -86
  172. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -61
  174. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  175. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  176. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  177. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  178. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  179. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  180. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -37
  181. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  183. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  184. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  185. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  188. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  189. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  190. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  191. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  192. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  193. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  194. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -128
  195. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  196. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  197. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  198. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  199. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  200. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  201. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  202. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  203. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  204. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  205. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  206. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  207. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  208. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  209. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  210. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  211. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  212. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  213. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  214. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  215. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -26
  216. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  217. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  218. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +40 -113
  219. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  220. package/artifacts/contracts/staking/Staking.sol/Staking.json +55 -119
  221. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  222. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  223. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  224. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +46 -46
  225. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  227. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
  229. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  230. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
  231. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
  233. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  234. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -22
  235. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  236. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  237. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  239. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  241. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  243. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  245. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  247. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  248. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  249. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  251. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  252. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  253. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  255. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  257. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  259. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  261. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  263. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  265. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  267. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  269. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  271. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  273. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  275. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  277. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  279. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
  281. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  283. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  285. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  286. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  287. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  288. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  289. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  290. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  291. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  292. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  293. package/contracts/{shared → authorization}/AccessAdmin.sol +135 -303
  294. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  295. package/contracts/authorization/Authorization.sol +217 -0
  296. package/contracts/authorization/IAccess.sol +48 -0
  297. package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
  298. package/contracts/authorization/IAuthorization.sol +54 -0
  299. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  300. package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -5
  301. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  302. package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
  303. package/contracts/distribution/BasicDistribution.sol +138 -0
  304. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  305. package/contracts/distribution/Distribution.sol +144 -110
  306. package/contracts/distribution/DistributionService.sol +57 -32
  307. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  308. package/contracts/distribution/IDistributionComponent.sol +25 -39
  309. package/contracts/distribution/IDistributionService.sol +15 -1
  310. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  311. package/contracts/instance/IInstance.sol +14 -38
  312. package/contracts/instance/IInstanceService.sol +13 -18
  313. package/contracts/instance/Instance.sol +67 -101
  314. package/contracts/instance/InstanceAdmin.sol +221 -267
  315. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  316. package/contracts/instance/InstanceReader.sol +32 -16
  317. package/contracts/instance/InstanceService.sol +104 -76
  318. package/contracts/instance/InstanceServiceManager.sol +2 -6
  319. package/contracts/instance/InstanceStore.sol +13 -5
  320. package/contracts/instance/base/ObjectLifecycle.sol +105 -0
  321. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
  322. package/contracts/instance/module/IBundle.sol +1 -1
  323. package/contracts/instance/module/IComponents.sol +1 -7
  324. package/contracts/instance/module/IDistribution.sol +0 -1
  325. package/contracts/instance/module/IPolicy.sol +1 -1
  326. package/contracts/mock/Dip.sol +1 -1
  327. package/contracts/oracle/BasicOracle.sol +48 -0
  328. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  329. package/contracts/oracle/IOracle.sol +16 -0
  330. package/contracts/oracle/IOracleComponent.sol +2 -1
  331. package/contracts/oracle/Oracle.sol +73 -51
  332. package/contracts/oracle/OracleService.sol +1 -0
  333. package/contracts/oracle/OracleServiceManager.sol +2 -5
  334. package/contracts/pool/BasicPool.sol +166 -0
  335. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  336. package/contracts/pool/BundleService.sol +181 -41
  337. package/contracts/pool/BundleServiceManager.sol +2 -5
  338. package/contracts/pool/IBundleService.sol +33 -5
  339. package/contracts/pool/IPoolComponent.sol +6 -60
  340. package/contracts/pool/IPoolService.sol +37 -24
  341. package/contracts/pool/Pool.sol +166 -137
  342. package/contracts/pool/PoolService.sol +175 -86
  343. package/contracts/pool/PoolServiceManager.sol +2 -5
  344. package/contracts/product/ApplicationService.sol +49 -53
  345. package/contracts/product/ApplicationServiceManager.sol +2 -2
  346. package/contracts/product/BasicProduct.sol +53 -0
  347. package/contracts/product/BasicProductAuthorization.sol +43 -0
  348. package/contracts/product/ClaimService.sol +13 -39
  349. package/contracts/product/ClaimServiceManager.sol +2 -2
  350. package/contracts/product/IApplicationService.sol +1 -0
  351. package/contracts/product/IClaimService.sol +1 -0
  352. package/contracts/product/IPolicyService.sol +23 -17
  353. package/contracts/product/IProductComponent.sol +7 -9
  354. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  355. package/contracts/product/PolicyService.sol +242 -133
  356. package/contracts/product/PolicyServiceManager.sol +2 -5
  357. package/contracts/product/PricingService.sol +5 -1
  358. package/contracts/product/PricingServiceManager.sol +2 -5
  359. package/contracts/product/Product.sol +141 -107
  360. package/contracts/product/{ProductService.sol → RiskService.sol} +10 -37
  361. package/contracts/product/RiskServiceManager.sol +39 -0
  362. package/contracts/registry/IRegistry.sol +26 -16
  363. package/contracts/registry/IRegistryService.sol +6 -6
  364. package/contracts/registry/Registry.sol +81 -87
  365. package/contracts/registry/RegistryAdmin.sol +127 -86
  366. package/contracts/registry/RegistryService.sol +4 -18
  367. package/contracts/registry/RegistryServiceManager.sol +2 -2
  368. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  369. package/contracts/registry/ReleaseRegistry.sol +485 -0
  370. package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
  371. package/contracts/registry/TokenRegistry.sol +2 -2
  372. package/contracts/shared/Component.sol +24 -37
  373. package/contracts/shared/ComponentService.sol +96 -72
  374. package/contracts/shared/ComponentServiceManager.sol +2 -2
  375. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  376. package/contracts/shared/IComponent.sol +4 -4
  377. package/contracts/shared/IComponentService.sol +15 -9
  378. package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
  379. package/contracts/shared/IKeyValueStore.sol +1 -0
  380. package/contracts/shared/ILifecycle.sol +1 -2
  381. package/contracts/shared/IService.sol +1 -1
  382. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
  383. package/contracts/shared/InstanceLinkedComponent.sol +47 -19
  384. package/contracts/shared/KeyValueStore.sol +6 -2
  385. package/contracts/shared/Lifecycle.sol +16 -69
  386. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  387. package/contracts/shared/NftOwnable.sol +2 -2
  388. package/contracts/shared/PolicyHolder.sol +2 -5
  389. package/contracts/shared/Service.sol +3 -4
  390. package/contracts/shared/TokenHandler.sol +100 -19
  391. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  392. package/contracts/staking/IStaking.sol +1 -2
  393. package/contracts/staking/IStakingService.sol +12 -5
  394. package/contracts/staking/StakeManagerLib.sol +0 -25
  395. package/contracts/staking/Staking.sol +21 -37
  396. package/contracts/staking/StakingLifecycle.sol +23 -0
  397. package/contracts/staking/StakingManager.sol +2 -6
  398. package/contracts/staking/StakingReader.sol +12 -16
  399. package/contracts/staking/StakingService.sol +8 -12
  400. package/contracts/staking/StakingServiceManager.sol +2 -2
  401. package/contracts/staking/StakingStore.sol +15 -23
  402. package/contracts/type/Amount.sol +12 -5
  403. package/contracts/type/Blocknumber.sol +7 -1
  404. package/contracts/type/ObjectType.sol +37 -7
  405. package/contracts/type/Referral.sol +1 -0
  406. package/contracts/type/RoleId.sol +55 -82
  407. package/contracts/type/Seconds.sol +13 -1
  408. package/contracts/type/Timestamp.sol +11 -1
  409. package/contracts/type/UFixed.sol +34 -9
  410. package/contracts/type/Version.sol +3 -1
  411. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  412. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  413. package/package.json +6 -3
  414. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  415. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  416. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  417. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  418. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  419. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  420. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  421. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  422. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  423. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  424. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  425. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  426. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  427. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
  428. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  429. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
  430. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  431. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  432. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  433. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  434. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  435. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  436. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  437. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  438. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  439. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  440. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  441. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  442. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  443. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  444. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  445. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  446. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  447. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  448. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  449. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  450. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  451. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  452. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  453. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  454. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  455. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  456. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  457. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  458. package/contracts/product/ProductServiceManager.sol +0 -42
  459. package/contracts/registry/ReleaseManager.sol +0 -527
  460. package/contracts/shared/AccessManagerCustom.sol +0 -741
  461. package/contracts/shared/AccessManagerExtended.sol +0 -481
  462. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  463. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  464. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  465. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  466. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  467. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  468. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,48 +1,22 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IRisk} from "../instance/module/IRisk.sol";
5
- import {IService} from "./IApplicationService.sol";
6
-
7
4
  import {IComponents} from "../instance/module/IComponents.sol";
8
- import {IRegistry} from "../registry/IRegistry.sol";
9
- import {IProductComponent} from "./IProductComponent.sol";
10
- import {Product} from "./Product.sol";
11
- import {IPoolComponent} from "../pool/IPoolComponent.sol";
12
- import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
13
5
  import {IInstance} from "../instance/IInstance.sol";
14
6
  import {IPolicy} from "../instance/module/IPolicy.sol";
15
- import {IRisk} from "../instance/module/IRisk.sol";
16
- import {IBundle} from "../instance/module/IBundle.sol";
17
- import {IProductService} from "./IProductService.sol";
18
-
19
- import {TokenHandler} from "../shared/TokenHandler.sol";
20
-
21
- import {IVersionable} from "../shared/IVersionable.sol";
22
- import {Versionable} from "../shared/Versionable.sol";
23
-
24
7
  import {Amount, AmountLib} from "../type/Amount.sol";
25
- import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
26
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
27
- import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
28
- import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../type/ObjectType.sol";
29
- import {SUBMITTED, ACTIVE, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
30
- import {NftId, NftIdLib} from "../type/NftId.sol";
31
- import {Fee, FeeLib} from "../type/Fee.sol";
32
- import {ReferralId} from "../type/Referral.sol";
33
- import {RiskId} from "../type/RiskId.sol";
8
+ import {TimestampLib} from "../type/Timestamp.sol";
9
+ import {ObjectType, CLAIM, PRODUCT, POOL} from "../type/ObjectType.sol";
10
+ import {SUBMITTED, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {FeeLib} from "../type/Fee.sol";
34
13
  import {StateId} from "../type/StateId.sol";
35
14
  import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
36
15
  import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
37
- import {Version, VersionLib} from "../type/Version.sol";
38
-
39
16
  import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
40
17
  import {InstanceReader} from "../instance/InstanceReader.sol";
41
- import {IBundleService} from "../pool/IBundleService.sol";
42
18
  import {IClaimService} from "./IClaimService.sol";
43
19
  import {IPoolService} from "../pool/IPoolService.sol";
44
- import {IService} from "../shared/IService.sol";
45
- import {Service} from "../shared/Service.sol";
46
20
 
47
21
 
48
22
  contract ClaimService is
@@ -320,7 +294,7 @@ contract ClaimService is
320
294
  (
321
295
  Amount netPayoutAmount,
322
296
  address beneficiary
323
- ) = _transferPayoutAmount(
297
+ ) = _calculatePayoutAmount(
324
298
  instanceReader,
325
299
  policyNftId,
326
300
  policyInfo,
@@ -329,10 +303,15 @@ contract ClaimService is
329
303
  // TODO callback IPolicyHolder
330
304
 
331
305
  emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount);
306
+
307
+ {
308
+ NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
309
+ IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
310
+ poolInfo.tokenHandler.distributeTokens(poolInfo.wallet, beneficiary, netPayoutAmount);
311
+ }
332
312
  }
333
313
 
334
- // TODO create (I)TreasuryService that deals with all gif related token transfers
335
- function _transferPayoutAmount(
314
+ function _calculatePayoutAmount(
336
315
  InstanceReader instanceReader,
337
316
  NftId policyNftId,
338
317
  IPolicy.PolicyInfo memory policyInfo,
@@ -362,11 +341,6 @@ contract ClaimService is
362
341
  // TODO transfer processing fees to product wallet
363
342
  // TODO inform product to update fee book keeping
364
343
  }
365
-
366
- poolInfo.tokenHandler.transfer(
367
- poolInfo.wallet,
368
- beneficiary,
369
- netPayoutAmount);
370
344
  }
371
345
  }
372
346
 
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {ClaimService} from "./ClaimService.sol";
7
7
 
8
8
  contract ClaimServiceManager is ProxyManager {
@@ -24,6 +24,7 @@ interface IApplicationService is IService {
24
24
  address applicationOwner,
25
25
  RiskId riskId,
26
26
  Amount sumInsuredAmount,
27
+ Amount premiumAmount,
27
28
  Seconds lifetime,
28
29
  NftId bundleNftId,
29
30
  ReferralId referralId,
@@ -31,6 +31,7 @@ interface IClaimService is
31
31
  error ErrorClaimServicePolicyProductMismatch(NftId policyNftId, NftId expectedProduct, NftId actualProduct);
32
32
  error ErrorClaimServicePolicyNotOpen(NftId policyNftId);
33
33
  error ErrorClaimServiceClaimExceedsSumInsured(NftId policyNftId, Amount sumInsured, Amount payoutsIncludingClaimAmount);
34
+ error ErrorClaimsServicePayoutAmountIsZero(NftId policyNftId, PayoutId payoutId);
34
35
 
35
36
  error ErrorClaimServiceClaimWithOpenPayouts(NftId policyNftId, ClaimId claimId, uint8 openPayouts);
36
37
  error ErrorClaimServiceClaimWithMissingPayouts(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount paidAmount);
@@ -20,34 +20,39 @@ interface IPolicyService is IService {
20
20
 
21
21
  error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
22
22
  error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
23
- error ErrorPolicyServicePolicyStateNotCollateralizedOrApplied(NftId applicationNftId);
23
+ error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
24
+ error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
24
25
 
25
- error ErrorPolicyServicePremiumHigherThanExpected(Amount premiumExpectedAmount, Amount premiumToBePaidAmount);
26
26
  error ErrorPolicyServiceBalanceInsufficient(address policyOwner, uint256 premiumAmount, uint256 balance);
27
27
  error ErrorPolicyServiceAllowanceInsufficient(address policyOwner, address tokenHandler, uint256 premiumAmount, uint256 allowance);
28
28
 
29
- error ErrorIPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
29
+ error ErrorPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
30
30
  error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId, Amount premiumPaidAmount);
31
- error ErrorIPolicyServicePolicyNotActivated(NftId policyNftId);
32
- error ErrorIPolicyServicePolicyAlreadyClosed(NftId policyNftId);
33
- error ErrorIPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
31
+ error ErrorPolicyServicePolicyNotActivated(NftId policyNftId);
32
+ error ErrorPolicyServicePolicyAlreadyClosed(NftId policyNftId);
33
+ error ErrorPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
34
34
  error ErrorPolicyServicePremiumNotFullyPaid(NftId policyNftId, Amount premiumAmount, Amount premiumPaidAmount);
35
- error ErrorIPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
36
- error ErrorIPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
35
+ error ErrorPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
36
+ error ErrorPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
37
+ error ErrorPolicyServicePolicyExpirationTooLate(NftId policyNftId, Timestamp upperLimit, Timestamp expiredAt);
38
+ error ErrorPolicyServicePolicyExpirationTooEarly(NftId policyNftId, Timestamp lowerLimit, Timestamp expiredAt);
37
39
 
38
40
  error ErrorPolicyServicePremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount recalculatedPremiumAmount);
39
41
  error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
40
42
 
41
- /// @dev collateralizes the policy represented by {policyNftId}
43
+ event LogPolicyServicePolicyDeclined(NftId policyNftId);
44
+ event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
45
+
46
+ /// @dev creates the policy from {applicationNftId}.
47
+ /// After successful completion of the function the policy can be referenced using the application NftId.
48
+ /// Locks the sum insured amount in the pool.
42
49
  /// sets the policy state to collateralized
43
- /// may set the policy state to activated and set the activation date
44
50
  /// optionally collects premiums and activates the policy.
45
51
  /// - premium payment is only attempted if requirePremiumPayment is set to true
46
52
  /// - activation is only done if activateAt is a non-zero timestamp
47
- /// an application can only be collateralized in applied state
48
- /// only the related product may collateralize an application
49
- function collateralize(
50
- NftId policyNftId,
53
+ /// only the related product may create a policy from an application
54
+ function createPolicy(
55
+ NftId applicationNftId,
51
56
  bool requirePremiumPayment,
52
57
  Timestamp activateAt
53
58
  ) external;
@@ -57,18 +62,19 @@ interface IPolicyService is IService {
57
62
  /// only the related product may decline an application
58
63
  function decline(NftId policyNftId) external;
59
64
 
60
- /// @dev collects the premium token for the specified policy
65
+ /// @dev collects the premium token for the specified policy (must be in COLLATERALIZED or ACTIVE state)
61
66
  function collectPremium(NftId policyNftId, Timestamp activateAt) external;
62
67
 
63
68
  /// @dev activates the specified policy and sets the activation date in the policy metadata
64
69
  /// to activate a policy it needs to be in underwritten state
65
70
  function activate(NftId policyNftId, Timestamp activateAt) external;
66
71
 
67
- /// @dev expires the specified policy and sets the expiry date in the policy metadata
72
+ /// @dev expires the specified policy and sets the expiry date in the policy metadata. If expiry date is set to 0, then the earliest possible expiry date (current blocktime) is set
68
73
  /// to expire a policy it must be in active state, policies may be expired even when the predefined expiry date is still in the future
69
74
  /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
70
75
  /// this function can only be called by a product. the policy needs to match with the calling product
71
- function expire(NftId policyNftId) external;
76
+ /// @return expiredAt the effective expiry date
77
+ function expire(NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
72
78
 
73
79
  /// @dev closes the specified policy and sets the closed data in the policy metadata
74
80
  /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
@@ -10,12 +10,9 @@ import {ReferralId} from "../type/Referral.sol";
10
10
  import {RiskId} from "../type/RiskId.sol";
11
11
  import {Seconds} from "../type/Seconds.sol";
12
12
 
13
- interface IProductComponent is IInstanceLinkedComponent {
14
-
15
- function setFees(
16
- Fee memory productFee,
17
- Fee memory processingFee
18
- ) external;
13
+ interface IProductComponent is
14
+ IInstanceLinkedComponent
15
+ {
19
16
 
20
17
  function calculatePremium(
21
18
  Amount sumInsuredAmount,
@@ -33,10 +30,11 @@ interface IProductComponent is IInstanceLinkedComponent {
33
30
  bytes memory applicationData
34
31
  ) external view returns (Amount netPremiumAmount);
35
32
 
33
+ function getPoolNftId() external view returns (NftId poolNftId);
34
+ function getDistributionNftId() external view returns (NftId distributionNftId);
35
+
36
36
 
37
37
  /// @dev returns initial pool specific infos for this pool
38
38
  function getInitialProductInfo() external view returns (IComponents.ProductInfo memory info);
39
-
40
- function getPoolNftId() external view returns (NftId poolNftId);
41
- function getDistributionNftId() external view returns (NftId distributionNftId);
39
+
42
40
  }
@@ -12,7 +12,7 @@ import {Timestamp} from "../type/Timestamp.sol";
12
12
  import {UFixed} from "../type/UFixed.sol";
13
13
  import {Fee} from "../type/Fee.sol";
14
14
 
15
- interface IProductService is IService {
15
+ interface IRiskService is IService {
16
16
 
17
17
  function createRisk(
18
18
  RiskId riskId,