@etherisc/gif-next 0.0.2-ceb30b2-601 → 0.0.2-cf22d7b-845

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 (514) hide show
  1. package/README.md +2 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +239 -155
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +118 -99
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +39 -307
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +254 -2310
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +72 -22
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +397 -2818
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +507 -350
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +147 -193
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +113 -103
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  45. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  46. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  47. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  48. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  49. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  50. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  51. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  52. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +45 -56
  53. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  54. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +200 -97
  55. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  56. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +144 -156
  57. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  58. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +305 -103
  59. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  60. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  61. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  62. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  63. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  64. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  65. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  66. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  67. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  68. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  69. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  70. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  71. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  72. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
  73. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  74. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +30 -2
  75. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  76. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +127 -71
  77. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  78. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +53 -136
  79. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  80. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +284 -106
  81. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  82. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +1 -56
  83. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  85. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  87. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  88. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  89. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  91. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  92. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  93. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  94. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  95. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  96. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  97. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  99. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
  101. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +304 -52
  103. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  104. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/Registry.sol/Registry.json +415 -43
  106. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  107. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  108. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  109. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +337 -72
  110. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -41
  112. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +824 -91
  114. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  115. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  116. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  117. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
  118. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  119. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  120. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  121. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  122. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  123. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  124. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  126. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  128. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  129. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +143 -76
  130. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  131. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  132. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  134. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +17 -122
  136. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  137. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  138. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  139. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  140. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  142. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  143. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +114 -75
  144. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  146. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  148. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  149. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  150. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  152. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  153. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  154. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  155. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +45 -3
  156. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  157. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  158. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  159. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
  161. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  162. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  163. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  164. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  165. package/artifacts/contracts/{components/Product.sol/Product.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +170 -288
  166. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  167. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  168. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  169. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  170. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  171. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  172. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
  174. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  175. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +56 -7
  176. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  177. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -22
  178. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
  180. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  181. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  182. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  183. package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
  184. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  185. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  186. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  187. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  188. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  189. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  190. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  191. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  192. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  193. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  194. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  195. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  196. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  197. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  198. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  199. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  200. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  201. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  202. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  203. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  204. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  205. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  206. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  207. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  208. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  209. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  210. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  211. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  212. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  213. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  214. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  215. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  216. package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
  217. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  218. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  219. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  220. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  221. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  222. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  223. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  224. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  225. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  226. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  227. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  228. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  229. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  230. package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
  231. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  232. package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
  233. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  234. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  235. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  236. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  237. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  238. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  239. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  240. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  241. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  242. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +5 -5
  243. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  244. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  245. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  246. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  247. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  248. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  249. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  250. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  251. package/contracts/{components → distribution}/Distribution.sol +41 -64
  252. package/contracts/distribution/DistributionService.sol +298 -0
  253. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  254. package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
  255. package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
  256. package/contracts/instance/BundleManager.sol +5 -5
  257. package/contracts/instance/IInstance.sol +45 -70
  258. package/contracts/instance/IInstanceService.sol +29 -11
  259. package/contracts/instance/Instance.sol +112 -195
  260. package/contracts/instance/InstanceAdmin.sol +331 -0
  261. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  262. package/contracts/instance/InstanceReader.sol +106 -58
  263. package/contracts/instance/InstanceService.sol +166 -288
  264. package/contracts/instance/InstanceServiceManager.sol +11 -21
  265. package/contracts/instance/InstanceStore.sol +260 -0
  266. package/contracts/instance/base/BalanceStore.sol +118 -0
  267. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
  268. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +6 -6
  269. package/contracts/instance/module/IAccess.sol +4 -12
  270. package/contracts/instance/module/IBundle.sol +6 -9
  271. package/contracts/instance/module/IComponents.sol +21 -10
  272. package/contracts/instance/module/IDistribution.sol +7 -6
  273. package/contracts/instance/module/IPolicy.sol +20 -14
  274. package/contracts/instance/module/IRisk.sol +1 -1
  275. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  276. package/contracts/pool/BundleService.sol +296 -0
  277. package/contracts/pool/BundleServiceManager.sol +42 -0
  278. package/contracts/{instance/service → pool}/IBundleService.sol +33 -29
  279. package/contracts/{components → pool}/IPoolComponent.sol +16 -17
  280. package/contracts/{instance/service → pool}/IPoolService.sol +57 -51
  281. package/contracts/{components → pool}/Pool.sol +52 -55
  282. package/contracts/pool/PoolService.sol +453 -0
  283. package/contracts/pool/PoolServiceManager.sol +42 -0
  284. package/contracts/product/ApplicationService.sol +254 -0
  285. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  286. package/contracts/{instance/service → product}/ClaimService.sol +167 -86
  287. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  288. package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
  289. package/contracts/{instance/service → product}/IClaimService.sol +18 -15
  290. package/contracts/{instance/service → product}/IPolicyService.sol +24 -26
  291. package/contracts/product/IPricingService.sol +39 -0
  292. package/contracts/product/IProductComponent.sol +42 -0
  293. package/contracts/product/IProductService.sol +33 -0
  294. package/contracts/product/PolicyService.sol +475 -0
  295. package/contracts/product/PolicyServiceManager.sol +42 -0
  296. package/contracts/product/PricingService.sol +301 -0
  297. package/contracts/product/PricingServiceManager.sol +42 -0
  298. package/contracts/{components → product}/Product.sol +83 -77
  299. package/contracts/product/ProductService.sol +124 -0
  300. package/contracts/product/ProductServiceManager.sol +42 -0
  301. package/contracts/registry/ChainNft.sol +8 -1
  302. package/contracts/registry/IRegistry.sol +44 -21
  303. package/contracts/registry/IRegistryService.sol +37 -34
  304. package/contracts/registry/Registry.sol +191 -82
  305. package/contracts/registry/RegistryAdmin.sol +237 -0
  306. package/contracts/registry/RegistryService.sol +66 -82
  307. package/contracts/registry/RegistryServiceManager.sol +21 -25
  308. package/contracts/registry/ReleaseManager.sol +458 -183
  309. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  310. package/contracts/registry/TokenRegistry.sol +261 -62
  311. package/contracts/shared/AccessManagerCustom.sol +736 -0
  312. package/contracts/shared/AccessManagerExtended.sol +470 -0
  313. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  314. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  315. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  316. package/contracts/shared/Component.sol +278 -0
  317. package/contracts/shared/ComponentService.sol +596 -0
  318. package/contracts/shared/ComponentServiceManager.sol +35 -0
  319. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  320. package/contracts/shared/ERC165.sol +1 -1
  321. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  322. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  323. package/contracts/{components → shared}/IComponent.sol +23 -29
  324. package/contracts/shared/IComponentService.sol +91 -0
  325. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  326. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  327. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  328. package/contracts/shared/INftOwnable.sol +2 -2
  329. package/contracts/shared/IPolicyHolder.sol +14 -7
  330. package/contracts/shared/IService.sol +2 -2
  331. package/contracts/shared/IVersionable.sol +1 -1
  332. package/contracts/shared/InitializableCustom.sol +177 -0
  333. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  334. package/contracts/shared/KeyValueStore.sol +127 -0
  335. package/contracts/{instance/base → shared}/Lifecycle.sol +9 -5
  336. package/contracts/shared/NftIdSetManager.sol +65 -0
  337. package/contracts/shared/NftOwnable.sol +3 -14
  338. package/contracts/shared/PolicyHolder.sol +32 -17
  339. package/contracts/shared/ProxyManager.sol +34 -4
  340. package/contracts/shared/Registerable.sol +3 -3
  341. package/contracts/shared/Service.sol +9 -4
  342. package/contracts/shared/TokenHandler.sol +27 -2
  343. package/contracts/shared/Versionable.sol +1 -1
  344. package/contracts/staking/IStaking.sol +168 -0
  345. package/contracts/staking/IStakingService.sol +149 -0
  346. package/contracts/staking/StakeManagerLib.sol +179 -0
  347. package/contracts/staking/Staking.sol +551 -0
  348. package/contracts/staking/StakingManager.sol +54 -0
  349. package/contracts/staking/StakingReader.sol +187 -0
  350. package/contracts/staking/StakingService.sol +406 -0
  351. package/contracts/staking/StakingServiceManager.sol +45 -0
  352. package/contracts/staking/StakingStore.sol +572 -0
  353. package/contracts/staking/TargetManagerLib.sol +207 -0
  354. package/contracts/{types → type}/AddressSet.sol +1 -1
  355. package/contracts/{types → type}/Amount.sol +59 -1
  356. package/contracts/{types → type}/Blocknumber.sol +20 -3
  357. package/contracts/{types → type}/Fee.sol +24 -22
  358. package/contracts/{types → type}/NftId.sol +14 -16
  359. package/contracts/{types → type}/NftIdSet.sol +2 -2
  360. package/contracts/{types → type}/ObjectType.sol +15 -3
  361. package/contracts/{types → type}/Referral.sol +1 -1
  362. package/contracts/{types → type}/RiskId.sol +1 -1
  363. package/contracts/{types → type}/RoleId.sol +55 -9
  364. package/contracts/{types → type}/Seconds.sol +27 -0
  365. package/contracts/{types → type}/StateId.sol +17 -4
  366. package/contracts/{types → type}/Version.sol +1 -1
  367. package/package.json +3 -3
  368. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  369. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  370. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  371. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  372. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  373. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  374. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  375. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  376. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  377. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  378. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  379. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  380. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  381. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  382. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  383. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  384. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  385. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  386. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  387. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  388. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  389. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  390. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +0 -10
  391. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  392. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  393. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  394. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1092
  395. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  396. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
  397. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  398. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1313
  399. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  400. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -712
  401. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  402. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1316
  403. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  404. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -724
  405. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  406. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  407. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  408. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  409. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  410. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  411. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  412. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  413. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  414. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  415. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  416. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  417. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1153
  418. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  419. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
  420. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  421. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1598
  422. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  423. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -696
  424. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  425. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  426. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  427. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  428. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  429. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  430. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  431. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  432. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  433. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  434. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  435. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  436. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  437. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  438. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  439. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  440. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  441. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  442. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  443. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  444. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  445. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  446. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  447. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  448. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  449. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  450. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  451. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  452. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  453. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  454. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  455. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  456. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  457. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  458. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  459. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  460. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  461. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  462. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  463. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  464. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  465. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  466. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  467. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  468. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  469. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  470. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  471. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  472. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  473. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  474. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  475. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  476. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  477. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  478. package/contracts/components/Component.sol +0 -253
  479. package/contracts/components/IProductComponent.sol +0 -40
  480. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  481. package/contracts/instance/InstanceAccessManager.sol +0 -527
  482. package/contracts/instance/base/ComponentService.sol +0 -130
  483. package/contracts/instance/base/KeyValueStore.sol +0 -149
  484. package/contracts/instance/module/ISetup.sol +0 -33
  485. package/contracts/instance/module/ITreasury.sol +0 -23
  486. package/contracts/instance/service/ApplicationService.sol +0 -356
  487. package/contracts/instance/service/BundleService.sol +0 -443
  488. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  489. package/contracts/instance/service/DistributionService.sol +0 -431
  490. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  491. package/contracts/instance/service/IProductService.sol +0 -40
  492. package/contracts/instance/service/PolicyService.sol +0 -358
  493. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  494. package/contracts/instance/service/PoolService.sol +0 -349
  495. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  496. package/contracts/instance/service/ProductService.sol +0 -210
  497. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  498. package/contracts/registry/RegistryAccessManager.sol +0 -216
  499. package/contracts/shared/ContractDeployerLib.sol +0 -72
  500. package/contracts/test/TestFee.sol +0 -25
  501. package/contracts/test/TestRegisterable.sol +0 -18
  502. package/contracts/test/TestRoleId.sol +0 -14
  503. package/contracts/test/TestService.sol +0 -25
  504. package/contracts/test/TestVersion.sol +0 -44
  505. package/contracts/test/TestVersionable.sol +0 -17
  506. package/contracts/test/Usdc.sol +0 -26
  507. package/contracts/types/ChainId.sol +0 -38
  508. package/contracts/types/NumberId.sol +0 -52
  509. /package/contracts/{types → type}/ClaimId.sol +0 -0
  510. /package/contracts/{types → type}/DistributorType.sol +0 -0
  511. /package/contracts/{types → type}/Key32.sol +0 -0
  512. /package/contracts/{types → type}/PayoutId.sol +0 -0
  513. /package/contracts/{types → type}/Timestamp.sol +0 -0
  514. /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -1,53 +1,52 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {IRisk} from "../module/IRisk.sol";
4
+ import {IRisk} from "../instance/module/IRisk.sol";
5
5
  import {IService} from "./IApplicationService.sol";
6
6
 
7
- import {IRegistry} from "../../registry/IRegistry.sol";
8
- import {IProductComponent} from "../../components/IProductComponent.sol";
9
- import {Product} from "../../components/Product.sol";
10
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
11
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
12
- import {IInstance} from "../IInstance.sol";
13
- import {IPolicy} from "../module/IPolicy.sol";
14
- import {IRisk} from "../module/IRisk.sol";
15
- import {IBundle} from "../module/IBundle.sol";
7
+ 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
+ import {IInstance} from "../instance/IInstance.sol";
14
+ import {IPolicy} from "../instance/module/IPolicy.sol";
15
+ import {IRisk} from "../instance/module/IRisk.sol";
16
+ import {IBundle} from "../instance/module/IBundle.sol";
16
17
  import {IProductService} from "./IProductService.sol";
17
- import {ITreasury} from "../module/ITreasury.sol";
18
- import {ISetup} from "../module/ISetup.sol";
19
-
20
- import {TokenHandler} from "../../shared/TokenHandler.sol";
21
-
22
- import {IVersionable} from "../../shared/IVersionable.sol";
23
- import {Versionable} from "../../shared/Versionable.sol";
24
-
25
- import {Amount, AmountLib} from "../../types/Amount.sol";
26
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
27
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
28
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
29
- import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../../types/ObjectType.sol";
30
- import {SUBMITTED, ACTIVE, KEEP_STATE, DECLINED, CONFIRMED, CLOSED} from "../../types/StateId.sol";
31
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
32
- import {Fee, FeeLib} from "../../types/Fee.sol";
33
- import {ReferralId} from "../../types/Referral.sol";
34
- import {RiskId} from "../../types/RiskId.sol";
35
- import {StateId} from "../../types/StateId.sol";
36
- import {ClaimId, ClaimIdLib} from "../../types/ClaimId.sol";
37
- import {PayoutId, PayoutIdLib} from "../../types/PayoutId.sol";
38
- import {Version, VersionLib} from "../../types/Version.sol";
39
-
40
- import {ComponentService} from "../base/ComponentService.sol";
41
- import {InstanceReader} from "../InstanceReader.sol";
42
- import {IBundleService} from "./IBundleService.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
+ 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";
34
+ import {StateId} from "../type/StateId.sol";
35
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
36
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
37
+ import {Version, VersionLib} from "../type/Version.sol";
38
+
39
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
40
+ import {InstanceReader} from "../instance/InstanceReader.sol";
41
+ import {IBundleService} from "../pool/IBundleService.sol";
43
42
  import {IClaimService} from "./IClaimService.sol";
44
- import {IPoolService} from "./IPoolService.sol";
45
- import {IService} from "../../shared/IService.sol";
46
- import {Service} from "../../shared/Service.sol";
43
+ import {IPoolService} from "../pool/IPoolService.sol";
44
+ import {IService} from "../shared/IService.sol";
45
+ import {Service} from "../shared/Service.sol";
47
46
 
48
47
 
49
48
  contract ClaimService is
50
- ComponentService,
49
+ ComponentVerifyingService,
51
50
  IClaimService
52
51
  {
53
52
 
@@ -61,12 +60,13 @@ contract ClaimService is
61
60
  virtual override
62
61
  initializer()
63
62
  {
64
- // TODO check this, might no longer be the way, refactor if necessary
65
- address registryAddress;
66
- address initialOwner;
67
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
63
+ (
64
+ address registryAddress,,
65
+ //address managerAddress
66
+ address authority
67
+ ) = abi.decode(data, (address, address, address));
68
68
 
69
- initializeService(registryAddress, address(0), owner);
69
+ initializeService(registryAddress, authority, owner);
70
70
 
71
71
  _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
72
72
 
@@ -81,7 +81,7 @@ contract ClaimService is
81
81
  function submit(
82
82
  NftId policyNftId,
83
83
  Amount claimAmount,
84
- bytes memory claimData
84
+ bytes memory claimData // claim submission data
85
85
  )
86
86
  external
87
87
  virtual
@@ -99,16 +99,16 @@ contract ClaimService is
99
99
  }
100
100
 
101
101
  // check policy including this claim is still within sum insured
102
- if(policyInfo.payoutAmount.toInt() + claimAmount.toInt() > policyInfo.sumInsuredAmount) {
102
+ if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
103
103
  revert ErrorClaimServiceClaimExceedsSumInsured(
104
104
  policyNftId,
105
- AmountLib.toAmount(policyInfo.sumInsuredAmount),
105
+ policyInfo.sumInsuredAmount,
106
106
  AmountLib.toAmount(policyInfo.payoutAmount.toInt() + claimAmount.toInt()));
107
107
  }
108
108
 
109
109
  // create new claim
110
110
  claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
111
- instance.createClaim(
111
+ instance.getInstanceStore().createClaim(
112
112
  policyNftId,
113
113
  claimId,
114
114
  IPolicy.ClaimInfo(
@@ -116,14 +116,15 @@ contract ClaimService is
116
116
  AmountLib.zero(), // paidAmount
117
117
  0, // payoutsCount
118
118
  0, // openPayoutsCount
119
- claimData,
119
+ claimData, // claim submission data
120
+ "", // claim processing data
120
121
  TimestampLib.zero())); // closedAt
121
122
 
122
123
  // update and save policy info with instance
123
124
  policyInfo.claimsCount += 1;
124
125
  policyInfo.openClaimsCount += 1;
125
126
  // policy claim amount is only updated when claim is confirmed
126
- instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
127
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
127
128
 
128
129
  emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
129
130
  }
@@ -132,7 +133,8 @@ contract ClaimService is
132
133
  function confirm(
133
134
  NftId policyNftId,
134
135
  ClaimId claimId,
135
- Amount confirmedAmount
136
+ Amount confirmedAmount,
137
+ bytes memory data // claim processing data
136
138
  )
137
139
  external
138
140
  virtual
@@ -146,18 +148,20 @@ contract ClaimService is
146
148
  // check/update claim info
147
149
  IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
148
150
  claimInfo.claimAmount = confirmedAmount;
149
- instance.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
151
+ claimInfo.processData = data;
152
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
150
153
 
151
154
  // update and save policy info with instance
152
- policyInfo.claimAmount.add(confirmedAmount);
153
- instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
155
+ policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
156
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
154
157
 
155
158
  emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
156
159
  }
157
160
 
158
161
  function decline(
159
162
  NftId policyNftId,
160
- ClaimId claimId
163
+ ClaimId claimId,
164
+ bytes memory data // claim processing data
161
165
  )
162
166
  external
163
167
  virtual
@@ -170,12 +174,13 @@ contract ClaimService is
170
174
 
171
175
  // check/update claim info
172
176
  IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
177
+ claimInfo.processData = data;
173
178
  claimInfo.closedAt = TimestampLib.blockTimestamp();
174
- instance.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
179
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, DECLINED());
175
180
 
176
181
  // update and save policy info with instance
177
182
  policyInfo.openClaimsCount -= 1;
178
- instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
183
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
179
184
 
180
185
  emit LogClaimServiceClaimDeclined(policyNftId, claimId);
181
186
  }
@@ -214,13 +219,7 @@ contract ClaimService is
214
219
  }
215
220
 
216
221
  claimInfo.closedAt = TimestampLib.blockTimestamp();
217
- instance.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
218
-
219
- // update and save policy info with instance
220
- policyInfo.openClaimsCount -= 1;
221
- instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
222
-
223
- emit LogClaimServiceClaimClosed(policyNftId, claimId);
222
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
224
223
  }
225
224
 
226
225
 
@@ -232,7 +231,6 @@ contract ClaimService is
232
231
  )
233
232
  external
234
233
  returns (PayoutId payoutId)
235
- // TODO add restricted and grant to policy service
236
234
  {
237
235
  (
238
236
  IInstance instance,
@@ -251,7 +249,7 @@ contract ClaimService is
251
249
  // create payout info with instance
252
250
  uint8 claimNo = claimInfo.payoutsCount + 1;
253
251
  payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
254
- instance.createPayout(
252
+ instance.getInstanceStore().createPayout(
255
253
  policyNftId,
256
254
  payoutId,
257
255
  IPolicy.PayoutInfo(
@@ -263,11 +261,11 @@ contract ClaimService is
263
261
  // update and save claim info with instance
264
262
  claimInfo.payoutsCount += 1;
265
263
  claimInfo.openPayoutsCount += 1;
266
- instance.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
264
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
267
265
 
268
266
  // update and save policy info with instance
269
267
  policyInfo.payoutAmount.add(amount);
270
- instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
268
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
271
269
 
272
270
  emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount);
273
271
  }
@@ -279,7 +277,6 @@ contract ClaimService is
279
277
  )
280
278
  external
281
279
  virtual
282
- // TODO add restricted and grant to policy service
283
280
  {
284
281
  (
285
282
  IInstance instance,
@@ -287,30 +284,120 @@ contract ClaimService is
287
284
  IPolicy.PolicyInfo memory policyInfo
288
285
  ) = _verifyCallerWithPolicy(policyNftId);
289
286
 
290
- // TODO update and save payout info with instance
291
- Amount amount = AmountLib.toAmount(0);
292
- bool payoutIsClosingClaim = false;
287
+ // TODO add check that payout exists and is open
288
+ IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
289
+
290
+ // update and save payout info with instance
291
+ payoutInfo.paidAt = TimestampLib.blockTimestamp();
292
+ instance.getInstanceStore().updatePayout(policyNftId, payoutId, payoutInfo, PAID());
293
293
 
294
294
  // TODO update and save claim info with instance
295
+ ClaimId claimId = payoutId.toClaimId();
296
+ Amount payoutAmount = payoutInfo.amount;
297
+ IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
298
+ claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
299
+ claimInfo.openPayoutsCount -= 1;
300
+
301
+ // check if this payout is closing the linked claim
302
+ // update claim and policy info accordingly
303
+ if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
304
+ claimInfo.closedAt == TimestampLib.blockTimestamp();
305
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
295
306
 
296
- // update policy info if affected by processed payout
297
- if(payoutIsClosingClaim) {
298
307
  policyInfo.openClaimsCount -= 1;
299
- instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
308
+ } else {
309
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
300
310
  }
301
311
 
312
+ // update and save policy info with instance
313
+ policyInfo.payoutAmount = policyInfo.payoutAmount.add(payoutAmount);
314
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
315
+
316
+ // inform pool about payout
317
+ _poolService.reduceCollateral(
318
+ instance,
319
+ address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
320
+ policyNftId,
321
+ policyInfo,
322
+ payoutAmount);
323
+
324
+ // transfer payout token and fee
325
+ (
326
+ Amount netPayoutAmount,
327
+ address beneficiary
328
+ ) = _transferPayoutAmount(
329
+ instanceReader,
330
+ policyNftId,
331
+ policyInfo,
332
+ payoutInfo);
333
+
302
334
  // TODO callback IPolicyHolder
303
335
 
304
- emit LogClaimServicePayoutProcessed(policyNftId, payoutId, amount);
336
+ emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount);
305
337
  }
306
338
 
339
+ // TODO create (I)TreasuryService that deals with all gif related token transfers
340
+ function _transferPayoutAmount(
341
+ InstanceReader instanceReader,
342
+ NftId policyNftId,
343
+ IPolicy.PolicyInfo memory policyInfo,
344
+ IPolicy.PayoutInfo memory payoutInfo
345
+ )
346
+ internal
347
+ returns (
348
+ Amount netPayoutAmount,
349
+ address beneficiary
350
+ )
351
+ {
352
+ Amount payoutAmount = payoutInfo.amount;
353
+
354
+ if(payoutAmount.gtz()) {
355
+ NftId productNftId = policyInfo.productNftId;
356
+
357
+ // get pool component info from policy or product
358
+ NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
359
+ IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
360
+
361
+ netPayoutAmount = payoutAmount;
362
+ beneficiary = _getBeneficiary(policyNftId, payoutInfo.claimId);
363
+
364
+ IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
365
+ if(FeeLib.gtz(productInfo.processingFee)) {
366
+ // TODO calculate net payout and processing fees
367
+ // TODO transfer processing fees to product wallet
368
+ // TODO inform product to update fee book keeping
369
+ }
370
+
371
+ poolInfo.tokenHandler.transfer(
372
+ poolInfo.wallet,
373
+ beneficiary,
374
+ netPayoutAmount);
375
+ }
376
+ }
307
377
 
308
378
  // internal functions
309
379
 
380
+ function _getBeneficiary(
381
+ NftId policyNftId,
382
+ ClaimId claimId
383
+ )
384
+ internal
385
+ returns (address beneficiary)
386
+ {
387
+ // TODO check if owner is IPolicyHolder
388
+ // if so, obtain beneficiary from this contract
389
+
390
+ // default beneficiary is policy nft owner
391
+ beneficiary = getRegistry().ownerOf(policyNftId);
392
+ }
393
+
394
+
310
395
  function _verifyCallerWithPolicy(
311
396
  NftId policyNftId
312
397
  )
313
398
  internal
399
+ view
400
+ virtual
314
401
  returns (
315
402
  IInstance instance,
316
403
  InstanceReader instanceReader,
@@ -318,7 +405,7 @@ contract ClaimService is
318
405
  )
319
406
  {
320
407
  NftId productNftId;
321
- (productNftId,, instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
408
+ (productNftId,, instance) = _getAndVerifyActiveComponent(PRODUCT());
322
409
  instanceReader = instance.getInstanceReader();
323
410
 
324
411
  // check caller(product) policy match
@@ -352,10 +439,4 @@ contract ClaimService is
352
439
  // get claim info
353
440
  claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
354
441
  }
355
-
356
- function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
357
- IRegistry.ObjectInfo memory productInfo;
358
- (, productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
359
- product = Product(productInfo.objectAddress);
360
- }
361
- }
442
+ }
@@ -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 "../shared/IVersionable.sol";
5
+ import {ProxyManager} from "../shared/ProxyManager.sol";
6
6
  import {ClaimService} from "./ClaimService.sol";
7
7
 
8
8
  contract ClaimServiceManager is ProxyManager {
@@ -11,15 +11,18 @@ contract ClaimServiceManager is ProxyManager {
11
11
 
12
12
  /// @dev initializes proxy manager with service implementation
13
13
  constructor(
14
- address registryAddress
15
- )
14
+ address authority,
15
+ address registryAddress,
16
+ bytes32 salt
17
+ )
16
18
  ProxyManager(registryAddress)
17
19
  {
18
- ClaimService svc = new ClaimService();
19
- bytes memory data = abi.encode(registryAddress, address(this));
20
- IVersionable versionable = deploy(
20
+ ClaimService svc = new ClaimService{salt: salt}();
21
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
22
+ IVersionable versionable = deployDetermenistic(
21
23
  address(svc),
22
- data);
24
+ data,
25
+ salt);
23
26
 
24
27
  _claimService = ClaimService(address(versionable));
25
28
  }
@@ -1,14 +1,15 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {IPolicy} from "../module/IPolicy.sol";
5
- import {IService} from "../../shared/IService.sol";
4
+ import {IPolicy} from "../instance/module/IPolicy.sol";
5
+ import {IService} from "../shared/IService.sol";
6
6
 
7
- import {NftId} from "../../types/NftId.sol";
8
- import {ObjectType} from "../../types/ObjectType.sol";
9
- import {ReferralId} from "../../types/Referral.sol";
10
- import {RiskId} from "../../types/RiskId.sol";
11
- import {Seconds} from "../../types/Seconds.sol";
7
+ import {Amount} from "../type/Amount.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
10
+ import {ReferralId} from "../type/Referral.sol";
11
+ import {RiskId} from "../type/RiskId.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
12
13
 
13
14
  /// @dev gif service responsible for creating applications
14
15
  /// only product components may call transaction functions
@@ -22,7 +23,7 @@ interface IApplicationService is IService {
22
23
  function create(
23
24
  address applicationOwner,
24
25
  RiskId riskId,
25
- uint256 sumInsuredAmount,
26
+ Amount sumInsuredAmount,
26
27
  Seconds lifetime,
27
28
  NftId bundleNftId,
28
29
  ReferralId referralId,
@@ -37,8 +38,8 @@ interface IApplicationService is IService {
37
38
  RiskId riskId,
38
39
  NftId bundleNftId,
39
40
  ReferralId referralId,
40
- uint256 sumInsuredAmount,
41
- uint256 lifetime,
41
+ Amount sumInsuredAmount,
42
+ Seconds lifetime,
42
43
  bytes memory applicationData
43
44
  ) external;
44
45
 
@@ -58,21 +59,4 @@ interface IApplicationService is IService {
58
59
  /// an application can only be revoked in applied state
59
60
  /// only the application holder may revoke an application
60
61
  function revoke(NftId policyNftId) external;
61
-
62
- /// @dev calculates the premium amount for the specified attributes
63
- /// also returns the various fee components involved with creating a policy
64
- function calculatePremium(
65
- NftId productNftId,
66
- RiskId riskId,
67
- uint256 sumInsuredAmount,
68
- Seconds lifetime,
69
- bytes memory applicationData,
70
- NftId bundleNftId,
71
- ReferralId referralId
72
- )
73
- external
74
- view
75
- returns (
76
- IPolicy.Premium memory premium
77
- );
78
- }
62
+ }
@@ -1,18 +1,18 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {IInstance} from "../IInstance.sol";
5
- import {InstanceReader} from "../InstanceReader.sol";
6
- import {IService} from "../../shared/IService.sol";
4
+ import {IInstance} from "../instance/IInstance.sol";
5
+ import {InstanceReader} from "../instance/InstanceReader.sol";
6
+ import {IService} from "../shared/IService.sol";
7
7
 
8
- import {Amount} from "../../types/Amount.sol";
9
- import {ClaimId} from "../../types/ClaimId.sol";
10
- import {PayoutId} from "../../types/PayoutId.sol";
11
- import {NftId} from "../../types/NftId.sol";
12
- import {StateId} from "../../types/StateId.sol";
13
- import {Timestamp} from "../../types/Timestamp.sol";
14
- import {UFixed} from "../../types/UFixed.sol";
15
- import {Fee} from "../../types/Fee.sol";
8
+ import {Amount} from "../type/Amount.sol";
9
+ import {ClaimId} from "../type/ClaimId.sol";
10
+ import {PayoutId} from "../type/PayoutId.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {StateId} from "../type/StateId.sol";
13
+ import {Timestamp} from "../type/Timestamp.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
15
+ import {Fee} from "../type/Fee.sol";
16
16
 
17
17
  /// @dev gif service responsible for creating claims and payouts
18
18
  /// only product components may call transaction functions
@@ -26,7 +26,7 @@ interface IClaimService is
26
26
  event LogClaimServiceClaimClosed(NftId policyNftId, ClaimId claimId);
27
27
 
28
28
  event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount);
29
- event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount);
29
+ event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary, Amount netAmount);
30
30
 
31
31
  error ErrorClaimServicePolicyProductMismatch(NftId policyNftId, NftId expectedProduct, NftId actualProduct);
32
32
  error ErrorClaimServicePolicyNotOpen(NftId policyNftId);
@@ -49,14 +49,17 @@ interface IClaimService is
49
49
  /// function can only be called by product, policy needs to match with calling product
50
50
  function decline(
51
51
  NftId policyNftId,
52
- ClaimId claimId) external;
52
+ ClaimId claimId,
53
+ bytes memory data // claim processing data
54
+ ) external;
53
55
 
54
56
  /// @dev confirms the specified claim and specifies the payout amount
55
57
  /// function can only be called by product, policy needs to match with calling product
56
58
  function confirm(
57
59
  NftId policyNftId,
58
60
  ClaimId claimId,
59
- Amount confirmedAmount
61
+ Amount confirmedAmount,
62
+ bytes memory data // claim processing data
60
63
  ) external;
61
64
 
62
65
  /// @dev closes the specified claim
@@ -1,37 +1,42 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {IRisk} from "../module/IRisk.sol";
5
- import {IService} from "../../shared/IService.sol";
4
+ import {IRisk} from "../instance/module/IRisk.sol";
5
+ import {IService} from "../shared/IService.sol";
6
6
 
7
- import {Amount} from "../../types/Amount.sol";
8
- import {ClaimId} from "../../types/ClaimId.sol";
9
- import {NftId} from "../../types/NftId.sol";
10
- import {PayoutId} from "../../types/PayoutId.sol";
11
- import {ReferralId} from "../../types/Referral.sol";
12
- import {RiskId} from "../../types/RiskId.sol";
13
- import {Seconds} from "../../types/Seconds.sol";
14
- import {StateId} from "../../types/StateId.sol";
15
- import {Timestamp} from "../../types/Timestamp.sol";
16
- import {UFixed} from "../../types/UFixed.sol";
17
- import {Fee} from "../../types/Fee.sol";
7
+ import {Amount} from "../type/Amount.sol";
8
+ import {ClaimId} from "../type/ClaimId.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {PayoutId} from "../type/PayoutId.sol";
11
+ import {ReferralId} from "../type/Referral.sol";
12
+ import {RiskId} from "../type/RiskId.sol";
13
+ import {Seconds} from "../type/Seconds.sol";
14
+ import {StateId} from "../type/StateId.sol";
15
+ import {Timestamp} from "../type/Timestamp.sol";
16
+ import {UFixed} from "../type/UFixed.sol";
17
+ import {Fee} from "../type/Fee.sol";
18
18
 
19
19
  interface IPolicyService is IService {
20
20
 
21
- error ErrorPolicyServiceProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
21
+ error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
22
22
  error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
23
+ error ErrorPolicyServicePolicyStateNotCollateralizedOrApplied(NftId applicationNftId);
24
+
25
+ error ErrorPolicyServicePremiumHigherThanExpected(Amount premiumExpectedAmount, Amount premiumToBePaidAmount);
26
+ error ErrorPolicyServiceBalanceInsufficient(address policyOwner, uint256 premiumAmount, uint256 balance);
27
+ error ErrorPolicyServiceAllowanceInsufficient(address policyOwner, address tokenHandler, uint256 premiumAmount, uint256 allowance);
23
28
 
24
29
  error ErrorIPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
25
- error ErrorIPolicyServicePremiumAlreadyPaid(NftId policyNftId, uint256 premiumPaidAmount);
30
+ error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId, Amount premiumPaidAmount);
26
31
  error ErrorIPolicyServicePolicyNotActivated(NftId policyNftId);
27
32
  error ErrorIPolicyServicePolicyAlreadyClosed(NftId policyNftId);
28
33
  error ErrorIPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
29
- error ErrorIPolicyServicePremiumNotFullyPaid(NftId policyNftId, uint256 premiumAmount, uint256 premiumPaidAmount);
34
+ error ErrorPolicyServicePremiumNotFullyPaid(NftId policyNftId, Amount premiumAmount, Amount premiumPaidAmount);
30
35
  error ErrorIPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
31
36
  error ErrorIPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
32
37
 
33
- error ErrorIPolicyServicePremiumMismatch(NftId policyNftId, uint256 expectedPremiumAmount, uint256 recalculatedPremiumAmount);
34
- error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, uint256 expectedPremiumAmount, uint256 transferredPremiumAmount);
38
+ error ErrorPolicyServicePremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount recalculatedPremiumAmount);
39
+ error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
35
40
 
36
41
  /// @dev collateralizes the policy represented by {policyNftId}
37
42
  /// sets the policy state to collateralized
@@ -70,11 +75,4 @@ interface IPolicyService is IService {
70
75
  /// this function can only be called by a product. the policy needs to match with the calling product
71
76
  function close(NftId policyNftId) external;
72
77
 
73
-
74
- // TODO move function to pool service
75
- function calculateRequiredCollateral(
76
- UFixed collateralizationLevel,
77
- uint256 sumInsuredAmount
78
- ) external pure returns(uint256 collateralAmount);
79
-
80
78
  }