@etherisc/gif-next 0.0.2-72ddf14-012 → 0.0.2-7322ceb-889

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