@etherisc/gif-next 0.0.2-868e698-559 → 0.0.2-86dae40-160

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 (457) hide show
  1. package/README.md +49 -4
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -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/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
  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/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
  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 +1500 -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 +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -292
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +214 -90
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +71 -55
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +91 -149
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +103 -16
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +35 -96
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  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 +132 -140
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -125
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +90 -219
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  61. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  63. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  65. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  71. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  73. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1137 -0
  75. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  77. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  79. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -26
  81. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +40 -157
  84. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  85. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
  86. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
  88. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  89. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1406 -0
  90. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  92. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  93. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +394 -62
  94. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +107 -43
  96. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  97. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
  98. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -278
  100. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +158 -54
  102. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  103. package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -417
  104. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  105. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +226 -90
  106. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +52 -36
  108. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  109. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +33 -44
  110. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -40
  112. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  113. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1254 -0
  114. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  116. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  117. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +88 -72
  118. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
  120. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  121. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  122. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
  124. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +188 -108
  126. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  128. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -68
  129. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  130. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  131. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +260 -167
  132. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +59 -43
  134. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  135. package/artifacts/contracts/product/PricingService.sol/PricingService.json +63 -58
  136. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
  138. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  139. package/artifacts/contracts/product/Product.sol/Product.json +32 -217
  140. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  141. package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
  142. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
  144. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  145. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  146. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  147. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
  148. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  149. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  150. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  151. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -73
  153. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  154. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +234 -389
  155. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  156. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  157. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
  159. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  160. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  161. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  162. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  163. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  164. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -16
  165. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  166. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  167. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  168. package/artifacts/contracts/shared/Component.sol/Component.json +0 -64
  169. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  170. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +327 -86
  171. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +105 -61
  173. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  174. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  175. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  176. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  178. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -26
  180. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  182. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  183. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  184. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  188. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  189. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  190. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  191. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  192. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  193. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -117
  194. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  195. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  196. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  198. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  199. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  200. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  202. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  203. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  204. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  206. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  207. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  208. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  209. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  210. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +240 -16
  211. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  212. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -26
  213. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  214. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  215. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +40 -113
  216. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  217. package/artifacts/contracts/staking/Staking.sol/Staking.json +127 -119
  218. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  220. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  221. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +82 -46
  222. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  223. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  224. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  225. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
  226. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  227. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
  228. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  229. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
  230. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  231. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -22
  232. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  233. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  234. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  236. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  238. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  239. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  240. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  241. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  242. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  244. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  245. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  246. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  248. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  249. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  250. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  252. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  254. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  256. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  258. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  260. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  262. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  264. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  266. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  268. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  270. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  272. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  274. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  276. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
  278. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  280. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  282. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  283. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  284. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  285. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  286. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  287. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  288. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  289. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  290. package/contracts/{shared → authorization}/AccessAdmin.sol +135 -303
  291. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  292. package/contracts/authorization/Authorization.sol +218 -0
  293. package/contracts/authorization/IAccess.sol +48 -0
  294. package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
  295. package/contracts/authorization/IAuthorization.sol +54 -0
  296. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  297. package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -5
  298. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  299. package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
  300. package/contracts/distribution/BasicDistribution.sol +138 -0
  301. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  302. package/contracts/distribution/Distribution.sol +144 -110
  303. package/contracts/distribution/DistributionService.sol +57 -32
  304. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  305. package/contracts/distribution/IDistributionComponent.sol +25 -39
  306. package/contracts/distribution/IDistributionService.sol +15 -1
  307. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  308. package/contracts/instance/IInstance.sol +8 -9
  309. package/contracts/instance/IInstanceService.sol +13 -18
  310. package/contracts/instance/Instance.sol +61 -70
  311. package/contracts/instance/InstanceAdmin.sol +202 -267
  312. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  313. package/contracts/instance/InstanceReader.sol +32 -16
  314. package/contracts/instance/InstanceService.sol +104 -76
  315. package/contracts/instance/InstanceServiceManager.sol +2 -6
  316. package/contracts/instance/InstanceStore.sol +13 -5
  317. package/contracts/instance/base/ObjectLifecycle.sol +105 -0
  318. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
  319. package/contracts/instance/module/IBundle.sol +1 -1
  320. package/contracts/instance/module/IComponents.sol +1 -7
  321. package/contracts/instance/module/IDistribution.sol +0 -1
  322. package/contracts/instance/module/IPolicy.sol +1 -1
  323. package/contracts/mock/Dip.sol +1 -1
  324. package/contracts/oracle/BasicOracle.sol +48 -0
  325. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  326. package/contracts/oracle/IOracle.sol +16 -0
  327. package/contracts/oracle/IOracleComponent.sol +2 -1
  328. package/contracts/oracle/Oracle.sol +72 -51
  329. package/contracts/oracle/OracleServiceManager.sol +2 -5
  330. package/contracts/pool/BasicPool.sol +166 -0
  331. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  332. package/contracts/pool/BundleService.sol +181 -41
  333. package/contracts/pool/BundleServiceManager.sol +2 -5
  334. package/contracts/pool/IBundleService.sol +32 -5
  335. package/contracts/pool/IPoolComponent.sol +6 -60
  336. package/contracts/pool/IPoolService.sol +14 -17
  337. package/contracts/pool/Pool.sol +166 -137
  338. package/contracts/pool/PoolService.sol +152 -86
  339. package/contracts/pool/PoolServiceManager.sol +2 -5
  340. package/contracts/product/ApplicationService.sol +49 -53
  341. package/contracts/product/ApplicationServiceManager.sol +2 -2
  342. package/contracts/product/BasicProduct.sol +52 -0
  343. package/contracts/product/BasicProductAuthorization.sol +43 -0
  344. package/contracts/product/ClaimService.sol +13 -39
  345. package/contracts/product/ClaimServiceManager.sol +2 -2
  346. package/contracts/product/IApplicationService.sol +1 -0
  347. package/contracts/product/IClaimService.sol +1 -0
  348. package/contracts/product/IPolicyService.sol +23 -17
  349. package/contracts/product/IProductComponent.sol +7 -9
  350. package/contracts/product/IProductService.sol +1 -0
  351. package/contracts/product/PolicyService.sol +242 -131
  352. package/contracts/product/PolicyServiceManager.sol +2 -5
  353. package/contracts/product/PricingService.sol +5 -1
  354. package/contracts/product/PricingServiceManager.sol +2 -5
  355. package/contracts/product/Product.sol +128 -92
  356. package/contracts/product/ProductService.sol +7 -32
  357. package/contracts/product/ProductServiceManager.sol +2 -5
  358. package/contracts/registry/IRegistry.sol +26 -16
  359. package/contracts/registry/IRegistryService.sol +6 -6
  360. package/contracts/registry/Registry.sol +81 -87
  361. package/contracts/registry/RegistryAdmin.sol +118 -86
  362. package/contracts/registry/RegistryService.sol +4 -18
  363. package/contracts/registry/RegistryServiceManager.sol +2 -2
  364. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  365. package/contracts/registry/ReleaseRegistry.sol +485 -0
  366. package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
  367. package/contracts/registry/TokenRegistry.sol +2 -2
  368. package/contracts/shared/Component.sol +24 -37
  369. package/contracts/shared/ComponentService.sol +92 -70
  370. package/contracts/shared/ComponentServiceManager.sol +2 -2
  371. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  372. package/contracts/shared/IComponent.sol +4 -4
  373. package/contracts/shared/IComponentService.sol +15 -9
  374. package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
  375. package/contracts/shared/IKeyValueStore.sol +1 -0
  376. package/contracts/shared/ILifecycle.sol +1 -2
  377. package/contracts/shared/IService.sol +1 -1
  378. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
  379. package/contracts/shared/InstanceLinkedComponent.sol +47 -19
  380. package/contracts/shared/KeyValueStore.sol +6 -2
  381. package/contracts/shared/Lifecycle.sol +16 -69
  382. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  383. package/contracts/shared/NftOwnable.sol +2 -2
  384. package/contracts/shared/PolicyHolder.sol +2 -5
  385. package/contracts/shared/Service.sol +3 -4
  386. package/contracts/shared/TokenHandler.sol +91 -17
  387. package/contracts/staking/IStaking.sol +1 -2
  388. package/contracts/staking/IStakingService.sol +12 -5
  389. package/contracts/staking/StakeManagerLib.sol +0 -25
  390. package/contracts/staking/Staking.sol +19 -36
  391. package/contracts/staking/StakingLifecycle.sol +23 -0
  392. package/contracts/staking/StakingManager.sol +2 -6
  393. package/contracts/staking/StakingReader.sol +12 -16
  394. package/contracts/staking/StakingService.sol +8 -12
  395. package/contracts/staking/StakingServiceManager.sol +2 -2
  396. package/contracts/staking/StakingStore.sol +15 -23
  397. package/contracts/type/Amount.sol +12 -5
  398. package/contracts/type/Blocknumber.sol +7 -1
  399. package/contracts/type/ObjectType.sol +37 -7
  400. package/contracts/type/Referral.sol +1 -0
  401. package/contracts/type/RoleId.sol +55 -82
  402. package/contracts/type/Seconds.sol +13 -1
  403. package/contracts/type/Timestamp.sol +11 -1
  404. package/contracts/type/UFixed.sol +34 -9
  405. package/contracts/type/Version.sol +3 -1
  406. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  407. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  408. package/package.json +6 -3
  409. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  410. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  411. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  412. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  413. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  414. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  415. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  416. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  417. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
  418. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  419. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
  420. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  421. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  422. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  423. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  424. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  425. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  426. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  427. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  428. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  429. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  430. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  431. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  432. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  433. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  434. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  435. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  436. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  437. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  438. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  439. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  440. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  441. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  442. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  443. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  444. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  445. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  446. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  447. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  448. package/contracts/registry/ReleaseManager.sol +0 -527
  449. package/contracts/shared/AccessManagerCustom.sol +0 -741
  450. package/contracts/shared/AccessManagerExtended.sol +0 -481
  451. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  452. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  453. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  454. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  455. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  456. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  457. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,46 +1,31 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Pool} from "./Pool.sol";
5
- import {IRegistry} from "../registry/IRegistry.sol";
6
- import {IInstance} from "../instance/IInstance.sol";
7
4
  import {IBundle} from "../instance/module/IBundle.sol";
5
+ import {IBundleService} from "./IBundleService.sol";
8
6
  import {IComponents} from "../instance/module/IComponents.sol";
7
+ import {IComponentService} from "../shared/IComponentService.sol";
8
+ import {IInstance} from "../instance/IInstance.sol";
9
+ import {IInstanceService} from "../instance/IInstanceService.sol";
9
10
  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";
11
+ import {IPoolService} from "./IPoolService.sol";
12
+ import {IRegistry} from "../registry/IRegistry.sol";
13
+ import {IRegistryService} from "../registry/IRegistryService.sol";
14
+ import {IStaking} from "../staking/IStaking.sol";
14
15
 
15
16
  import {Amount, AmountLib} from "../type/Amount.sol";
16
17
  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 {PUBLIC_ROLE, POOL_OWNER_ROLE, POLICY_SERVICE_ROLE, RoleId} from "../type/RoleId.sol";
18
+ import {NftId} from "../type/NftId.sol";
19
+ import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY} from "../type/ObjectType.sol";
20
+ import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
20
21
  import {Fee, FeeLib} from "../type/Fee.sol";
21
- import {Version, VersionLib} from "../type/Version.sol";
22
- import {KEEP_STATE, StateId} from "../type/StateId.sol";
22
+ import {KEEP_STATE} from "../type/StateId.sol";
23
23
  import {Seconds} from "../type/Seconds.sol";
24
- import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
25
24
  import {TokenHandler} from "../shared/TokenHandler.sol";
26
25
  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
26
  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
27
  import {InstanceReader} from "../instance/InstanceReader.sol";
41
28
  import {InstanceStore} from "../instance/InstanceStore.sol";
42
- import {IComponent} from "../shared/IComponent.sol";
43
- import {IPoolComponent} from "./IPoolComponent.sol";
44
29
 
45
30
  string constant POOL_SERVICE_NAME = "PoolService";
46
31
 
@@ -48,9 +33,6 @@ contract PoolService is
48
33
  ComponentVerifyingService,
49
34
  IPoolService
50
35
  {
51
- using NftIdLib for NftId;
52
- using AmountLib for Amount;
53
-
54
36
  IBundleService internal _bundleService;
55
37
  IComponentService internal _componentService;
56
38
  IInstanceService private _instanceService;
@@ -84,24 +66,20 @@ contract PoolService is
84
66
  registerInterface(type(IPoolService).interfaceId);
85
67
  }
86
68
 
87
-
88
- function setMaxCapitalAmount(Amount maxCapitalAmount)
69
+ /// @inheritdoc IPoolService
70
+ function setMaxBalanceAmount(Amount maxBalanceAmount)
89
71
  external
90
72
  virtual
91
73
  {
92
- /*
93
74
  (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
94
75
  InstanceReader instanceReader = instance.getInstanceReader();
76
+ IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
95
77
 
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;
78
+ Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
79
+ poolInfo.maxBalanceAmount = maxBalanceAmount;
101
80
  instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
102
81
 
103
- emit LogPoolServiceMaxCapitalAmountUpdated(poolNftId, previousMaxCapitalAmount, maxCapitalAmount);
104
- */
82
+ emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
105
83
  }
106
84
 
107
85
  function setBundleOwnerRole(RoleId bundleOwnerRole)
@@ -125,27 +103,7 @@ contract PoolService is
125
103
  emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
126
104
  }
127
105
 
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
-
106
+ /// @inheritdoc IPoolService
149
107
  function createBundle(
150
108
  address bundleOwner, // initial bundle owner
151
109
  Fee memory fee, // fees deducted from premium that go to bundle owner
@@ -155,24 +113,32 @@ contract PoolService is
155
113
  )
156
114
  external
157
115
  virtual
158
- returns(NftId bundleNftId)
116
+ returns(NftId bundleNftId, Amount netStakedAmount)
159
117
  {
160
118
  (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
161
- InstanceReader instanceReader = instance.getInstanceReader();
162
119
 
163
- (
164
- Amount stakingFeeAmount,
165
- Amount stakingNetAmount
166
- ) = FeeLib.calculateFee(
167
- _getStakingFee(instanceReader, poolNftId),
120
+ {
121
+ InstanceReader instanceReader = instance.getInstanceReader();
122
+ IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
123
+ Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
124
+ if (currentPoolBalance + stakingAmount > poolInfo.maxBalanceAmount) {
125
+ revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, stakingAmount);
126
+ }
127
+ }
128
+
129
+
130
+ Amount stakingFeeAmount;
131
+ (stakingFeeAmount, netStakedAmount) = FeeLib.calculateFee(
132
+ _getStakingFee(instance.getInstanceReader(), poolNftId),
168
133
  stakingAmount);
169
134
 
135
+
170
136
  bundleNftId = _bundleService.create(
171
137
  instance,
172
138
  poolNftId,
173
139
  bundleOwner,
174
140
  fee,
175
- stakingNetAmount,
141
+ netStakedAmount,
176
142
  lifetime,
177
143
  filter);
178
144
 
@@ -180,12 +146,12 @@ contract PoolService is
180
146
  _componentService.increasePoolBalance(
181
147
  instance.getInstanceStore(),
182
148
  poolNftId,
183
- stakingAmount,
149
+ netStakedAmount,
184
150
  stakingFeeAmount);
185
151
 
186
152
  // pool bookkeeping and collect tokens from bundle owner
187
153
  _collectStakingAmount(
188
- instanceReader,
154
+ instance.getInstanceReader(),
189
155
  poolNftId,
190
156
  bundleOwner,
191
157
  stakingAmount);
@@ -199,8 +165,8 @@ contract PoolService is
199
165
  view
200
166
  returns (Fee memory stakingFee)
201
167
  {
202
- NftId productNftId = instanceReader.getPoolInfo(poolNftId).productNftId;
203
- return instanceReader.getPoolInfo(productNftId).stakingFee;
168
+ NftId productNftId = instanceReader.getComponentInfo(poolNftId).productNftId;
169
+ return instanceReader.getProductInfo(productNftId).stakingFee;
204
170
  }
205
171
 
206
172
  function closeBundle(NftId bundleNftId)
@@ -209,16 +175,121 @@ contract PoolService is
209
175
  {
210
176
  (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
211
177
 
212
- // TODO book keeping for pool collateral released outside of retention level
178
+ // TODO get performance fee for pool (#477)
213
179
 
214
180
  // 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
181
+ (Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
218
182
 
183
+ _componentService.decreasePoolBalance(
184
+ instance.getInstanceStore(),
185
+ poolNftId,
186
+ unstakedAmount + feeAmount,
187
+ AmountLib.zero());
188
+
219
189
  emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
190
+
191
+ if ((unstakedAmount + feeAmount).gtz()){
192
+ IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
193
+ poolComponentInfo.tokenHandler.distributeTokens(
194
+ poolComponentInfo.wallet,
195
+ getRegistry().ownerOf(bundleNftId),
196
+ unstakedAmount + feeAmount);
197
+ }
198
+ }
199
+
200
+ /// @inheritdoc IPoolService
201
+ function stake(NftId bundleNftId, Amount amount)
202
+ external
203
+ virtual
204
+ // TODO: restricted() (once #462 is done)
205
+ returns(Amount netAmount)
206
+ {
207
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
208
+ InstanceReader instanceReader = instance.getInstanceReader();
209
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
210
+ IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
211
+
212
+ if (bundleInfo.poolNftId != poolNftId) {
213
+ revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
214
+ }
215
+
216
+ {
217
+ Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
218
+ if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
219
+ revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
220
+ }
221
+ }
222
+
223
+ // calculate fees
224
+ Amount feeAmount;
225
+ (
226
+ feeAmount,
227
+ netAmount
228
+ ) = FeeLib.calculateFee(
229
+ _getStakingFee(instanceReader, poolNftId),
230
+ amount);
231
+
232
+ // do all the bookkeeping
233
+ _componentService.increasePoolBalance(
234
+ instance.getInstanceStore(),
235
+ poolNftId,
236
+ netAmount,
237
+ feeAmount);
238
+
239
+ _bundleService.stake(instance, bundleNftId, netAmount);
240
+
241
+ // collect tokens from bundle owner
242
+ address bundleOwner = getRegistry().ownerOf(bundleNftId);
243
+ emit LogPoolServiceBundleStaked(instance.getNftId(), poolNftId, bundleNftId, amount, netAmount);
244
+ _collectStakingAmount(
245
+ instanceReader,
246
+ poolNftId,
247
+ bundleOwner,
248
+ amount);
220
249
  }
221
250
 
251
+ /// @inheritdoc IPoolService
252
+ function unstake(NftId bundleNftId, Amount amount)
253
+ external
254
+ virtual
255
+ // TODO: restricted() (once #462 is done)
256
+ returns(Amount netAmount)
257
+ {
258
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
259
+ InstanceReader instanceReader = instance.getInstanceReader();
260
+ InstanceStore instanceStore = instance.getInstanceStore();
261
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
262
+
263
+ if (bundleInfo.poolNftId != poolNftId) {
264
+ revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
265
+ }
266
+
267
+ // call bundle service for bookkeeping and additional checks
268
+ Amount unstakedAmount = _bundleService.unstake(instance, bundleNftId, amount);
269
+
270
+ // Important: from now on work only with unstakedAmount as it is the only reliable amount.
271
+ // if amount was max, this was set to the available amount
272
+
273
+ // TODO: handle performance fees (issue #477)
274
+
275
+ // update pool bookkeeping - performance fees stay in the pool, but as fees
276
+ _componentService.decreasePoolBalance(
277
+ instanceStore,
278
+ poolNftId,
279
+ unstakedAmount,
280
+ AmountLib.zero());
281
+
282
+ IComponents.ComponentInfo memory poolComponentInfo = instanceReader.getComponentInfo(poolNftId);
283
+ address poolWallet = poolComponentInfo.wallet;
284
+ // transfer amount to bundle owner
285
+ address owner = getRegistry().ownerOf(bundleNftId);
286
+ emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount);
287
+ poolComponentInfo.tokenHandler.distributeTokens(
288
+ poolWallet,
289
+ owner,
290
+ unstakedAmount);
291
+ return unstakedAmount;
292
+ }
222
293
 
223
294
  function processSale(
224
295
  NftId bundleNftId,
@@ -422,7 +493,6 @@ contract PoolService is
422
493
  }
423
494
 
424
495
 
425
- // TODO create (I)TreasuryService that deals with all gif related token transfers
426
496
  /// @dev transfers the specified amount from the bundle owner to the pool's wallet
427
497
  function _collectStakingAmount(
428
498
  InstanceReader instanceReader,
@@ -435,15 +505,11 @@ contract PoolService is
435
505
 
436
506
  // collecting investor token
437
507
  IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
438
- TokenHandler tokenHandler = componentInfo.tokenHandler;
439
508
  address poolWallet = componentInfo.wallet;
440
-
441
- if(amount.gtz()) {
442
- tokenHandler.transfer(
443
- bundleOwner,
444
- poolWallet,
445
- amount);
446
- }
509
+ componentInfo.tokenHandler.collectTokens(
510
+ bundleOwner,
511
+ poolWallet,
512
+ amount);
447
513
  }
448
514
 
449
515
  function _getDomain() internal pure override returns(ObjectType) {
@@ -1,12 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
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
7
 
11
8
  contract PoolServiceManager is ProxyManager {
12
9
 
@@ -1,51 +1,27 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IApplicationService} from "./IApplicationService.sol";
5
+ import {IComponents} from "../instance/module/IComponents.sol";
6
+ import {IInstance} from "../instance/IInstance.sol";
7
+ import {IRegistry} from "../registry/IRegistry.sol";
8
+ import {IPolicy} from "../instance/module/IPolicy.sol";
9
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
10
+ import {IPricingService} from "./IPricingService.sol";
11
+ import {IRegistryService} from "../registry/IRegistryService.sol";
12
+
4
13
  import {AmountLib} from "../type/Amount.sol";
5
14
  import {Seconds} from "../type/Seconds.sol";
6
- import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
7
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
8
- import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
9
- import {ObjectType, DISTRIBUTION, INSTANCE, PRODUCT, POOL, REGISTRY, APPLICATION, POLICY, BUNDLE, PRICE} from "../type/ObjectType.sol";
10
- import {APPLIED, REVOKED, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
15
+ import {zeroTimestamp} from "../type/Timestamp.sol";
16
+ import {ObjectType, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
17
+ import {REVOKED} from "../type/StateId.sol";
11
18
  import {NftId, NftIdLib} from "../type/NftId.sol";
12
- import {Fee, FeeLib} from "../type/Fee.sol";
13
19
  import {ReferralId} from "../type/Referral.sol";
14
20
  import {RiskId} from "../type/RiskId.sol";
15
- import {StateId} from "../type/StateId.sol";
16
- import {Version, VersionLib} from "../type/Version.sol";
17
21
  import {Amount, AmountLib} from "../type/Amount.sol";
18
-
19
- import {TokenHandler} from "../shared/TokenHandler.sol";
20
- import {IVersionable} from "../shared/IVersionable.sol";
21
- import {Versionable} from "../shared/Versionable.sol";
22
- import {IService} from "../shared/IService.sol";
23
- import {Service} from "../shared/Service.sol";
24
-
25
- import {IRegistry} from "../registry/IRegistry.sol";
26
-
27
- import {IProductComponent} from "./IProductComponent.sol";
28
- import {IPoolComponent} from "../pool/IPoolComponent.sol";
29
- import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
30
- import {Product} from "./Product.sol";
31
-
32
- import {IComponents} from "../instance/module/IComponents.sol";
33
- import {IPolicy} from "../instance/module/IPolicy.sol";
34
- import {IRisk} from "../instance/module/IRisk.sol";
35
- import {IBundle} from "../instance/module/IBundle.sol";
36
- import {IProductService} from "./IProductService.sol";
37
-
38
22
  import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
39
-
40
- import {IInstance} from "../instance/IInstance.sol";
41
23
  import {InstanceReader} from "../instance/InstanceReader.sol";
42
24
 
43
- import {IApplicationService} from "./IApplicationService.sol";
44
- import {IBundleService} from "../pool/IBundleService.sol";
45
- import {IDistributionService} from "../distribution/IDistributionService.sol";
46
- import {IPoolService} from "../pool/IPoolService.sol";
47
- import {IPricingService} from "./IPricingService.sol";
48
- import {IRegistryService} from "../registry/IRegistryService.sol";
49
25
 
50
26
 
51
27
  contract ApplicationService is
@@ -152,6 +128,7 @@ contract ApplicationService is
152
128
  address applicationOwner,
153
129
  RiskId riskId,
154
130
  Amount sumInsuredAmount,
131
+ Amount premiumAmount,
155
132
  Seconds lifetime,
156
133
  NftId bundleNftId,
157
134
  ReferralId referralId,
@@ -176,13 +153,45 @@ contract ApplicationService is
176
153
  applicationNftId = _registerApplication(productNftId, applicationOwner);
177
154
 
178
155
  // create policy info for application
179
- IPolicy.PolicyInfo memory applicationInfo = IPolicy.PolicyInfo({
156
+ IPolicy.PolicyInfo memory applicationInfo = _createApplicationInfo(
157
+ productNftId,
158
+ riskId,
159
+ sumInsuredAmount,
160
+ premiumAmount,
161
+ lifetime,
162
+ bundleNftId,
163
+ referralId,
164
+ applicationData);
165
+
166
+ // register application with instance
167
+ instance.getInstanceStore().createApplication(
168
+ applicationNftId,
169
+ applicationInfo);
170
+
171
+ // TODO: add logging
172
+ }
173
+
174
+ function _createApplicationInfo(
175
+ NftId productNftId,
176
+ RiskId riskId,
177
+ Amount sumInsuredAmount,
178
+ Amount premiumAmount,
179
+ Seconds lifetime,
180
+ NftId bundleNftId,
181
+ ReferralId referralId,
182
+ bytes memory applicationData
183
+ )
184
+ internal
185
+ virtual
186
+ returns (IPolicy.PolicyInfo memory applicationInfo)
187
+ {
188
+ return IPolicy.PolicyInfo({
180
189
  productNftId: productNftId,
181
190
  bundleNftId: bundleNftId,
182
191
  referralId: referralId,
183
192
  riskId: riskId,
184
193
  sumInsuredAmount: sumInsuredAmount,
185
- premiumAmount: AmountLib.zero(),
194
+ premiumAmount: premiumAmount,
186
195
  premiumPaidAmount: AmountLib.zero(),
187
196
  lifetime: lifetime,
188
197
  applicationData: applicationData,
@@ -195,21 +204,8 @@ contract ApplicationService is
195
204
  expiredAt: zeroTimestamp(),
196
205
  closedAt: zeroTimestamp()
197
206
  });
198
-
199
- // TODO consider to provide this amount externally
200
- // actual calculation is done 2nd time anyway for premium collection
201
- // calculate premium amount
202
- applicationInfo.premiumAmount = _calculatePremiumAmount(applicationInfo);
203
-
204
- // register application with instance
205
- instance.getInstanceStore().createApplication(
206
- applicationNftId,
207
- applicationInfo);
208
-
209
- // TODO: add logging
210
207
  }
211
208
 
212
-
213
209
  function renew(
214
210
  NftId policyNftId, // policy to be renewd (renewal inherits policy attributes)
215
211
  NftId bundleNftId // will likely need a newer bundle for underwriting
@@ -218,7 +214,7 @@ contract ApplicationService is
218
214
  virtual override
219
215
  returns (NftId applicationNftId)
220
216
  {
221
-
217
+ // TODO implement
222
218
  }
223
219
 
224
220
 
@@ -234,7 +230,7 @@ contract ApplicationService is
234
230
  external
235
231
  virtual override
236
232
  {
237
-
233
+ // TODO implement
238
234
  }
239
235
 
240
236
  function revoke(NftId applicationNftId)
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {ApplicationService} from "./ApplicationService.sol";
7
7
 
8
8
  contract ApplicationServiceManager is ProxyManager {
@@ -0,0 +1,52 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Fee} from "../type/Fee.sol";
5
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {Product} from "../product/Product.sol";
8
+
9
+ abstract contract BasicProduct is
10
+ Product
11
+ {
12
+
13
+ function setFees(
14
+ Fee memory productFee,
15
+ Fee memory processingFee
16
+ )
17
+ external
18
+ virtual
19
+ onlyOwner()
20
+ restricted()
21
+ {
22
+ _setFees(productFee, processingFee);
23
+ }
24
+ function _initializeBasicProduct(
25
+ address registry,
26
+ NftId instanceNftId,
27
+ IAuthorization authorization,
28
+ address initialOwner,
29
+ string memory name,
30
+ address token,
31
+ bool isInterceptor,
32
+ address pool,
33
+ address distribution
34
+ )
35
+ internal
36
+ virtual
37
+ onlyInitializing()
38
+ {
39
+ _initializeProduct(
40
+ registry,
41
+ instanceNftId,
42
+ authorization,
43
+ initialOwner,
44
+ name,
45
+ token,
46
+ isInterceptor,
47
+ pool,
48
+ distribution,
49
+ "", //registryData,
50
+ ""); // componentData
51
+ }
52
+ }
@@ -0,0 +1,43 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "../authorization/Authorization.sol";
5
+ import {BasicProduct} from "./BasicProduct.sol";
6
+ import {PRODUCT} from "../type/ObjectType.sol";
7
+ import {IAccess} from "../authorization/IAccess.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+
12
+
13
+ contract BasicProductAuthorization
14
+ is Authorization
15
+ {
16
+
17
+ constructor(string memory componentName)
18
+ Authorization(componentName)
19
+ {}
20
+
21
+ function _setupTargets()
22
+ internal
23
+ virtual override
24
+ {
25
+ // basic component target
26
+ _addComponentTargetWithRole(PRODUCT());
27
+ }
28
+
29
+
30
+ function _setupTargetAuthorizations()
31
+ internal
32
+ virtual override
33
+ {
34
+ IAccess.FunctionInfo[] storage functions;
35
+
36
+ // authorize public role (open access to any account, only allows to lock target)
37
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
38
+ _authorize(functions, BasicProduct.setFees.selector, "setFees");
39
+
40
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
41
+ }
42
+ }
43
+