@etherisc/gif-next 0.0.2-f034782-101 → 0.0.2-f08528a-758

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 (607) hide show
  1. package/README.md +26 -86
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/{instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json → authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json} +4 -4
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/{components/Product.sol/Product.json → distribution/Distribution.sol/Distribution.json} +321 -287
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +253 -222
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +147 -317
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +37 -112
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +272 -1967
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +264 -74
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +398 -2763
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1621 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +785 -329
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +349 -222
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +115 -82
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +10 -118
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +254 -133
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +218 -145
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +262 -257
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → product/BasicProduct.sol/BasicProduct.json} +370 -390
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +174 -202
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +146 -153
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +80 -64
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/product/Product.sol/Product.json +1257 -0
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +135 -29
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -77
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +371 -43
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1741 -0
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +372 -97
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  167. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +703 -91
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  173. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +144 -80
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +100 -113
  180. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  181. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +180 -54
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +186 -198
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IService.sol/IService.json +96 -19
  202. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  204. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  207. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  211. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  212. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  213. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  215. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  217. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  222. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  223. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  224. package/artifacts/contracts/shared/Service.sol/Service.json +103 -21
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  226. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  227. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  228. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  229. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  230. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  231. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  232. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  234. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  236. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  237. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  238. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  240. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  242. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  244. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  246. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  248. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  250. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  251. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  252. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  254. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  256. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  258. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  260. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  261. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  262. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  264. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  266. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  268. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  270. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  272. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  274. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  278. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  280. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  282. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  284. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  288. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  290. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  293. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +33 -7
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  295. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  298. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  299. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  301. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  302. package/contracts/authorization/AccessAdmin.sol +588 -0
  303. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  304. package/contracts/authorization/Authorization.sol +218 -0
  305. package/contracts/authorization/IAccess.sol +48 -0
  306. package/contracts/authorization/IAccessAdmin.sol +136 -0
  307. package/contracts/authorization/IAuthorization.sol +54 -0
  308. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  309. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  310. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  311. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  312. package/contracts/distribution/BasicDistribution.sol +149 -0
  313. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  314. package/contracts/{components → distribution}/Distribution.sol +162 -159
  315. package/contracts/distribution/DistributionService.sol +302 -0
  316. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  317. package/contracts/distribution/IDistributionComponent.sol +48 -0
  318. package/contracts/{instance/service → distribution}/IDistributionService.sol +25 -38
  319. package/contracts/instance/BundleManager.sol +8 -9
  320. package/contracts/instance/IInstance.sol +53 -65
  321. package/contracts/instance/IInstanceService.sol +46 -26
  322. package/contracts/instance/Instance.sol +157 -230
  323. package/contracts/instance/InstanceAdmin.sol +266 -0
  324. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  325. package/contracts/instance/InstanceReader.sol +173 -58
  326. package/contracts/instance/InstanceService.sol +275 -327
  327. package/contracts/instance/InstanceServiceManager.sol +11 -21
  328. package/contracts/instance/InstanceStore.sol +276 -0
  329. package/contracts/instance/base/BalanceStore.sol +123 -0
  330. package/contracts/instance/base/Cloneable.sol +28 -0
  331. package/contracts/instance/base/ObjectCounter.sol +21 -0
  332. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  333. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +13 -16
  334. package/contracts/instance/module/IAccess.sol +5 -13
  335. package/contracts/instance/module/IBundle.sol +8 -9
  336. package/contracts/instance/module/IComponents.sol +22 -5
  337. package/contracts/instance/module/IDistribution.sol +7 -6
  338. package/contracts/instance/module/IPolicy.sol +28 -16
  339. package/contracts/instance/module/IRisk.sol +1 -1
  340. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  341. package/contracts/oracle/BasicOracle.sol +48 -0
  342. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  343. package/contracts/oracle/IOracle.sol +36 -0
  344. package/contracts/oracle/IOracleComponent.sol +32 -0
  345. package/contracts/oracle/IOracleService.sol +65 -0
  346. package/contracts/oracle/Oracle.sol +157 -0
  347. package/contracts/oracle/OracleService.sol +278 -0
  348. package/contracts/oracle/OracleServiceManager.sol +42 -0
  349. package/contracts/pool/BasicPool.sol +164 -0
  350. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  351. package/contracts/pool/BundleService.sol +296 -0
  352. package/contracts/pool/BundleServiceManager.sol +42 -0
  353. package/contracts/pool/IBundleService.sol +106 -0
  354. package/contracts/pool/IPoolComponent.sol +52 -0
  355. package/contracts/pool/IPoolService.sol +150 -0
  356. package/contracts/pool/Pool.sol +311 -0
  357. package/contracts/pool/PoolService.sol +452 -0
  358. package/contracts/pool/PoolServiceManager.sol +42 -0
  359. package/contracts/product/ApplicationService.sol +254 -0
  360. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  361. package/contracts/product/BasicProduct.sol +82 -0
  362. package/contracts/product/BasicProductAuthorization.sol +40 -0
  363. package/contracts/product/ClaimService.sol +442 -0
  364. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  365. package/contracts/{instance/service → product}/IApplicationService.sol +15 -35
  366. package/contracts/product/IClaimService.sol +99 -0
  367. package/contracts/{instance/service → product}/IPolicyService.sol +37 -31
  368. package/contracts/product/IPricingService.sol +39 -0
  369. package/contracts/product/IProductComponent.sol +39 -0
  370. package/contracts/product/IProductService.sol +33 -0
  371. package/contracts/product/PolicyService.sol +475 -0
  372. package/contracts/product/PolicyServiceManager.sol +42 -0
  373. package/contracts/product/PricingService.sol +300 -0
  374. package/contracts/product/PricingServiceManager.sol +42 -0
  375. package/contracts/{components → product}/Product.sol +209 -110
  376. package/contracts/product/ProductService.sol +124 -0
  377. package/contracts/product/ProductServiceManager.sol +42 -0
  378. package/contracts/registry/ChainNft.sol +8 -1
  379. package/contracts/registry/IRegistry.sol +41 -21
  380. package/contracts/registry/IRegistryService.sol +39 -37
  381. package/contracts/registry/Registry.sol +194 -83
  382. package/contracts/registry/RegistryAdmin.sol +365 -0
  383. package/contracts/registry/RegistryService.sol +73 -90
  384. package/contracts/registry/RegistryServiceManager.sol +21 -30
  385. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  386. package/contracts/registry/ReleaseManager.sol +356 -191
  387. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  388. package/contracts/registry/TokenRegistry.sol +261 -62
  389. package/contracts/shared/Component.sol +281 -0
  390. package/contracts/shared/ComponentService.sol +581 -0
  391. package/contracts/shared/ComponentServiceManager.sol +35 -0
  392. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  393. package/contracts/shared/ERC165.sol +1 -1
  394. package/contracts/{components → shared}/IComponent.sol +23 -27
  395. package/contracts/shared/IComponentService.sol +102 -0
  396. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  397. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  398. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  399. package/contracts/shared/INftOwnable.sol +2 -2
  400. package/contracts/shared/IPolicyHolder.sol +29 -10
  401. package/contracts/shared/IRegistryLinked.sol +0 -1
  402. package/contracts/shared/IService.sol +14 -7
  403. package/contracts/shared/IVersionable.sol +1 -1
  404. package/contracts/shared/InitializableCustom.sol +177 -0
  405. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  406. package/contracts/shared/KeyValueStore.sol +131 -0
  407. package/contracts/shared/Lifecycle.sol +77 -0
  408. package/contracts/shared/NftIdSetManager.sol +65 -0
  409. package/contracts/shared/NftOwnable.sol +3 -16
  410. package/contracts/shared/PolicyHolder.sol +40 -19
  411. package/contracts/shared/ProxyManager.sol +34 -4
  412. package/contracts/shared/Registerable.sol +13 -12
  413. package/contracts/shared/RegistryLinked.sol +0 -5
  414. package/contracts/shared/Service.sol +47 -22
  415. package/contracts/shared/TokenHandler.sol +27 -2
  416. package/contracts/shared/Versionable.sol +1 -1
  417. package/contracts/staking/IStaking.sol +168 -0
  418. package/contracts/staking/IStakingService.sol +153 -0
  419. package/contracts/staking/StakeManagerLib.sol +231 -0
  420. package/contracts/staking/Staking.sol +513 -0
  421. package/contracts/staking/StakingLifecycle.sol +23 -0
  422. package/contracts/staking/StakingManager.sol +54 -0
  423. package/contracts/staking/StakingReader.sol +187 -0
  424. package/contracts/staking/StakingService.sol +411 -0
  425. package/contracts/staking/StakingServiceManager.sol +44 -0
  426. package/contracts/staking/StakingStore.sol +615 -0
  427. package/contracts/staking/TargetManagerLib.sol +207 -0
  428. package/contracts/{types → type}/AddressSet.sol +1 -1
  429. package/contracts/type/Amount.sol +128 -0
  430. package/contracts/{types → type}/Blocknumber.sol +20 -3
  431. package/contracts/{types → type}/ClaimId.sol +25 -2
  432. package/contracts/{types → type}/Fee.sol +33 -24
  433. package/contracts/{types → type}/NftId.sol +14 -16
  434. package/contracts/{types → type}/NftIdSet.sol +2 -2
  435. package/contracts/type/ObjectType.sol +275 -0
  436. package/contracts/{types → type}/PayoutId.sol +33 -5
  437. package/contracts/{types → type}/Referral.sol +1 -1
  438. package/contracts/type/RequestId.sol +75 -0
  439. package/contracts/{types → type}/RiskId.sol +1 -1
  440. package/contracts/type/RoleId.sol +174 -0
  441. package/contracts/{types → type}/Seconds.sol +27 -0
  442. package/contracts/type/Selector.sol +102 -0
  443. package/contracts/{types → type}/StateId.sol +33 -4
  444. package/contracts/type/String.sol +53 -0
  445. package/contracts/{types → type}/Timestamp.sol +10 -1
  446. package/contracts/{types → type}/UFixed.sol +6 -0
  447. package/contracts/{types → type}/Version.sol +1 -1
  448. package/package.json +6 -3
  449. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  450. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  451. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  452. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  453. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  454. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  455. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  456. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  457. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  458. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  459. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  460. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1311
  461. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  462. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  463. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  464. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  465. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  466. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  468. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  469. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  470. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  471. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  472. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  473. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  474. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  475. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  476. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  477. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  479. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  481. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  483. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  485. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1732
  487. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  489. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  493. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  497. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  499. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  500. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  501. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  502. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  503. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -824
  504. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  505. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -657
  506. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  507. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  508. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  509. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  510. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  511. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  512. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  513. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  514. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  515. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  516. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  517. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  518. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  519. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  520. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  521. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  522. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  523. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  524. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  525. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  526. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  527. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  528. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  529. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  530. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  531. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  533. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  534. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  535. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  536. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  537. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  538. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  539. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  540. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  541. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  542. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  543. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  544. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  545. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  546. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  547. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  548. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  549. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  550. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  551. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  552. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  555. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  557. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  559. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  561. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  562. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  564. package/contracts/components/Component.sol +0 -251
  565. package/contracts/components/IDistributionComponent.sol +0 -71
  566. package/contracts/components/IPoolComponent.sol +0 -113
  567. package/contracts/components/IProductComponent.sol +0 -40
  568. package/contracts/components/Pool.sol +0 -299
  569. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  570. package/contracts/instance/Cloneable.sol +0 -51
  571. package/contracts/instance/InstanceAccessManager.sol +0 -522
  572. package/contracts/instance/base/ComponentService.sol +0 -134
  573. package/contracts/instance/base/KeyValueStore.sol +0 -175
  574. package/contracts/instance/base/Lifecycle.sol +0 -109
  575. package/contracts/instance/module/ISetup.sol +0 -33
  576. package/contracts/instance/module/ITreasury.sol +0 -23
  577. package/contracts/instance/service/ApplicationService.sol +0 -350
  578. package/contracts/instance/service/BundleService.sol +0 -336
  579. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  580. package/contracts/instance/service/ClaimService.sol +0 -151
  581. package/contracts/instance/service/DistributionService.sol +0 -467
  582. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  583. package/contracts/instance/service/IBundleService.sol +0 -62
  584. package/contracts/instance/service/IClaimService.sol +0 -61
  585. package/contracts/instance/service/IPoolService.sol +0 -35
  586. package/contracts/instance/service/IProductService.sol +0 -40
  587. package/contracts/instance/service/PolicyService.sol +0 -403
  588. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  589. package/contracts/instance/service/PoolService.sol +0 -220
  590. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  591. package/contracts/instance/service/ProductService.sol +0 -241
  592. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  593. package/contracts/registry/RegistryAccessManager.sol +0 -216
  594. package/contracts/shared/ContractDeployerLib.sol +0 -72
  595. package/contracts/test/TestFee.sol +0 -25
  596. package/contracts/test/TestRegisterable.sol +0 -18
  597. package/contracts/test/TestRoleId.sol +0 -14
  598. package/contracts/test/TestService.sol +0 -25
  599. package/contracts/test/TestVersion.sol +0 -44
  600. package/contracts/test/TestVersionable.sol +0 -17
  601. package/contracts/test/Usdc.sol +0 -26
  602. package/contracts/types/ChainId.sol +0 -38
  603. package/contracts/types/NumberId.sol +0 -52
  604. package/contracts/types/ObjectType.sol +0 -157
  605. package/contracts/types/RoleId.sol +0 -97
  606. /package/contracts/{types → type}/DistributorType.sol +0 -0
  607. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,452 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Pool} from "./Pool.sol";
5
+ import {IRegistry} from "../registry/IRegistry.sol";
6
+ import {IInstance} from "../instance/IInstance.sol";
7
+ import {IBundle} from "../instance/module/IBundle.sol";
8
+ import {IComponents} from "../instance/module/IComponents.sol";
9
+ import {IPolicy} from "../instance/module/IPolicy.sol";
10
+
11
+ import {IVersionable} from "../shared/IVersionable.sol";
12
+ import {Versionable} from "../shared/Versionable.sol";
13
+ import {INftOwnable} from "../shared/INftOwnable.sol";
14
+
15
+ import {Amount, AmountLib} from "../type/Amount.sol";
16
+ import {Fee, FeeLib} from "../type/Fee.sol";
17
+ import {NftId, NftIdLib} from "../type/NftId.sol";
18
+ import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
19
+ import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
20
+ import {Fee, FeeLib} from "../type/Fee.sol";
21
+ import {Version, VersionLib} from "../type/Version.sol";
22
+ import {KEEP_STATE, StateId} from "../type/StateId.sol";
23
+ import {Seconds} from "../type/Seconds.sol";
24
+ import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
25
+ import {TokenHandler} from "../shared/TokenHandler.sol";
26
+ import {UFixed} from "../type/UFixed.sol";
27
+ import {Version, VersionLib} from "../type/Version.sol";
28
+
29
+ import {IService} from "../shared/IService.sol";
30
+ import {Service} from "../shared/Service.sol";
31
+ import {BundleManager} from "../instance/BundleManager.sol";
32
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
33
+ import {IBundleService} from "./IBundleService.sol";
34
+ import {IComponentService} from "../shared/IComponentService.sol";
35
+ import {IInstanceService} from "../instance/IInstanceService.sol";
36
+ import {IPoolService} from "./IPoolService.sol";
37
+ import {IRegistryService} from "../registry/IRegistryService.sol";
38
+ import {IStaking} from "../staking/IStaking.sol";
39
+ import {InstanceService} from "../instance/InstanceService.sol";
40
+ import {InstanceReader} from "../instance/InstanceReader.sol";
41
+ import {InstanceStore} from "../instance/InstanceStore.sol";
42
+ import {IComponent} from "../shared/IComponent.sol";
43
+ import {IPoolComponent} from "./IPoolComponent.sol";
44
+
45
+ string constant POOL_SERVICE_NAME = "PoolService";
46
+
47
+ contract PoolService is
48
+ ComponentVerifyingService,
49
+ IPoolService
50
+ {
51
+ using NftIdLib for NftId;
52
+ using AmountLib for Amount;
53
+
54
+ IBundleService internal _bundleService;
55
+ IComponentService internal _componentService;
56
+ IInstanceService private _instanceService;
57
+ IRegistryService private _registryService;
58
+
59
+ IStaking private _staking;
60
+
61
+ function _initialize(
62
+ address owner,
63
+ bytes memory data
64
+ )
65
+ internal
66
+ initializer
67
+ virtual override
68
+ {
69
+ (
70
+ address registryAddress,,
71
+ //address managerAddress
72
+ address authority
73
+ ) = abi.decode(data, (address, address, address));
74
+
75
+ initializeService(registryAddress, authority, owner);
76
+
77
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
78
+ _bundleService = IBundleService(_getServiceAddress(BUNDLE()));
79
+ _instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
80
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
81
+
82
+ _staking = IStaking(getRegistry().getStakingAddress());
83
+
84
+ registerInterface(type(IPoolService).interfaceId);
85
+ }
86
+
87
+
88
+ function setMaxCapitalAmount(Amount maxCapitalAmount)
89
+ external
90
+ virtual
91
+ {
92
+ /*
93
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
94
+ InstanceReader instanceReader = instance.getInstanceReader();
95
+
96
+ IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
97
+ IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
98
+ Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
99
+
100
+ poolInfo.maxCapitalAmount = maxCapitalAmount;
101
+ instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
102
+
103
+ emit LogPoolServiceMaxCapitalAmountUpdated(poolNftId, previousMaxCapitalAmount, maxCapitalAmount);
104
+ */
105
+ }
106
+
107
+ function setBundleOwnerRole(RoleId bundleOwnerRole)
108
+ external
109
+ virtual
110
+ {
111
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
112
+ InstanceReader instanceReader = instance.getInstanceReader();
113
+
114
+ IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
115
+ IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
116
+
117
+ // bundle owner role may only be set once per pool
118
+ if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
119
+ revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
120
+ }
121
+
122
+ poolInfo.bundleOwnerRole = bundleOwnerRole;
123
+ instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
124
+
125
+ emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
126
+ }
127
+
128
+
129
+ function setFees(
130
+ Fee memory poolFee,
131
+ Fee memory stakingFee,
132
+ Fee memory performanceFee
133
+ )
134
+ external
135
+ virtual
136
+ {
137
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
138
+
139
+ IComponents.PoolInfo memory poolInfo = instance.getInstanceReader().getPoolInfo(poolNftId);
140
+ poolInfo.poolFee = poolFee;
141
+ poolInfo.stakingFee = stakingFee;
142
+ poolInfo.performanceFee = performanceFee;
143
+
144
+ instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
145
+
146
+ // TODO add logging
147
+ }
148
+
149
+ function createBundle(
150
+ address bundleOwner, // initial bundle owner
151
+ Fee memory fee, // fees deducted from premium that go to bundle owner
152
+ Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
153
+ Seconds lifetime, // initial duration for which new policies are covered
154
+ bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
155
+ )
156
+ external
157
+ virtual
158
+ returns(NftId bundleNftId)
159
+ {
160
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
161
+ InstanceReader instanceReader = instance.getInstanceReader();
162
+
163
+ (
164
+ Amount stakingFeeAmount,
165
+ Amount stakingNetAmount
166
+ ) = FeeLib.calculateFee(
167
+ _getStakingFee(instanceReader, poolNftId),
168
+ stakingAmount);
169
+
170
+ bundleNftId = _bundleService.create(
171
+ instance,
172
+ poolNftId,
173
+ bundleOwner,
174
+ fee,
175
+ stakingNetAmount,
176
+ lifetime,
177
+ filter);
178
+
179
+ // pool book keeping
180
+ _componentService.increasePoolBalance(
181
+ instance.getInstanceStore(),
182
+ poolNftId,
183
+ stakingAmount,
184
+ stakingFeeAmount);
185
+
186
+ // pool bookkeeping and collect tokens from bundle owner
187
+ _collectStakingAmount(
188
+ instanceReader,
189
+ poolNftId,
190
+ bundleOwner,
191
+ stakingAmount);
192
+
193
+ emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
194
+ }
195
+
196
+ function _getStakingFee(InstanceReader instanceReader, NftId poolNftId)
197
+ internal
198
+ virtual
199
+ view
200
+ returns (Fee memory stakingFee)
201
+ {
202
+ NftId productNftId = instanceReader.getPoolInfo(poolNftId).productNftId;
203
+ return instanceReader.getPoolInfo(productNftId).stakingFee;
204
+ }
205
+
206
+ function closeBundle(NftId bundleNftId)
207
+ external
208
+ virtual
209
+ {
210
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
211
+
212
+ // TODO book keeping for pool collateral released outside of retention level
213
+
214
+ // releasing collateral in bundle
215
+ _bundleService.close(instance, bundleNftId);
216
+
217
+ // TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
218
+
219
+ emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
220
+ }
221
+
222
+
223
+ function processSale(
224
+ NftId bundleNftId,
225
+ IPolicy.Premium memory premium
226
+ )
227
+ external
228
+ virtual
229
+ restricted()
230
+ {
231
+ IRegistry registry = getRegistry();
232
+ IRegistry.ObjectInfo memory bundleObjectInfo = registry.getObjectInfo(bundleNftId);
233
+ IRegistry.ObjectInfo memory poolObjectInfo = registry.getObjectInfo(bundleObjectInfo.parentNftId);
234
+ IRegistry.ObjectInfo memory instanceObjectInfo = registry.getObjectInfo(poolObjectInfo.parentNftId);
235
+ IInstance instance = IInstance(instanceObjectInfo.objectAddress);
236
+
237
+ Amount poolFeeAmount = AmountLib.toAmount(premium.poolFeeFixAmount + premium.poolFeeVarAmount);
238
+ Amount bundleFeeAmount = AmountLib.toAmount(premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
239
+ Amount bundleNetAmount = AmountLib.toAmount(premium.netPremiumAmount);
240
+
241
+ InstanceStore instanceStore = instance.getInstanceStore();
242
+ _componentService.increasePoolBalance(
243
+ instanceStore,
244
+ poolObjectInfo.nftId,
245
+ bundleNetAmount + bundleFeeAmount,
246
+ poolFeeAmount);
247
+
248
+ _componentService.increaseBundleBalance(
249
+ instanceStore,
250
+ bundleObjectInfo.nftId,
251
+ bundleNetAmount,
252
+ bundleFeeAmount);
253
+ }
254
+
255
+
256
+ function lockCollateral(
257
+ IInstance instance,
258
+ address token,
259
+ NftId productNftId,
260
+ NftId applicationNftId,
261
+ NftId bundleNftId,
262
+ Amount sumInsuredAmount // premium amount after product and distribution fees
263
+ )
264
+ external
265
+ virtual
266
+ restricted()
267
+ returns (
268
+ Amount localCollateralAmount,
269
+ Amount totalCollateralAmount
270
+ )
271
+ {
272
+ (
273
+ localCollateralAmount,
274
+ totalCollateralAmount
275
+ ) = calculateRequiredCollateral(
276
+ instance.getInstanceReader(),
277
+ productNftId,
278
+ sumInsuredAmount);
279
+
280
+ // lock collateral amount from involved bundle
281
+ _bundleService.lockCollateral(
282
+ instance,
283
+ applicationNftId,
284
+ bundleNftId,
285
+ localCollateralAmount);
286
+
287
+ // update value locked with staking service
288
+ _staking.increaseTotalValueLocked(
289
+ instance.getNftId(),
290
+ token,
291
+ totalCollateralAmount);
292
+
293
+ // hierarhical riskpool setup
294
+ // TODO loop in with pool component to guarantee availability of external capital
295
+ if(totalCollateralAmount > localCollateralAmount) {
296
+
297
+ }
298
+ }
299
+
300
+
301
+ function reduceCollateral(
302
+ IInstance instance,
303
+ address token,
304
+ NftId policyNftId,
305
+ IPolicy.PolicyInfo memory policyInfo,
306
+ Amount payoutAmount
307
+ )
308
+ external
309
+ virtual
310
+ restricted()
311
+ {
312
+ _bundleService.releaseCollateral(
313
+ instance,
314
+ policyNftId,
315
+ policyInfo.bundleNftId,
316
+ payoutAmount);
317
+
318
+ // update value locked with staking service
319
+ _staking.decreaseTotalValueLocked(
320
+ instance.getNftId(),
321
+ token,
322
+ payoutAmount);
323
+ }
324
+
325
+
326
+ /// @dev releases the remaining collateral linked to the specified policy
327
+ /// may only be called by the policy service for unlocked pool components
328
+ function releaseCollateral(
329
+ IInstance instance,
330
+ address token,
331
+ NftId policyNftId,
332
+ IPolicy.PolicyInfo memory policyInfo
333
+ )
334
+ external
335
+ virtual
336
+ restricted()
337
+ {
338
+ Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
339
+
340
+ _bundleService.releaseCollateral(
341
+ instance,
342
+ policyNftId,
343
+ policyInfo.bundleNftId,
344
+ remainingCollateralAmount);
345
+
346
+ _bundleService.unlinkPolicy(
347
+ instance,
348
+ policyNftId);
349
+
350
+ // update value locked with staking service
351
+ _staking.decreaseTotalValueLocked(
352
+ instance.getNftId(),
353
+ token,
354
+ remainingCollateralAmount);
355
+ }
356
+
357
+
358
+ function calculateRequiredCollateral(
359
+ InstanceReader instanceReader,
360
+ NftId productNftId,
361
+ Amount sumInsuredAmount
362
+ )
363
+ public
364
+ view
365
+ returns(
366
+ Amount localCollateralAmount,
367
+ Amount totalCollateralAmount
368
+ )
369
+ {
370
+ NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
371
+ IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
372
+
373
+ (
374
+ localCollateralAmount,
375
+ totalCollateralAmount
376
+ ) = calculateRequiredCollateral(
377
+ poolInfo.collateralizationLevel,
378
+ poolInfo.retentionLevel,
379
+ sumInsuredAmount);
380
+ }
381
+
382
+
383
+ function calculateRequiredCollateral(
384
+ UFixed collateralizationLevel,
385
+ UFixed retentionLevel,
386
+ Amount sumInsuredAmount
387
+ )
388
+ public
389
+ pure
390
+ returns(
391
+ Amount localCollateralAmount,
392
+ Amount totalCollateralAmount
393
+ )
394
+ {
395
+ // TODO define if only applies to local collateral
396
+ // TODO add minimalistic implementation
397
+
398
+ // assumptions
399
+ // - collateralizationLevel == 1.0
400
+ // - retentionLevel == 1.0
401
+ localCollateralAmount = sumInsuredAmount;
402
+ totalCollateralAmount = localCollateralAmount;
403
+ }
404
+
405
+
406
+ function _processStakingFees(
407
+ Fee memory stakingFee,
408
+ Amount stakingAmount
409
+ )
410
+ internal
411
+ returns (Amount stakingNetAmount)
412
+ {
413
+ stakingNetAmount = stakingAmount;
414
+
415
+ // check if any staking fees apply
416
+ if (FeeLib.gtz(stakingFee)) {
417
+ (Amount feeAmount, Amount netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
418
+ stakingNetAmount = netAmount;
419
+
420
+ // TODO update fee balance for pool
421
+ }
422
+ }
423
+
424
+
425
+ // TODO create (I)TreasuryService that deals with all gif related token transfers
426
+ /// @dev transfers the specified amount from the bundle owner to the pool's wallet
427
+ function _collectStakingAmount(
428
+ InstanceReader instanceReader,
429
+ NftId poolNftId,
430
+ address bundleOwner,
431
+ Amount amount
432
+ )
433
+ internal
434
+ {
435
+
436
+ // collecting investor token
437
+ IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
438
+ TokenHandler tokenHandler = componentInfo.tokenHandler;
439
+ address poolWallet = componentInfo.wallet;
440
+
441
+ if(amount.gtz()) {
442
+ tokenHandler.transfer(
443
+ bundleOwner,
444
+ poolWallet,
445
+ amount);
446
+ }
447
+ }
448
+
449
+ function _getDomain() internal pure override returns(ObjectType) {
450
+ return POOL();
451
+ }
452
+ }
@@ -0,0 +1,42 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../shared/IVersionable.sol";
5
+ import {ProxyManager} from "../shared/ProxyManager.sol";
6
+ import {PoolService} from "./PoolService.sol";
7
+ import {Registry} from "../registry/Registry.sol";
8
+ import {RegistryService} from "../registry/RegistryService.sol";
9
+ import {REGISTRY} from "../type/ObjectType.sol";
10
+
11
+ contract PoolServiceManager is ProxyManager {
12
+
13
+ PoolService private _poolService;
14
+
15
+ /// @dev initializes proxy manager with pool service implementation
16
+ constructor(
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
21
+ ProxyManager(registryAddress)
22
+ {
23
+ PoolService poolSrv = new PoolService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
26
+ address(poolSrv),
27
+ data,
28
+ salt);
29
+
30
+ _poolService = PoolService(address(versionable));
31
+ }
32
+
33
+ //--- view functions ----------------------------------------------------//
34
+ function getPoolService()
35
+ external
36
+ view
37
+ returns (PoolService poolService)
38
+ {
39
+ return _poolService;
40
+ }
41
+
42
+ }