@etherisc/gif-next 0.0.2-7bdebe2-893 → 0.0.2-7bf391b-976

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 (626) hide show
  1. package/README.md +48 -5
  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/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  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/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  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 +1518 -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 +4 -0
  27. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +181 -361
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +181 -238
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +160 -297
  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 +247 -2323
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +203 -46
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +427 -2916
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  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 +499 -375
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +268 -207
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -102
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +160 -219
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1055 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +265 -240
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1521 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +830 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +253 -45
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +190 -339
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +332 -196
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1700 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +798 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1280 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1339 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +47 -2
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +255 -90
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +66 -136
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +14 -56
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1335 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +794 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/{components → product}/Product.sol/Product.json +354 -314
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +182 -28
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +206 -124
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +443 -43
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +374 -72
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -41
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  173. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +105 -120
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1712 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +22 -114
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  181. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +77 -82
  182. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  184. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
  186. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  187. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  188. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  190. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  192. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
  194. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  196. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  199. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  200. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  201. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  202. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  203. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +977 -0
  205. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  207. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  209. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  210. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  211. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
  213. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
  215. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
  217. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  219. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
  221. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  222. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +107 -6
  223. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  224. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  225. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  226. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  227. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  228. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  229. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  230. package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
  231. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  232. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  233. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  234. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
  235. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  236. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  237. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  238. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  239. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  240. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  241. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  242. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  243. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  244. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  245. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  246. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  247. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  248. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  249. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  250. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  251. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  254. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  255. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  256. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  257. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  258. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  259. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  260. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  261. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  262. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  263. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  264. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  265. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  266. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  267. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  268. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  269. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  270. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  271. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  273. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  275. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  277. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  279. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  281. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  282. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  283. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  285. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  286. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  287. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  289. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  291. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  293. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  295. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  296. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  297. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  298. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  299. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  300. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  301. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  302. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  303. package/contracts/authorization/AccessAdmin.sol +591 -0
  304. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  305. package/contracts/authorization/Authorization.sol +218 -0
  306. package/contracts/authorization/IAccess.sol +48 -0
  307. package/contracts/authorization/IAccessAdmin.sol +136 -0
  308. package/contracts/authorization/IAuthorization.sol +54 -0
  309. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  310. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  311. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  312. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  313. package/contracts/distribution/BasicDistribution.sol +138 -0
  314. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  315. package/contracts/{components → distribution}/Distribution.sol +172 -161
  316. package/contracts/distribution/DistributionService.sol +336 -0
  317. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  318. package/contracts/distribution/IDistributionComponent.sol +52 -0
  319. package/contracts/{instance/service → distribution}/IDistributionService.sol +36 -38
  320. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +27 -27
  321. package/contracts/instance/IInstance.sol +54 -72
  322. package/contracts/instance/IInstanceService.sol +50 -21
  323. package/contracts/instance/Instance.sol +150 -214
  324. package/contracts/instance/InstanceAdmin.sol +266 -0
  325. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  326. package/contracts/instance/InstanceReader.sol +109 -67
  327. package/contracts/instance/InstanceService.sol +267 -308
  328. package/contracts/instance/InstanceServiceManager.sol +12 -26
  329. package/contracts/instance/InstanceStore.sol +277 -0
  330. package/contracts/instance/base/BalanceStore.sol +123 -0
  331. package/contracts/instance/base/Cloneable.sol +28 -0
  332. package/contracts/instance/base/ObjectCounter.sol +21 -0
  333. package/contracts/instance/base/ObjectLifecycle.sol +104 -0
  334. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  335. package/contracts/instance/module/IAccess.sol +4 -12
  336. package/contracts/instance/module/IBundle.sol +6 -9
  337. package/contracts/instance/module/IComponents.sol +20 -15
  338. package/contracts/instance/module/IDistribution.sol +6 -6
  339. package/contracts/instance/module/IPolicy.sol +21 -14
  340. package/contracts/instance/module/IRisk.sol +1 -1
  341. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  342. package/contracts/oracle/BasicOracle.sol +48 -0
  343. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  344. package/contracts/oracle/IOracle.sol +36 -0
  345. package/contracts/oracle/IOracleComponent.sol +33 -0
  346. package/contracts/oracle/IOracleService.sol +65 -0
  347. package/contracts/oracle/Oracle.sol +166 -0
  348. package/contracts/oracle/OracleService.sol +278 -0
  349. package/contracts/oracle/OracleServiceManager.sol +39 -0
  350. package/contracts/pool/BasicPool.sol +166 -0
  351. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  352. package/contracts/pool/BundleService.sol +450 -0
  353. package/contracts/pool/BundleServiceManager.sol +39 -0
  354. package/contracts/{instance/service → pool}/IBundleService.sol +50 -30
  355. package/contracts/pool/IPoolComponent.sol +58 -0
  356. package/contracts/{instance/service → pool}/IPoolService.sol +70 -44
  357. package/contracts/pool/Pool.sol +328 -0
  358. package/contracts/pool/PoolService.sol +559 -0
  359. package/contracts/pool/PoolServiceManager.sol +39 -0
  360. package/contracts/product/ApplicationService.sol +230 -0
  361. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  362. package/contracts/product/BasicProduct.sol +52 -0
  363. package/contracts/product/BasicProductAuthorization.sol +43 -0
  364. package/contracts/{instance/service → product}/ClaimService.sol +81 -101
  365. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  366. package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
  367. package/contracts/{instance/service → product}/IClaimService.sol +24 -14
  368. package/contracts/product/IPolicyService.sol +85 -0
  369. package/contracts/product/IPricingService.sol +39 -0
  370. package/contracts/product/IProductComponent.sol +40 -0
  371. package/contracts/product/IProductService.sol +33 -0
  372. package/contracts/product/PolicyService.sol +556 -0
  373. package/contracts/product/PolicyServiceManager.sol +39 -0
  374. package/contracts/product/PricingService.sol +300 -0
  375. package/contracts/product/PricingServiceManager.sol +39 -0
  376. package/contracts/{components → product}/Product.sol +165 -125
  377. package/contracts/product/ProductService.sol +99 -0
  378. package/contracts/product/ProductServiceManager.sol +39 -0
  379. package/contracts/registry/ChainNft.sol +8 -1
  380. package/contracts/registry/IRegistry.sol +59 -26
  381. package/contracts/registry/IRegistryService.sol +42 -39
  382. package/contracts/registry/Registry.sol +234 -125
  383. package/contracts/registry/RegistryAdmin.sol +365 -0
  384. package/contracts/registry/RegistryService.sol +69 -99
  385. package/contracts/registry/RegistryServiceManager.sol +23 -32
  386. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  387. package/contracts/registry/ReleaseRegistry.sol +485 -0
  388. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  389. package/contracts/registry/TokenRegistry.sol +261 -62
  390. package/contracts/shared/Component.sol +281 -0
  391. package/contracts/shared/ComponentService.sol +650 -0
  392. package/contracts/shared/ComponentServiceManager.sol +35 -0
  393. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  394. package/contracts/{components → shared}/IComponent.sol +21 -40
  395. package/contracts/shared/IComponentService.sol +108 -0
  396. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  397. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  398. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  399. package/contracts/shared/INftOwnable.sol +2 -2
  400. package/contracts/shared/IPolicyHolder.sol +10 -5
  401. package/contracts/shared/IService.sol +10 -3
  402. package/contracts/shared/InitializableCustom.sol +177 -0
  403. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
  404. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  405. package/contracts/shared/KeyValueStore.sol +131 -0
  406. package/contracts/shared/Lifecycle.sol +77 -0
  407. package/contracts/shared/NftIdSet.sol +65 -0
  408. package/contracts/shared/NftOwnable.sol +5 -16
  409. package/contracts/shared/PolicyHolder.sol +24 -19
  410. package/contracts/shared/Registerable.sol +3 -3
  411. package/contracts/shared/Service.sol +32 -22
  412. package/contracts/shared/TokenHandler.sol +31 -2
  413. package/contracts/staking/IStaking.sol +167 -0
  414. package/contracts/staking/IStakingService.sol +160 -0
  415. package/contracts/staking/StakeManagerLib.sol +231 -0
  416. package/contracts/staking/Staking.sol +516 -0
  417. package/contracts/staking/StakingLifecycle.sol +23 -0
  418. package/contracts/staking/StakingManager.sol +50 -0
  419. package/contracts/staking/StakingReader.sol +183 -0
  420. package/contracts/staking/StakingService.sol +407 -0
  421. package/contracts/staking/StakingServiceManager.sol +44 -0
  422. package/contracts/staking/StakingStore.sol +605 -0
  423. package/contracts/staking/TargetManagerLib.sol +207 -0
  424. package/contracts/{types → type}/AddressSet.sol +1 -1
  425. package/contracts/{types → type}/Amount.sol +56 -1
  426. package/contracts/{types → type}/Blocknumber.sol +26 -3
  427. package/contracts/{types → type}/Fee.sol +24 -22
  428. package/contracts/{types → type}/NftId.sol +14 -16
  429. package/contracts/{types → type}/NftIdSet.sol +2 -2
  430. package/contracts/type/ObjectType.sol +271 -0
  431. package/contracts/{types → type}/Referral.sol +2 -1
  432. package/contracts/type/RequestId.sol +75 -0
  433. package/contracts/{types → type}/RiskId.sol +1 -1
  434. package/contracts/type/RoleId.sol +174 -0
  435. package/contracts/{types → type}/Seconds.sol +40 -1
  436. package/contracts/type/Selector.sol +102 -0
  437. package/contracts/{types → type}/StateId.sol +27 -2
  438. package/contracts/type/String.sol +53 -0
  439. package/contracts/{types → type}/Timestamp.sol +17 -3
  440. package/contracts/{types → type}/UFixed.sol +34 -9
  441. package/contracts/{types → type}/Version.sol +4 -2
  442. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  443. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  444. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  445. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  446. package/package.json +8 -5
  447. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  448. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  449. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  450. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  451. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  452. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  453. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  454. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  455. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  456. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  457. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  458. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  459. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  460. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  461. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  462. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  463. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  464. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  465. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  466. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  469. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  471. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  472. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  473. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  474. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  475. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1092
  476. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  477. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
  478. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  479. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1291
  480. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  481. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -700
  482. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  483. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1400
  484. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -760
  486. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  487. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  488. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  489. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  490. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1153
  499. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
  501. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1670
  503. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -732
  505. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  507. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  509. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  510. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  511. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  512. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  513. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  514. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  515. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  516. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  517. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  518. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  519. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  520. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  521. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  522. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  523. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  525. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  527. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  529. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  531. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  532. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  533. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  534. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  535. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  536. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  537. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  538. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  539. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  540. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  541. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  542. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  543. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  544. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  545. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  547. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  549. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  551. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  553. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  554. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  555. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  557. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  558. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  559. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  561. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  563. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  564. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  565. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  567. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  569. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  571. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  572. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  573. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  574. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  576. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  577. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  579. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  581. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  582. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  583. package/contracts/components/Component.sol +0 -272
  584. package/contracts/components/IDistributionComponent.sol +0 -71
  585. package/contracts/components/IPoolComponent.sol +0 -113
  586. package/contracts/components/IProductComponent.sol +0 -40
  587. package/contracts/components/Pool.sol +0 -302
  588. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  589. package/contracts/instance/Cloneable.sol +0 -51
  590. package/contracts/instance/InstanceAccessManager.sol +0 -527
  591. package/contracts/instance/base/ComponentService.sol +0 -130
  592. package/contracts/instance/base/KeyValueStore.sol +0 -149
  593. package/contracts/instance/base/Lifecycle.sol +0 -120
  594. package/contracts/instance/module/ISetup.sol +0 -33
  595. package/contracts/instance/module/ITreasury.sol +0 -23
  596. package/contracts/instance/service/ApplicationService.sol +0 -356
  597. package/contracts/instance/service/BundleService.sol +0 -385
  598. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  599. package/contracts/instance/service/DistributionService.sol +0 -431
  600. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  601. package/contracts/instance/service/IPolicyService.sol +0 -80
  602. package/contracts/instance/service/IProductService.sol +0 -40
  603. package/contracts/instance/service/PolicyService.sol +0 -358
  604. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  605. package/contracts/instance/service/PoolService.sol +0 -403
  606. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  607. package/contracts/instance/service/ProductService.sol +0 -210
  608. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  609. package/contracts/registry/RegistryAccessManager.sol +0 -216
  610. package/contracts/registry/ReleaseManager.sol +0 -324
  611. package/contracts/shared/ContractDeployerLib.sol +0 -72
  612. package/contracts/test/TestFee.sol +0 -25
  613. package/contracts/test/TestRegisterable.sol +0 -18
  614. package/contracts/test/TestRoleId.sol +0 -14
  615. package/contracts/test/TestService.sol +0 -25
  616. package/contracts/test/TestToken.sol +0 -26
  617. package/contracts/test/TestVersion.sol +0 -44
  618. package/contracts/test/TestVersionable.sol +0 -17
  619. package/contracts/types/ChainId.sol +0 -38
  620. package/contracts/types/NumberId.sol +0 -52
  621. package/contracts/types/ObjectType.sol +0 -157
  622. package/contracts/types/RoleId.sol +0 -97
  623. /package/contracts/{types → type}/ClaimId.sol +0 -0
  624. /package/contracts/{types → type}/DistributorType.sol +0 -0
  625. /package/contracts/{types → type}/Key32.sol +0 -0
  626. /package/contracts/{types → type}/PayoutId.sol +0 -0
@@ -1,54 +1,26 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRisk} from "../module/IRisk.sol";
5
- import {IService} from "./IApplicationService.sol";
6
-
7
- import {IComponents} from "../module/IComponents.sol";
8
- import {IRegistry} from "../../registry/IRegistry.sol";
9
- import {IProductComponent} from "../../components/IProductComponent.sol";
10
- import {Product} from "../../components/Product.sol";
11
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
12
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
13
- import {IInstance} from "../IInstance.sol";
14
- import {IPolicy} from "../module/IPolicy.sol";
15
- import {IRisk} from "../module/IRisk.sol";
16
- import {IBundle} from "../module/IBundle.sol";
17
- import {IProductService} from "./IProductService.sol";
18
- import {ITreasury} from "../module/ITreasury.sol";
19
- import {ISetup} from "../module/ISetup.sol";
20
-
21
- import {TokenHandler} from "../../shared/TokenHandler.sol";
22
-
23
- import {IVersionable} from "../../shared/IVersionable.sol";
24
- import {Versionable} from "../../shared/Versionable.sol";
25
-
26
- import {Amount, AmountLib} from "../../types/Amount.sol";
27
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
28
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
29
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
30
- import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../../types/ObjectType.sol";
31
- import {SUBMITTED, ACTIVE, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} from "../../types/StateId.sol";
32
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
33
- import {Fee, FeeLib} from "../../types/Fee.sol";
34
- import {ReferralId} from "../../types/Referral.sol";
35
- import {RiskId} from "../../types/RiskId.sol";
36
- import {StateId} from "../../types/StateId.sol";
37
- import {ClaimId, ClaimIdLib} from "../../types/ClaimId.sol";
38
- import {PayoutId, PayoutIdLib} from "../../types/PayoutId.sol";
39
- import {Version, VersionLib} from "../../types/Version.sol";
40
-
41
- import {ComponentService} from "../base/ComponentService.sol";
42
- import {InstanceReader} from "../InstanceReader.sol";
43
- import {IBundleService} from "./IBundleService.sol";
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IComponents} from "../instance/module/IComponents.sol";
5
+ import {IInstance} from "../instance/IInstance.sol";
6
+ import {IPolicy} from "../instance/module/IPolicy.sol";
7
+ import {Amount, AmountLib} from "../type/Amount.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";
13
+ import {StateId} from "../type/StateId.sol";
14
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
15
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
16
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
17
+ import {InstanceReader} from "../instance/InstanceReader.sol";
44
18
  import {IClaimService} from "./IClaimService.sol";
45
- import {IPoolService} from "./IPoolService.sol";
46
- import {IService} from "../../shared/IService.sol";
47
- import {Service} from "../../shared/Service.sol";
19
+ import {IPoolService} from "../pool/IPoolService.sol";
48
20
 
49
21
 
50
22
  contract ClaimService is
51
- ComponentService,
23
+ ComponentVerifyingService,
52
24
  IClaimService
53
25
  {
54
26
 
@@ -62,27 +34,23 @@ contract ClaimService is
62
34
  virtual override
63
35
  initializer()
64
36
  {
65
- // TODO check this, might no longer be the way, refactor if necessary
66
- address registryAddress;
67
- address initialOwner;
68
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
37
+ (
38
+ address registryAddress,,
39
+ //address managerAddress
40
+ address authority
41
+ ) = abi.decode(data, (address, address, address));
69
42
 
70
- initializeService(registryAddress, address(0), owner);
43
+ initializeService(registryAddress, authority, owner);
71
44
 
72
45
  _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
73
46
 
74
47
  registerInterface(type(IClaimService).interfaceId);
75
48
  }
76
49
 
77
-
78
- function getDomain() public pure override returns(ObjectType) {
79
- return CLAIM();
80
- }
81
-
82
50
  function submit(
83
51
  NftId policyNftId,
84
52
  Amount claimAmount,
85
- bytes memory claimData
53
+ bytes memory claimData // claim submission data
86
54
  )
87
55
  external
88
56
  virtual
@@ -100,16 +68,16 @@ contract ClaimService is
100
68
  }
101
69
 
102
70
  // check policy including this claim is still within sum insured
103
- if(policyInfo.payoutAmount.toInt() + claimAmount.toInt() > policyInfo.sumInsuredAmount) {
71
+ if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
104
72
  revert ErrorClaimServiceClaimExceedsSumInsured(
105
73
  policyNftId,
106
- AmountLib.toAmount(policyInfo.sumInsuredAmount),
74
+ policyInfo.sumInsuredAmount,
107
75
  AmountLib.toAmount(policyInfo.payoutAmount.toInt() + claimAmount.toInt()));
108
76
  }
109
77
 
110
78
  // create new claim
111
79
  claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
112
- instance.createClaim(
80
+ instance.getInstanceStore().createClaim(
113
81
  policyNftId,
114
82
  claimId,
115
83
  IPolicy.ClaimInfo(
@@ -117,14 +85,15 @@ contract ClaimService is
117
85
  AmountLib.zero(), // paidAmount
118
86
  0, // payoutsCount
119
87
  0, // openPayoutsCount
120
- claimData,
88
+ claimData, // claim submission data
89
+ "", // claim processing data
121
90
  TimestampLib.zero())); // closedAt
122
91
 
123
92
  // update and save policy info with instance
124
93
  policyInfo.claimsCount += 1;
125
94
  policyInfo.openClaimsCount += 1;
126
95
  // policy claim amount is only updated when claim is confirmed
127
- instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
96
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
128
97
 
129
98
  emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
130
99
  }
@@ -133,7 +102,8 @@ contract ClaimService is
133
102
  function confirm(
134
103
  NftId policyNftId,
135
104
  ClaimId claimId,
136
- Amount confirmedAmount
105
+ Amount confirmedAmount,
106
+ bytes memory data // claim processing data
137
107
  )
138
108
  external
139
109
  virtual
@@ -147,18 +117,20 @@ contract ClaimService is
147
117
  // check/update claim info
148
118
  IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
149
119
  claimInfo.claimAmount = confirmedAmount;
150
- instance.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
120
+ claimInfo.processData = data;
121
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
151
122
 
152
123
  // update and save policy info with instance
153
- policyInfo.claimAmount = policyInfo.claimAmount.add(confirmedAmount);
154
- instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
124
+ policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
125
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
155
126
 
156
127
  emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
157
128
  }
158
129
 
159
130
  function decline(
160
131
  NftId policyNftId,
161
- ClaimId claimId
132
+ ClaimId claimId,
133
+ bytes memory data // claim processing data
162
134
  )
163
135
  external
164
136
  virtual
@@ -171,12 +143,13 @@ contract ClaimService is
171
143
 
172
144
  // check/update claim info
173
145
  IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
146
+ claimInfo.processData = data;
174
147
  claimInfo.closedAt = TimestampLib.blockTimestamp();
175
- instance.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
148
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, DECLINED());
176
149
 
177
150
  // update and save policy info with instance
178
151
  policyInfo.openClaimsCount -= 1;
179
- instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
152
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
180
153
 
181
154
  emit LogClaimServiceClaimDeclined(policyNftId, claimId);
182
155
  }
@@ -215,13 +188,7 @@ contract ClaimService is
215
188
  }
216
189
 
217
190
  claimInfo.closedAt = TimestampLib.blockTimestamp();
218
- instance.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
219
-
220
- // update and save policy info with instance
221
- policyInfo.openClaimsCount -= 1;
222
- instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
223
-
224
- emit LogClaimServiceClaimClosed(policyNftId, claimId);
191
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
225
192
  }
226
193
 
227
194
 
@@ -251,7 +218,7 @@ contract ClaimService is
251
218
  // create payout info with instance
252
219
  uint8 claimNo = claimInfo.payoutsCount + 1;
253
220
  payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
254
- instance.createPayout(
221
+ instance.getInstanceStore().createPayout(
255
222
  policyNftId,
256
223
  payoutId,
257
224
  IPolicy.PayoutInfo(
@@ -263,11 +230,11 @@ contract ClaimService is
263
230
  // update and save claim info with instance
264
231
  claimInfo.payoutsCount += 1;
265
232
  claimInfo.openPayoutsCount += 1;
266
- instance.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
233
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
267
234
 
268
235
  // update and save policy info with instance
269
236
  policyInfo.payoutAmount.add(amount);
270
- instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
237
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
271
238
 
272
239
  emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount);
273
240
  }
@@ -291,7 +258,7 @@ contract ClaimService is
291
258
 
292
259
  // update and save payout info with instance
293
260
  payoutInfo.paidAt = TimestampLib.blockTimestamp();
294
- instance.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
261
+ instance.getInstanceStore().updatePayout(policyNftId, payoutId, payoutInfo, PAID());
295
262
 
296
263
  // TODO update and save claim info with instance
297
264
  ClaimId claimId = payoutId.toClaimId();
@@ -304,25 +271,30 @@ contract ClaimService is
304
271
  // update claim and policy info accordingly
305
272
  if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
306
273
  claimInfo.closedAt == TimestampLib.blockTimestamp();
307
- instance.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
274
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
308
275
 
309
276
  policyInfo.openClaimsCount -= 1;
310
277
  } else {
311
- instance.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
278
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
312
279
  }
313
280
 
314
281
  // update and save policy info with instance
315
282
  policyInfo.payoutAmount = policyInfo.payoutAmount.add(payoutAmount);
316
- instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
283
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
317
284
 
318
285
  // inform pool about payout
319
- _poolService.reduceCollateral(instance, policyNftId, policyInfo, payoutAmount);
286
+ _poolService.reduceCollateral(
287
+ instance,
288
+ address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
289
+ policyNftId,
290
+ policyInfo,
291
+ payoutAmount);
320
292
 
321
293
  // transfer payout token and fee
322
294
  (
323
295
  Amount netPayoutAmount,
324
296
  address beneficiary
325
- ) = _transferPayoutAmount(
297
+ ) = _calculatePayoutAmount(
326
298
  instanceReader,
327
299
  policyNftId,
328
300
  policyInfo,
@@ -330,11 +302,24 @@ contract ClaimService is
330
302
 
331
303
  // TODO callback IPolicyHolder
332
304
 
305
+ if (netPayoutAmount.eqz()) {
306
+ revert ErrorClaimsServicePayoutAmountIsZero(policyNftId, payoutId);
307
+ }
308
+
333
309
  emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount);
310
+
311
+ {
312
+ NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
313
+ IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
314
+ // TODO: centralize token handling (issue #471)
315
+ poolInfo.tokenHandler.transfer(
316
+ poolInfo.wallet,
317
+ beneficiary,
318
+ netPayoutAmount);
319
+ }
334
320
  }
335
321
 
336
- // TODO create (I)TreasuryService that deals with all gif related token transfers
337
- function _transferPayoutAmount(
322
+ function _calculatePayoutAmount(
338
323
  InstanceReader instanceReader,
339
324
  NftId policyNftId,
340
325
  IPolicy.PolicyInfo memory policyInfo,
@@ -350,7 +335,6 @@ contract ClaimService is
350
335
 
351
336
  if(payoutAmount.gtz()) {
352
337
  NftId productNftId = policyInfo.productNftId;
353
- ISetup.ProductSetupInfo memory setupInfo = instanceReader.getProductSetupInfo(productNftId);
354
338
 
355
339
  // get pool component info from policy or product
356
340
  NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
@@ -359,17 +343,12 @@ contract ClaimService is
359
343
  netPayoutAmount = payoutAmount;
360
344
  beneficiary = _getBeneficiary(policyNftId, payoutInfo.claimId);
361
345
 
362
- if(FeeLib.gtz(setupInfo.processingFee)) {
346
+ IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
347
+ if(FeeLib.gtz(productInfo.processingFee)) {
363
348
  // TODO calculate net payout and processing fees
364
349
  // TODO transfer processing fees to product wallet
365
350
  // TODO inform product to update fee book keeping
366
351
  }
367
-
368
- poolInfo.tokenHandler.transfer(
369
- poolInfo.wallet,
370
- beneficiary,
371
- netPayoutAmount.toInt()
372
- );
373
352
  }
374
353
  }
375
354
 
@@ -394,6 +373,8 @@ contract ClaimService is
394
373
  NftId policyNftId
395
374
  )
396
375
  internal
376
+ view
377
+ virtual
397
378
  returns (
398
379
  IInstance instance,
399
380
  InstanceReader instanceReader,
@@ -401,7 +382,7 @@ contract ClaimService is
401
382
  )
402
383
  {
403
384
  NftId productNftId;
404
- (productNftId,, instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
385
+ (productNftId,, instance) = _getAndVerifyActiveComponent(PRODUCT());
405
386
  instanceReader = instance.getInstanceReader();
406
387
 
407
388
  // check caller(product) policy match
@@ -436,9 +417,8 @@ contract ClaimService is
436
417
  claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
437
418
  }
438
419
 
439
- function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
440
- IRegistry.ObjectInfo memory productInfo;
441
- (, productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
442
- product = Product(productInfo.objectAddress);
420
+
421
+ function _getDomain() internal pure override returns(ObjectType) {
422
+ return CLAIM();
443
423
  }
444
- }
424
+ }
@@ -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 {
@@ -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
@@ -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);
@@ -45,20 +46,29 @@ interface IClaimService is
45
46
  bytes memory claimData
46
47
  ) external returns (ClaimId claimId);
47
48
 
49
+
50
+ // TODO add claim revoke functionality
51
+
52
+
48
53
  /// @dev declines the specified claim
49
54
  /// function can only be called by product, policy needs to match with calling product
50
55
  function decline(
51
56
  NftId policyNftId,
52
- ClaimId claimId) external;
57
+ ClaimId claimId,
58
+ bytes memory data // claim processing data
59
+ ) external;
60
+
53
61
 
54
62
  /// @dev confirms the specified claim and specifies the payout amount
55
63
  /// function can only be called by product, policy needs to match with calling product
56
64
  function confirm(
57
65
  NftId policyNftId,
58
66
  ClaimId claimId,
59
- Amount confirmedAmount
67
+ Amount confirmedAmount,
68
+ bytes memory data // claim processing data
60
69
  ) external;
61
70
 
71
+
62
72
  /// @dev closes the specified claim
63
73
  /// function can only be called by product, policy needs to match with calling product
64
74
  function close(
@@ -0,0 +1,85 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IRisk} from "../instance/module/IRisk.sol";
5
+ import {IService} from "../shared/IService.sol";
6
+
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
+
19
+ interface IPolicyService is IService {
20
+
21
+ error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
22
+ error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
23
+ error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
24
+ error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
25
+
26
+ error ErrorPolicyServicePremiumHigherThanExpected(uint256 premiumExpectedAmount, uint256 premiumToBePaidAmount);
27
+ error ErrorPolicyServiceBalanceInsufficient(address policyOwner, uint256 premiumAmount, uint256 balance);
28
+ error ErrorPolicyServiceAllowanceInsufficient(address policyOwner, address tokenHandler, uint256 premiumAmount, uint256 allowance);
29
+
30
+ error ErrorPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
31
+ error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId, Amount premiumPaidAmount);
32
+ error ErrorPolicyServicePolicyNotActivated(NftId policyNftId);
33
+ error ErrorPolicyServicePolicyAlreadyClosed(NftId policyNftId);
34
+ error ErrorPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
35
+ error ErrorPolicyServicePremiumNotFullyPaid(NftId policyNftId, Amount premiumAmount, Amount premiumPaidAmount);
36
+ error ErrorPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
37
+ error ErrorPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
38
+ error ErrorPolicyServicePolicyExpirationTooLate(NftId policyNftId, Timestamp upperLimit, Timestamp expiredAt);
39
+ error ErrorPolicyServicePolicyExpirationTooEarly(NftId policyNftId, Timestamp lowerLimit, Timestamp expiredAt);
40
+
41
+ error ErrorPolicyServicePremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount recalculatedPremiumAmount);
42
+ error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
43
+
44
+ event LogPolicyServicePolicyDeclined(NftId policyNftId);
45
+ event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
46
+
47
+ /// @dev collateralizes the policy represented by {policyNftId}. locks the sum insured amount in the pool.
48
+ /// sets the policy state to collateralized
49
+ /// may set the policy state to activated and set the activation date
50
+ /// optionally collects premiums and activates the policy.
51
+ /// - premium payment is only attempted if requirePremiumPayment is set to true
52
+ /// - activation is only done if activateAt is a non-zero timestamp
53
+ /// an application can only be collateralized in applied state
54
+ /// only the related product may collateralize an application
55
+ function collateralize(
56
+ NftId policyNftId,
57
+ bool requirePremiumPayment,
58
+ Timestamp activateAt
59
+ ) external;
60
+
61
+ /// @dev declines an application represented by {policyNftId}
62
+ /// an application can only be declined in applied state
63
+ /// only the related product may decline an application
64
+ function decline(NftId policyNftId) external;
65
+
66
+ /// @dev collects the premium token for the specified policy (must be in COLLATERALIZED or ACTIVE state)
67
+ function collectPremium(NftId policyNftId, Timestamp activateAt) external;
68
+
69
+ /// @dev activates the specified policy and sets the activation date in the policy metadata
70
+ /// to activate a policy it needs to be in underwritten state
71
+ function activate(NftId policyNftId, Timestamp activateAt) external;
72
+
73
+ /// @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
74
+ /// 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
75
+ /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
76
+ /// this function can only be called by a product. the policy needs to match with the calling product
77
+ /// @return expiredAt the effective expiry date
78
+ function expire(NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
79
+
80
+ /// @dev closes the specified policy and sets the closed data in the policy metadata
81
+ /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
82
+ /// this function can only be called by a product. the policy needs to match with the calling product
83
+ function close(NftId policyNftId) external;
84
+
85
+ }
@@ -0,0 +1,39 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Seconds} from "../type/Seconds.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+ import {ReferralId} from "../type/Referral.sol";
7
+ import {RiskId} from "../type/RiskId.sol";
8
+ import {Amount} from "../type/Amount.sol";
9
+
10
+ import {IService} from "./IApplicationService.sol";
11
+ import {IPolicy} from "../instance/module/IPolicy.sol";
12
+
13
+ interface IPricingService is IService
14
+ {
15
+
16
+ error ErrorPricingServiceTargetWalletAmountsMismatch();
17
+ error ErrorIPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
18
+ error ErrorIPricingServiceFeeCalculationMismatch(
19
+ uint256 distributionFeeFixAmount,
20
+ uint256 distributionFeeVarAmount,
21
+ uint256 distributionOwnerFeeFixAmount,
22
+ uint256 distributionOwnerFeeVarAmount,
23
+ uint256 commissionAmount,
24
+ uint256 discountAmount
25
+ );
26
+
27
+ function calculatePremium(
28
+ NftId productNftId,
29
+ RiskId riskId,
30
+ Amount sumInsuredAmount,
31
+ Seconds lifetime,
32
+ bytes memory applicationData,
33
+ NftId bundleNftId,
34
+ ReferralId referralId
35
+ )
36
+ external
37
+ view
38
+ returns (IPolicy.Premium memory premium);
39
+ }