@etherisc/gif-next 0.0.2-7afe9ac-654 → 0.0.2-7b09b39-121

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 (288) hide show
  1. package/README.md +16 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
  14. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  16. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +30 -60
  18. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  20. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -38
  22. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +93 -96
  24. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +45 -49
  26. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  28. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  29. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  30. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  31. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  32. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  33. package/artifacts/contracts/instance/Instance.sol/Instance.json +2 -2
  34. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  35. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2 -2
  36. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  37. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +2 -2
  38. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  39. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +80 -122
  40. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +2 -2
  42. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  43. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +2 -2
  44. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +72 -194
  46. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  47. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  48. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  49. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  50. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  51. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  52. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  53. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  54. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  55. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  56. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  57. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  58. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  59. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  60. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  61. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  62. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  63. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  64. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +18 -48
  65. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  66. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  67. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  68. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  69. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  70. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  71. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -38
  72. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  73. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  74. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +2 -2
  76. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  77. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +11 -99
  78. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  79. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
  80. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  81. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +288 -67
  82. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +78 -34
  84. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  85. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +134 -1
  86. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  87. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1 -57
  88. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  89. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +189 -54
  90. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  91. package/artifacts/contracts/pool/Pool.sol/Pool.json +1 -95
  92. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  93. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +337 -90
  94. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  95. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +75 -19
  96. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  97. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +21 -32
  98. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +9 -17
  100. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  101. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +0 -38
  102. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  103. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  104. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  105. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +82 -58
  106. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +34 -30
  108. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  109. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  110. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  111. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
  112. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  113. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +184 -88
  114. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  115. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  116. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  117. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  118. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +291 -139
  119. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +54 -26
  121. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  122. package/artifacts/contracts/product/PricingService.sol/PricingService.json +7 -2
  123. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +2 -2
  125. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  126. package/artifacts/contracts/product/Product.sol/Product.json +0 -38
  127. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  128. package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
  129. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
  131. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  132. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  133. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  134. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  135. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  136. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  137. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  138. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2 -2
  139. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  140. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  141. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
  143. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  144. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  145. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +2 -2
  146. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  147. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
  148. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  149. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  150. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  151. package/artifacts/contracts/shared/Component.sol/Component.json +0 -38
  152. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  153. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +148 -76
  154. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +47 -39
  156. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  157. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  158. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  159. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +56 -0
  160. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  161. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  162. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  163. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  164. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  165. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  166. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  167. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  168. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  169. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  170. package/artifacts/contracts/shared/{ERC165.sol/ERC165.json → InitializableERC165.sol/InitializableERC165.json} +4 -4
  171. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  172. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +0 -38
  173. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  174. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  175. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  176. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  178. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  179. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  180. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  181. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  182. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  183. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  184. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  185. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  186. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +53 -6
  187. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  188. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  189. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  190. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +12 -2
  191. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  192. package/artifacts/contracts/staking/Staking.sol/Staking.json +56 -70
  193. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  194. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  195. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +29 -17
  196. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  197. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  198. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  199. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +22 -22
  200. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +12 -12
  202. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  203. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +17 -12
  204. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  205. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +7 -2
  206. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  207. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  208. package/artifacts/contracts/type/Amount.sol/AmountLib.json +13 -8
  209. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  210. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  211. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  212. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  213. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  214. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  215. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  216. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  217. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  218. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  219. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  220. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  221. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  222. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  223. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  224. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  225. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  226. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  227. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  228. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  229. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  230. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  231. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  232. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  233. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  234. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
  236. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  238. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  239. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  240. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  241. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  242. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  243. package/contracts/distribution/BasicDistribution.sol +4 -15
  244. package/contracts/distribution/Distribution.sol +3 -9
  245. package/contracts/distribution/DistributionService.sol +11 -13
  246. package/contracts/instance/InstanceReader.sol +10 -7
  247. package/contracts/instance/InstanceStore.sol +2 -1
  248. package/contracts/instance/base/ObjectLifecycle.sol +2 -3
  249. package/contracts/instance/module/IBundle.sol +1 -1
  250. package/contracts/instance/module/IComponents.sol +1 -6
  251. package/contracts/instance/module/IDistribution.sol +0 -1
  252. package/contracts/instance/module/IPolicy.sol +1 -1
  253. package/contracts/mock/Dip.sol +1 -1
  254. package/contracts/oracle/Oracle.sol +2 -6
  255. package/contracts/pool/BasicPool.sol +7 -5
  256. package/contracts/pool/BasicPoolAuthorization.sol +5 -2
  257. package/contracts/pool/BundleService.sol +126 -16
  258. package/contracts/pool/IBundleService.sol +21 -6
  259. package/contracts/pool/IPoolService.sol +15 -16
  260. package/contracts/pool/Pool.sol +14 -14
  261. package/contracts/pool/PoolService.sol +174 -48
  262. package/contracts/product/ApplicationService.sol +35 -15
  263. package/contracts/product/BasicProduct.sol +3 -33
  264. package/contracts/product/ClaimService.sol +16 -8
  265. package/contracts/product/IApplicationService.sol +1 -0
  266. package/contracts/product/IClaimService.sol +1 -0
  267. package/contracts/product/IPolicyService.sol +19 -12
  268. package/contracts/product/PolicyService.sol +189 -108
  269. package/contracts/product/PricingService.sol +5 -1
  270. package/contracts/product/Product.sol +22 -1
  271. package/contracts/registry/ReleaseRegistry.sol +0 -2
  272. package/contracts/shared/Component.sol +8 -7
  273. package/contracts/shared/ComponentService.sol +34 -4
  274. package/contracts/shared/IComponent.sol +4 -3
  275. package/contracts/shared/IComponentService.sol +5 -9
  276. package/contracts/shared/IInstanceLinkedComponent.sol +8 -8
  277. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
  278. package/contracts/shared/NftOwnable.sol +2 -2
  279. package/contracts/shared/PolicyHolder.sol +2 -5
  280. package/contracts/shared/TokenHandler.sol +4 -0
  281. package/contracts/staking/Staking.sol +3 -1
  282. package/contracts/staking/StakingService.sol +8 -12
  283. package/contracts/type/Blocknumber.sol +7 -1
  284. package/contracts/type/Seconds.sol +13 -1
  285. package/contracts/type/Timestamp.sol +11 -1
  286. package/contracts/type/UFixed.sol +26 -8
  287. package/package.json +1 -1
  288. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
@@ -22,7 +22,7 @@ import {NftId, NftIdLib} from "../type/NftId.sol";
22
22
  import {ObjectType, COMPONENT, POOL, BUNDLE, REGISTRY} from "../type/ObjectType.sol";
23
23
  import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
24
24
  import {Seconds} from "../type/Seconds.sol";
25
- import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
25
+ import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
26
26
 
27
27
  string constant BUNDLE_SERVICE_NAME = "BundleService";
28
28
 
@@ -113,13 +113,15 @@ contract BundleService is
113
113
  InstanceStore instanceStore = instance.getInstanceStore();
114
114
  instanceStore.createBundle(
115
115
  bundleNftId,
116
- IBundle.BundleInfo(
117
- poolNftId,
118
- bundleFee,
119
- filter,
120
- lifetime,
121
- TimestampLib.blockTimestamp().addSeconds(lifetime),
122
- zeroTimestamp()));
116
+ IBundle.BundleInfo({
117
+ poolNftId: poolNftId,
118
+ fee: bundleFee,
119
+ filter: filter,
120
+ activatedAt: TimestampLib.blockTimestamp(),
121
+ expiredAt: TimestampLib.blockTimestamp().addSeconds(lifetime),
122
+ closedAt: zeroTimestamp()
123
+ })
124
+ );
123
125
 
124
126
  // bundle book keeping
125
127
  _componentService.increaseBundleBalance(
@@ -131,7 +133,6 @@ contract BundleService is
131
133
  // put bundle under bundle managemet
132
134
  BundleSet bundleManager = instance.getBundleSet();
133
135
  bundleManager.add(bundleNftId);
134
-
135
136
  // TODO add logging
136
137
  }
137
138
 
@@ -148,7 +149,7 @@ contract BundleService is
148
149
  restricted()
149
150
  {
150
151
  InstanceReader instanceReader = instance.getInstanceReader();
151
- StateId bundleState = instanceReader.getMetadata(bundleNftId.toKey32(BUNDLE())).state;
152
+ StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
152
153
  IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
153
154
 
154
155
  // ensure bundle is active and not yet expired
@@ -218,9 +219,9 @@ contract BundleService is
218
219
  external
219
220
  virtual
220
221
  restricted
222
+ returns (Amount unstakedAmount, Amount feeAmount)
221
223
  {
222
- // udpate bundle state
223
- instance.getInstanceStore().updateBundleState(bundleNftId, CLOSED());
224
+ InstanceReader instanceReader = instance.getInstanceReader();
224
225
 
225
226
  // ensure no open policies attached to bundle
226
227
  BundleSet bundleManager = instance.getBundleSet();
@@ -229,8 +230,117 @@ contract BundleService is
229
230
  revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
230
231
  }
231
232
 
232
- // update set of active bundles
233
- bundleManager.lock(bundleNftId);
233
+ {
234
+ // update bundle state
235
+ InstanceStore instanceStore = instance.getInstanceStore();
236
+ instanceStore.updateBundleState(bundleNftId, CLOSED());
237
+ bundleManager.lock(bundleNftId);
238
+
239
+ // decrease bundle counters
240
+ Amount balanceAmountWithFees = instanceReader.getBalanceAmount(bundleNftId);
241
+ feeAmount = instanceReader.getFeeAmount(bundleNftId);
242
+ unstakedAmount = balanceAmountWithFees - feeAmount;
243
+ _componentService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
244
+ }
245
+ }
246
+
247
+ /// @inheritdoc IBundleService
248
+ function stake(
249
+ IInstance instance,
250
+ NftId bundleNftId,
251
+ Amount amount
252
+ )
253
+ external
254
+ virtual
255
+ // TODO: restricted() (once #462 is done)
256
+ {
257
+ IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
258
+ StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
259
+
260
+ if( (bundleState != ACTIVE() && bundleState != PAUSED()) // locked bundles can be staked
261
+ || bundleInfo.expiredAt < TimestampLib.blockTimestamp()
262
+ || bundleInfo.closedAt.gtz()) {
263
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
264
+ }
265
+
266
+ _componentService.increaseBundleBalance(
267
+ instance.getInstanceStore(),
268
+ bundleNftId,
269
+ amount,
270
+ AmountLib.zero());
271
+ }
272
+
273
+ /// @inheritdoc IBundleService
274
+ function unstake(
275
+ IInstance instance,
276
+ NftId bundleNftId,
277
+ Amount amount
278
+ )
279
+ external
280
+ virtual
281
+ // TODO: restricted() (once #462 is done)
282
+ returns (Amount unstakedAmount)
283
+ {
284
+ InstanceStore instanceStore = instance.getInstanceStore();
285
+ (
286
+ Amount balanceAmount,
287
+ Amount lockedAmount,
288
+ Amount feeAmount
289
+ ) = instanceStore.getAmounts(bundleNftId);
290
+
291
+ Amount unstakedAmount = amount;
292
+ Amount availableAmount = balanceAmount - (lockedAmount + feeAmount);
293
+
294
+ // if amount is max, then unstake all available
295
+ if (amount.gte(AmountLib.max())) {
296
+ unstakedAmount = availableAmount;
297
+ }
298
+
299
+ // ensure unstaked amount does not exceed available amount
300
+ if (unstakedAmount > availableAmount) {
301
+ revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
302
+ }
303
+
304
+ _componentService.decreaseBundleBalance(
305
+ instanceStore,
306
+ bundleNftId,
307
+ unstakedAmount,
308
+ AmountLib.zero());
309
+
310
+ return unstakedAmount;
311
+ }
312
+
313
+ /// @inheritdoc IBundleService
314
+ function extend(NftId bundleNftId, Seconds lifetimeExtension)
315
+ external
316
+ virtual
317
+ // TODO: restricted() (once #462 is done)
318
+ returns (Timestamp extendedExpiredAt)
319
+ {
320
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
321
+ IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
322
+ StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
323
+
324
+ // ensure bundle belongs to the pool
325
+ if (bundleInfo.poolNftId != poolNftId) {
326
+ revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
327
+ }
328
+
329
+ // ensure bundle is active and not yet expired
330
+ if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
331
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
332
+ }
333
+
334
+ if (lifetimeExtension.eqz()) {
335
+ revert ErrorBundleServiceExtensionLifetimeIsZero();
336
+ }
337
+
338
+ bundleInfo.expiredAt = bundleInfo.expiredAt.addSeconds(lifetimeExtension);
339
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
340
+
341
+ emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, bundleInfo.expiredAt);
342
+
343
+ return bundleInfo.expiredAt;
234
344
  }
235
345
 
236
346
 
@@ -312,9 +422,9 @@ contract BundleService is
312
422
  // transfer amount to bundle owner
313
423
  {
314
424
  address owner = getRegistry().ownerOf(bundleNftId);
315
- poolInfo.tokenHandler.transfer(poolWallet, owner, withdrawnAmount);
316
-
317
425
  emit LogBundleServiceFeesWithdrawn(bundleNftId, owner, address(token), withdrawnAmount);
426
+ // TODO: centralize token handling (issue #471)
427
+ poolInfo.tokenHandler.transfer(poolWallet, owner, withdrawnAmount);
318
428
  }
319
429
  }
320
430
 
@@ -26,12 +26,16 @@ interface IBundleService is IService {
26
26
 
27
27
  error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
28
28
 
29
- // error ErrorBundleServiceBundleNotActive(NftId distributorNftId);
30
29
  error ErrorBundleServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
31
30
  error ErrorBundleServiceFeesWithdrawAmountIsZero();
32
31
  error ErrorBundleServiceWalletAllowanceTooSmall(address wallet, address tokenHandler, uint256 allowance, uint256 amount);
33
32
 
33
+ error ErrorBundleServiceUnstakeAmountExceedsLimit(Amount amount, Amount limit);
34
+
35
+ error ErrorBundleServiceExtensionLifetimeIsZero();
36
+
34
37
  event LogBundleServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
38
+ event LogBundleServiceBundleExtended(NftId bundleNftId, Seconds lifetimeExtension, Timestamp extendedExpiredAt);
35
39
 
36
40
  /// @dev create a new bundle for the specified attributes
37
41
  /// may only be called by pool service
@@ -48,11 +52,20 @@ interface IBundleService is IService {
48
52
  returns(NftId bundleNftId); // the nft id of the newly created bundle
49
53
 
50
54
 
51
- /// @dev increase bundle stakes by the specified amount
52
- /// may only be called by the bundle owner
53
- // function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
55
+ /// @dev increase bundle stakes by the specified amount. bundle must not be expired or closed
56
+ /// may only be called by the pool service
57
+ function stake(IInstance instance, NftId bundleNftId, Amount amount) external;
54
58
 
55
- // function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
59
+ /// @dev decrease bundle stakes by the specified amount
60
+ /// may only be called by the pool service
61
+ /// @param instance the instance relevant for the bundle
62
+ /// @param bundleNftId the bundle nft id
63
+ /// @param amount the amount to unstake (set to AmountLib.max() to unstake all available stakes)
64
+ /// @return unstakedAmount the effective unstaked amount
65
+ function unstake(IInstance instance, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
66
+
67
+ /// @dev extend the lifetime of the bundle by the specified time in seconds
68
+ function extend(NftId bundleNftId, Seconds lifetimeExtension) external returns (Timestamp extendedExpiredAt);
56
69
 
57
70
  /// @dev locks the specified bundle, locked bundles are not available to collateralize new policies
58
71
  /// only active bundles may be locked
@@ -68,10 +81,12 @@ interface IBundleService is IService {
68
81
  /// only open bundles (active or locked) may be closed
69
82
  /// to close a bundle it may not have any non-closed polices attached to it
70
83
  /// may only be called by registered and unlocked pool components
84
+ /// @return balanceAmount the unstaked amount that was remaining in the bundle
85
+ /// @return feeAmount the fee amount that was remaining for the bundle
71
86
  function close(
72
87
  IInstance instance,
73
88
  NftId bundleNftId
74
- ) external;
89
+ ) external returns (Amount balanceAmount, Amount feeAmount);
75
90
 
76
91
  /// @dev set bundle fee to provided value
77
92
  /// may only be called by registered and unlocked pool components
@@ -17,29 +17,28 @@ import {UFixed} from "../type/UFixed.sol";
17
17
 
18
18
  interface IPoolService is IService {
19
19
 
20
- event LogPoolServiceMaxCapitalAmountUpdated(NftId poolNftId, Amount previousMaxCapitalAmount, Amount currentMaxCapitalAmount);
20
+ event LogPoolServiceMaxBalanceAmountUpdated(NftId poolNftId, Amount previousMaxCapitalAmount, Amount currentMaxCapitalAmount);
21
21
  event LogPoolServiceBundleOwnerRoleSet(NftId poolNftId, RoleId bundleOwnerRole);
22
22
 
23
23
  event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
24
24
  event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
25
25
 
26
+ event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
27
+ event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount);
28
+
26
29
  error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
27
30
  error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
31
+ error ErrorPoolServiceBundlePoolMismatch(NftId bundleNftId, NftId poolNftId);
32
+ error ErrorPoolServiceMaxBalanceAmountExceeded(NftId poolNftId, Amount maxBalanceAmount, Amount currentBalanceAmount, Amount transferAmount);
33
+ error ErrorPoolServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
34
+ error ErrorPoolServiceAmountIsZero();
28
35
 
29
36
  /// @dev defines the required role for bundle owners for the calling pool
30
37
  /// default implementation returns PUBLIC ROLE
31
38
  function setBundleOwnerRole(RoleId bundleOwnerRole) external;
32
39
 
33
- /// @dev sets the max capital amount for the calling pool
34
- function setMaxCapitalAmount(Amount maxCapitalAmount) external;
35
-
36
- /// @dev set pool sepecific fees
37
- function setFees(
38
- Fee memory poolFee,
39
- Fee memory stakingFee,
40
- Fee memory performanceFee
41
- ) external;
42
-
40
+ /// @dev sets the max balance amount for the calling pool
41
+ function setMaxBalanceAmount(Amount maxBalanceAmount) external;
43
42
 
44
43
  /// @dev locks required collateral to cover the specified application (and turn it into a policy)
45
44
  /// - retention level == 1: the full collateral amount will be locked by the specified bundle
@@ -85,7 +84,8 @@ interface IPoolService is IService {
85
84
 
86
85
  /// @dev create a new bundle for the provided parameters
87
86
  /// staking fees will be deducted by the pool service from the staking amount
88
- /// may only be called by registered and unlocked pool components
87
+ /// may only be called by registered and unlocked pool components.
88
+ /// The pool balance is equal to the pool fees plus the capital of all bundles.
89
89
  function createBundle(
90
90
  address owner, // initial bundle owner
91
91
  Fee memory fee, // fees deducted from premium that go to bundle owner
@@ -94,7 +94,7 @@ interface IPoolService is IService {
94
94
  bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
95
95
  )
96
96
  external
97
- returns(NftId bundleNftId); // the nft id of the newly created bundle
97
+ returns(NftId bundleNftId, Amount netStakedAmount); // the nft id of the newly created bundle
98
98
 
99
99
 
100
100
  /// @dev closes the specified bundle
@@ -111,13 +111,12 @@ interface IPoolService is IService {
111
111
  /// @dev increase stakes for bundle
112
112
  /// staking fees will be deducted by the pool service from the staking amount
113
113
  /// may only be called by registered and unlocked pool components
114
- // function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
115
-
114
+ function stake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
116
115
 
117
116
  /// @dev decrease stakes for bundle
118
117
  /// performance fees will be deducted by the pool service from the staking amount
119
118
  /// may only be called by registered and unlocked pool components
120
- // function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
119
+ function unstake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
121
120
 
122
121
 
123
122
  /// @dev calulate required collateral for the provided parameters
@@ -14,6 +14,7 @@ import {Fee, FeeLib} from "../type/Fee.sol";
14
14
  import {NftId, NftIdLib} from "../type/NftId.sol";
15
15
  import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
16
16
  import {Seconds} from "../type/Seconds.sol";
17
+ import {Timestamp} from "../type/Timestamp.sol";
17
18
  import {TokenHandler} from "../shared/TokenHandler.sol";
18
19
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
19
20
 
@@ -113,17 +114,13 @@ abstract contract Pool is
113
114
  returns (IComponents.PoolInfo memory poolInfo)
114
115
  {
115
116
  return IComponents.PoolInfo(
116
- NftIdLib.zero(), // will be set when GIF registers the related product
117
117
  PUBLIC_ROLE(), // bundleOwnerRole
118
118
  AmountLib.max(), // maxCapitalAmount,
119
119
  isNftInterceptor(), // isInterceptingBundleTransfers
120
120
  false, // isExternallyManaged,
121
121
  false, // isVerifyingApplications,
122
122
  UFixedLib.toUFixed(1), // collateralizationLevel,
123
- UFixedLib.toUFixed(1), // retentionLevel,
124
- FeeLib.zero(), // initialPoolFee,
125
- FeeLib.zero(), // initialStakingFee,
126
- FeeLib.zero() // initialPerformanceFee,
123
+ UFixedLib.toUFixed(1) // retentionLevel,
127
124
  );
128
125
  }
129
126
 
@@ -172,8 +169,9 @@ abstract contract Pool is
172
169
  )
173
170
  internal
174
171
  virtual
172
+ returns(Amount netAmount)
175
173
  {
176
- // TODO add implementation
174
+ _getPoolStorage()._poolService.stake(bundleNftId, amount);
177
175
  }
178
176
 
179
177
 
@@ -185,8 +183,9 @@ abstract contract Pool is
185
183
  )
186
184
  internal
187
185
  virtual
186
+ returns(Amount netAmount)
188
187
  {
189
- // TODO add implementation
188
+ return _getPoolStorage()._poolService.unstake(bundleNftId, amount);
190
189
  }
191
190
 
192
191
 
@@ -198,8 +197,9 @@ abstract contract Pool is
198
197
  )
199
198
  internal
200
199
  virtual
200
+ returns (Timestamp extendedExpiredAt)
201
201
  {
202
- // TODO add implementation
202
+ return _getPoolStorage()._bundleService.extend(bundleNftId, lifetimeExtension);
203
203
  }
204
204
 
205
205
 
@@ -229,7 +229,7 @@ abstract contract Pool is
229
229
  /// To close a bundle all all linked policies MUST be in closed state as well.
230
230
  /// Closing a bundle finalizes the bundle bookkeeping including overall profit calculation.
231
231
  /// Once a bundle is closed this action cannot be reversed.
232
- function _close(NftId bundleNftId)
232
+ function _closeBundle(NftId bundleNftId)
233
233
  internal
234
234
  virtual
235
235
  {
@@ -251,13 +251,13 @@ abstract contract Pool is
251
251
  }
252
252
 
253
253
 
254
- /// @dev Sets the maximum overall capital amound held by this pool.
254
+ /// @dev Sets the maximum balance amound held by this pool.
255
255
  /// Function may only be called by pool owner.
256
- function _setMaxCapitalAmount(Amount maxCapitalAmount)
256
+ function _setMaxBalanceAmount(Amount maxBalanceAmount)
257
257
  internal
258
258
  virtual
259
259
  {
260
- _getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
260
+ _getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
261
261
  }
262
262
 
263
263
  /// @dev Sets the required role to create/own bundles.
@@ -296,9 +296,9 @@ abstract contract Pool is
296
296
  bytes memory filter
297
297
  )
298
298
  internal
299
- returns(NftId bundleNftId)
299
+ returns(NftId bundleNftId, Amount netStakedAmount)
300
300
  {
301
- bundleNftId = _getPoolStorage()._poolService.createBundle(
301
+ (bundleNftId, netStakedAmount) = _getPoolStorage()._poolService.createBundle(
302
302
  bundleOwner,
303
303
  fee,
304
304
  amount,