@etherisc/gif-next 0.0.2-db1e1e4-828 → 0.0.2-db7f30b-255

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 (676) hide show
  1. package/README.md +51 -5
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/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 +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1394 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  25. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +272 -553
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1455 -0
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +838 -0
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +252 -292
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +207 -336
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1530 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2064 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1463 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1223 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1584 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2087 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +313 -2006
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +178 -109
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +403 -2855
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1078 -309
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +240 -424
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +140 -159
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3678 -0
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  92. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1031 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  100. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +231 -273
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  102. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +281 -231
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  110. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +337 -414
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1465 -0
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +834 -0
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → pool/IBundleService.sol/IBundleService.json} +420 -304
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +960 -0
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1283 -0
  123. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  124. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +411 -377
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +766 -0
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +771 -0
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +710 -0
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  134. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +423 -417
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1431 -0
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +838 -0
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  142. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +91 -167
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +925 -0
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  148. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IPricingService.sol/IPricingService.json} +201 -229
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1012 -0
  151. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  152. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +41 -62
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1302 -0
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.json +907 -0
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +762 -0
  161. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  162. package/artifacts/contracts/product/Product.sol/Product.json +1131 -0
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +435 -29
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -110
  173. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  175. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -68
  177. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
  179. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +333 -245
  181. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +138 -95
  183. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  185. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  187. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  189. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  191. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  192. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +314 -196
  193. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1785 -0
  195. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +4 -0
  196. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +206 -0
  197. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +810 -0
  199. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  200. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +124 -125
  201. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  202. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  203. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  204. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +142 -115
  205. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  206. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1360 -0
  207. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  208. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
  209. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  210. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  211. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  212. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  213. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  214. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  215. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  219. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  221. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IService.sol/IService.json +46 -6
  223. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  224. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  225. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  226. package/artifacts/contracts/{components/Component.sol/Component.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +239 -252
  227. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  228. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  229. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  230. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  231. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  232. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  233. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  235. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  237. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  239. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  240. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  241. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  242. package/artifacts/contracts/shared/Service.sol/Service.json +58 -112
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +424 -9
  245. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  247. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  248. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
  249. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  251. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  253. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  254. package/artifacts/contracts/staking/Staking.sol/Staking.json +1880 -0
  255. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  257. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +772 -0
  259. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  261. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1249 -0
  263. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
  265. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  267. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  269. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  271. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  305. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  307. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  309. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  311. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  315. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  319. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  320. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  321. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  323. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  325. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  326. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  327. package/contracts/authorization/AccessAdmin.sol +596 -0
  328. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  329. package/contracts/authorization/Authorization.sol +289 -0
  330. package/contracts/authorization/IAccess.sol +49 -0
  331. package/contracts/authorization/IAccessAdmin.sol +137 -0
  332. package/contracts/authorization/IAuthorization.sol +60 -0
  333. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  334. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  335. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  336. package/contracts/distribution/BasicDistribution.sol +139 -0
  337. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  338. package/contracts/{components → distribution}/Distribution.sol +170 -165
  339. package/contracts/distribution/DistributionService.sol +355 -0
  340. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  341. package/contracts/distribution/IDistributionComponent.sol +52 -0
  342. package/contracts/{instance/service → distribution}/IDistributionService.sol +40 -38
  343. package/contracts/examples/fire/DamageLevel.sol +59 -0
  344. package/contracts/examples/fire/FirePool.sol +73 -0
  345. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  346. package/contracts/examples/fire/FireProduct.sol +415 -0
  347. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  348. package/contracts/examples/fire/FireUSD.sol +26 -0
  349. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  350. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  351. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  352. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  353. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +30 -31
  354. package/contracts/instance/IInstance.sol +41 -73
  355. package/contracts/instance/IInstanceService.sol +37 -37
  356. package/contracts/instance/Instance.sol +153 -249
  357. package/contracts/instance/InstanceAdmin.sol +279 -0
  358. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  359. package/contracts/instance/InstanceReader.sol +264 -60
  360. package/contracts/instance/InstanceService.sol +261 -343
  361. package/contracts/instance/InstanceServiceManager.sol +14 -29
  362. package/contracts/instance/InstanceStore.sol +287 -0
  363. package/contracts/instance/base/BalanceStore.sol +123 -0
  364. package/contracts/instance/base/Cloneable.sol +28 -0
  365. package/contracts/instance/base/ObjectCounter.sol +21 -0
  366. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  367. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  368. package/contracts/instance/module/IAccess.sol +4 -12
  369. package/contracts/instance/module/IBundle.sol +6 -9
  370. package/contracts/instance/module/IComponents.sol +26 -16
  371. package/contracts/instance/module/IDistribution.sol +6 -6
  372. package/contracts/instance/module/IPolicy.sol +47 -35
  373. package/contracts/instance/module/IRisk.sol +1 -1
  374. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  375. package/contracts/oracle/BasicOracle.sol +47 -0
  376. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  377. package/contracts/oracle/IOracle.sol +36 -0
  378. package/contracts/oracle/IOracleComponent.sol +33 -0
  379. package/contracts/oracle/IOracleService.sol +66 -0
  380. package/contracts/oracle/Oracle.sol +156 -0
  381. package/contracts/oracle/OracleService.sol +291 -0
  382. package/contracts/oracle/OracleServiceManager.sol +39 -0
  383. package/contracts/pool/BasicPool.sol +154 -0
  384. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  385. package/contracts/pool/BundleService.sol +493 -0
  386. package/contracts/pool/BundleServiceManager.sol +39 -0
  387. package/contracts/pool/IBundleService.sol +143 -0
  388. package/contracts/pool/IPoolComponent.sol +68 -0
  389. package/contracts/pool/IPoolService.sol +167 -0
  390. package/contracts/pool/Pool.sol +335 -0
  391. package/contracts/pool/PoolService.sol +544 -0
  392. package/contracts/pool/PoolServiceManager.sol +39 -0
  393. package/contracts/product/ApplicationService.sol +259 -0
  394. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  395. package/contracts/product/BasicProduct.sol +53 -0
  396. package/contracts/product/BasicProductAuthorization.sol +42 -0
  397. package/contracts/product/ClaimService.sol +612 -0
  398. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  399. package/contracts/{instance/service → product}/IApplicationService.sol +16 -35
  400. package/contracts/product/IClaimService.sol +123 -0
  401. package/contracts/product/IPolicyService.sol +80 -0
  402. package/contracts/product/IPricingService.sol +39 -0
  403. package/contracts/product/IProductComponent.sol +59 -0
  404. package/contracts/product/IRiskService.sol +33 -0
  405. package/contracts/product/PolicyService.sol +691 -0
  406. package/contracts/product/PolicyServiceManager.sol +39 -0
  407. package/contracts/product/PricingService.sol +300 -0
  408. package/contracts/product/PricingServiceManager.sol +39 -0
  409. package/contracts/product/Product.sol +455 -0
  410. package/contracts/product/RiskService.sol +96 -0
  411. package/contracts/product/RiskServiceManager.sol +39 -0
  412. package/contracts/registry/ChainNft.sol +75 -38
  413. package/contracts/registry/IRegistry.sol +96 -26
  414. package/contracts/registry/IRegistryService.sol +34 -40
  415. package/contracts/registry/ITransferInterceptor.sol +1 -2
  416. package/contracts/registry/Registry.sol +445 -195
  417. package/contracts/registry/RegistryAdmin.sol +448 -0
  418. package/contracts/registry/RegistryService.sol +87 -128
  419. package/contracts/registry/RegistryServiceManager.sol +23 -32
  420. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  421. package/contracts/registry/ReleaseRegistry.sol +501 -0
  422. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  423. package/contracts/registry/TokenRegistry.sol +261 -62
  424. package/contracts/shared/Component.sol +259 -0
  425. package/contracts/shared/ComponentService.sol +686 -0
  426. package/contracts/shared/ComponentServiceHelperLib.sol +118 -0
  427. package/contracts/shared/ComponentServiceManager.sol +38 -0
  428. package/contracts/shared/ComponentVerifyingService.sol +126 -0
  429. package/contracts/shared/ContractLib.sol +38 -0
  430. package/contracts/shared/IComponent.sol +74 -0
  431. package/contracts/shared/IComponentService.sol +121 -0
  432. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  433. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  434. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  435. package/contracts/shared/INftOwnable.sol +4 -2
  436. package/contracts/shared/IPolicyHolder.sol +23 -14
  437. package/contracts/shared/IRegisterable.sol +11 -0
  438. package/contracts/shared/IRegistryLinked.sol +0 -1
  439. package/contracts/shared/IService.sol +12 -3
  440. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  441. package/contracts/shared/InstanceLinkedComponent.sol +213 -0
  442. package/contracts/shared/KeyValueStore.sol +131 -0
  443. package/contracts/shared/Lifecycle.sol +88 -0
  444. package/contracts/shared/NftIdSet.sol +65 -0
  445. package/contracts/shared/NftOwnable.sol +32 -25
  446. package/contracts/shared/PolicyHolder.sol +22 -41
  447. package/contracts/shared/Registerable.sol +32 -21
  448. package/contracts/shared/RegistryLinked.sol +3 -7
  449. package/contracts/shared/Service.sol +48 -36
  450. package/contracts/shared/TokenHandler.sol +155 -8
  451. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  452. package/contracts/staking/IStaking.sol +168 -0
  453. package/contracts/staking/IStakingService.sol +157 -0
  454. package/contracts/staking/StakeManagerLib.sol +224 -0
  455. package/contracts/staking/Staking.sol +497 -0
  456. package/contracts/staking/StakingLifecycle.sol +23 -0
  457. package/contracts/staking/StakingManager.sol +52 -0
  458. package/contracts/staking/StakingReader.sol +190 -0
  459. package/contracts/staking/StakingService.sol +407 -0
  460. package/contracts/staking/StakingServiceManager.sol +44 -0
  461. package/contracts/staking/StakingStore.sol +605 -0
  462. package/contracts/staking/TargetManagerLib.sol +211 -0
  463. package/contracts/{types → type}/AddressSet.sol +1 -1
  464. package/contracts/type/Amount.sol +150 -0
  465. package/contracts/{types → type}/Blocknumber.sol +26 -3
  466. package/contracts/{types → type}/ClaimId.sol +31 -3
  467. package/contracts/{types → type}/Fee.sol +24 -22
  468. package/contracts/{types → type}/NftId.sol +15 -16
  469. package/contracts/{types → type}/NftIdSet.sol +2 -2
  470. package/contracts/type/ObjectType.sol +276 -0
  471. package/contracts/type/PayoutId.sol +82 -0
  472. package/contracts/{types → type}/Referral.sol +2 -1
  473. package/contracts/type/RequestId.sol +75 -0
  474. package/contracts/{types → type}/RiskId.sol +16 -2
  475. package/contracts/type/RoleId.sol +162 -0
  476. package/contracts/type/Seconds.sol +101 -0
  477. package/contracts/type/Selector.sol +102 -0
  478. package/contracts/{types → type}/StateId.sol +47 -4
  479. package/contracts/type/String.sol +53 -0
  480. package/contracts/{types → type}/Timestamp.sol +21 -2
  481. package/contracts/{types → type}/UFixed.sol +38 -9
  482. package/contracts/{types → type}/Version.sol +4 -2
  483. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  484. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  485. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  486. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  487. package/package.json +9 -5
  488. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  489. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  490. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  492. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  494. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  495. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  496. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  497. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  498. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  499. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  500. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  501. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  502. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  503. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  505. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  507. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  508. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  509. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  510. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  511. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  512. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  513. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  514. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  515. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  516. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  517. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  518. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  519. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  520. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  521. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  522. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  523. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  524. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  525. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  526. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  527. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  528. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  529. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  531. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  532. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  540. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  542. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  544. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  546. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  548. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  550. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  551. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  552. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  553. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  554. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  555. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  556. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  557. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  558. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  559. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  560. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  561. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  562. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  563. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  564. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  565. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  566. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  567. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  568. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  569. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  570. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  571. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  572. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  573. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  574. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  576. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  577. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  578. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  579. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  580. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  581. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  582. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  584. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  586. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  588. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  590. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  592. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  594. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  595. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  596. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  598. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  599. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  600. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  602. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  603. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  604. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  605. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  606. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  608. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  610. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  612. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  614. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  616. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  618. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  620. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  622. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  624. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  626. package/contracts/components/Component.sol +0 -253
  627. package/contracts/components/IComponent.sol +0 -76
  628. package/contracts/components/IDistributionComponent.sol +0 -71
  629. package/contracts/components/IPoolComponent.sol +0 -113
  630. package/contracts/components/IProductComponent.sol +0 -40
  631. package/contracts/components/Pool.sol +0 -303
  632. package/contracts/components/Product.sol +0 -293
  633. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  634. package/contracts/instance/Cloneable.sol +0 -51
  635. package/contracts/instance/InstanceAccessManager.sol +0 -527
  636. package/contracts/instance/base/ComponentService.sol +0 -121
  637. package/contracts/instance/base/KeyValueStore.sol +0 -180
  638. package/contracts/instance/base/Lifecycle.sol +0 -109
  639. package/contracts/instance/module/ISetup.sol +0 -33
  640. package/contracts/instance/module/ITreasury.sol +0 -23
  641. package/contracts/instance/service/ApplicationService.sol +0 -350
  642. package/contracts/instance/service/BundleService.sol +0 -431
  643. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  644. package/contracts/instance/service/ClaimService.sol +0 -151
  645. package/contracts/instance/service/DistributionService.sol +0 -435
  646. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  647. package/contracts/instance/service/IBundleService.sol +0 -93
  648. package/contracts/instance/service/IClaimService.sol +0 -61
  649. package/contracts/instance/service/IPolicyService.sol +0 -72
  650. package/contracts/instance/service/IPoolService.sol +0 -99
  651. package/contracts/instance/service/IProductService.sol +0 -40
  652. package/contracts/instance/service/PolicyService.sol +0 -362
  653. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  654. package/contracts/instance/service/PoolService.sol +0 -303
  655. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  656. package/contracts/instance/service/ProductService.sol +0 -210
  657. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  658. package/contracts/registry/RegistryAccessManager.sol +0 -216
  659. package/contracts/registry/ReleaseManager.sol +0 -324
  660. package/contracts/shared/ContractDeployerLib.sol +0 -72
  661. package/contracts/test/TestFee.sol +0 -25
  662. package/contracts/test/TestRegisterable.sol +0 -18
  663. package/contracts/test/TestRoleId.sol +0 -14
  664. package/contracts/test/TestService.sol +0 -25
  665. package/contracts/test/TestToken.sol +0 -26
  666. package/contracts/test/TestVersion.sol +0 -44
  667. package/contracts/test/TestVersionable.sol +0 -17
  668. package/contracts/types/Amount.sol +0 -60
  669. package/contracts/types/ChainId.sol +0 -38
  670. package/contracts/types/NumberId.sol +0 -52
  671. package/contracts/types/ObjectType.sol +0 -157
  672. package/contracts/types/PayoutId.sol +0 -54
  673. package/contracts/types/RoleId.sol +0 -97
  674. package/contracts/types/Seconds.sol +0 -54
  675. /package/contracts/{types → type}/DistributorType.sol +0 -0
  676. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,431 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IBundle} from "../../instance/module/IBundle.sol";
5
- import {IComponents} from "../module/IComponents.sol";
6
- import {IRegistry} from "../../registry/IRegistry.sol";
7
- import {IInstance} from "../../instance/IInstance.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 {INftOwnable} from "../../shared/INftOwnable.sol";
14
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
15
- import {ObjectType, POOL, BUNDLE} from "../../types/ObjectType.sol";
16
- import {POOL_OWNER_ROLE, RoleId} from "../../types/RoleId.sol";
17
- import {Pool} from "../../components/Pool.sol";
18
-
19
- import {Amount, AmountLib} from "../../types/Amount.sol";
20
- import {Fee, FeeLib} from "../../types/Fee.sol";
21
- import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../../types/StateId.sol";
22
- import {Seconds} from "../../types/Seconds.sol";
23
- import {TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
24
- import {Version, VersionLib} from "../../types/Version.sol";
25
- import {Versionable} from "../../shared/Versionable.sol";
26
-
27
- import {IService} from "../../shared/IService.sol";
28
- import {Service} from "../../shared/Service.sol";
29
- import {BundleManager} from "../BundleManager.sol";
30
- import {ComponentService} from "../base/ComponentService.sol";
31
- import {IBundleService} from "./IBundleService.sol";
32
- import {IRegistryService} from "../../registry/IRegistryService.sol";
33
- import {InstanceService} from "../InstanceService.sol";
34
- import {InstanceReader} from "../InstanceReader.sol";
35
-
36
- string constant BUNDLE_SERVICE_NAME = "BundleService";
37
-
38
- contract BundleService is
39
- ComponentService,
40
- IBundleService
41
- {
42
- using NftIdLib for NftId;
43
-
44
- string public constant NAME = "BundleService";
45
-
46
- address internal _registryAddress;
47
-
48
- function _initialize(
49
- address owner,
50
- bytes memory data
51
- )
52
- internal
53
- initializer
54
- virtual override
55
- {
56
- address registryAddress;
57
- address initialOwner;
58
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
59
- // TODO while PoolService is not deployed in PoolServiceManager constructor
60
- // owner is PoolServiceManager deployer
61
- initializeService(registryAddress, address(0), owner);
62
- registerInterface(type(IBundleService).interfaceId);
63
- }
64
-
65
- function getDomain() public pure override returns(ObjectType) {
66
- return BUNDLE();
67
- }
68
-
69
- // TODO staking/unstaking as well as collateralize need to go to pool service
70
- // it will also be the pool service that is updating the pool info data
71
- // collateralize -> potentially accumulate pool fees
72
- // collateralize: additional reason to move to pool, pool might has retential level < 1 ...
73
- // staking -> potentially accumulate staking fees
74
- // unstaking -> potentially accumulate performance fees
75
- function _updatePoolWithStakes(
76
- IInstance instance,
77
- NftId poolNftId,
78
- uint256 stakingAmount
79
- )
80
- internal
81
- returns (
82
- TokenHandler tokenHandler,
83
- address wallet,
84
- uint256 netStakingAmount
85
- )
86
- {
87
- if(stakingAmount > 0) {
88
- InstanceReader instanceReader = instance.getInstanceReader();
89
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
90
-
91
- tokenHandler = componentInfo.tokenHandler;
92
- wallet = componentInfo.wallet;
93
-
94
- IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
95
- uint256 poolFeeAmount;
96
-
97
- // calculate pool fee and net staking amount
98
- (poolFeeAmount, netStakingAmount) = FeeLib.calculateFee(poolInfo.stakingFee, stakingAmount);
99
-
100
- // update pool balance and fee amount
101
- poolInfo.balanceAmount += netStakingAmount;
102
-
103
- if(poolFeeAmount > 0) {
104
- poolInfo.feeAmount += poolFeeAmount;
105
- }
106
-
107
- // save updated pool info
108
- componentInfo.data = abi.encode(poolInfo);
109
- instance.updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
110
- }
111
- }
112
-
113
-
114
- function create(
115
- IInstance instance,
116
- NftId poolNftId,
117
- address owner,
118
- Fee memory fee,
119
- Amount stakingAmount,
120
- Seconds lifetime,
121
- bytes calldata filter
122
- )
123
- external
124
- override
125
- // TODO add restricted and add authz for pool service
126
- returns(NftId bundleNftId)
127
- {
128
- InstanceReader instanceReader = instance.getInstanceReader();
129
-
130
- // create initial bundle info
131
- IBundle.BundleInfo memory bundleInfo = IBundle.BundleInfo(
132
- poolNftId,
133
- fee,
134
- filter,
135
- stakingAmount,
136
- AmountLib.zero(),
137
- AmountLib.zero(),
138
- lifetime,
139
- TimestampLib.blockTimestamp().addSeconds(lifetime),
140
- zeroTimestamp()
141
- );
142
-
143
- // register bundle with registry
144
- bundleNftId = getRegistryService().registerBundle(
145
- IRegistry.ObjectInfo(
146
- zeroNftId(),
147
- poolNftId,
148
- BUNDLE(),
149
- false, // intercepting property for bundles is defined on pool
150
- address(0),
151
- owner,
152
- "" // bundle data to be stored in registry
153
- )
154
- );
155
-
156
- // create bundle info in instance
157
- instance.createBundle(bundleNftId, bundleInfo);
158
-
159
- // put bundle under bundle managemet
160
- BundleManager bundleManager = instance.getBundleManager();
161
- bundleManager.add(bundleNftId);
162
-
163
- // transfer full staking amount to pool wallet
164
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
165
- componentInfo.tokenHandler.transfer(
166
- owner,
167
- componentInfo.wallet,
168
- stakingAmount.toInt()
169
- );
170
-
171
- // TODO add logging
172
- }
173
-
174
- function setFee(
175
- NftId bundleNftId,
176
- Fee memory fee
177
- )
178
- external
179
- override
180
- {
181
- (NftId poolNftId, IRegistry.ObjectInfo memory info , IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
182
- InstanceReader instanceReader = instance.getInstanceReader();
183
-
184
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
185
- require(bundleInfo.poolNftId.gtz(), "ERROR:PLS-010:BUNDLE_UNKNOWN");
186
- require(poolNftId == bundleInfo.poolNftId, "ERROR:PLS-011:BUNDLE_POOL_MISMATCH");
187
-
188
- bundleInfo.fee = fee;
189
-
190
- instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
191
- }
192
-
193
-
194
- // the bundle MUST be unlocked (active) for linking (underwriting) and registered with this instance
195
- function lockCollateral(
196
- IInstance instance,
197
- NftId policyNftId,
198
- NftId bundleNftId,
199
- uint256 collateralAmount, // required amount to collateralize policy
200
- uint256 premiumAmount // premium part that reaches bundle for this policy
201
- )
202
- external
203
- onlyService // TODO replace with restricted + appropriate granting
204
- {
205
- InstanceReader instanceReader = instance.getInstanceReader();
206
- StateId bundleState = instanceReader.getMetadata(bundleNftId.toKey32(BUNDLE())).state;
207
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
208
-
209
- // ensure bundle is active and not yet expired
210
- if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
211
- revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
212
- }
213
-
214
- // ensure bundle capacity is sufficent to collateralize policy
215
- uint capacity = bundleInfo.capitalAmount.toInt() + premiumAmount - bundleInfo.lockedAmount.toInt();
216
- if(capacity < collateralAmount) {
217
- revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
218
- }
219
-
220
- // TODO add more validation
221
-
222
- // updated locked amount
223
- bundleInfo.lockedAmount = AmountLib.toAmount(bundleInfo.lockedAmount.toInt() + collateralAmount);
224
-
225
- // update capital and fees when premiums are involved
226
- _updateBundleWithPremium(instance, bundleNftId, bundleInfo, premiumAmount);
227
-
228
- // link policy to bundle in bundle manger
229
- _linkPolicy(instance, policyNftId);
230
- }
231
-
232
-
233
- function _updateBundleWithPremium(
234
- IInstance instance,
235
- NftId bundleNftId,
236
- IBundle.BundleInfo memory bundleInfo,
237
- uint256 premiumAmount
238
- )
239
- internal
240
- {
241
- // update bundle capital and fee amounts
242
- if(premiumAmount > 0) {
243
- // calculate fees and net premium amounts
244
- (
245
- uint256 feeAmount,
246
- uint256 netPremiumAmount
247
- ) = FeeLib.calculateFee(bundleInfo.fee, premiumAmount);
248
-
249
- // update bundle info with additional capital
250
- bundleInfo.capitalAmount = AmountLib.toAmount(bundleInfo.capitalAmount.toInt() + netPremiumAmount);
251
-
252
- // update bundle info with additional fees
253
- if(feeAmount > 0) {
254
- bundleInfo.feeAmount = AmountLib.toAmount(bundleInfo.feeAmount.toInt() + feeAmount);
255
- }
256
- }
257
-
258
- // save updated bundle info
259
- instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
260
- }
261
-
262
-
263
- function lock(NftId bundleNftId)
264
- external
265
- virtual
266
- {
267
- (,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
268
-
269
- // udpate bundle state
270
- instance.updateBundleState(bundleNftId, PAUSED());
271
-
272
- // update set of active bundles
273
- BundleManager bundleManager = instance.getBundleManager();
274
- bundleManager.lock(bundleNftId);
275
-
276
- emit LogBundleServiceBundleLocked(bundleNftId);
277
- }
278
-
279
-
280
- function unlock(NftId bundleNftId)
281
- external
282
- virtual
283
- {
284
- (,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
285
-
286
- // udpate bundle state
287
- instance.updateBundleState(bundleNftId, ACTIVE());
288
-
289
- // update set of active bundles
290
- BundleManager bundleManager = instance.getBundleManager();
291
- bundleManager.unlock(bundleNftId);
292
-
293
- emit LogBundleServiceBundleActivated(bundleNftId);
294
- }
295
-
296
-
297
- function close(
298
- IInstance instance,
299
- NftId bundleNftId
300
- )
301
- external
302
- virtual
303
- // TODO add restricted and autz for pool service
304
- {
305
- // udpate bundle state
306
- instance.updateBundleState(bundleNftId, CLOSED());
307
-
308
- // ensure no open policies attached to bundle
309
- BundleManager bundleManager = instance.getBundleManager();
310
- uint256 openPolicies = bundleManager.activePolicies(bundleNftId);
311
- if(openPolicies > 0) {
312
- revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
313
- }
314
-
315
- // update set of active bundles
316
- bundleManager.lock(bundleNftId);
317
- }
318
-
319
-
320
- function increaseBalance(
321
- IInstance instance,
322
- NftId bundleNftId,
323
- uint256 premiumAmount
324
- )
325
- external
326
- onlyService
327
- {
328
- InstanceReader instanceReader = instance.getInstanceReader();
329
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
330
-
331
- // update capital and fees when premiums are involved
332
- _updateBundleWithPremium(instance, bundleNftId, bundleInfo, premiumAmount);
333
-
334
- // TODO add logging (?)
335
- }
336
-
337
- function releaseCollateral(IInstance instance,
338
- NftId policyNftId,
339
- NftId bundleNftId,
340
- uint256 collateralAmount
341
- )
342
- external
343
- onlyService
344
- {
345
- InstanceReader instanceReader = instance.getInstanceReader();
346
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
347
-
348
- // reduce locked amount by released collateral amount
349
- bundleInfo.lockedAmount = AmountLib.toAmount(bundleInfo.lockedAmount.toInt() - collateralAmount);
350
-
351
- instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
352
-
353
- _unlinkPolicy(instance, policyNftId);
354
- }
355
-
356
- /// @dev links policy to bundle
357
- function _linkPolicy(IInstance instance, NftId policyNftId)
358
- internal
359
- {
360
- InstanceReader instanceReader = instance.getInstanceReader();
361
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
362
-
363
- // ensure policy has not yet been activated in a previous tx already
364
- if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
365
- revert BundleManager.ErrorBundleManagerPolicyAlreadyActivated(policyNftId);
366
- }
367
-
368
- BundleManager bundleManager = instance.getBundleManager();
369
- bundleManager.linkPolicy(policyNftId);
370
- }
371
-
372
- /// @dev unlinks policy from bundle
373
- function _unlinkPolicy(IInstance instance, NftId policyNftId)
374
- internal
375
- {
376
- InstanceReader instanceReader = instance.getInstanceReader();
377
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
378
-
379
- // ensure policy has no open claims
380
- if (policyInfo.openClaimsCount > 0) {
381
- revert BundleManager.ErrorBundleManagerPolicyWithOpenClaims(
382
- policyNftId,
383
- policyInfo.openClaimsCount);
384
- }
385
-
386
- // ensure policy is closeable
387
- if ( TimestampLib.blockTimestamp() < policyInfo.expiredAt
388
- && policyInfo.payoutAmount < policyInfo.sumInsuredAmount)
389
- {
390
- revert BundleManager.ErrorBundleManagerPolicyNotCloseable(policyNftId);
391
- }
392
-
393
- BundleManager bundleManager = instance.getBundleManager();
394
- bundleManager.unlinkPolicy(policyNftId);
395
- }
396
-
397
- // TODO move this to pool service
398
- function _processStakingByTreasury(
399
- InstanceReader instanceReader,
400
- NftId poolNftId,
401
- NftId bundleNftId,
402
- Amount stakingAmount
403
- )
404
- internal
405
- {
406
- // process token transfer(s)
407
- if(stakingAmount.gtz()) {
408
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
409
- IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
410
-
411
- TokenHandler tokenHandler = componentInfo.tokenHandler;
412
- address bundleOwner = getRegistry().ownerOf(bundleNftId);
413
- Fee memory stakingFee = poolInfo.stakingFee;
414
-
415
- // pool fee and bundle capital book keeping
416
- if (FeeLib.gtz(stakingFee)) {
417
- (uint256 stakingFeeAmount, uint256 netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount.toInt());
418
-
419
-
420
- // TODO: track staking fees in pool's state (issue #177)
421
- }
422
-
423
- // transfer full staking amount to pool wallet
424
- tokenHandler.transfer(
425
- bundleOwner,
426
- componentInfo.wallet,
427
- stakingAmount.toInt()
428
- );
429
- }
430
- }
431
- }
@@ -1,51 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
6
- import {BundleService} from "./BundleService.sol";
7
- import {Registry} from "../../registry/Registry.sol";
8
- import {RegistryService} from "../../registry/RegistryService.sol";
9
- import {ObjectType, REGISTRY} from "../../types/ObjectType.sol";
10
-
11
- contract BundleServiceManager is ProxyManager {
12
-
13
- BundleService private _bundleService;
14
-
15
- /// @dev initializes proxy manager with pool service implementation
16
- constructor(
17
- address registryAddress
18
- )
19
- ProxyManager(registryAddress)
20
- {
21
- BundleService bundleSrv = new BundleService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
24
- address(bundleSrv),
25
- data);
26
-
27
- _bundleService = BundleService(address(versionable));
28
-
29
- // TODO `this` must have a role or own nft to register service
30
- //Registry registry = Registry(registryAddress);
31
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _bundleService.getMajorVersion());
32
- //RegistryService registryService = RegistryService(registryServiceAddress);
33
- //registryService.registerService(_poolService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_poolService));
40
- }
41
-
42
- //--- view functions ----------------------------------------------------//
43
- function getBundleService()
44
- external
45
- view
46
- returns (BundleService)
47
- {
48
- return _bundleService;
49
- }
50
-
51
- }
@@ -1,151 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRisk} from "../module/IRisk.sol";
5
- import {IService} from "./IApplicationService.sol";
6
-
7
- import {IRegistry} from "../../registry/IRegistry.sol";
8
- import {IProductComponent} from "../../components/IProductComponent.sol";
9
- import {Product} from "../../components/Product.sol";
10
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
11
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
12
- import {IInstance} from "../IInstance.sol";
13
- import {IPolicy} from "../module/IPolicy.sol";
14
- import {IRisk} from "../module/IRisk.sol";
15
- import {IBundle} from "../module/IBundle.sol";
16
- import {IProductService} from "./IProductService.sol";
17
- import {ITreasury} from "../module/ITreasury.sol";
18
- import {ISetup} from "../module/ISetup.sol";
19
-
20
- import {TokenHandler} from "../../shared/TokenHandler.sol";
21
-
22
- import {IVersionable} from "../../shared/IVersionable.sol";
23
- import {Versionable} from "../../shared/Versionable.sol";
24
-
25
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
26
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
27
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
28
- import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../../types/ObjectType.sol";
29
- import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE, CLOSED} from "../../types/StateId.sol";
30
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
31
- import {Fee, FeeLib} from "../../types/Fee.sol";
32
- import {ReferralId} from "../../types/Referral.sol";
33
- import {RiskId} from "../../types/RiskId.sol";
34
- import {StateId} from "../../types/StateId.sol";
35
- import {ClaimId} from "../../types/ClaimId.sol";
36
- import {PayoutId} from "../../types/PayoutId.sol";
37
- import {Version, VersionLib} from "../../types/Version.sol";
38
-
39
- import {ComponentService} from "../base/ComponentService.sol";
40
- import {InstanceReader} from "../InstanceReader.sol";
41
- import {IBundleService} from "./IBundleService.sol";
42
- import {IClaimService} from "./IClaimService.sol";
43
- import {IPoolService} from "./IPoolService.sol";
44
- import {IService} from "../../shared/IService.sol";
45
- import {Service} from "../../shared/Service.sol";
46
-
47
-
48
- contract ClaimService is
49
- ComponentService,
50
- IClaimService
51
- {
52
-
53
-
54
- function _initialize(
55
- address owner,
56
- bytes memory data
57
- )
58
- internal
59
- virtual override
60
- initializer()
61
- {
62
- // TODO check this, might no longer be the way, refactor if necessary
63
- address registryAddress;
64
- address initialOwner;
65
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
66
-
67
- initializeService(registryAddress, address(0), owner);
68
- registerInterface(type(IClaimService).interfaceId);
69
- }
70
-
71
-
72
- function getDomain() public pure override returns(ObjectType) {
73
- return CLAIM();
74
- }
75
-
76
-
77
- function createClaim(
78
- NftId policyNftId,
79
- uint256 claimAmount,
80
- bytes memory claimData
81
- )
82
- external
83
- virtual
84
- returns (ClaimId)
85
- {
86
-
87
- }
88
-
89
-
90
- function confirmClaim(NftId policyNftId, ClaimId claimId, uint256 claimAmount)
91
- external
92
- virtual
93
- // solhint-disable-next-line no-empty-blocks
94
- {
95
-
96
- }
97
-
98
-
99
- function declineClaim(NftId policyNftId, ClaimId claimId)
100
- external
101
- virtual
102
- // solhint-disable-next-line no-empty-blocks
103
- {
104
-
105
- }
106
-
107
-
108
- function closeClaim(NftId policyNftId, ClaimId claimId)
109
- external
110
- virtual
111
- // solhint-disable-next-line no-empty-blocks
112
- {
113
-
114
- }
115
-
116
-
117
- function createPayout(
118
- NftId policyNftId,
119
- ClaimId claimId,
120
- uint256 payoutAmount,
121
- bytes calldata payoutData
122
- )
123
- external
124
- virtual
125
- returns(PayoutId payoutId)
126
- // solhint-disable-next-line no-empty-blocks
127
- {
128
-
129
- }
130
-
131
-
132
- function payoutExecuted(
133
- NftId policyNftId,
134
- PayoutId payoutId
135
- )
136
- external
137
- virtual
138
- // solhint-disable-next-line no-empty-blocks
139
- {
140
-
141
- }
142
-
143
-
144
- // internal functions
145
-
146
- function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
147
- IRegistry.ObjectInfo memory productInfo;
148
- (, productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
149
- product = Product(productInfo.objectAddress);
150
- }
151
- }