@etherisc/gif-next 0.0.2-c8625de-563 → 0.0.2-c8c9cfc-245

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 +54 -88
  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 +271 -464
  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 +303 -303
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +945 -0
  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 +292 -2124
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +328 -69
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +399 -2883
  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 +676 -369
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +388 -263
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +115 -74
  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 -49
  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 +25 -150
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  70. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  71. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  74. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  75. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  85. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +338 -285
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1055 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1432 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  95. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1521 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +830 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  101. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +938 -0
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  103. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +404 -345
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1213 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  107. package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1700 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +798 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  117. package/artifacts/contracts/{components/Pool.sol/Pool.json → product/BasicProduct.sol/BasicProduct.json} +444 -486
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1339 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  125. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +139 -89
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  129. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +816 -0
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IPricingService.sol/IPricingService.json} +205 -228
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  133. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +420 -241
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +90 -63
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1351 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +802 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  144. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  145. package/artifacts/contracts/{components → product}/Product.sol/Product.json +394 -402
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +191 -18
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -138
  156. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  158. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/Registry.sol/Registry.json +453 -34
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +373 -87
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  166. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  168. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  174. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  175. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +208 -203
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1712 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +101 -103
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +222 -104
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IService.sol/IService.json +106 -18
  202. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  204. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +977 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  212. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  213. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -23
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  222. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Service.sol/Service.json +114 -21
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +107 -6
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  232. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  284. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  286. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  288. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  294. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  298. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  299. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  304. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  305. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  306. package/contracts/authorization/AccessAdmin.sol +591 -0
  307. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  308. package/contracts/authorization/Authorization.sol +218 -0
  309. package/contracts/authorization/IAccess.sol +48 -0
  310. package/contracts/authorization/IAccessAdmin.sol +136 -0
  311. package/contracts/authorization/IAuthorization.sol +54 -0
  312. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  313. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  314. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  315. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  316. package/contracts/distribution/BasicDistribution.sol +138 -0
  317. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  318. package/contracts/{components → distribution}/Distribution.sol +180 -193
  319. package/contracts/distribution/DistributionService.sol +336 -0
  320. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  321. package/contracts/distribution/IDistributionComponent.sol +52 -0
  322. package/contracts/distribution/IDistributionService.sol +97 -0
  323. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +33 -32
  324. package/contracts/instance/IInstance.sol +60 -66
  325. package/contracts/instance/IInstanceService.sol +57 -24
  326. package/contracts/instance/Instance.sol +176 -213
  327. package/contracts/instance/InstanceAdmin.sol +266 -0
  328. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  329. package/contracts/instance/InstanceReader.sol +181 -61
  330. package/contracts/instance/InstanceService.sol +310 -343
  331. package/contracts/instance/InstanceServiceManager.sol +12 -26
  332. package/contracts/instance/InstanceStore.sol +277 -0
  333. package/contracts/instance/base/BalanceStore.sol +123 -0
  334. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  335. package/contracts/instance/base/ObjectCounter.sol +21 -0
  336. package/contracts/instance/base/ObjectLifecycle.sol +104 -0
  337. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  338. package/contracts/instance/module/IAccess.sol +19 -20
  339. package/contracts/instance/module/IBundle.sol +8 -8
  340. package/contracts/instance/module/{ISetup.sol → IComponents.sol} +21 -22
  341. package/contracts/instance/module/IDistribution.sol +6 -4
  342. package/contracts/instance/module/IPolicy.sol +53 -16
  343. package/contracts/instance/module/IRisk.sol +1 -1
  344. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  345. package/contracts/oracle/BasicOracle.sol +48 -0
  346. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  347. package/contracts/oracle/IOracle.sol +36 -0
  348. package/contracts/oracle/IOracleComponent.sol +33 -0
  349. package/contracts/oracle/IOracleService.sol +65 -0
  350. package/contracts/oracle/Oracle.sol +166 -0
  351. package/contracts/oracle/OracleService.sol +278 -0
  352. package/contracts/oracle/OracleServiceManager.sol +39 -0
  353. package/contracts/pool/BasicPool.sol +166 -0
  354. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  355. package/contracts/pool/BundleService.sol +450 -0
  356. package/contracts/pool/BundleServiceManager.sol +39 -0
  357. package/contracts/pool/IBundleService.sol +135 -0
  358. package/contracts/pool/IPoolComponent.sol +58 -0
  359. package/contracts/pool/IPoolService.sol +149 -0
  360. package/contracts/pool/Pool.sol +328 -0
  361. package/contracts/pool/PoolService.sol +559 -0
  362. package/contracts/pool/PoolServiceManager.sol +39 -0
  363. package/contracts/product/ApplicationService.sol +230 -0
  364. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  365. package/contracts/product/BasicProduct.sol +52 -0
  366. package/contracts/product/BasicProductAuthorization.sol +43 -0
  367. package/contracts/product/ClaimService.sol +424 -0
  368. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  369. package/contracts/{instance/service → product}/IApplicationService.sol +16 -36
  370. package/contracts/product/IClaimService.sol +100 -0
  371. package/contracts/product/IPolicyService.sol +85 -0
  372. package/contracts/product/IPricingService.sol +39 -0
  373. package/contracts/product/IProductComponent.sol +40 -0
  374. package/contracts/product/IProductService.sol +33 -0
  375. package/contracts/product/PolicyService.sol +542 -0
  376. package/contracts/product/PolicyServiceManager.sol +39 -0
  377. package/contracts/product/PricingService.sol +300 -0
  378. package/contracts/product/PricingServiceManager.sol +39 -0
  379. package/contracts/product/Product.sol +411 -0
  380. package/contracts/product/ProductService.sol +99 -0
  381. package/contracts/product/ProductServiceManager.sol +39 -0
  382. package/contracts/registry/ChainNft.sol +16 -1
  383. package/contracts/registry/IRegistry.sol +61 -26
  384. package/contracts/registry/IRegistryService.sol +44 -42
  385. package/contracts/registry/ITransferInterceptor.sol +1 -0
  386. package/contracts/registry/Registry.sol +251 -139
  387. package/contracts/registry/RegistryAdmin.sol +365 -0
  388. package/contracts/registry/RegistryService.sol +70 -101
  389. package/contracts/registry/RegistryServiceManager.sol +23 -32
  390. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  391. package/contracts/registry/ReleaseRegistry.sol +485 -0
  392. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  393. package/contracts/registry/TokenRegistry.sol +261 -62
  394. package/contracts/shared/Component.sol +281 -0
  395. package/contracts/shared/ComponentService.sol +650 -0
  396. package/contracts/shared/ComponentServiceManager.sol +35 -0
  397. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  398. package/contracts/shared/IComponent.sol +71 -0
  399. package/contracts/shared/IComponentService.sol +108 -0
  400. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  401. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  402. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  403. package/contracts/shared/INftOwnable.sol +2 -2
  404. package/contracts/shared/IPolicyHolder.sol +29 -10
  405. package/contracts/shared/IRegistryLinked.sol +0 -1
  406. package/contracts/shared/IService.sol +15 -6
  407. package/contracts/shared/InitializableCustom.sol +177 -0
  408. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
  409. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  410. package/contracts/shared/KeyValueStore.sol +131 -0
  411. package/contracts/shared/Lifecycle.sol +77 -0
  412. package/contracts/shared/NftIdSet.sol +65 -0
  413. package/contracts/shared/NftOwnable.sol +5 -18
  414. package/contracts/shared/PolicyHolder.sol +41 -23
  415. package/contracts/shared/Registerable.sol +15 -14
  416. package/contracts/shared/RegistryLinked.sol +0 -5
  417. package/contracts/shared/Service.sol +47 -23
  418. package/contracts/shared/TokenHandler.sol +41 -6
  419. package/contracts/staking/IStaking.sol +167 -0
  420. package/contracts/staking/IStakingService.sol +160 -0
  421. package/contracts/staking/StakeManagerLib.sol +231 -0
  422. package/contracts/staking/Staking.sol +516 -0
  423. package/contracts/staking/StakingLifecycle.sol +23 -0
  424. package/contracts/staking/StakingManager.sol +50 -0
  425. package/contracts/staking/StakingReader.sol +183 -0
  426. package/contracts/staking/StakingService.sol +407 -0
  427. package/contracts/staking/StakingServiceManager.sol +44 -0
  428. package/contracts/staking/StakingStore.sol +605 -0
  429. package/contracts/staking/TargetManagerLib.sol +207 -0
  430. package/contracts/{types → type}/AddressSet.sol +1 -1
  431. package/contracts/type/Amount.sol +135 -0
  432. package/contracts/{types → type}/Blocknumber.sol +27 -3
  433. package/contracts/{types → type}/ClaimId.sol +25 -2
  434. package/contracts/{types → type}/Fee.sol +33 -23
  435. package/contracts/{types → type}/NftId.sol +21 -15
  436. package/contracts/{types → type}/NftIdSet.sol +2 -2
  437. package/contracts/type/ObjectType.sol +271 -0
  438. package/contracts/{types → type}/PayoutId.sol +33 -5
  439. package/contracts/{types → type}/Referral.sol +6 -1
  440. package/contracts/type/RequestId.sol +75 -0
  441. package/contracts/{types → type}/RiskId.sol +1 -1
  442. package/contracts/type/RoleId.sol +174 -0
  443. package/contracts/type/Seconds.sol +93 -0
  444. package/contracts/type/Selector.sol +102 -0
  445. package/contracts/{types → type}/StateId.sol +34 -4
  446. package/contracts/type/String.sol +53 -0
  447. package/contracts/{types → type}/Timestamp.sol +34 -15
  448. package/contracts/{types → type}/UFixed.sol +35 -9
  449. package/contracts/{types → type}/Version.sol +5 -2
  450. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  451. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  452. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  453. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  454. package/package.json +8 -5
  455. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  456. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  457. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  458. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  459. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  460. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  461. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  462. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  463. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  464. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  465. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  466. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  467. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  469. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  471. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  473. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  474. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  475. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  476. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  477. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  478. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  479. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  481. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  482. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  483. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  485. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  486. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  487. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  488. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  489. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  490. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  491. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  493. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  494. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  495. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  496. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  497. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  498. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  499. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  500. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  501. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  502. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  503. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  504. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  505. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  506. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  507. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  508. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  509. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  510. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  511. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  512. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  513. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  514. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  515. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  516. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  517. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  518. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
  520. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  522. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  523. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
  524. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  526. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
  528. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  530. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -935
  532. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -677
  534. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
  538. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -480
  540. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
  543. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1109
  546. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  548. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -716
  550. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  552. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
  554. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  556. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  557. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  558. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  559. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  560. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  561. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  562. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  563. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  564. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  565. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  566. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  567. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  568. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  569. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  570. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  571. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  572. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  573. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  574. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  576. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  577. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -510
  578. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  579. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  580. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  581. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  582. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  583. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  584. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  585. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  586. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  587. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  588. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  590. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  592. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  594. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  595. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  596. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  598. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  599. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  600. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  602. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  603. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  604. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  605. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  606. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  608. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  610. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  612. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  614. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  616. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  619. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  621. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  623. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  625. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  627. package/contracts/components/Component.sol +0 -242
  628. package/contracts/components/IComponent.sol +0 -55
  629. package/contracts/components/IDistributionComponent.sol +0 -100
  630. package/contracts/components/IPoolComponent.sol +0 -87
  631. package/contracts/components/IProductComponent.sol +0 -39
  632. package/contracts/components/Pool.sol +0 -254
  633. package/contracts/components/Product.sol +0 -285
  634. package/contracts/experiment/cloning/Cloner.sol +0 -47
  635. package/contracts/experiment/errors/Require.sol +0 -38
  636. package/contracts/experiment/errors/Revert.sol +0 -44
  637. package/contracts/experiment/inheritance/A.sol +0 -53
  638. package/contracts/experiment/inheritance/B.sol +0 -28
  639. package/contracts/experiment/inheritance/C.sol +0 -34
  640. package/contracts/experiment/inheritance/IA.sol +0 -13
  641. package/contracts/experiment/inheritance/IB.sol +0 -10
  642. package/contracts/experiment/inheritance/IC.sol +0 -12
  643. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  644. package/contracts/experiment/statemachine/ISM.sol +0 -25
  645. package/contracts/experiment/statemachine/SM.sol +0 -57
  646. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  647. package/contracts/experiment/types/TypeA.sol +0 -47
  648. package/contracts/experiment/types/TypeB.sol +0 -29
  649. package/contracts/instance/InstanceAccessManager.sol +0 -297
  650. package/contracts/instance/base/ComponentService.sol +0 -134
  651. package/contracts/instance/base/KeyValueStore.sol +0 -172
  652. package/contracts/instance/base/Lifecycle.sol +0 -100
  653. package/contracts/instance/module/ITreasury.sol +0 -23
  654. package/contracts/instance/service/ApplicationService.sol +0 -268
  655. package/contracts/instance/service/BundleService.sol +0 -298
  656. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  657. package/contracts/instance/service/ClaimService.sol +0 -151
  658. package/contracts/instance/service/DistributionService.sol +0 -277
  659. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  660. package/contracts/instance/service/IBundleService.sol +0 -54
  661. package/contracts/instance/service/IClaimService.sol +0 -61
  662. package/contracts/instance/service/IDistributionService.sol +0 -65
  663. package/contracts/instance/service/IPolicyService.sol +0 -89
  664. package/contracts/instance/service/IPoolService.sol +0 -20
  665. package/contracts/instance/service/IProductService.sol +0 -40
  666. package/contracts/instance/service/PolicyService.sol +0 -474
  667. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  668. package/contracts/instance/service/PoolService.sol +0 -109
  669. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  670. package/contracts/instance/service/ProductService.sol +0 -233
  671. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  672. package/contracts/registry/RegistryAccessManager.sol +0 -216
  673. package/contracts/registry/ReleaseManager.sol +0 -322
  674. package/contracts/shared/ContractDeployerLib.sol +0 -72
  675. package/contracts/test/TestFee.sol +0 -25
  676. package/contracts/test/TestRegisterable.sol +0 -18
  677. package/contracts/test/TestRoleId.sol +0 -14
  678. package/contracts/test/TestService.sol +0 -25
  679. package/contracts/test/TestVersion.sol +0 -44
  680. package/contracts/test/TestVersionable.sol +0 -17
  681. package/contracts/test/Usdc.sol +0 -26
  682. package/contracts/types/ChainId.sol +0 -38
  683. package/contracts/types/NumberId.sol +0 -52
  684. package/contracts/types/ObjectType.sol +0 -156
  685. package/contracts/types/RoleId.sol +0 -90
  686. /package/contracts/{types → type}/DistributorType.sol +0 -0
  687. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,474 +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 {IProductComponent} from "../../components/IProductComponent.sol";
6
- import {Product} from "../../components/Product.sol";
7
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
8
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
9
- import {IInstance} from "../IInstance.sol";
10
- import {IPolicy} from "../module/IPolicy.sol";
11
- import {IRisk} from "../module/IRisk.sol";
12
- import {IBundle} from "../module/IBundle.sol";
13
- import {IProductService} from "./IProductService.sol";
14
- import {ITreasury} from "../module/ITreasury.sol";
15
- import {ISetup} from "../module/ISetup.sol";
16
-
17
- import {TokenHandler} from "../../shared/TokenHandler.sol";
18
-
19
- import {IVersionable} from "../../shared/IVersionable.sol";
20
- import {Versionable} from "../../shared/Versionable.sol";
21
-
22
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
23
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
24
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
25
- import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, BUNDLE} from "../../types/ObjectType.sol";
26
- import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE, CLOSED} from "../../types/StateId.sol";
27
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
28
- import {Fee, FeeLib} from "../../types/Fee.sol";
29
- import {ReferralId} from "../../types/Referral.sol";
30
- import {RiskId} from "../../types/RiskId.sol";
31
- import {StateId} from "../../types/StateId.sol";
32
- import {Version, VersionLib} from "../../types/Version.sol";
33
- //import {RoleId, PRODUCT_OWNER_ROLE} from "../../types/RoleId.sol";
34
-
35
- import {IService} from "../../shared/IService.sol";
36
- import {Service} from "../../shared/Service.sol";
37
- import {ComponentService} from "../base/ComponentService.sol";
38
- import {IPolicyService} from "./IPolicyService.sol";
39
- import {InstanceReader} from "../InstanceReader.sol";
40
- import {IPoolService} from "./IPoolService.sol";
41
- import {IBundleService} from "./IBundleService.sol";
42
-
43
-
44
- contract PolicyService is
45
- ComponentService,
46
- IPolicyService
47
- {
48
- using NftIdLib for NftId;
49
- using TimestampLib for Timestamp;
50
-
51
- IPoolService internal _poolService;
52
- IBundleService internal _bundleService;
53
-
54
- event LogProductServiceSender(address sender);
55
-
56
- function _initialize(
57
- address owner,
58
- bytes memory data
59
- )
60
- internal
61
- virtual override
62
- initializer
63
- {
64
- address registryAddress;
65
- address initialOwner;
66
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
67
-
68
- initializeService(registryAddress, owner);
69
-
70
- _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getMajorVersion()));
71
- _bundleService = IBundleService(getRegistry().getServiceAddress(BUNDLE(), getMajorVersion()));
72
-
73
- registerInterface(type(IPolicyService).interfaceId);
74
- }
75
-
76
-
77
- function getDomain() public pure override(IService, Service) returns(ObjectType) {
78
- return POLICY();
79
- }
80
-
81
-
82
- function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
83
- IRegistry.ObjectInfo memory productInfo;
84
- (productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
85
- product = Product(productInfo.objectAddress);
86
- }
87
-
88
- // TODO: no access restrictions
89
- function calculatePremium(
90
- RiskId riskId,
91
- uint256 sumInsuredAmount,
92
- uint256 lifetime,
93
- bytes memory applicationData,
94
- NftId bundleNftId,
95
- ReferralId referralId
96
- )
97
- public
98
- view
99
- virtual override
100
- returns (
101
- uint256 premiumAmount,
102
- uint256 productFeeAmount,
103
- uint256 poolFeeAmount,
104
- uint256 bundleFeeAmount,
105
- uint256 distributionFeeAmount
106
- )
107
- {
108
- Product product = _getAndVerifyInstanceAndProduct();
109
- uint256 netPremiumAmount = product.calculateNetPremium(
110
- sumInsuredAmount,
111
- riskId,
112
- lifetime,
113
- applicationData
114
- );
115
-
116
- (
117
- productFeeAmount,
118
- poolFeeAmount,
119
- bundleFeeAmount,
120
- distributionFeeAmount
121
- ) = _calculateFeeAmounts(
122
- netPremiumAmount,
123
- product,
124
- bundleNftId,
125
- referralId
126
- );
127
-
128
- premiumAmount = netPremiumAmount + productFeeAmount;
129
- premiumAmount += poolFeeAmount + bundleFeeAmount;
130
- premiumAmount += distributionFeeAmount;
131
- }
132
-
133
- function _calculateFeeAmounts(
134
- uint256 netPremiumAmount,
135
- Product product,
136
- NftId bundleNftId,
137
- ReferralId referralId
138
- )
139
- internal
140
- view
141
- returns (
142
- uint256 productFeeAmount,
143
- uint256 poolFeeAmount,
144
- uint256 bundleFeeAmount,
145
- uint256 distributionFeeAmount
146
- )
147
- {
148
- InstanceReader instanceReader;
149
- {
150
- IInstance instance = product.getInstance();
151
- instanceReader = instance.getInstanceReader();
152
- }
153
-
154
- NftId poolNftId = product.getPoolNftId();
155
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
156
- require(bundleInfo.poolNftId == poolNftId,"ERROR:PRS-035:BUNDLE_POOL_MISMATCH");
157
-
158
- {
159
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
160
- (productFeeAmount,) = FeeLib.calculateFee(productSetupInfo.productFee, netPremiumAmount);
161
- }
162
- {
163
- ISetup.PoolSetupInfo memory poolSetupInfo = instanceReader.getPoolSetupInfo(poolNftId);
164
- (poolFeeAmount,) = FeeLib.calculateFee(poolSetupInfo.poolFee, netPremiumAmount);
165
- }
166
- {
167
- NftId distributionNftId = product.getDistributionNftId();
168
- ISetup.DistributionSetupInfo memory distributionSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
169
- (distributionFeeAmount,) = FeeLib.calculateFee(distributionSetupInfo.distributionFee, netPremiumAmount);
170
- }
171
-
172
- (bundleFeeAmount,) = FeeLib.calculateFee(bundleInfo.fee, netPremiumAmount);
173
- }
174
-
175
- function _getAndVerifyUnderwritingSetup(
176
- IInstance instance,
177
- InstanceReader instanceReader,
178
- IPolicy.PolicyInfo memory policyInfo,
179
- ISetup.ProductSetupInfo memory productSetupInfo
180
- )
181
- internal
182
- view
183
- returns (
184
- NftId poolNftId,
185
- NftId bundleNftId,
186
- IBundle.BundleInfo memory bundleInfo,
187
- uint256 collateralAmount
188
- )
189
- {
190
- // check match between policy and bundle (via pool)
191
- poolNftId = productSetupInfo.poolNftId;
192
- bundleNftId = policyInfo.bundleNftId;
193
- bundleInfo = instanceReader.getBundleInfo(bundleNftId);
194
- require(bundleInfo.poolNftId == poolNftId, "POLICY_BUNDLE_MISMATCH");
195
-
196
- // calculate required collateral
197
- ISetup.PoolSetupInfo memory poolInfo = instanceReader.getPoolSetupInfo(poolNftId);
198
-
199
- // obtain remaining return values
200
- // TODO required collateral amount should be calculated by pool service, not policy service
201
- collateralAmount = calculateRequiredCollateral(poolInfo.collateralizationLevel, policyInfo.sumInsuredAmount);
202
- }
203
-
204
-
205
- function decline(
206
- NftId policyNftId
207
- )
208
- external
209
- override
210
- {
211
- require(false, "ERROR:PRS-235:NOT_YET_IMPLEMENTED");
212
- }
213
-
214
-
215
- /// @dev underwites application which includes the locking of the required collateral from the pool.
216
- function underwrite(
217
- NftId applicationNftId, // = policyNftId
218
- bool requirePremiumPayment,
219
- Timestamp activateAt
220
- )
221
- external
222
- virtual override
223
- {
224
- // check caller is registered product
225
- IInstance instance;
226
- InstanceReader instanceReader;
227
- NftId productNftId;
228
- {
229
- IRegistry.ObjectInfo memory productInfo;
230
- (productInfo, instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
231
- instanceReader = instance.getInstanceReader();
232
- productNftId = productInfo.nftId;
233
- }
234
-
235
- // check policy matches with calling product
236
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(applicationNftId);
237
- require(policyInfo.productNftId == productNftId, "POLICY_PRODUCT_MISMATCH");
238
-
239
- // check policy is in state applied
240
- require(instanceReader.getPolicyState(applicationNftId) == APPLIED(), "ERROR:PRS-021:STATE_NOT_APPLIED");
241
-
242
- (
243
- NftId poolNftId,
244
- NftId bundleNftId,
245
- IBundle.BundleInfo memory bundleInfo,
246
- uint256 collateralAmount
247
- ) = _getAndVerifyUnderwritingSetup(
248
- instance,
249
- instanceReader,
250
- policyInfo,
251
- instanceReader.getProductSetupInfo(productNftId)
252
- );
253
-
254
- StateId newPolicyState = UNDERWRITTEN();
255
-
256
- // optional activation of policy
257
- if(activateAt > zeroTimestamp()) {
258
- newPolicyState = ACTIVE();
259
- policyInfo.activatedAt = activateAt;
260
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
261
- }
262
-
263
- // lock bundle collateral
264
- uint256 netPremiumAmount = 0; // > 0 if immediate premium payment
265
-
266
- // optional collection of premium
267
- if(requirePremiumPayment) {
268
- netPremiumAmount = _processPremiumByTreasury(
269
- instance,
270
- productNftId,
271
- applicationNftId,
272
- policyInfo.premiumAmount);
273
-
274
- policyInfo.premiumPaidAmount += policyInfo.premiumAmount;
275
- }
276
-
277
- // lock collateral and update bundle book keeping
278
- // TODO introduct indirection via pool service?
279
- // well pool would only need to be involved when a part of the collateral
280
- // is provided by a "re insurance policy" of the pool
281
- // but then again the policiy would likely best be attached to the bundle. really? why?
282
- // retention level: fraction of sum insured that product will cover from pool funds directly
283
- // eg retention level 30%, payouts up to 30% of the sum insured will be made from the product's pool directly
284
- // for the remaining 70% the pool owns a policy that will cover claims that exceed the 30% of the sum insured
285
- // open points:
286
- // - do we need a link of a bundle to this policy or is it enough to know that the pool has an active policy?
287
- // - when to buy such policies and for which amount? manual trigger or link to bundle creation and/or funding?
288
- bundleInfo = _bundleService.lockCollateral(
289
- instance,
290
- applicationNftId,
291
- bundleNftId,
292
- collateralAmount,
293
- netPremiumAmount);
294
-
295
- instance.updatePolicy(applicationNftId, policyInfo, newPolicyState);
296
-
297
- // also verify/confirm application by pool if necessary
298
- if(instanceReader.getPoolSetupInfo(poolNftId).isVerifyingApplications) {
299
- IPoolComponent pool = IPoolComponent(
300
- getRegistry().getObjectInfo(poolNftId).objectAddress);
301
-
302
- pool.verifyApplication(
303
- applicationNftId,
304
- policyInfo.applicationData,
305
- bundleInfo.filter,
306
- collateralAmount);
307
- }
308
-
309
- // TODO: add logging
310
- }
311
-
312
-
313
- function calculateRequiredCollateral(UFixed collateralizationLevel, uint256 sumInsuredAmount) public pure override returns(uint256 collateralAmount) {
314
- UFixed sumInsuredUFixed = UFixedLib.toUFixed(sumInsuredAmount);
315
- UFixed collateralUFixed = collateralizationLevel * sumInsuredUFixed;
316
- return collateralUFixed.toInt();
317
- }
318
-
319
- function collectPremium(NftId policyNftId, Timestamp activateAt) external override {
320
- // check caller is registered product
321
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
322
- InstanceReader instanceReader = instance.getInstanceReader();
323
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
324
-
325
- if (policyInfo.premiumPaidAmount == policyInfo.premiumAmount) {
326
- revert ErrorIPolicyServicePremiumAlreadyPaid(policyNftId, policyInfo.premiumPaidAmount);
327
- }
328
-
329
- uint256 unpaidPremiumAmount = policyInfo.premiumAmount - policyInfo.premiumPaidAmount;
330
-
331
- uint256 netPremiumAmount = _processPremiumByTreasury(
332
- instance,
333
- productInfo.nftId,
334
- policyNftId,
335
- unpaidPremiumAmount);
336
-
337
- policyInfo.premiumPaidAmount += unpaidPremiumAmount;
338
-
339
- _bundleService.increaseBalance(instance, policyInfo.bundleNftId, netPremiumAmount);
340
- instance.updatePolicy(policyNftId, policyInfo, KEEP_STATE());
341
-
342
- if(activateAt.gtz() && policyInfo.activatedAt.eqz()) {
343
- activate(policyNftId, activateAt);
344
- }
345
-
346
- // TODO: add logging
347
- }
348
-
349
- function activate(NftId policyNftId, Timestamp activateAt) public override {
350
- // check caller is registered product
351
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
352
- InstanceReader instanceReader = instance.getInstanceReader();
353
-
354
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
355
-
356
- require(
357
- policyInfo.activatedAt.eqz(),
358
- "ERROR:PRS-020:ALREADY_ACTIVATED");
359
-
360
- policyInfo.activatedAt = activateAt;
361
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
362
-
363
- instance.updatePolicy(policyNftId, policyInfo, ACTIVE());
364
-
365
- // TODO: add logging
366
- }
367
-
368
-
369
- function expire(
370
- NftId policyNftId
371
- )
372
- external
373
- override
374
- // solhint-disable-next-line no-empty-blocks
375
- {
376
-
377
- }
378
-
379
- function close(
380
- NftId policyNftId
381
- )
382
- external
383
- override
384
- {
385
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
386
- InstanceReader instanceReader = instance.getInstanceReader();
387
-
388
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
389
-
390
- if (policyInfo.activatedAt.eqz()) {
391
- revert ErrorIPolicyServicePolicyNotActivated(policyNftId);
392
- }
393
-
394
- StateId state = instanceReader.getPolicyState(policyNftId);
395
- if (state != ACTIVE()) {
396
- revert ErrorIPolicyServicePolicyNotActive(policyNftId, state);
397
- }
398
-
399
- if (policyInfo.closedAt.gtz()) {
400
- revert ErrorIPolicyServicePolicyAlreadyClosed(policyNftId);
401
- }
402
-
403
- if (policyInfo.premiumAmount != policyInfo.premiumPaidAmount) {
404
- revert ErrorIPolicyServicePremiumNotFullyPaid(policyNftId, policyInfo.premiumAmount, policyInfo.premiumPaidAmount);
405
- }
406
-
407
- if (policyInfo.openClaimsCount > 0) {
408
- revert ErrorIPolicyServiceOpenClaims(policyNftId, policyInfo.openClaimsCount);
409
- }
410
-
411
- if (TimestampLib.blockTimestamp().lte(policyInfo.expiredAt) && (policyInfo.payoutAmount < policyInfo.sumInsuredAmount)) {
412
- revert ErrorIPolicyServicePolicyHasNotExpired(policyNftId, policyInfo.expiredAt);
413
- }
414
-
415
- policyInfo.closedAt = TimestampLib.blockTimestamp();
416
-
417
- _bundleService.closePolicy(instance, policyNftId, policyInfo.bundleNftId, policyInfo.sumInsuredAmount);
418
- instance.updatePolicy(policyNftId, policyInfo, CLOSED());
419
- }
420
-
421
- function _getPoolNftId(
422
- IInstance instance,
423
- NftId productNftId
424
- )
425
- internal
426
- view
427
- returns (NftId poolNftid)
428
- {
429
- InstanceReader instanceReader = instance.getInstanceReader();
430
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
431
- return productSetupInfo.poolNftId;
432
- }
433
-
434
-
435
- function _processPremiumByTreasury(
436
- IInstance instance,
437
- NftId productNftId,
438
- NftId policyNftId,
439
- uint256 premiumAmount
440
- )
441
- internal
442
- returns (uint256 netPremiumAmount)
443
- {
444
- // process token transfer(s)
445
- if(premiumAmount > 0) {
446
- ISetup.ProductSetupInfo memory productSetupInfo = instance.getInstanceReader().getProductSetupInfo(productNftId);
447
- TokenHandler tokenHandler = productSetupInfo.tokenHandler;
448
- address policyOwner = getRegistry().ownerOf(policyNftId);
449
- ISetup.PoolSetupInfo memory poolSetupInfo = instance.getInstanceReader().getPoolSetupInfo(productSetupInfo.poolNftId);
450
- address poolWallet = poolSetupInfo.wallet;
451
- netPremiumAmount = premiumAmount;
452
- Fee memory productFee = productSetupInfo.productFee;
453
-
454
- if (FeeLib.feeIsZero(productFee)) {
455
- tokenHandler.transfer(
456
- policyOwner,
457
- poolWallet,
458
- premiumAmount
459
- );
460
- } else {
461
- (uint256 productFeeAmount, uint256 netAmount) = FeeLib.calculateFee(productSetupInfo.productFee, netPremiumAmount);
462
- address productWallet = productSetupInfo.wallet;
463
- if (tokenHandler.getToken().allowance(policyOwner, address(tokenHandler)) < premiumAmount) {
464
- revert ErrorIPolicyServiceInsufficientAllowance(policyOwner, address(tokenHandler), premiumAmount);
465
- }
466
- tokenHandler.transfer(policyOwner, productWallet, productFeeAmount);
467
- tokenHandler.transfer(policyOwner, poolWallet, netAmount);
468
- netPremiumAmount = netAmount;
469
- }
470
- }
471
-
472
- // TODO: add logging
473
- }
474
- }
@@ -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
- }
@@ -1,109 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Pool} from "../../components/Pool.sol";
5
- import {IRegistry} from "../../registry/IRegistry.sol";
6
- import {IInstance} from "../../instance/IInstance.sol";
7
- import {IBundle} from "../../instance/module/IBundle.sol";
8
- import {TokenHandler} from "../../instance/module/ITreasury.sol";
9
- import {ISetup} from "../module/ISetup.sol";
10
- import {IPolicy} from "../module/IPolicy.sol";
11
-
12
- import {IVersionable} from "../../shared/IVersionable.sol";
13
- import {Versionable} from "../../shared/Versionable.sol";
14
- import {INftOwnable} from "../../shared/INftOwnable.sol";
15
-
16
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
17
- import {ObjectType, POOL, BUNDLE} from "../../types/ObjectType.sol";
18
- import {POOL_OWNER_ROLE, RoleId} from "../../types/RoleId.sol";
19
- import {Fee, FeeLib} from "../../types/Fee.sol";
20
- import {Version, VersionLib} from "../../types/Version.sol";
21
- import {KEEP_STATE, StateId} from "../../types/StateId.sol";
22
- import {TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
23
-
24
- import {IService} from "../../shared/IService.sol";
25
- import {Service} from "../../shared/Service.sol";
26
- import {BundleManager} from "../BundleManager.sol";
27
- import {ComponentService} from "../base/ComponentService.sol";
28
- import {IPoolService} from "./IPoolService.sol";
29
- import {IRegistryService} from "../../registry/IRegistryService.sol";
30
- import {InstanceService} from "../InstanceService.sol";
31
- import {InstanceReader} from "../InstanceReader.sol";
32
- import {IComponent} from "../../components/IComponent.sol";
33
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
34
-
35
- string constant POOL_SERVICE_NAME = "PoolService";
36
-
37
- contract PoolService is
38
- ComponentService,
39
- IPoolService
40
- {
41
- using NftIdLib for NftId;
42
-
43
- address internal _registryAddress;
44
-
45
- function _initialize(
46
- address owner,
47
- bytes memory data
48
- )
49
- internal
50
- initializer
51
- virtual override
52
- {
53
- address registryAddress;
54
- address initialOwner;
55
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
56
- // TODO while PoolService is not deployed in PoolServiceManager constructor
57
- // owner is PoolServiceManager deployer
58
- initializeService(registryAddress, owner);
59
- registerInterface(type(IPoolService).interfaceId);
60
- }
61
-
62
- function getDomain() public pure override(Service, IService) returns(ObjectType) {
63
- return POOL();
64
- }
65
-
66
- function register(address poolAddress)
67
- external
68
- returns(NftId poolNftId)
69
- {
70
- (
71
- IComponent component,
72
- address owner,
73
- IInstance instance,
74
- NftId instanceNftId
75
- ) = _checkComponentForRegistration(
76
- poolAddress,
77
- POOL(),
78
- POOL_OWNER_ROLE());
79
-
80
- IPoolComponent pool = IPoolComponent(poolAddress);
81
- IRegistry.ObjectInfo memory poolInfo = getRegistryService().registerPool(pool, owner);
82
- pool.linkToRegisteredNftId();
83
- poolNftId = poolInfo.nftId;
84
-
85
- instance.createPoolSetup(poolNftId, pool.getSetupInfo());
86
- getInstanceService().createGifTarget(instanceNftId, poolAddress, pool.getName());
87
- getInstanceService().grantPoolDefaultPermissions(instanceNftId, poolAddress, pool.getName());
88
- }
89
-
90
- function setFees(
91
- Fee memory poolFee,
92
- Fee memory stakingFee,
93
- Fee memory performanceFee
94
- )
95
- external
96
- override
97
- {
98
- (IRegistry.ObjectInfo memory poolInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
99
- InstanceReader instanceReader = instance.getInstanceReader();
100
- NftId poolNftId = poolInfo.nftId;
101
-
102
- ISetup.PoolSetupInfo memory poolSetupInfo = instanceReader.getPoolSetupInfo(poolNftId);
103
- poolSetupInfo.poolFee = poolFee;
104
- poolSetupInfo.stakingFee = stakingFee;
105
- poolSetupInfo.performanceFee = performanceFee;
106
-
107
- instance.updatePoolSetup(poolNftId, poolSetupInfo, KEEP_STATE());
108
- }
109
- }
@@ -1,51 +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 {PoolService} from "./PoolService.sol";
7
- import {Registry} from "../../registry/Registry.sol";
8
- import {RegistryService} from "../../registry/RegistryService.sol";
9
- import {REGISTRY} from "../../types/ObjectType.sol";
10
-
11
- contract PoolServiceManager is ProxyManager {
12
-
13
- PoolService private _poolService;
14
-
15
- /// @dev initializes proxy manager with pool service implementation
16
- constructor(
17
- address registryAddress
18
- )
19
- ProxyManager(registryAddress)
20
- {
21
- PoolService poolSrv = new PoolService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
24
- address(poolSrv),
25
- data);
26
-
27
- _poolService = PoolService(address(versionable));
28
-
29
- // TODO `this` must have a role or own nft to register service
30
- //Registry registry = Registry(registryAddress);
31
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _poolService.getMajorVersion());
32
- //RegistryService registryService = RegistryService(registryServiceAddress);
33
- //registryService.registerService(_poolService);
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(_poolService));
40
- }
41
-
42
- //--- view functions ----------------------------------------------------//
43
- function getPoolService()
44
- external
45
- view
46
- returns (PoolService poolService)
47
- {
48
- return _poolService;
49
- }
50
-
51
- }