@etherisc/gif-next 0.0.2-0f8d3d5-891 → 0.0.2-104f68e-724

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 (673) 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 +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/authorization/IAccessAdmin.sol/IAccessAdmin.json +1013 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +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/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +198 -261
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +178 -336
  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 +277 -2170
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +198 -74
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +437 -2832
  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 +815 -358
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +246 -333
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +129 -156
  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/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  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 +8 -116
  88. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  93. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  94. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  95. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  97. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  99. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  100. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  101. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  102. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  103. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → oracle/IOracleService.sol/IOracleService.json} +259 -186
  105. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  106. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +236 -207
  107. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +927 -0
  109. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +710 -0
  111. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  112. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +275 -403
  113. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  114. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  115. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  116. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  117. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  118. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +802 -0
  119. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  120. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +295 -47
  121. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  122. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  123. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +462 -108
  125. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +346 -376
  127. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  128. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1490 -0
  129. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  130. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +734 -0
  131. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  132. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +737 -0
  133. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  134. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +698 -0
  135. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  136. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +336 -407
  137. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  138. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  139. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  140. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1346 -0
  141. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +814 -0
  143. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  144. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +63 -168
  145. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  146. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +174 -225
  147. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  148. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +867 -0
  149. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  150. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  151. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  152. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +309 -191
  153. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  154. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +12 -62
  155. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  156. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1239 -0
  157. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  158. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +770 -0
  159. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  160. package/artifacts/contracts/product/PricingService.sol/PricingService.json +865 -0
  161. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  162. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +746 -0
  163. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  164. package/artifacts/contracts/product/Product.sol/Product.json +1054 -0
  165. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  166. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  167. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  168. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  169. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  170. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  171. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +385 -31
  173. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  174. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -125
  175. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  176. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  177. package/artifacts/contracts/registry/Registry.sol/Registry.json +783 -46
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  179. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1858 -0
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +372 -185
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +126 -95
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  185. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  192. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +268 -190
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1573 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +794 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +432 -0
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  203. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +107 -107
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  208. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  210. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  215. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  220. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
  222. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  223. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  224. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  226. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  227. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +793 -0
  228. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  229. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  230. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  231. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  232. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  233. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +12 -70
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  237. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  238. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +18 -106
  240. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  241. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  242. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Service.sol/Service.json +19 -115
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  245. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  248. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  249. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +684 -575
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  251. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  254. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  255. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +750 -0
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1236 -0
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  269. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  271. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  280. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  282. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  306. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  308. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  310. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  311. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  312. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  314. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  316. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  318. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  320. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  321. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  326. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  327. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  328. package/contracts/authorization/AccessAdmin.sol +592 -0
  329. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  330. package/contracts/authorization/Authorization.sol +217 -0
  331. package/contracts/authorization/IAccess.sol +48 -0
  332. package/contracts/authorization/IAccessAdmin.sol +135 -0
  333. package/contracts/authorization/IAuthorization.sol +54 -0
  334. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  335. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  336. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  337. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  338. package/contracts/distribution/BasicDistribution.sol +138 -0
  339. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  340. package/contracts/{components → distribution}/Distribution.sol +177 -162
  341. package/contracts/distribution/DistributionService.sol +336 -0
  342. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  343. package/contracts/distribution/IDistributionComponent.sol +52 -0
  344. package/contracts/{instance/service → distribution}/IDistributionService.sol +40 -38
  345. package/contracts/examples/fire/DamageLevel.sol +56 -0
  346. package/contracts/examples/fire/FirePool.sol +75 -0
  347. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  348. package/contracts/examples/fire/FireProduct.sol +404 -0
  349. package/contracts/examples/fire/FireProductAuthorization.sol +39 -0
  350. package/contracts/examples/fire/FireUSD.sol +26 -0
  351. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  352. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  353. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  354. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  355. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +27 -27
  356. package/contracts/instance/IInstance.sol +38 -68
  357. package/contracts/instance/IInstanceService.sol +51 -27
  358. package/contracts/instance/Instance.sol +142 -205
  359. package/contracts/instance/InstanceAdmin.sol +285 -0
  360. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  361. package/contracts/instance/InstanceReader.sol +184 -65
  362. package/contracts/instance/InstanceService.sol +309 -321
  363. package/contracts/instance/InstanceServiceManager.sol +14 -29
  364. package/contracts/instance/InstanceStore.sol +287 -0
  365. package/contracts/instance/base/BalanceStore.sol +123 -0
  366. package/contracts/instance/base/Cloneable.sol +28 -0
  367. package/contracts/instance/base/ObjectCounter.sol +21 -0
  368. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  369. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  370. package/contracts/instance/module/IAccess.sol +4 -12
  371. package/contracts/instance/module/IBundle.sol +6 -9
  372. package/contracts/instance/module/IComponents.sol +20 -15
  373. package/contracts/instance/module/IDistribution.sol +6 -6
  374. package/contracts/instance/module/IPolicy.sol +41 -34
  375. package/contracts/instance/module/IRisk.sol +1 -1
  376. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  377. package/contracts/oracle/BasicOracle.sol +48 -0
  378. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  379. package/contracts/oracle/IOracle.sol +36 -0
  380. package/contracts/oracle/IOracleComponent.sol +33 -0
  381. package/contracts/oracle/IOracleService.sol +65 -0
  382. package/contracts/oracle/Oracle.sol +167 -0
  383. package/contracts/oracle/OracleService.sol +281 -0
  384. package/contracts/oracle/OracleServiceManager.sol +39 -0
  385. package/contracts/pool/BasicPool.sol +166 -0
  386. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  387. package/contracts/pool/BundleService.sol +438 -0
  388. package/contracts/pool/BundleServiceManager.sol +39 -0
  389. package/contracts/pool/IBundleService.sol +134 -0
  390. package/contracts/pool/IPoolComponent.sol +58 -0
  391. package/contracts/pool/IPoolService.sol +160 -0
  392. package/contracts/pool/Pool.sol +326 -0
  393. package/contracts/pool/PoolService.sol +523 -0
  394. package/contracts/pool/PoolServiceManager.sol +39 -0
  395. package/contracts/product/ApplicationService.sol +247 -0
  396. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  397. package/contracts/product/BasicProduct.sol +53 -0
  398. package/contracts/product/BasicProductAuthorization.sol +43 -0
  399. package/contracts/product/ClaimService.sol +549 -0
  400. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  401. package/contracts/{instance/service → product}/IApplicationService.sol +16 -35
  402. package/contracts/product/IClaimService.sol +122 -0
  403. package/contracts/product/IPolicyService.sol +77 -0
  404. package/contracts/product/IPricingService.sol +39 -0
  405. package/contracts/product/IProductComponent.sol +39 -0
  406. package/contracts/product/IRiskService.sol +33 -0
  407. package/contracts/product/PolicyService.sol +651 -0
  408. package/contracts/product/PolicyServiceManager.sol +39 -0
  409. package/contracts/product/PricingService.sol +300 -0
  410. package/contracts/product/PricingServiceManager.sol +39 -0
  411. package/contracts/product/Product.sol +425 -0
  412. package/contracts/product/RiskService.sol +96 -0
  413. package/contracts/product/RiskServiceManager.sol +39 -0
  414. package/contracts/registry/ChainNft.sol +72 -32
  415. package/contracts/registry/IRegistry.sol +92 -25
  416. package/contracts/registry/IRegistryService.sol +42 -41
  417. package/contracts/registry/Registry.sol +427 -192
  418. package/contracts/registry/RegistryAdmin.sol +464 -0
  419. package/contracts/registry/RegistryService.sol +70 -100
  420. package/contracts/registry/RegistryServiceManager.sol +23 -32
  421. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  422. package/contracts/registry/ReleaseRegistry.sol +491 -0
  423. package/contracts/registry/ServiceAuthorizationV3.sol +198 -0
  424. package/contracts/registry/TokenRegistry.sol +261 -62
  425. package/contracts/shared/Component.sol +268 -0
  426. package/contracts/shared/ComponentService.sol +641 -0
  427. package/contracts/shared/ComponentServiceManager.sol +38 -0
  428. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  429. package/contracts/shared/ContractLib.sol +38 -0
  430. package/contracts/shared/IComponent.sol +70 -0
  431. package/contracts/shared/IComponentService.sol +108 -0
  432. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  433. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  434. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  435. package/contracts/shared/INftOwnable.sol +2 -2
  436. package/contracts/shared/IPolicyHolder.sol +23 -14
  437. package/contracts/shared/IRegistryLinked.sol +0 -1
  438. package/contracts/shared/IService.sol +12 -3
  439. package/contracts/shared/InitializableCustom.sol +177 -0
  440. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  441. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  442. package/contracts/shared/KeyValueStore.sol +131 -0
  443. package/contracts/shared/Lifecycle.sol +77 -0
  444. package/contracts/shared/NftIdSet.sol +65 -0
  445. package/contracts/shared/NftOwnable.sol +10 -23
  446. package/contracts/shared/PolicyHolder.sol +19 -42
  447. package/contracts/shared/Registerable.sol +17 -16
  448. package/contracts/shared/RegistryLinked.sol +3 -7
  449. package/contracts/shared/Service.sol +48 -33
  450. package/contracts/shared/TokenHandler.sol +115 -9
  451. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  452. package/contracts/staking/IStaking.sol +168 -0
  453. package/contracts/staking/IStakingService.sol +160 -0
  454. package/contracts/staking/StakeManagerLib.sol +224 -0
  455. package/contracts/staking/Staking.sol +498 -0
  456. package/contracts/staking/StakingLifecycle.sol +23 -0
  457. package/contracts/staking/StakingManager.sol +52 -0
  458. package/contracts/staking/StakingReader.sol +183 -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 +6 -1
  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 +275 -0
  471. package/contracts/{types → type}/Referral.sol +2 -1
  472. package/contracts/type/RequestId.sol +75 -0
  473. package/contracts/{types → type}/RiskId.sol +16 -2
  474. package/contracts/type/RoleId.sol +174 -0
  475. package/contracts/type/Seconds.sol +101 -0
  476. package/contracts/type/Selector.sol +102 -0
  477. package/contracts/{types → type}/StateId.sol +28 -2
  478. package/contracts/type/String.sol +53 -0
  479. package/contracts/{types → type}/Timestamp.sol +17 -3
  480. package/contracts/{types → type}/UFixed.sol +34 -9
  481. package/contracts/{types → type}/Version.sol +4 -2
  482. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  483. package/contracts/{shared → upgradeability}/ProxyManager.sol +92 -30
  484. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  485. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  486. package/package.json +8 -5
  487. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  488. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  489. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  490. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  492. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  494. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  495. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  496. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  497. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  498. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  499. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  500. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  501. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  502. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  503. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  504. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  505. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  506. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  507. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  508. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  509. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  510. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  511. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  512. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  513. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  514. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  515. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1055
  516. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  517. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  518. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1239
  520. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  522. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  523. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  524. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  526. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  528. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  530. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  532. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1511
  539. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
  541. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  543. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  545. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  547. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  549. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  550. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  551. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  552. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  553. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  554. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  555. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  556. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  557. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  558. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  559. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  560. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  561. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  562. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  563. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  564. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  565. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  566. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  567. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  568. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  569. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  570. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  571. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  572. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  573. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  574. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  575. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  576. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  577. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  578. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  579. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  580. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  581. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  582. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -185
  583. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  584. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  585. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  586. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  587. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  588. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  589. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  590. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  591. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  592. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  593. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  594. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  595. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  596. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  597. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  598. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  599. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  600. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  601. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  602. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  603. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  605. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  606. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  607. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  608. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  609. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  610. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  611. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  612. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  613. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  614. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  617. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  619. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  621. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  623. package/contracts/components/Component.sol +0 -253
  624. package/contracts/components/IComponent.sol +0 -76
  625. package/contracts/components/IDistributionComponent.sol +0 -71
  626. package/contracts/components/IPoolComponent.sol +0 -113
  627. package/contracts/components/IProductComponent.sol +0 -40
  628. package/contracts/components/Pool.sol +0 -302
  629. package/contracts/components/Product.sol +0 -371
  630. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  631. package/contracts/instance/Cloneable.sol +0 -51
  632. package/contracts/instance/InstanceAccessManager.sol +0 -527
  633. package/contracts/instance/base/ComponentService.sol +0 -121
  634. package/contracts/instance/base/KeyValueStore.sol +0 -180
  635. package/contracts/instance/base/Lifecycle.sol +0 -117
  636. package/contracts/instance/module/ISetup.sol +0 -33
  637. package/contracts/instance/module/ITreasury.sol +0 -23
  638. package/contracts/instance/service/ApplicationService.sol +0 -351
  639. package/contracts/instance/service/BundleService.sol +0 -431
  640. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  641. package/contracts/instance/service/ClaimService.sol +0 -239
  642. package/contracts/instance/service/DistributionService.sol +0 -431
  643. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  644. package/contracts/instance/service/IBundleService.sol +0 -93
  645. package/contracts/instance/service/IClaimService.sol +0 -92
  646. package/contracts/instance/service/IPolicyService.sol +0 -137
  647. package/contracts/instance/service/IPoolService.sol +0 -99
  648. package/contracts/instance/service/IProductService.sol +0 -40
  649. package/contracts/instance/service/PolicyService.sol +0 -541
  650. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  651. package/contracts/instance/service/PoolService.sol +0 -303
  652. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  653. package/contracts/instance/service/ProductService.sol +0 -210
  654. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  655. package/contracts/registry/RegistryAccessManager.sol +0 -216
  656. package/contracts/registry/ReleaseManager.sol +0 -324
  657. package/contracts/shared/ContractDeployerLib.sol +0 -72
  658. package/contracts/test/TestFee.sol +0 -25
  659. package/contracts/test/TestRegisterable.sol +0 -18
  660. package/contracts/test/TestRoleId.sol +0 -14
  661. package/contracts/test/TestService.sol +0 -25
  662. package/contracts/test/TestToken.sol +0 -26
  663. package/contracts/test/TestVersion.sol +0 -44
  664. package/contracts/test/TestVersionable.sol +0 -17
  665. package/contracts/types/Amount.sol +0 -65
  666. package/contracts/types/ChainId.sol +0 -38
  667. package/contracts/types/NumberId.sol +0 -52
  668. package/contracts/types/ObjectType.sol +0 -157
  669. package/contracts/types/RoleId.sol +0 -97
  670. package/contracts/types/Seconds.sol +0 -54
  671. /package/contracts/{types → type}/DistributorType.sol +0 -0
  672. /package/contracts/{types → type}/Key32.sol +0 -0
  673. /package/contracts/{types → type}/PayoutId.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.toInt() < 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
- }