@etherisc/gif-next 0.0.2-e2d8c7d-942 → 0.0.2-e31e2fd-778

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 (714) hide show
  1. package/README.md +59 -18
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -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/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +483 -552
  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 +1342 -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/distribution/Distribution.sol/Distribution.json +1012 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1405 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +906 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +932 -0
  36. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  38. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  39. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  40. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  41. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  42. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  44. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  45. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  46. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  47. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +265 -1337
  48. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  49. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +436 -175
  50. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/Instance.sol/Instance.json +320 -3074
  52. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1623 -0
  54. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  56. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  57. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +842 -414
  58. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +501 -527
  60. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +325 -171
  62. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3587 -0
  64. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  66. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  68. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  69. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  70. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  72. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  74. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  76. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  78. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  79. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  82. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  83. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  84. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  86. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  88. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  90. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  92. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +316 -305
  94. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
  96. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +927 -0
  98. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +710 -0
  100. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -0
  102. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  104. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  106. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +802 -0
  108. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
  110. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  111. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  112. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  113. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1198 -0
  114. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  115. package/artifacts/contracts/pool/Pool.sol/Pool.json +1034 -0
  116. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  117. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1474 -0
  118. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +726 -0
  120. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +737 -0
  122. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +698 -0
  124. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  125. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -0
  126. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  128. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  129. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1346 -0
  130. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +814 -0
  132. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  133. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +229 -248
  134. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  135. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +886 -0
  136. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +835 -0
  138. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  139. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +283 -233
  140. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  141. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +948 -0
  142. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  143. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IRiskService.sol/IRiskService.json} +144 -112
  144. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  145. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1191 -0
  146. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +762 -0
  148. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  149. package/artifacts/contracts/product/PricingService.sol/PricingService.json +865 -0
  150. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +746 -0
  152. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  153. package/artifacts/contracts/product/Product.sol/Product.json +1054 -0
  154. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  155. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  156. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  158. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  159. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  160. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  161. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +592 -127
  162. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +290 -297
  164. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  165. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  166. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  167. package/artifacts/contracts/registry/Registry.sol/Registry.json +924 -165
  168. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1858 -0
  170. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +400 -348
  172. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +315 -131
  174. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  176. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  177. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  178. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  179. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  180. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
  182. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  183. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/Component.sol/Component.json} +340 -108
  184. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1573 -0
  186. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +794 -0
  188. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  189. package/artifacts/contracts/shared/{RegisterableUpgradable.sol/RegisterableUpgradable.json → ComponentVerifyingService.sol/ComponentVerifyingService.json} +149 -159
  190. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  191. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  192. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +274 -190
  194. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  196. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +356 -325
  198. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  199. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +60 -34
  200. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  201. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  202. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  204. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  206. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  208. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  209. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  210. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  211. package/artifacts/contracts/shared/IService.sol/IService.json +97 -172
  212. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  213. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  214. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  215. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  216. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  217. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +793 -0
  218. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  219. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +88 -20
  220. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  221. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  222. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  223. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  224. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  225. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +65 -30
  226. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  227. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  228. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +44 -54
  230. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  231. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  232. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Service.sol/Service.json +115 -183
  234. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  235. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  236. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  237. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  238. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  239. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  240. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  241. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  242. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  244. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  245. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  246. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  248. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +750 -0
  250. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  252. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1236 -0
  254. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  256. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  258. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  259. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  260. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  261. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  262. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  264. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  266. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  268. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  270. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  272. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  274. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  276. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  277. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  278. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  280. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  282. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  284. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  286. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  288. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  290. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  292. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  294. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  296. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  298. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  300. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  302. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  304. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  306. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  308. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  310. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  311. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  312. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  313. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  314. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  315. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  316. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  317. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  318. package/contracts/authorization/AccessAdmin.sol +592 -0
  319. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  320. package/contracts/authorization/Authorization.sol +217 -0
  321. package/contracts/authorization/IAccess.sol +48 -0
  322. package/contracts/authorization/IAccessAdmin.sol +135 -0
  323. package/contracts/authorization/IAuthorization.sol +54 -0
  324. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  325. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  326. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  327. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  328. package/contracts/distribution/BasicDistribution.sol +138 -0
  329. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  330. package/contracts/distribution/Distribution.sol +295 -0
  331. package/contracts/distribution/DistributionService.sol +336 -0
  332. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  333. package/contracts/distribution/IDistributionComponent.sol +52 -0
  334. package/contracts/distribution/IDistributionService.sol +101 -0
  335. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  336. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  337. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  338. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  339. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +40 -43
  340. package/contracts/instance/IInstance.sol +56 -53
  341. package/contracts/instance/IInstanceService.sol +77 -19
  342. package/contracts/instance/Instance.sol +157 -392
  343. package/contracts/instance/InstanceAdmin.sol +285 -0
  344. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  345. package/contracts/instance/InstanceReader.sol +202 -87
  346. package/contracts/instance/InstanceService.sol +383 -216
  347. package/contracts/instance/InstanceServiceManager.sol +14 -32
  348. package/contracts/instance/InstanceStore.sol +287 -0
  349. package/contracts/instance/base/BalanceStore.sol +123 -0
  350. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  351. package/contracts/instance/base/ObjectCounter.sol +21 -0
  352. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  353. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +20 -42
  354. package/contracts/instance/module/IAccess.sol +29 -21
  355. package/contracts/instance/module/IBundle.sol +8 -8
  356. package/contracts/instance/module/IComponents.sol +46 -0
  357. package/contracts/instance/module/IDistribution.sol +6 -4
  358. package/contracts/instance/module/IPolicy.sol +58 -19
  359. package/contracts/instance/module/IRisk.sol +1 -1
  360. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  361. package/contracts/oracle/BasicOracle.sol +48 -0
  362. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  363. package/contracts/oracle/IOracle.sol +36 -0
  364. package/contracts/oracle/IOracleComponent.sol +33 -0
  365. package/contracts/oracle/IOracleService.sol +65 -0
  366. package/contracts/oracle/Oracle.sol +167 -0
  367. package/contracts/oracle/OracleService.sol +281 -0
  368. package/contracts/oracle/OracleServiceManager.sol +39 -0
  369. package/contracts/pool/BasicPool.sol +166 -0
  370. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  371. package/contracts/pool/BundleService.sol +438 -0
  372. package/contracts/pool/BundleServiceManager.sol +39 -0
  373. package/contracts/pool/IBundleService.sol +134 -0
  374. package/contracts/pool/IPoolComponent.sol +58 -0
  375. package/contracts/pool/IPoolService.sol +160 -0
  376. package/contracts/pool/Pool.sol +326 -0
  377. package/contracts/pool/PoolService.sol +508 -0
  378. package/contracts/pool/PoolServiceManager.sol +39 -0
  379. package/contracts/product/ApplicationService.sol +247 -0
  380. package/contracts/product/ApplicationServiceManager.sol +38 -0
  381. package/contracts/product/BasicProduct.sol +53 -0
  382. package/contracts/product/BasicProductAuthorization.sol +43 -0
  383. package/contracts/product/ClaimService.sol +536 -0
  384. package/contracts/product/ClaimServiceManager.sol +38 -0
  385. package/contracts/product/IApplicationService.sol +63 -0
  386. package/contracts/product/IClaimService.sol +122 -0
  387. package/contracts/product/IPolicyService.sol +75 -0
  388. package/contracts/product/IPricingService.sol +39 -0
  389. package/contracts/product/IProductComponent.sol +39 -0
  390. package/contracts/product/IRiskService.sol +33 -0
  391. package/contracts/product/PolicyService.sol +637 -0
  392. package/contracts/product/PolicyServiceManager.sol +39 -0
  393. package/contracts/product/PricingService.sol +300 -0
  394. package/contracts/product/PricingServiceManager.sol +39 -0
  395. package/contracts/product/Product.sol +425 -0
  396. package/contracts/product/RiskService.sol +96 -0
  397. package/contracts/product/RiskServiceManager.sol +39 -0
  398. package/contracts/registry/ChainNft.sol +79 -31
  399. package/contracts/registry/IRegistry.sol +122 -35
  400. package/contracts/registry/IRegistryService.sol +47 -28
  401. package/contracts/registry/ITransferInterceptor.sol +1 -0
  402. package/contracts/registry/Registry.sol +527 -273
  403. package/contracts/registry/RegistryAdmin.sol +464 -0
  404. package/contracts/registry/RegistryService.sol +111 -217
  405. package/contracts/registry/RegistryServiceManager.sol +26 -53
  406. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  407. package/contracts/registry/ReleaseRegistry.sol +491 -0
  408. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  409. package/contracts/registry/TokenRegistry.sol +261 -57
  410. package/contracts/shared/Component.sol +268 -0
  411. package/contracts/shared/ComponentService.sol +641 -0
  412. package/contracts/shared/ComponentServiceManager.sol +38 -0
  413. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  414. package/contracts/shared/ContractLib.sol +38 -0
  415. package/contracts/shared/IComponent.sol +70 -0
  416. package/contracts/shared/IComponentService.sol +108 -0
  417. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  418. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  419. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  420. package/contracts/shared/INftOwnable.sol +13 -12
  421. package/contracts/shared/IPolicyHolder.sol +35 -0
  422. package/contracts/shared/IRegisterable.sol +4 -6
  423. package/contracts/shared/IRegistryLinked.sol +11 -0
  424. package/contracts/shared/IService.sol +16 -6
  425. package/contracts/shared/InitializableCustom.sol +177 -0
  426. package/contracts/shared/InitializableERC165.sol +27 -0
  427. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  428. package/contracts/shared/KeyValueStore.sol +131 -0
  429. package/contracts/shared/Lifecycle.sol +77 -0
  430. package/contracts/shared/NftIdSet.sol +65 -0
  431. package/contracts/shared/NftOwnable.sol +59 -86
  432. package/contracts/shared/PolicyHolder.sol +58 -0
  433. package/contracts/shared/Registerable.sol +23 -38
  434. package/contracts/shared/RegistryLinked.sol +44 -0
  435. package/contracts/shared/Service.sol +62 -30
  436. package/contracts/shared/TokenHandler.sol +122 -10
  437. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  438. package/contracts/staking/IStaking.sol +168 -0
  439. package/contracts/staking/IStakingService.sol +160 -0
  440. package/contracts/staking/StakeManagerLib.sol +224 -0
  441. package/contracts/staking/Staking.sol +498 -0
  442. package/contracts/staking/StakingLifecycle.sol +23 -0
  443. package/contracts/staking/StakingManager.sol +52 -0
  444. package/contracts/staking/StakingReader.sol +183 -0
  445. package/contracts/staking/StakingService.sol +407 -0
  446. package/contracts/staking/StakingServiceManager.sol +44 -0
  447. package/contracts/staking/StakingStore.sol +605 -0
  448. package/contracts/staking/TargetManagerLib.sol +211 -0
  449. package/contracts/{types → type}/AddressSet.sol +1 -1
  450. package/contracts/type/Amount.sol +135 -0
  451. package/contracts/{types → type}/Blocknumber.sol +27 -3
  452. package/contracts/type/ClaimId.sol +75 -0
  453. package/contracts/{types → type}/DistributorType.sol +2 -2
  454. package/contracts/{types → type}/Fee.sol +33 -23
  455. package/contracts/{types → type}/NftId.sol +21 -15
  456. package/contracts/{types → type}/NftIdSet.sol +2 -2
  457. package/contracts/type/ObjectType.sol +275 -0
  458. package/contracts/type/PayoutId.sol +82 -0
  459. package/contracts/{types → type}/Referral.sol +6 -1
  460. package/contracts/type/RequestId.sol +75 -0
  461. package/contracts/{types → type}/RiskId.sol +1 -1
  462. package/contracts/type/RoleId.sol +174 -0
  463. package/contracts/type/Seconds.sol +101 -0
  464. package/contracts/type/Selector.sol +102 -0
  465. package/contracts/{types → type}/StateId.sol +35 -4
  466. package/contracts/type/String.sol +53 -0
  467. package/contracts/{types → type}/Timestamp.sol +34 -15
  468. package/contracts/{types → type}/UFixed.sol +35 -9
  469. package/contracts/{types → type}/Version.sol +5 -2
  470. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  471. package/contracts/upgradeability/ProxyManager.sol +231 -0
  472. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  473. package/contracts/upgradeability/Versionable.sol +59 -0
  474. package/package.json +10 -7
  475. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  476. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  477. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -744
  478. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  479. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  480. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  481. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  482. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  483. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  484. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  485. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  486. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -939
  487. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  488. package/artifacts/contracts/components/Product.sol/Product.json +0 -855
  489. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  490. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  491. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  493. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  495. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  497. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  499. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  501. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  503. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  504. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  505. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  506. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  507. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  508. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  509. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  510. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  512. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  514. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  516. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  518. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  519. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  520. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  521. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  522. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  523. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  525. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  526. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  527. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  528. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  529. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  530. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  531. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  532. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  533. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  534. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -940
  536. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  537. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  538. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  539. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  540. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  543. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  546. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  547. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  548. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  549. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  550. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -923
  553. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -440
  555. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  557. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -684
  559. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
  561. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
  564. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  566. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -984
  571. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
  573. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -718
  575. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -428
  577. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -768
  579. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  581. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  582. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  583. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  584. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  585. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  586. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  587. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  588. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  589. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  590. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  591. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  592. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  593. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  594. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  595. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  596. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  597. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  598. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  599. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  600. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  601. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  602. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  604. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  606. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  608. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  609. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  610. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  611. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  612. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  614. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  616. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  618. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  620. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  621. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  622. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  624. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  625. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  626. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  628. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  630. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  632. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  634. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  636. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  639. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  641. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  643. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  645. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  647. package/contracts/components/BaseComponent.sol +0 -132
  648. package/contracts/components/Distribution.sol +0 -163
  649. package/contracts/components/IBaseComponent.sol +0 -31
  650. package/contracts/components/IDistributionComponent.sol +0 -44
  651. package/contracts/components/IPoolComponent.sol +0 -66
  652. package/contracts/components/IProductComponent.sol +0 -35
  653. package/contracts/components/Pool.sol +0 -271
  654. package/contracts/components/Product.sol +0 -292
  655. package/contracts/experiment/cloning/Cloner.sol +0 -47
  656. package/contracts/experiment/errors/Require.sol +0 -38
  657. package/contracts/experiment/errors/Revert.sol +0 -44
  658. package/contracts/experiment/inheritance/A.sol +0 -53
  659. package/contracts/experiment/inheritance/B.sol +0 -28
  660. package/contracts/experiment/inheritance/C.sol +0 -34
  661. package/contracts/experiment/inheritance/IA.sol +0 -13
  662. package/contracts/experiment/inheritance/IB.sol +0 -10
  663. package/contracts/experiment/inheritance/IC.sol +0 -12
  664. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  665. package/contracts/experiment/statemachine/ISM.sol +0 -25
  666. package/contracts/experiment/statemachine/SM.sol +0 -57
  667. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  668. package/contracts/experiment/types/TypeA.sol +0 -47
  669. package/contracts/experiment/types/TypeB.sol +0 -29
  670. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  671. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  672. package/contracts/instance/IInstanceBase.sol +0 -26
  673. package/contracts/instance/InstanceAccessManager.sol +0 -288
  674. package/contracts/instance/InstanceBase.sol +0 -41
  675. package/contracts/instance/base/ComponentServiceBase.sol +0 -72
  676. package/contracts/instance/base/IInstanceBase.sol +0 -23
  677. package/contracts/instance/base/KeyValueStore.sol +0 -172
  678. package/contracts/instance/base/Lifecycle.sol +0 -100
  679. package/contracts/instance/module/ISetup.sol +0 -46
  680. package/contracts/instance/module/ITreasury.sol +0 -23
  681. package/contracts/instance/service/BundleService.sol +0 -260
  682. package/contracts/instance/service/BundleServiceManager.sol +0 -54
  683. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  684. package/contracts/instance/service/DistributionService.sol +0 -118
  685. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  686. package/contracts/instance/service/IBundleService.sol +0 -45
  687. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  688. package/contracts/instance/service/IDistributionService.sol +0 -12
  689. package/contracts/instance/service/IPolicyService.sol +0 -87
  690. package/contracts/instance/service/IPoolService.sol +0 -20
  691. package/contracts/instance/service/IProductService.sol +0 -40
  692. package/contracts/instance/service/PolicyService.sol +0 -508
  693. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  694. package/contracts/instance/service/PoolService.sol +0 -124
  695. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  696. package/contracts/instance/service/ProductService.sol +0 -173
  697. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  698. package/contracts/shared/ContractDeployerLib.sol +0 -72
  699. package/contracts/shared/ERC165.sol +0 -25
  700. package/contracts/shared/ProxyManager.sol +0 -94
  701. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  702. package/contracts/shared/Versionable.sol +0 -147
  703. package/contracts/test/TestFee.sol +0 -25
  704. package/contracts/test/TestRegisterable.sol +0 -18
  705. package/contracts/test/TestRoleId.sol +0 -14
  706. package/contracts/test/TestService.sol +0 -24
  707. package/contracts/test/TestToken.sol +0 -26
  708. package/contracts/test/TestVersion.sol +0 -44
  709. package/contracts/test/TestVersionable.sol +0 -17
  710. package/contracts/types/ChainId.sol +0 -38
  711. package/contracts/types/NumberId.sol +0 -52
  712. package/contracts/types/ObjectType.sol +0 -152
  713. package/contracts/types/RoleId.sol +0 -92
  714. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,508 +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 {IBaseComponent} from "../../components/IBaseComponent.sol";
8
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
9
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
10
- import {IInstance} from "../IInstance.sol";
11
- import {IPolicy} from "../module/IPolicy.sol";
12
- import {IRisk} from "../module/IRisk.sol";
13
- import {IBundle} from "../module/IBundle.sol";
14
- import {IProductService} from "./IProductService.sol";
15
- import {ITreasury} from "../module/ITreasury.sol";
16
- import {ISetup} from "../module/ISetup.sol";
17
-
18
- import {TokenHandler} from "../../shared/TokenHandler.sol";
19
-
20
- import {IVersionable} from "../../shared/IVersionable.sol";
21
- import {Versionable} from "../../shared/Versionable.sol";
22
-
23
- import {Timestamp, zeroTimestamp} from "../../types/Timestamp.sol";
24
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
25
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
26
- import {ObjectType, INSTANCE, PRODUCT, POLICY} from "../../types/ObjectType.sol";
27
- import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE} from "../../types/StateId.sol";
28
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
29
- import {Fee, FeeLib} from "../../types/Fee.sol";
30
- import {ReferralId} from "../../types/Referral.sol";
31
- import {RiskId} from "../../types/RiskId.sol";
32
- import {StateId} from "../../types/StateId.sol";
33
- import {Version, VersionLib} from "../../types/Version.sol";
34
- //import {RoleId, PRODUCT_OWNER_ROLE} from "../../types/RoleId.sol";
35
-
36
- import {IService} from "../../shared/IService.sol";
37
- import {Service} from "../../shared/Service.sol";
38
- import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
39
- import {IPolicyService} from "./IPolicyService.sol";
40
- import {InstanceReader} from "../InstanceReader.sol";
41
- import {IPoolService} from "./IPoolService.sol";
42
- import {IBundleService} from "./IBundleService.sol";
43
- import {POOL_SERVICE_NAME} from "./PoolService.sol";
44
- import {BUNDLE_SERVICE_NAME} from "./BundleService.sol";
45
-
46
- string constant POLICY_SERVICE_NAME = "PolicyService";
47
-
48
- contract PolicyService is ComponentServiceBase, IPolicyService {
49
- using NftIdLib for NftId;
50
-
51
- string public constant NAME = "PolicyService";
52
-
53
- IPoolService internal _poolService;
54
- IBundleService internal _bundleService;
55
-
56
- event LogProductServiceSender(address sender);
57
-
58
- function _initialize(
59
- address owner,
60
- bytes memory data
61
- )
62
- internal
63
- initializer
64
- virtual override
65
- {
66
- address registryAddress;
67
- address initialOwner;
68
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
69
-
70
- _initializeService(registryAddress, owner);
71
-
72
- _poolService = IPoolService(_registry.getServiceAddress(POOL_SERVICE_NAME, getMajorVersion()));
73
- _bundleService = IBundleService(_registry.getServiceAddress(BUNDLE_SERVICE_NAME, getMajorVersion()));
74
-
75
- _registerInterface(type(IPolicyService).interfaceId);
76
- }
77
-
78
-
79
- function getName() public pure override(IService, Service) returns(string memory name) {
80
- return NAME;
81
- }
82
-
83
-
84
- function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
85
- IRegistry.ObjectInfo memory productInfo;
86
- (productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
87
- product = Product(productInfo.objectAddress);
88
- }
89
- // TODO no access restrictions
90
- function calculatePremium(
91
- RiskId riskId,
92
- uint256 sumInsuredAmount,
93
- uint256 lifetime,
94
- bytes memory applicationData,
95
- NftId bundleNftId,
96
- ReferralId referralId
97
- )
98
- public
99
- view
100
- override
101
- returns (
102
- uint256 premiumAmount,
103
- uint256 productFeeAmount,
104
- uint256 poolFeeAmount,
105
- uint256 bundleFeeAmount,
106
- uint256 distributionFeeAmount
107
- )
108
- {
109
- Product product = _getAndVerifyInstanceAndProduct();
110
- uint256 netPremiumAmount = product.calculateNetPremium(
111
- sumInsuredAmount,
112
- riskId,
113
- lifetime,
114
- applicationData
115
- );
116
-
117
- (
118
- productFeeAmount,
119
- poolFeeAmount,
120
- bundleFeeAmount,
121
- distributionFeeAmount
122
- ) = _calculateFeeAmounts(
123
- netPremiumAmount,
124
- product,
125
- bundleNftId,
126
- referralId
127
- );
128
-
129
- premiumAmount = netPremiumAmount + productFeeAmount;
130
- premiumAmount += poolFeeAmount + bundleFeeAmount;
131
- premiumAmount += distributionFeeAmount;
132
- }
133
-
134
- function _calculateFeeAmounts(
135
- uint256 netPremiumAmount,
136
- Product product,
137
- NftId bundleNftId,
138
- ReferralId referralId
139
- )
140
- internal
141
- view
142
- returns (
143
- uint256 productFeeAmount,
144
- uint256 poolFeeAmount,
145
- uint256 bundleFeeAmount,
146
- uint256 distributionFeeAmount
147
- )
148
- {
149
- InstanceReader instanceReader;
150
- {
151
- IInstance instance = product.getInstance();
152
- instanceReader = instance.getInstanceReader();
153
- }
154
-
155
- NftId poolNftId = product.getPoolNftId();
156
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
157
- require(bundleInfo.poolNftId == poolNftId,"ERROR:PRS-035:BUNDLE_POOL_MISMATCH");
158
-
159
- {
160
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
161
- (productFeeAmount,) = FeeLib.calculateFee(productSetupInfo.productFee, netPremiumAmount);
162
- }
163
- {
164
- ISetup.PoolSetupInfo memory poolSetupInfo = instanceReader.getPoolSetupInfo(poolNftId);
165
- (poolFeeAmount,) = FeeLib.calculateFee(poolSetupInfo.poolFee, netPremiumAmount);
166
- }
167
- {
168
- NftId distributionNftId = product.getDistributionNftId();
169
- ISetup.DistributionSetupInfo memory distributionSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
170
- (distributionFeeAmount,) = FeeLib.calculateFee(distributionSetupInfo.distributionFee, netPremiumAmount);
171
- }
172
-
173
- (bundleFeeAmount,) = FeeLib.calculateFee(bundleInfo.fee, netPremiumAmount);
174
- }
175
-
176
-
177
- function createApplication(
178
- address applicationOwner,
179
- RiskId riskId,
180
- uint256 sumInsuredAmount,
181
- uint256 lifetime,
182
- bytes memory applicationData,
183
- NftId bundleNftId,
184
- ReferralId referralId
185
- ) external override returns (NftId policyNftId) {
186
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
187
- // TODO add validations (see create bundle in pool service)
188
-
189
- policyNftId = getRegistryService().registerPolicy(
190
- IRegistry.ObjectInfo(
191
- zeroNftId(),
192
- productInfo.nftId,
193
- POLICY(),
194
- false, // intercepting property for policies is defined on product
195
- address(0),
196
- applicationOwner,
197
- ""
198
- )
199
- );
200
-
201
- (uint256 premiumAmount,,,,) = calculatePremium(
202
- riskId,
203
- sumInsuredAmount,
204
- lifetime,
205
- applicationData,
206
- bundleNftId,
207
- referralId
208
- );
209
-
210
- IPolicy.PolicyInfo memory policyInfo = IPolicy.PolicyInfo(
211
- productInfo.nftId,
212
- bundleNftId,
213
- referralId,
214
- riskId,
215
- sumInsuredAmount,
216
- premiumAmount,
217
- 0,
218
- lifetime,
219
- applicationData,
220
- "",
221
- 0,
222
- 0,
223
- 0,
224
- zeroTimestamp(),
225
- zeroTimestamp(),
226
- zeroTimestamp()
227
- );
228
-
229
- instance.createPolicy(policyNftId, policyInfo);
230
- instance.updatePolicyState(policyNftId, APPLIED());
231
-
232
- // TODO add logging
233
- }
234
-
235
- function _getAndVerifyUnderwritingSetup(
236
- IInstance instance,
237
- InstanceReader instanceReader,
238
- IPolicy.PolicyInfo memory policyInfo,
239
- ISetup.ProductSetupInfo memory productSetupInfo
240
- )
241
- internal
242
- view
243
- returns (
244
- NftId bundleNftId,
245
- IBundle.BundleInfo memory bundleInfo,
246
- uint256 collateralAmount
247
- )
248
- {
249
- // check match between policy and bundle (via pool)
250
- bundleNftId = policyInfo.bundleNftId;
251
- bundleInfo = instanceReader.getBundleInfo(bundleNftId);
252
- require(bundleInfo.poolNftId == productSetupInfo.poolNftId, "POLICY_BUNDLE_MISMATCH");
253
-
254
- // calculate required collateral
255
- NftId poolNftId = productSetupInfo.poolNftId;
256
- ISetup.PoolSetupInfo memory poolInfo = instanceReader.getPoolSetupInfo(poolNftId);
257
-
258
- // obtain remaining return values
259
- collateralAmount = calculateRequiredCollateral(poolInfo.collateralizationLevel, policyInfo.sumInsuredAmount);
260
- }
261
-
262
- function _lockCollateralInBundle(
263
- IInstance instance,
264
- NftId bundleNftId,
265
- IBundle.BundleInfo memory bundleInfo,
266
- NftId policyNftId,
267
- uint256 collateralAmount
268
- )
269
- internal
270
- returns (IBundle.BundleInfo memory)
271
- {
272
- bundleInfo.lockedAmount += collateralAmount;
273
- // TODO: track policy associated to bundle in bundlemanager (tbd) and how much is locked for it
274
- return bundleInfo;
275
- }
276
-
277
- function _underwriteByPool(
278
- NftId poolNftId,
279
- NftId policyNftId,
280
- IPolicy.PolicyInfo memory policyInfo,
281
- bytes memory bundleFilter,
282
- uint256 collateralAmount
283
- )
284
- internal
285
- {
286
- address poolAddress = getRegistry().getObjectInfo(poolNftId).objectAddress;
287
- IPoolComponent pool = IPoolComponent(poolAddress);
288
- pool.underwrite(
289
- policyNftId,
290
- policyInfo.applicationData,
291
- bundleFilter,
292
- collateralAmount);
293
- }
294
-
295
-
296
- function revoke(
297
- NftId policyNftId
298
- )
299
- external
300
- override
301
- {
302
- require(false, "ERROR:PRS-234:NOT_YET_IMPLEMENTED");
303
- }
304
-
305
-
306
- function underwrite(
307
- NftId policyNftId,
308
- bool requirePremiumPayment,
309
- Timestamp activateAt
310
- )
311
- external
312
- override
313
- {
314
- // check caller is registered product
315
- (
316
- IRegistry.ObjectInfo memory productInfo,
317
- IInstance instance
318
- ) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
319
- InstanceReader instanceReader = instance.getInstanceReader();
320
-
321
- // check match between policy and calling product
322
- NftId productNftId = productInfo.nftId;
323
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
324
- require(policyInfo.productNftId == productNftId, "POLICY_PRODUCT_MISMATCH");
325
- require(instanceReader.getPolicyState(policyNftId) == APPLIED(), "ERROR:PRS-021:STATE_NOT_APPLIED");
326
-
327
- NftId bundleNftId;
328
- IBundle.BundleInfo memory bundleInfo;
329
- uint256 collateralAmount;
330
- uint256 netPremiumAmount = 0; // > 0 if immediate premium payment
331
- {
332
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
333
- IBundle.BundleInfo memory bundleInfo;
334
-
335
- (
336
- bundleNftId,
337
- bundleInfo,
338
- collateralAmount
339
- ) = _getAndVerifyUnderwritingSetup(
340
- instance,
341
- instanceReader,
342
- policyInfo,
343
- productSetupInfo
344
- );
345
- }
346
-
347
- // lock bundle collateral
348
- bundleInfo = _lockCollateralInBundle(
349
- instance,
350
- bundleNftId,
351
- bundleInfo,
352
- policyNftId,
353
- collateralAmount);
354
- StateId newPolicyState = UNDERWRITTEN();
355
-
356
- // optional activation of policy
357
- if(activateAt > zeroTimestamp()) {
358
- newPolicyState = ACTIVE();
359
- policyInfo.activatedAt = activateAt;
360
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
361
- }
362
-
363
- // optional collection of premium
364
- if(requirePremiumPayment) {
365
- netPremiumAmount = _processPremiumByTreasury(
366
- instance,
367
- productInfo.nftId,
368
- policyNftId,
369
- policyInfo.premiumAmount);
370
-
371
- policyInfo.premiumPaidAmount += policyInfo.premiumAmount;
372
- }
373
-
374
- _bundleService.underwritePolicy(instance, policyNftId, bundleNftId, collateralAmount, netPremiumAmount);
375
- instance.updatePolicy(policyNftId, policyInfo, newPolicyState);
376
-
377
- // involve pool if necessary
378
- {
379
- ISetup.PoolSetupInfo memory poolInfo = instanceReader.getPoolSetupInfo(bundleInfo.poolNftId);
380
-
381
- if(poolInfo.isConfirmingApplication) {
382
- _underwriteByPool(
383
- bundleInfo.poolNftId,
384
- policyNftId,
385
- policyInfo,
386
- bundleInfo.filter,
387
- collateralAmount
388
- );
389
- }
390
- }
391
-
392
- // TODO add logging
393
- }
394
-
395
- function calculateRequiredCollateral(UFixed collateralizationLevel, uint256 sumInsuredAmount) public pure override returns(uint256 collateralAmount) {
396
- UFixed sumInsuredUFixed = UFixedLib.toUFixed(sumInsuredAmount);
397
- UFixed collateralUFixed = collateralizationLevel * sumInsuredUFixed;
398
- return collateralUFixed.toInt();
399
- }
400
-
401
- function collectPremium(NftId policyNftId, Timestamp activateAt) external override {
402
- // check caller is registered product
403
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
404
- InstanceReader instanceReader = instance.getInstanceReader();
405
-
406
- // TODO: check if not paid
407
- // TODO: transfer premium
408
- // TODO: optionally activate
409
-
410
- // // perform actual token transfers (this code is probably not complete)
411
- // IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
412
-
413
- // uint256 premiumAmount = policyInfo.premiumAmount;
414
- // _processPremiumByTreasury(instance, productInfo.nftId, policyNftId, premiumAmount);
415
-
416
- // // policy level book keeping for premium paid
417
- // policyInfo.premiumPaidAmount += premiumAmount;
418
-
419
- // instance.updatePolicy(policyNftId, policyInfo, KEEP_STATE());
420
-
421
- // // optional activation of policy
422
- // if(activateAt > zeroTimestamp()) {
423
- // activate(policyNftId, activateAt);
424
- // }
425
-
426
- // TODO add logging
427
- }
428
-
429
- function activate(NftId policyNftId, Timestamp activateAt) public override {
430
- // check caller is registered product
431
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
432
- InstanceReader instanceReader = instance.getInstanceReader();
433
-
434
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
435
-
436
- require(
437
- policyInfo.activatedAt.eqz(),
438
- "ERROR:PRS-020:ALREADY_ACTIVATED");
439
-
440
- policyInfo.activatedAt = activateAt;
441
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
442
-
443
- instance.updatePolicy(policyNftId, policyInfo, ACTIVE());
444
-
445
- // TODO add logging
446
- }
447
-
448
- function close(
449
- NftId policyNftId
450
- ) external override // solhint-disable-next-line no-empty-blocks
451
- {
452
-
453
- }
454
-
455
- function _getPoolNftId(
456
- IInstance instance,
457
- NftId productNftId
458
- )
459
- internal
460
- view
461
- returns (NftId poolNftid)
462
- {
463
- InstanceReader instanceReader = instance.getInstanceReader();
464
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
465
- return productSetupInfo.poolNftId;
466
- }
467
-
468
-
469
- function _processPremiumByTreasury(
470
- IInstance instance,
471
- NftId productNftId,
472
- NftId policyNftId,
473
- uint256 premiumAmount
474
- )
475
- internal
476
- returns (uint256 netPremiumAmount)
477
- {
478
- // process token transfer(s)
479
- if(premiumAmount > 0) {
480
- ISetup.ProductSetupInfo memory productSetupInfo = instance.getInstanceReader().getProductSetupInfo(productNftId);
481
- TokenHandler tokenHandler = productSetupInfo.tokenHandler;
482
- address policyOwner = getRegistry().ownerOf(policyNftId);
483
- ISetup.PoolSetupInfo memory poolSetupInfo = instance.getInstanceReader().getPoolSetupInfo(productSetupInfo.poolNftId);
484
- address poolWallet = poolSetupInfo.wallet;
485
- netPremiumAmount = premiumAmount;
486
- Fee memory productFee = productSetupInfo.productFee;
487
-
488
- if (FeeLib.feeIsZero(productFee)) {
489
- tokenHandler.transfer(
490
- policyOwner,
491
- poolWallet,
492
- premiumAmount
493
- );
494
- } else {
495
- (uint256 productFeeAmount, uint256 netAmount) = FeeLib.calculateFee(productSetupInfo.productFee, netPremiumAmount);
496
- address productWallet = productSetupInfo.wallet;
497
- if (tokenHandler.getToken().allowance(policyOwner, address(tokenHandler)) < premiumAmount) {
498
- revert ErrorIPolicyServiceInsufficientAllowance(policyOwner, address(tokenHandler), premiumAmount);
499
- }
500
- tokenHandler.transfer(policyOwner, productWallet, productFeeAmount);
501
- tokenHandler.transfer(policyOwner, poolWallet, netAmount);
502
- netPremiumAmount = netAmount;
503
- }
504
- }
505
-
506
- // TODO add logging
507
- }
508
- }
@@ -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()
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,124 +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 {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 {ComponentServiceBase} from "../base/ComponentServiceBase.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 {IBaseComponent} from "../../components/IBaseComponent.sol";
33
-
34
- string constant POOL_SERVICE_NAME = "PoolService";
35
-
36
- contract PoolService is
37
- ComponentServiceBase,
38
- IPoolService
39
- {
40
- using NftIdLib for NftId;
41
-
42
- string public constant NAME = "PoolService";
43
-
44
- address internal _registryAddress;
45
-
46
- function _initialize(
47
- address owner,
48
- bytes memory data
49
- )
50
- internal
51
- initializer
52
- virtual override
53
- {
54
- address registryAddress;
55
- address initialOwner;
56
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
57
- // TODO while PoolService is not deployed in PoolServiceManager constructor
58
- // owner is PoolServiceManager deployer
59
- _initializeService(registryAddress, owner);
60
-
61
- _registerInterface(type(IPoolService).interfaceId);
62
- }
63
-
64
- function getName() public pure override(Service, IService) returns(string memory name) {
65
- return NAME;
66
- }
67
-
68
- function register(address poolAddress)
69
- external
70
- returns(NftId poolNftId)
71
- {
72
- address poolOwner = msg.sender;
73
- IBaseComponent pool = IBaseComponent(poolAddress);
74
-
75
- IRegistry.ObjectInfo memory info;
76
- bytes memory data;
77
- (info, data) = getRegistryService().registerPool(pool, poolOwner);
78
-
79
- IInstance instance = _getInstance(info);
80
-
81
- bool hasRole = getInstanceService().hasRole(
82
- poolOwner,
83
- POOL_OWNER_ROLE(),
84
- address(instance));
85
-
86
- if(!hasRole) {
87
- revert ExpectedRoleMissing(POOL_OWNER_ROLE(), poolOwner);
88
- }
89
-
90
- poolNftId = info.nftId;
91
- ISetup.PoolSetupInfo memory initialSetup = _decodeAndVerifyPoolSetup(data);
92
- instance.createPoolSetup(poolNftId, initialSetup);
93
- }
94
-
95
- function _decodeAndVerifyPoolSetup(bytes memory data) internal returns(ISetup.PoolSetupInfo memory setup)
96
- {
97
- setup = abi.decode(
98
- data,
99
- (ISetup.PoolSetupInfo)
100
- );
101
-
102
- // TODO add checks if applicable
103
- }
104
-
105
- function setFees(
106
- Fee memory poolFee,
107
- Fee memory stakingFee,
108
- Fee memory performanceFee
109
- )
110
- external
111
- override
112
- {
113
- (IRegistry.ObjectInfo memory poolInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
114
- InstanceReader instanceReader = instance.getInstanceReader();
115
- NftId poolNftId = poolInfo.nftId;
116
-
117
- ISetup.PoolSetupInfo memory poolSetupInfo = instanceReader.getPoolSetupInfo(poolNftId);
118
- poolSetupInfo.poolFee = poolFee;
119
- poolSetupInfo.stakingFee = stakingFee;
120
- poolSetupInfo.performanceFee = performanceFee;
121
-
122
- instance.updatePoolSetup(poolNftId, poolSetupInfo, KEEP_STATE());
123
- }
124
- }