@etherisc/gif-next 0.0.2-f626d92-602 → 0.0.2-f634e5c-828

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 (687) hide show
  1. package/README.md +77 -10
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  6. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  8. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  10. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  12. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  14. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  18. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1310 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +348 -313
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +903 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +221 -327
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1415 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1965 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1163 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2267 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +350 -1997
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +189 -113
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +406 -2791
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1684 -0
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1328 -331
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +264 -425
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -151
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  76. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  77. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  78. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  80. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  81. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  82. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  84. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  86. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  88. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  90. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  95. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  96. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  97. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  99. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  101. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  102. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  103. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  106. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +282 -179
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  108. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +274 -253
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  114. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +321 -457
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1360 -0
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  122. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +323 -60
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  124. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → pool/IPoolComponent.sol/IPoolComponent.json} +346 -281
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  127. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  128. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +387 -436
  129. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
  131. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
  133. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -0
  135. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  137. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  138. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +409 -442
  139. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  141. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  143. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  145. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +117 -166
  147. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  149. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  150. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPolicyService.sol/IPolicyService.json} +485 -385
  151. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  153. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +991 -0
  155. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  156. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +41 -62
  157. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1313 -0
  159. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -0
  161. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  163. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  165. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  166. package/artifacts/contracts/product/Product.sol/Product.json +1092 -0
  167. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  169. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  171. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  172. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  174. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +457 -27
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -110
  177. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  179. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/Registry.sol/Registry.json +949 -128
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  183. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -245
  185. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  186. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
  187. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  189. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  190. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  191. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  192. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  193. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  195. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  196. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +292 -204
  197. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1908 -0
  199. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  200. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +850 -0
  201. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  202. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +124 -125
  203. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  204. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  205. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  206. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  207. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  208. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  209. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  210. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +146 -131
  211. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  212. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1467 -0
  213. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  214. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  215. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  216. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  217. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  218. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  219. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  221. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  223. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  225. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  227. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IService.sol/IService.json +46 -6
  229. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  230. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  231. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  232. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  233. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  234. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  235. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  236. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  237. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  238. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  239. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  241. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  243. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  245. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  247. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Service.sol/Service.json +58 -112
  249. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  250. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  251. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  252. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  253. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  254. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  255. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  256. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +708 -602
  257. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  258. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  259. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  260. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  261. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  262. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  263. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  264. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  265. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  266. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  267. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  268. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  269. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  270. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  271. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  272. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  273. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  274. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  275. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  276. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  277. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  278. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  279. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  281. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  283. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  285. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  286. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  287. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  289. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  290. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  291. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  292. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  293. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  295. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  296. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  297. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  299. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  301. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  303. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  305. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +180 -0
  307. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  309. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  311. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  313. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  315. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  317. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  319. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  321. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  323. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  325. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  327. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  328. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  329. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  330. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  331. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  332. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  333. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  334. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  335. package/contracts/authorization/AccessAdmin.sol +615 -0
  336. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  337. package/contracts/authorization/Authorization.sol +289 -0
  338. package/contracts/authorization/IAccess.sol +49 -0
  339. package/contracts/authorization/IAccessAdmin.sol +137 -0
  340. package/contracts/authorization/IAuthorization.sol +60 -0
  341. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  342. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  343. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  344. package/contracts/distribution/BasicDistribution.sol +139 -0
  345. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  346. package/contracts/{components → distribution}/Distribution.sol +166 -162
  347. package/contracts/distribution/DistributionService.sol +354 -0
  348. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  349. package/contracts/distribution/IDistributionComponent.sol +52 -0
  350. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
  351. package/contracts/examples/fire/DamageLevel.sol +59 -0
  352. package/contracts/examples/fire/FirePool.sol +86 -0
  353. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  354. package/contracts/examples/fire/FireProduct.sol +431 -0
  355. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  356. package/contracts/examples/fire/FireUSD.sol +26 -0
  357. package/contracts/examples/unpermissioned/SimpleDistribution.sol +65 -0
  358. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  359. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  360. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  361. package/contracts/instance/BundleSet.sol +130 -0
  362. package/contracts/instance/IInstance.sol +45 -72
  363. package/contracts/instance/IInstanceService.sol +37 -39
  364. package/contracts/instance/Instance.sol +162 -250
  365. package/contracts/instance/InstanceAdmin.sol +288 -0
  366. package/contracts/instance/InstanceAuthorizationV3.sol +218 -0
  367. package/contracts/instance/InstanceReader.sol +351 -61
  368. package/contracts/instance/InstanceService.sol +250 -353
  369. package/contracts/instance/InstanceServiceManager.sol +14 -29
  370. package/contracts/instance/InstanceStore.sol +287 -0
  371. package/contracts/instance/RiskSet.sol +119 -0
  372. package/contracts/instance/base/BalanceStore.sol +123 -0
  373. package/contracts/instance/base/Cloneable.sol +28 -0
  374. package/contracts/instance/base/ObjectCounter.sol +20 -0
  375. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  376. package/contracts/instance/base/ObjectSet.sol +78 -0
  377. package/contracts/instance/module/IAccess.sol +4 -12
  378. package/contracts/instance/module/IBundle.sol +6 -9
  379. package/contracts/instance/module/IComponents.sol +27 -18
  380. package/contracts/instance/module/IDistribution.sol +6 -6
  381. package/contracts/instance/module/IPolicy.sol +48 -35
  382. package/contracts/instance/module/IRisk.sol +2 -1
  383. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  384. package/contracts/oracle/BasicOracle.sol +47 -0
  385. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  386. package/contracts/oracle/IOracle.sol +36 -0
  387. package/contracts/oracle/IOracleComponent.sol +33 -0
  388. package/contracts/oracle/IOracleService.sol +66 -0
  389. package/contracts/oracle/Oracle.sol +156 -0
  390. package/contracts/oracle/OracleService.sol +309 -0
  391. package/contracts/oracle/OracleServiceManager.sol +39 -0
  392. package/contracts/pool/BasicPool.sol +175 -0
  393. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  394. package/contracts/pool/BundleService.sol +423 -0
  395. package/contracts/pool/BundleServiceManager.sol +39 -0
  396. package/contracts/pool/IBundleService.sol +122 -0
  397. package/contracts/pool/IPoolComponent.sol +62 -0
  398. package/contracts/pool/IPoolService.sol +153 -0
  399. package/contracts/pool/Pool.sol +345 -0
  400. package/contracts/pool/PoolService.sol +612 -0
  401. package/contracts/pool/PoolServiceManager.sol +39 -0
  402. package/contracts/product/ApplicationService.sol +259 -0
  403. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  404. package/contracts/product/BasicProduct.sol +49 -0
  405. package/contracts/product/BasicProductAuthorization.sol +42 -0
  406. package/contracts/product/ClaimService.sol +614 -0
  407. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  408. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  409. package/contracts/product/IClaimService.sol +123 -0
  410. package/contracts/product/IPolicyService.sol +90 -0
  411. package/contracts/product/IPricingService.sol +39 -0
  412. package/contracts/product/IProductComponent.sol +59 -0
  413. package/contracts/product/IRiskService.sol +33 -0
  414. package/contracts/product/PolicyService.sol +733 -0
  415. package/contracts/product/PolicyServiceManager.sol +39 -0
  416. package/contracts/product/PricingService.sol +300 -0
  417. package/contracts/product/PricingServiceManager.sol +39 -0
  418. package/contracts/product/Product.sol +427 -0
  419. package/contracts/product/RiskService.sol +107 -0
  420. package/contracts/product/RiskServiceManager.sol +39 -0
  421. package/contracts/registry/ChainNft.sol +79 -40
  422. package/contracts/registry/IRegistry.sol +98 -26
  423. package/contracts/registry/IRegistryService.sol +34 -40
  424. package/contracts/registry/ITransferInterceptor.sol +1 -2
  425. package/contracts/registry/Registry.sol +453 -195
  426. package/contracts/registry/RegistryAdmin.sol +451 -0
  427. package/contracts/registry/RegistryService.sol +87 -128
  428. package/contracts/registry/RegistryServiceManager.sol +23 -32
  429. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  430. package/contracts/registry/ReleaseRegistry.sol +486 -0
  431. package/contracts/registry/ServiceAuthorizationV3.sol +176 -0
  432. package/contracts/registry/TokenRegistry.sol +261 -62
  433. package/contracts/shared/Component.sol +222 -0
  434. package/contracts/shared/ComponentService.sol +869 -0
  435. package/contracts/shared/ComponentServiceManager.sol +38 -0
  436. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  437. package/contracts/shared/ContractLib.sol +224 -0
  438. package/contracts/shared/IComponent.sol +67 -0
  439. package/contracts/shared/IComponentService.sol +134 -0
  440. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  441. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  442. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  443. package/contracts/shared/INftOwnable.sol +4 -2
  444. package/contracts/shared/IPolicyHolder.sol +23 -14
  445. package/contracts/shared/IRegisterable.sol +11 -0
  446. package/contracts/shared/IRegistryLinked.sol +0 -1
  447. package/contracts/shared/IService.sol +12 -3
  448. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  449. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  450. package/contracts/shared/KeyValueStore.sol +131 -0
  451. package/contracts/shared/Lifecycle.sol +88 -0
  452. package/contracts/shared/NftIdSet.sol +65 -0
  453. package/contracts/shared/NftOwnable.sol +32 -25
  454. package/contracts/shared/PolicyHolder.sol +22 -41
  455. package/contracts/shared/Registerable.sol +32 -23
  456. package/contracts/shared/RegistryLinked.sol +9 -19
  457. package/contracts/shared/Service.sol +48 -36
  458. package/contracts/shared/TokenHandler.sol +368 -12
  459. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  460. package/contracts/staking/IStaking.sol +173 -0
  461. package/contracts/staking/IStakingService.sol +157 -0
  462. package/contracts/staking/StakeManagerLib.sol +224 -0
  463. package/contracts/staking/Staking.sol +505 -0
  464. package/contracts/staking/StakingLifecycle.sol +23 -0
  465. package/contracts/staking/StakingManager.sol +52 -0
  466. package/contracts/staking/StakingReader.sol +190 -0
  467. package/contracts/staking/StakingService.sol +440 -0
  468. package/contracts/staking/StakingServiceManager.sol +44 -0
  469. package/contracts/staking/StakingStore.sol +605 -0
  470. package/contracts/staking/TargetManagerLib.sol +211 -0
  471. package/contracts/{types → type}/AddressSet.sol +1 -1
  472. package/contracts/type/Amount.sol +150 -0
  473. package/contracts/{types → type}/Blocknumber.sol +26 -3
  474. package/contracts/{types → type}/ClaimId.sol +31 -3
  475. package/contracts/{types → type}/Fee.sol +24 -22
  476. package/contracts/{types → type}/Key32.sol +2 -2
  477. package/contracts/type/Key32Set.sol +62 -0
  478. package/contracts/{types → type}/NftId.sol +21 -16
  479. package/contracts/{types → type}/NftIdSet.sol +2 -2
  480. package/contracts/type/ObjectType.sol +278 -0
  481. package/contracts/type/PayoutId.sol +82 -0
  482. package/contracts/{types → type}/Referral.sol +2 -1
  483. package/contracts/type/RequestId.sol +75 -0
  484. package/contracts/{types → type}/RiskId.sol +31 -5
  485. package/contracts/type/RoleId.sol +162 -0
  486. package/contracts/type/Seconds.sol +101 -0
  487. package/contracts/type/Selector.sol +102 -0
  488. package/contracts/{types → type}/StateId.sol +47 -4
  489. package/contracts/type/String.sol +53 -0
  490. package/contracts/{types → type}/Timestamp.sol +21 -2
  491. package/contracts/{types → type}/UFixed.sol +40 -121
  492. package/contracts/{types → type}/Version.sol +4 -2
  493. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  494. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  495. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  496. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  497. package/package.json +11 -7
  498. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  499. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  500. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  501. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  502. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  503. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  504. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  505. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  506. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  507. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  508. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  509. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  510. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  511. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  512. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  513. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  514. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  515. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  516. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  517. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  518. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  519. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  520. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  521. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  522. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  523. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  524. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  525. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  526. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  527. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  528. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  529. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  531. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  532. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  533. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  535. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  537. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  539. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  541. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  550. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  552. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  554. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  556. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  558. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  560. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  561. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  562. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  563. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  564. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  565. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  566. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  567. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  568. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  569. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  570. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  571. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  572. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  573. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  574. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  576. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  577. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  578. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  579. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  580. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  581. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  582. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  583. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  584. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  585. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  586. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  587. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  588. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  589. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  590. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  591. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  592. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  594. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  595. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  596. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  598. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  600. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  602. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  603. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  604. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  605. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  606. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  608. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  609. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  610. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  612. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  614. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  616. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  618. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  620. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  622. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  624. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  626. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  628. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  630. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  632. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  634. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  636. package/contracts/components/Component.sol +0 -253
  637. package/contracts/components/IComponent.sol +0 -76
  638. package/contracts/components/IDistributionComponent.sol +0 -71
  639. package/contracts/components/IPoolComponent.sol +0 -113
  640. package/contracts/components/IProductComponent.sol +0 -40
  641. package/contracts/components/Pool.sol +0 -303
  642. package/contracts/components/Product.sol +0 -293
  643. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  644. package/contracts/instance/BundleManager.sol +0 -127
  645. package/contracts/instance/Cloneable.sol +0 -51
  646. package/contracts/instance/InstanceAccessManager.sol +0 -527
  647. package/contracts/instance/ObjectManager.sol +0 -82
  648. package/contracts/instance/base/ComponentService.sol +0 -121
  649. package/contracts/instance/base/KeyValueStore.sol +0 -180
  650. package/contracts/instance/base/Lifecycle.sol +0 -109
  651. package/contracts/instance/module/ISetup.sol +0 -33
  652. package/contracts/instance/module/ITreasury.sol +0 -23
  653. package/contracts/instance/service/ApplicationService.sol +0 -350
  654. package/contracts/instance/service/BundleService.sol +0 -431
  655. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  656. package/contracts/instance/service/ClaimService.sol +0 -151
  657. package/contracts/instance/service/DistributionService.sol +0 -435
  658. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  659. package/contracts/instance/service/IBundleService.sol +0 -93
  660. package/contracts/instance/service/IClaimService.sol +0 -61
  661. package/contracts/instance/service/IPolicyService.sol +0 -72
  662. package/contracts/instance/service/IPoolService.sol +0 -99
  663. package/contracts/instance/service/IProductService.sol +0 -40
  664. package/contracts/instance/service/PolicyService.sol +0 -362
  665. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  666. package/contracts/instance/service/PoolService.sol +0 -303
  667. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  668. package/contracts/instance/service/ProductService.sol +0 -210
  669. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  670. package/contracts/registry/RegistryAccessManager.sol +0 -216
  671. package/contracts/registry/ReleaseManager.sol +0 -324
  672. package/contracts/shared/ContractDeployerLib.sol +0 -72
  673. package/contracts/test/TestFee.sol +0 -25
  674. package/contracts/test/TestRegisterable.sol +0 -18
  675. package/contracts/test/TestRoleId.sol +0 -14
  676. package/contracts/test/TestService.sol +0 -25
  677. package/contracts/test/TestToken.sol +0 -26
  678. package/contracts/test/TestVersion.sol +0 -44
  679. package/contracts/test/TestVersionable.sol +0 -17
  680. package/contracts/types/Amount.sol +0 -60
  681. package/contracts/types/ChainId.sol +0 -38
  682. package/contracts/types/NumberId.sol +0 -52
  683. package/contracts/types/ObjectType.sol +0 -157
  684. package/contracts/types/PayoutId.sol +0 -54
  685. package/contracts/types/RoleId.sol +0 -97
  686. package/contracts/types/Seconds.sol +0 -54
  687. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,72 +0,0 @@
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 "../../shared/IService.sol";
6
-
7
- import {NftId} from "../../types/NftId.sol";
8
- import {ReferralId} from "../../types/Referral.sol";
9
- import {RiskId} from "../../types/RiskId.sol";
10
- import {Seconds} from "../../types/Seconds.sol";
11
- import {StateId} from "../../types/StateId.sol";
12
- import {Timestamp} from "../../types/Timestamp.sol";
13
- import {UFixed} from "../../types/UFixed.sol";
14
- import {Fee} from "../../types/Fee.sol";
15
-
16
- interface IPolicyService is IService {
17
-
18
- error ErrorIPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
19
- error ErrorIPolicyServicePremiumAlreadyPaid(NftId policyNftId, uint256 premiumPaidAmount);
20
- error ErrorIPolicyServicePolicyNotActivated(NftId policyNftId);
21
- error ErrorIPolicyServicePolicyAlreadyClosed(NftId policyNftId);
22
- error ErrorIPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
23
- error ErrorIPolicyServicePremiumNotFullyPaid(NftId policyNftId, uint256 premiumAmount, uint256 premiumPaidAmount);
24
- error ErrorIPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
25
- error ErrorIPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
26
-
27
- error ErrorIPolicyServicePremiumMismatch(NftId policyNftId, uint256 premiumAmount, uint256 recalculatedPremiumAmount);
28
-
29
- /// @dev declines an application represented by {policyNftId}
30
- /// an application can only be declined in applied state
31
- /// only the related product may decline an application
32
- function decline(NftId policyNftId) external;
33
-
34
- /// @dev underwrites the policy represented by {policyNftId}
35
- /// sets the policy state to underwritten
36
- /// may set the policy state to activated and set the activation date
37
- /// optionally collects premiums and activates the policy.
38
- /// - premium payment is only attempted if requirePremiumPayment is set to true
39
- /// - activation is only done if activateAt is a non-zero timestamp
40
- /// an application can only be underwritten in applied state
41
- /// only the related product may underwrite an application
42
- function underwrite(
43
- NftId policyNftId,
44
- bool requirePremiumPayment,
45
- Timestamp activateAt
46
- ) external;
47
-
48
- /// @dev collects the premium token for the specified policy
49
- function collectPremium(NftId policyNftId, Timestamp activateAt) external;
50
-
51
- /// @dev activates the specified policy and sets the activation date in the policy metadata
52
- /// to activate a policy it needs to be in underwritten state
53
- function activate(NftId policyNftId, Timestamp activateAt) external;
54
-
55
- /// @dev expires the specified policy and sets the expiry date in the policy metadata
56
- /// 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
57
- /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
58
- /// this function can only be called by a product. the policy needs to match with the calling product
59
- function expire(NftId policyNftId) external;
60
-
61
- /// @dev closes the specified policy and sets the closed data in the policy metadata
62
- /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
63
- /// this function can only be called by a product. the policy needs to match with the calling product
64
- function close(NftId policyNftId) external;
65
-
66
- // TODO move function to pool service
67
- function calculateRequiredCollateral(
68
- UFixed collateralizationLevel,
69
- uint256 sumInsuredAmount
70
- ) external pure returns(uint256 collateralAmount);
71
-
72
- }
@@ -1,99 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Amount} from "../../types/Amount.sol";
5
- import {Fee} from "../../types/Fee.sol";
6
- import {NftId} from "../../types/NftId.sol";
7
- import {IBundle} from "../module/IBundle.sol";
8
- import {IInstance} from "../../instance/IInstance.sol";
9
- import {IPolicy} from "../module/IPolicy.sol";
10
- import {IService} from "../../shared/IService.sol";
11
- import {RoleId} from "../../types/RoleId.sol";
12
- import {Seconds} from "../../types/Seconds.sol";
13
- import {StateId} from "../../types/StateId.sol";
14
-
15
- interface IPoolService is IService {
16
-
17
- event LogPoolServiceMaxCapitalAmountUpdated(NftId poolNftId, uint256 previousMaxCapitalAmount, uint256 currentMaxCapitalAmount);
18
- event LogPoolServiceBundleOwnerRoleSet(NftId poolNftId, RoleId bundleOwnerRole);
19
-
20
- event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
21
- event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
22
-
23
- error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
24
- error ErrorPoolServiceBundlePoolMismatch(NftId bundlePoolNftId, NftId productPoolNftId);
25
-
26
- /// @dev registers a new pool with the registry service
27
- function register(address poolAddress) external returns(NftId);
28
-
29
- /// @dev defines the required role for bundle owners for the calling pool
30
- /// default implementation returns PUBLIC ROLE
31
- function setBundleOwnerRole(RoleId bundleOwnerRole) external;
32
-
33
- /// @dev sets the max capital amount for the calling pool
34
- function setMaxCapitalAmount(uint256 maxCapitalAmount) external;
35
-
36
- /// @dev set pool sepecific fees
37
- function setFees(
38
- Fee memory poolFee,
39
- Fee memory stakingFee,
40
- Fee memory performanceFee
41
- ) external;
42
-
43
-
44
- /// @dev locks required collateral to cover the specified application (and turn it into a policy)
45
- /// - retention level == 1: the full collateral amount will be locked by the specified bundle
46
- /// - retention level < 1: a part of the coverage is provided by the specified bundle, the rest by the pool component
47
- /// in which case the pool component might hold a re-insurance policy
48
- /// may only be called by the policy service for unlocked pool components
49
- function lockCollateral(
50
- IInstance instance,
51
- NftId productNftId,
52
- NftId applicationNftId,
53
- IPolicy.PolicyInfo memory applicationInfo,
54
- uint256 premiumAmount
55
- ) external;
56
-
57
-
58
- /// @dev releases the remaining collateral linked to the specified policy
59
- /// may only be called by the policy service for unlocked pool components
60
- function releaseCollateral(
61
- IInstance instance,
62
- NftId policyNftId,
63
- IPolicy.PolicyInfo memory policyInfo
64
- ) external;
65
-
66
-
67
- /// @dev create a new bundle for the provided parameters
68
- /// staking fees will be deducted by the pool service from the staking amount
69
- /// may only be called by registered and unlocked pool components
70
- function createBundle(
71
- address owner, // initial bundle owner
72
- Fee memory fee, // fees deducted from premium that go to bundle owner
73
- Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
74
- Seconds lifetime, // initial duration for which new policies are covered
75
- bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
76
- )
77
- external
78
- returns(NftId bundleNftId); // the nft id of the newly created bundle
79
-
80
-
81
- /// @dev closes the specified bundle
82
- /// only open bundles (active or locked) may be closed
83
- /// to close a bundle it may not have any non-closed polices attached to it
84
- /// bundle fees and remaining capital (after deduction of the performance fee) will be transferred to the bundle owner
85
- /// may only be called by registered and unlocked pool components
86
- function closeBundle(NftId bundleNftId) external;
87
-
88
-
89
- /// @dev increase stakes for bundle
90
- /// staking fees will be deducted by the pool service from the staking amount
91
- /// may only be called by registered and unlocked pool components
92
- // function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
93
-
94
-
95
- /// @dev decrease stakes for bundle
96
- /// performance fees will be deducted by the pool service from the staking amount
97
- /// may only be called by registered and unlocked pool components
98
- // function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
99
- }
@@ -1,40 +0,0 @@
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 "../../shared/IService.sol";
6
-
7
- import {NftId} from "../../types/NftId.sol";
8
- import {ReferralId} from "../../types/Referral.sol";
9
- import {RiskId} from "../../types/RiskId.sol";
10
- import {StateId} from "../../types/StateId.sol";
11
- import {Timestamp} from "../../types/Timestamp.sol";
12
- import {UFixed} from "../../types/UFixed.sol";
13
- import {Fee} from "../../types/Fee.sol";
14
-
15
- interface IProductService is IService {
16
-
17
- function register(address productAddress) external returns(NftId);
18
-
19
- function setFees(
20
- Fee memory productFee,
21
- Fee memory processingFee
22
- ) external;
23
-
24
- function createRisk(
25
- RiskId riskId,
26
- bytes memory data
27
- ) external;
28
-
29
-
30
- function updateRisk(
31
- RiskId riskId,
32
- bytes memory data
33
- ) external;
34
-
35
-
36
- function updateRiskState(
37
- RiskId riskId,
38
- StateId newState
39
- ) external;
40
- }
@@ -1,362 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {Product} from "../../components/Product.sol";
6
- import {IComponents} from "../module/IComponents.sol";
7
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
8
- import {IInstance} from "../IInstance.sol";
9
- import {IPolicy} from "../module/IPolicy.sol";
10
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
11
- import {IRisk} from "../module/IRisk.sol";
12
- import {IBundle} from "../module/IBundle.sol";
13
- import {ISetup} from "../module/ISetup.sol";
14
-
15
- import {TokenHandler} from "../../shared/TokenHandler.sol";
16
-
17
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
18
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
19
- import {ObjectType, APPLICATION, DISTRIBUTION, PRODUCT, POOL, POLICY, BUNDLE} from "../../types/ObjectType.sol";
20
- import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE, CLOSED} from "../../types/StateId.sol";
21
- import {NftId, NftIdLib} from "../../types/NftId.sol";
22
- import {StateId} from "../../types/StateId.sol";
23
- import {VersionPart} from "../../types/Version.sol";
24
-
25
- import {ComponentService} from "../base/ComponentService.sol";
26
- import {IApplicationService} from "./IApplicationService.sol";
27
- import {IBundleService} from "./IBundleService.sol";
28
- import {IDistributionService} from "./IDistributionService.sol";
29
- import {InstanceReader} from "../InstanceReader.sol";
30
- import {IPolicyService} from "./IPolicyService.sol";
31
- import {IPoolService} from "./IPoolService.sol";
32
- import {IService} from "../../shared/IService.sol";
33
- import {Service} from "../../shared/Service.sol";
34
-
35
-
36
- contract PolicyService is
37
- ComponentService,
38
- IPolicyService
39
- {
40
- using NftIdLib for NftId;
41
- using TimestampLib for Timestamp;
42
-
43
- IPoolService internal _poolService;
44
- IBundleService internal _bundleService;
45
- IApplicationService internal _applicationService;
46
- IDistributionService internal _distributionService;
47
-
48
- event LogProductServiceSender(address sender);
49
-
50
- function _initialize(
51
- address owner,
52
- bytes memory data
53
- )
54
- internal
55
- virtual override
56
- initializer
57
- {
58
- address registryAddress;
59
- address initialOwner;
60
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
61
-
62
- initializeService(registryAddress, address(0), owner);
63
-
64
- VersionPart majorVersion = getVersion().toMajorPart();
65
- _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), majorVersion));
66
- _bundleService = IBundleService(getRegistry().getServiceAddress(BUNDLE(), majorVersion));
67
- _applicationService = IApplicationService(getRegistry().getServiceAddress(APPLICATION(), majorVersion));
68
- _distributionService = IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), majorVersion));
69
-
70
- registerInterface(type(IPolicyService).interfaceId);
71
- }
72
-
73
-
74
- function getDomain() public pure override returns(ObjectType) {
75
- return POLICY();
76
- }
77
-
78
-
79
- function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
80
- IRegistry.ObjectInfo memory productInfo;
81
- (, productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
82
- product = Product(productInfo.objectAddress);
83
- }
84
-
85
- // function _getAndVerifyUnderwritingSetup(
86
- // IInstance instance,
87
- // InstanceReader instanceReader,
88
- // IPolicy.PolicyInfo memory policyInfo,
89
- // ISetup.ProductSetupInfo memory productSetupInfo
90
- // )
91
- // internal
92
- // view
93
- // returns (
94
- // NftId poolNftId,
95
- // IComponents.PoolInfo memory poolInfo,
96
- // NftId bundleNftId,
97
- // IBundle.BundleInfo memory bundleInfo
98
- // )
99
- // {
100
- // // check match between policy and bundle (via pool)
101
- // poolNftId = productSetupInfo.poolNftId;
102
- // bundleNftId = policyInfo.bundleNftId;
103
- // bundleInfo = instanceReader.getBundleInfo(bundleNftId);
104
- // require(bundleInfo.poolNftId == poolNftId, "BUNDLE_POOL_MISMATCH");
105
-
106
- // // calculate required collateral
107
- // IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
108
- // poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
109
- // }
110
-
111
-
112
- function decline(
113
- NftId policyNftId
114
- )
115
- external
116
- override
117
- {
118
- require(false, "ERROR:PRS-235:NOT_YET_IMPLEMENTED");
119
- }
120
-
121
-
122
- /// @dev underwites application which includes the locking of the required collateral from the pool.
123
- function underwrite(
124
- NftId applicationNftId, // = policyNftId
125
- bool requirePremiumPayment,
126
- Timestamp activateAt
127
- )
128
- external
129
- virtual override
130
- {
131
- // check caller is registered product
132
- (NftId productNftId,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
133
- InstanceReader instanceReader = instance.getInstanceReader();
134
-
135
- // check policy matches with calling product
136
- IPolicy.PolicyInfo memory applicationInfo = instanceReader.getPolicyInfo(applicationNftId);
137
- require(applicationInfo.productNftId == productNftId, "POLICY_PRODUCT_MISMATCH");
138
-
139
- // check policy is in state applied
140
- require(instanceReader.getPolicyState(applicationNftId) == APPLIED(), "ERROR:PRS-021:STATE_NOT_APPLIED");
141
-
142
- StateId newPolicyState = UNDERWRITTEN();
143
-
144
- // optional activation of policy
145
- if(activateAt > zeroTimestamp()) {
146
- newPolicyState = ACTIVE();
147
- applicationInfo.activatedAt = activateAt;
148
- applicationInfo.expiredAt = activateAt.addSeconds(applicationInfo.lifetime);
149
- }
150
-
151
- // lock bundle collateral
152
- uint256 netPremiumAmount = 0; // > 0 if immediate premium payment
153
-
154
- // optional collection of premium
155
- if(requirePremiumPayment) {
156
- netPremiumAmount = _processPremiumByTreasury(
157
- instance,
158
- applicationNftId,
159
- applicationInfo.premiumAmount);
160
-
161
- applicationInfo.premiumPaidAmount += applicationInfo.premiumAmount;
162
- }
163
-
164
- // store updated policy info
165
- instance.updatePolicy(applicationNftId, applicationInfo, newPolicyState);
166
-
167
- // lock collateral and update pool and bundle book keeping
168
- // pool retention level: fraction of sum insured that product will cover from pool funds directly
169
- // eg retention level 30%, payouts up to 30% of the sum insured will be made from the product's pool directly
170
- // for the remaining 70% the pool owns a policy that will cover claims that exceed the 30% of the sum insured
171
- // might also call pool component (for isVerifyingApplications pools)
172
- _poolService.lockCollateral(
173
- instance,
174
- productNftId,
175
- applicationNftId,
176
- applicationInfo,
177
- netPremiumAmount); // for pool book keeping (fee + additional capital)
178
-
179
- // TODO: add logging
180
- }
181
-
182
-
183
- function calculateRequiredCollateral(UFixed collateralizationLevel, uint256 sumInsuredAmount) public pure override returns(uint256 collateralAmount) {
184
- UFixed sumInsuredUFixed = UFixedLib.toUFixed(sumInsuredAmount);
185
- UFixed collateralUFixed = collateralizationLevel * sumInsuredUFixed;
186
- return collateralUFixed.toInt();
187
- }
188
-
189
- function collectPremium(NftId policyNftId, Timestamp activateAt) external override {
190
- // check caller is registered product
191
- (NftId productNftId,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
192
- InstanceReader instanceReader = instance.getInstanceReader();
193
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
194
-
195
- if (policyInfo.premiumPaidAmount == policyInfo.premiumAmount) {
196
- revert ErrorIPolicyServicePremiumAlreadyPaid(policyNftId, policyInfo.premiumPaidAmount);
197
- }
198
-
199
- uint256 unpaidPremiumAmount = policyInfo.premiumAmount - policyInfo.premiumPaidAmount;
200
-
201
- uint256 netPremiumAmount = _processPremiumByTreasury(
202
- instance,
203
- policyNftId,
204
- unpaidPremiumAmount);
205
-
206
- policyInfo.premiumPaidAmount += unpaidPremiumAmount;
207
-
208
- _bundleService.increaseBalance(instance, policyInfo.bundleNftId, netPremiumAmount);
209
- instance.updatePolicy(policyNftId, policyInfo, KEEP_STATE());
210
-
211
- if(activateAt.gtz() && policyInfo.activatedAt.eqz()) {
212
- activate(policyNftId, activateAt);
213
- }
214
-
215
- // TODO: add logging
216
- }
217
-
218
- function activate(NftId policyNftId, Timestamp activateAt) public override {
219
- // check caller is registered product
220
- (,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
221
- InstanceReader instanceReader = instance.getInstanceReader();
222
-
223
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
224
-
225
- require(
226
- policyInfo.activatedAt.eqz(),
227
- "ERROR:PRS-020:ALREADY_ACTIVATED");
228
-
229
- policyInfo.activatedAt = activateAt;
230
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
231
-
232
- instance.updatePolicy(policyNftId, policyInfo, ACTIVE());
233
-
234
- // TODO: add logging
235
- }
236
-
237
-
238
- function expire(
239
- NftId policyNftId
240
- )
241
- external
242
- override
243
- // solhint-disable-next-line no-empty-blocks
244
- {
245
-
246
- }
247
-
248
- function close(
249
- NftId policyNftId
250
- )
251
- external
252
- override
253
- {
254
- (,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
255
- InstanceReader instanceReader = instance.getInstanceReader();
256
-
257
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
258
-
259
- if (policyInfo.activatedAt.eqz()) {
260
- revert ErrorIPolicyServicePolicyNotActivated(policyNftId);
261
- }
262
-
263
- StateId state = instanceReader.getPolicyState(policyNftId);
264
- if (state != ACTIVE()) {
265
- revert ErrorIPolicyServicePolicyNotActive(policyNftId, state);
266
- }
267
-
268
- if (policyInfo.closedAt.gtz()) {
269
- revert ErrorIPolicyServicePolicyAlreadyClosed(policyNftId);
270
- }
271
-
272
- if (policyInfo.premiumAmount != policyInfo.premiumPaidAmount) {
273
- revert ErrorIPolicyServicePremiumNotFullyPaid(policyNftId, policyInfo.premiumAmount, policyInfo.premiumPaidAmount);
274
- }
275
-
276
- if (policyInfo.openClaimsCount > 0) {
277
- revert ErrorIPolicyServiceOpenClaims(policyNftId, policyInfo.openClaimsCount);
278
- }
279
-
280
- if (TimestampLib.blockTimestamp().lte(policyInfo.expiredAt) && (policyInfo.payoutAmount < policyInfo.sumInsuredAmount)) {
281
- revert ErrorIPolicyServicePolicyHasNotExpired(policyNftId, policyInfo.expiredAt);
282
- }
283
-
284
- policyInfo.closedAt = TimestampLib.blockTimestamp();
285
-
286
- _poolService.releaseCollateral(
287
- instance,
288
- policyNftId,
289
- policyInfo);
290
-
291
- instance.updatePolicy(policyNftId, policyInfo, CLOSED());
292
- }
293
-
294
- function _getPoolNftId(
295
- IInstance instance,
296
- NftId productNftId
297
- )
298
- internal
299
- view
300
- returns (NftId poolNftid)
301
- {
302
- InstanceReader instanceReader = instance.getInstanceReader();
303
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
304
- return productSetupInfo.poolNftId;
305
- }
306
-
307
-
308
- function _processPremiumByTreasury(
309
- IInstance instance,
310
- NftId policyNftId,
311
- uint256 premiumAmount
312
- )
313
- internal
314
- returns (uint256 netPremiumAmount)
315
- {
316
- // process token transfer(s)
317
- if(premiumAmount > 0) {
318
- NftId productNftId = getRegistry().getObjectInfo(policyNftId).parentNftId;
319
- ISetup.ProductSetupInfo memory productSetupInfo = instance.getInstanceReader().getProductSetupInfo(productNftId);
320
- IPolicy.PolicyInfo memory policyInfo = instance.getInstanceReader().getPolicyInfo(policyNftId);
321
- TokenHandler tokenHandler = productSetupInfo.tokenHandler;
322
- address policyOwner = getRegistry().ownerOf(policyNftId);
323
- address poolWallet = instance.getInstanceReader().getComponentInfo(productSetupInfo.poolNftId).wallet;
324
- IPolicy.Premium memory premium = _applicationService.calculatePremium(
325
- productNftId,
326
- policyInfo.riskId,
327
- policyInfo.sumInsuredAmount,
328
- policyInfo.lifetime,
329
- policyInfo.applicationData,
330
- policyInfo.bundleNftId,
331
- policyInfo.referralId
332
- );
333
-
334
- if (premium.premiumAmount != premiumAmount) {
335
- revert ErrorIPolicyServicePremiumMismatch(policyNftId, premiumAmount, premium.premiumAmount);
336
- }
337
-
338
- // move product fee to product wallet
339
- address productWallet = productSetupInfo.wallet;
340
- if (tokenHandler.getToken().allowance(policyOwner, address(tokenHandler)) < premium.premiumAmount) {
341
- revert ErrorIPolicyServiceInsufficientAllowance(policyOwner, address(tokenHandler), premium.premiumAmount);
342
- }
343
- tokenHandler.transfer(policyOwner, productWallet, premium.productFeeFixAmount + premium.productFeeVarAmount);
344
-
345
- // move distribution fee to distribution wallet
346
- ISetup.DistributionSetupInfo memory distributionSetupInfo = instance.getInstanceReader().getDistributionSetupInfo(productSetupInfo.distributionNftId);
347
- address distributionWallet = distributionSetupInfo.wallet;
348
- uint256 distributionFeeAmountToTransfer = premium.distributionFeeFixAmount + premium.distributionFeeVarAmount - premium.discountAmount;
349
- tokenHandler.transfer(policyOwner, distributionWallet, distributionFeeAmountToTransfer);
350
- _distributionService.processSale(productSetupInfo.distributionNftId, policyInfo.referralId, premium, distributionFeeAmountToTransfer);
351
-
352
- // move netpremium to pool wallet
353
- tokenHandler.transfer(policyOwner, poolWallet, premium.netPremiumAmount);
354
-
355
- // TODO: move pool related tokens too
356
- // TODO: move bundle related tokens too
357
- netPremiumAmount = premium.netPremiumAmount;
358
- }
359
-
360
- // TODO: add logging
361
- }
362
- }
@@ -1,54 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
6
- import {PolicyService} from "./PolicyService.sol";
7
- import {Registry} from "../../registry/Registry.sol";
8
- import {RegistryService} from "../../registry/RegistryService.sol";
9
- import {VersionLib} from "../../types/Version.sol";
10
-
11
- contract PolicyServiceManager is ProxyManager {
12
-
13
- PolicyService private _policyService;
14
-
15
- /// @dev initializes proxy manager with product service implementation
16
- constructor(
17
- address registryAddress
18
- )
19
- ProxyManager(registryAddress)
20
- {
21
- PolicyService svc = new PolicyService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
24
- address(svc),
25
- data);
26
-
27
- _policyService = PolicyService(address(versionable));
28
-
29
- // Registry registry = Registry(registryAddress);
30
- // address registryServiceAddress = registry.getServiceAddress("RegistryService", VersionLib.toVersion(3, 0, 0).toMajorPart());
31
- // RegistryService registryService = RegistryService(registryServiceAddress);
32
- // TODO this must have a role or own nft to register service
33
- //registryService.registerService(_productService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_productService));
40
-
41
- // implies that after this constructor call only upgrade functionality is available
42
- // _isDeployed = true;
43
- }
44
-
45
- //--- view functions ----------------------------------------------------//
46
- function getPolicyService()
47
- external
48
- view
49
- returns (PolicyService policyService)
50
- {
51
- return _policyService;
52
- }
53
-
54
- }