@etherisc/gif-next 0.0.2-bad23b9-954 → 0.0.2-baec8d5-329

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 (444) hide show
  1. package/README.md +30 -2
  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/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -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 -228
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +306 -95
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +97 -57
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -132
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +147 -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 +64 -84
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
  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 +110 -76
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +215 -108
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -49
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +84 -135
  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/Cloneable.sol/Cloneable.json +0 -53
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -0
  82. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +13 -0
  84. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +43 -96
  86. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +66 -29
  88. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +44 -32
  90. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1520 -0
  92. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  94. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +254 -59
  96. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +82 -42
  98. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +115 -0
  100. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +43 -195
  102. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +13 -0
  104. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  105. package/artifacts/contracts/pool/Pool.sol/Pool.json +43 -296
  106. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +62 -41
  108. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -38
  110. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -37
  112. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +44 -36
  114. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
  116. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  118. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +106 -69
  120. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -52
  122. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  124. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  126. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  128. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
  130. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -42
  132. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
  134. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +84 -47
  136. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +53 -41
  138. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.json +92 -63
  140. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +57 -49
  142. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  143. package/artifacts/contracts/product/Product.sol/Product.json +32 -153
  144. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
  146. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +38 -30
  148. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  150. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
  152. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
  154. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  155. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -73
  157. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1506 -167
  159. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
  161. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -25
  163. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  165. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  167. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  169. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  171. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  172. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  173. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +235 -85
  174. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +80 -60
  176. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
  178. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  179. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +110 -0
  183. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -0
  185. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  187. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  188. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  189. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  190. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  192. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  195. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  196. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  197. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -53
  198. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  199. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  200. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  202. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  203. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  204. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  206. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  207. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  208. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  210. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  211. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  212. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
  214. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  215. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  216. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  217. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  218. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +49 -7
  219. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  220. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +44 -28
  221. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  222. package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -84
  223. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  224. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  225. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -56
  227. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  229. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  230. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +92 -73
  231. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +39 -47
  233. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  234. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +200 -152
  235. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  236. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  237. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  238. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  239. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
  241. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  243. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  245. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  247. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  249. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  250. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  251. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  253. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  254. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  255. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +136 -2
  257. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  259. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  261. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  263. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  265. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  267. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  269. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  270. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  271. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  273. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  275. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  277. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -4
  279. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  281. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  283. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  285. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  287. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  288. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  289. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  290. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  291. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  292. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  293. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  294. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  295. package/contracts/authorization/AccessAdmin.sol +591 -0
  296. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  297. package/contracts/authorization/Authorization.sol +218 -0
  298. package/contracts/authorization/IAccess.sol +48 -0
  299. package/contracts/authorization/IAccessAdmin.sol +136 -0
  300. package/contracts/authorization/IAuthorization.sol +54 -0
  301. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  302. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  303. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  304. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  305. package/contracts/distribution/BasicDistribution.sol +149 -0
  306. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  307. package/contracts/distribution/Distribution.sol +142 -102
  308. package/contracts/distribution/DistributionService.sol +73 -26
  309. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  310. package/contracts/distribution/IDistributionComponent.sol +25 -39
  311. package/contracts/distribution/IDistributionService.sol +17 -1
  312. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  313. package/contracts/instance/IInstance.sol +16 -12
  314. package/contracts/instance/IInstanceService.sol +34 -23
  315. package/contracts/instance/Instance.sol +106 -88
  316. package/contracts/instance/InstanceAdmin.sol +202 -267
  317. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  318. package/contracts/instance/InstanceReader.sol +24 -9
  319. package/contracts/instance/InstanceService.sol +159 -78
  320. package/contracts/instance/InstanceServiceManager.sol +2 -6
  321. package/contracts/instance/InstanceStore.sol +15 -20
  322. package/contracts/instance/base/BalanceStore.sol +11 -6
  323. package/contracts/instance/base/Cloneable.sol +2 -25
  324. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  325. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  326. package/contracts/instance/module/IComponents.sol +0 -1
  327. package/contracts/oracle/BasicOracle.sol +48 -0
  328. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  329. package/contracts/oracle/IOracle.sol +16 -0
  330. package/contracts/oracle/IOracleComponent.sol +2 -1
  331. package/contracts/oracle/Oracle.sol +72 -47
  332. package/contracts/oracle/OracleService.sol +5 -4
  333. package/contracts/oracle/OracleServiceManager.sol +2 -5
  334. package/contracts/pool/BasicPool.sol +164 -0
  335. package/contracts/pool/BasicPoolAuthorization.sol +55 -0
  336. package/contracts/pool/BundleService.sol +89 -43
  337. package/contracts/pool/BundleServiceManager.sol +2 -5
  338. package/contracts/pool/IBundleService.sol +14 -0
  339. package/contracts/pool/IPoolComponent.sol +6 -60
  340. package/contracts/pool/Pool.sol +160 -131
  341. package/contracts/pool/PoolService.sol +17 -34
  342. package/contracts/pool/PoolServiceManager.sol +2 -5
  343. package/contracts/product/ApplicationService.sol +17 -41
  344. package/contracts/product/ApplicationServiceManager.sol +2 -2
  345. package/contracts/product/BasicProduct.sol +82 -0
  346. package/contracts/product/BasicProductAuthorization.sol +43 -0
  347. package/contracts/product/ClaimService.sol +10 -36
  348. package/contracts/product/ClaimServiceManager.sol +2 -2
  349. package/contracts/product/IProductComponent.sol +7 -9
  350. package/contracts/product/PolicyService.sol +5 -5
  351. package/contracts/product/PolicyServiceManager.sol +2 -5
  352. package/contracts/product/PricingService.sol +4 -5
  353. package/contracts/product/PricingServiceManager.sol +2 -5
  354. package/contracts/product/Product.sol +103 -88
  355. package/contracts/product/ProductService.sol +12 -37
  356. package/contracts/product/ProductServiceManager.sol +2 -5
  357. package/contracts/registry/IRegistry.sol +26 -16
  358. package/contracts/registry/IRegistryService.sol +6 -6
  359. package/contracts/registry/Registry.sol +85 -85
  360. package/contracts/registry/RegistryAdmin.sol +283 -155
  361. package/contracts/registry/RegistryService.sol +9 -23
  362. package/contracts/registry/RegistryServiceManager.sol +2 -7
  363. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  364. package/contracts/registry/ReleaseRegistry.sol +487 -0
  365. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  366. package/contracts/registry/TokenRegistry.sol +2 -2
  367. package/contracts/shared/Component.sol +13 -14
  368. package/contracts/shared/ComponentService.sol +76 -72
  369. package/contracts/shared/ComponentServiceManager.sol +2 -2
  370. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  371. package/contracts/shared/IComponentService.sol +10 -0
  372. package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
  373. package/contracts/shared/IKeyValueStore.sol +1 -0
  374. package/contracts/shared/ILifecycle.sol +1 -2
  375. package/contracts/shared/IService.sol +8 -1
  376. package/contracts/shared/InstanceLinkedComponent.sol +47 -19
  377. package/contracts/shared/KeyValueStore.sol +6 -2
  378. package/contracts/shared/Lifecycle.sol +16 -69
  379. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  380. package/contracts/shared/Service.sol +27 -22
  381. package/contracts/staking/IStaking.sol +1 -2
  382. package/contracts/staking/IStakingService.sol +22 -11
  383. package/contracts/staking/StakeManagerLib.sol +52 -0
  384. package/contracts/staking/Staking.sol +75 -112
  385. package/contracts/staking/StakingLifecycle.sol +23 -0
  386. package/contracts/staking/StakingManager.sol +2 -6
  387. package/contracts/staking/StakingReader.sol +12 -16
  388. package/contracts/staking/StakingService.sol +61 -56
  389. package/contracts/staking/StakingServiceManager.sol +2 -3
  390. package/contracts/staking/StakingStore.sol +93 -60
  391. package/contracts/type/Amount.sol +7 -2
  392. package/contracts/type/ObjectType.sol +167 -64
  393. package/contracts/type/RoleId.sol +103 -75
  394. package/contracts/type/Selector.sol +102 -0
  395. package/contracts/type/String.sol +53 -0
  396. package/contracts/type/UFixed.sol +6 -0
  397. package/contracts/type/Version.sol +3 -1
  398. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  399. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  400. package/package.json +6 -3
  401. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  402. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  403. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  404. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  405. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  406. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  407. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  408. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  409. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  410. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  411. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  412. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  413. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  414. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  415. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  416. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  417. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  418. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  419. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  420. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  421. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  422. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  423. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  424. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  425. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  426. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  427. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  428. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  429. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  430. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  431. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  432. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  433. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  434. package/contracts/registry/ReleaseManager.sol +0 -600
  435. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  436. package/contracts/shared/AccessManagerCustom.sol +0 -736
  437. package/contracts/shared/AccessManagerExtended.sol +0 -470
  438. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  439. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  440. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  441. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  442. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  443. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  444. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -2,15 +2,16 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount, AmountLib} from "../type/Amount.sol";
5
- import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
6
- import {Fee, FeeLib} from "../type/Fee.sol";
5
+ import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
7
6
  import {IBundleService} from "./IBundleService.sol";
7
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
8
8
  import {IPoolComponent} from "./IPoolComponent.sol";
9
9
  import {IPoolService} from "./IPoolService.sol";
10
10
  import {IComponents} from "../instance/module/IComponents.sol";
11
11
  import {IComponentService} from "../shared/IComponentService.sol";
12
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
+ import {Fee, FeeLib} from "../type/Fee.sol";
12
14
  import {NftId, NftIdLib} from "../type/NftId.sol";
13
- import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
14
15
  import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
15
16
  import {Seconds} from "../type/Seconds.sol";
16
17
  import {TokenHandler} from "../shared/TokenHandler.sol";
@@ -38,29 +39,122 @@ abstract contract Pool is
38
39
  }
39
40
 
40
41
 
41
- modifier onlyPoolService() {
42
- if(msg.sender != address(_getPoolStorage()._poolService)) {
43
- revert ErrorPoolNotPoolService(msg.sender);
42
+ /// @dev see {IPoolComponent.verifyApplication}
43
+ function verifyApplication(
44
+ NftId applicationNftId,
45
+ bytes memory applicationData,
46
+ NftId bundleNftId,
47
+ bytes memory bundleFilter,
48
+ Amount collateralizationAmount
49
+ )
50
+ public
51
+ virtual
52
+ restricted()
53
+ {
54
+ if(!applicationMatchesBundle(
55
+ applicationNftId,
56
+ applicationData,
57
+ bundleNftId,
58
+ bundleFilter,
59
+ collateralizationAmount)
60
+ )
61
+ {
62
+ revert ErrorPoolApplicationBundleMismatch(applicationNftId);
44
63
  }
45
- _;
64
+
65
+ emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
66
+ }
67
+
68
+
69
+ /// @dev see {IPoolComponent.applicationMatchesBundle}
70
+ /// Override this function to implement any custom application verification
71
+ /// Default implementation always returns true
72
+ function applicationMatchesBundle(
73
+ NftId applicationNftId,
74
+ bytes memory applicationData,
75
+ NftId bundleNftId,
76
+ bytes memory bundleFilter,
77
+ Amount collateralizationAmount
78
+ )
79
+ public
80
+ virtual
81
+ view
82
+ returns (bool isMatching)
83
+ {
84
+ return true;
46
85
  }
47
86
 
48
87
 
49
- function initializePool(
88
+ function register()
89
+ external
90
+ virtual
91
+ onlyOwner()
92
+ {
93
+ _getPoolStorage()._componentService.registerPool();
94
+ _approveTokenHandler(type(uint256).max);
95
+ }
96
+
97
+ /// @inheritdoc IPoolComponent
98
+ function withdrawBundleFees(NftId bundleNftId, Amount amount)
99
+ external
100
+ virtual
101
+ restricted()
102
+ onlyBundleOwner(bundleNftId)
103
+ returns (Amount withdrawnAmount)
104
+ {
105
+ return _withdrawBundleFees(bundleNftId, amount);
106
+ }
107
+
108
+
109
+ function getInitialPoolInfo()
110
+ public
111
+ virtual
112
+ view
113
+ returns (IComponents.PoolInfo memory poolInfo)
114
+ {
115
+ return IComponents.PoolInfo(
116
+ NftIdLib.zero(), // will be set when GIF registers the related product
117
+ PUBLIC_ROLE(), // bundleOwnerRole
118
+ AmountLib.max(), // maxCapitalAmount,
119
+ isNftInterceptor(), // isInterceptingBundleTransfers
120
+ false, // isExternallyManaged,
121
+ false, // isVerifyingApplications,
122
+ UFixedLib.toUFixed(1), // collateralizationLevel,
123
+ UFixedLib.toUFixed(1), // retentionLevel,
124
+ FeeLib.zero(), // initialPoolFee,
125
+ FeeLib.zero(), // initialStakingFee,
126
+ FeeLib.zero() // initialPerformanceFee,
127
+ );
128
+ }
129
+
130
+ // Internals
131
+
132
+ function _initializePool(
50
133
  address registry,
51
134
  NftId instanceNftId,
52
135
  string memory name,
53
136
  address token,
137
+ IAuthorization authorization,
54
138
  bool isInterceptingNftTransfers,
55
139
  address initialOwner,
56
140
  bytes memory registryData, // writeonly data that will saved in the object info record of the registry
57
141
  bytes memory componentData // component specifidc data
58
142
  )
59
- public
143
+ internal
60
144
  virtual
61
145
  onlyInitializing()
62
146
  {
63
- initializeInstanceLinkedComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData, componentData);
147
+ _initializeInstanceLinkedComponent(
148
+ registry,
149
+ instanceNftId,
150
+ name,
151
+ token,
152
+ POOL(),
153
+ authorization,
154
+ isInterceptingNftTransfers,
155
+ initialOwner,
156
+ registryData,
157
+ componentData);
64
158
 
65
159
  PoolStorage storage $ = _getPoolStorage();
66
160
  $._poolService = IPoolService(_getServiceAddress(POOL()));
@@ -70,201 +164,130 @@ abstract contract Pool is
70
164
  registerInterface(type(IPoolComponent).interfaceId);
71
165
  }
72
166
 
73
-
74
- function register()
75
- external
76
- virtual
77
- onlyOwner()
78
- {
79
- _getPoolStorage()._componentService.registerPool();
80
- }
81
-
82
-
83
- function stake(
167
+ /// @dev increases the staked tokens by the specified amount
168
+ /// bundle MUST be in active or locked state
169
+ function _stake(
84
170
  NftId bundleNftId,
85
171
  Amount amount
86
172
  )
87
- public
173
+ internal
88
174
  virtual
89
- restricted()
90
- onlyBundleOwner(bundleNftId)
91
175
  {
92
176
  // TODO add implementation
93
177
  }
94
178
 
95
179
 
96
- function unstake(
180
+ /// @dev decreases the staked tokens by the specified amount
181
+ /// bundle MUST be in active, locked or closed state
182
+ function _unstake(
97
183
  NftId bundleNftId,
98
184
  Amount amount
99
185
  )
100
- public
186
+ internal
101
187
  virtual
102
- restricted()
103
- onlyBundleOwner(bundleNftId)
104
188
  {
105
189
  // TODO add implementation
106
190
  }
107
191
 
108
192
 
109
- function extend(
193
+ /// @dev extends the bundle lifetime of the bundle by the specified time
194
+ /// bundle MUST be in active or locked state
195
+ function _extend(
110
196
  NftId bundleNftId,
111
197
  Seconds lifetimeExtension
112
198
  )
113
- public
199
+ internal
114
200
  virtual
115
- restricted()
116
- onlyBundleOwner(bundleNftId)
117
201
  {
118
202
  // TODO add implementation
119
203
  }
120
204
 
121
205
 
122
- function lockBundle(NftId bundleNftId)
123
- public
206
+ /// @dev Locks the specified bundle.
207
+ /// A bundle to be locked MUST be in active state.
208
+ /// Locked bundles may not be used to collateralize any new policy.
209
+ function _lockBundle(NftId bundleNftId)
210
+ internal
124
211
  virtual
125
- //restricted() // TODO consider adding this back
126
- onlyBundleOwner(bundleNftId)
127
212
  {
128
213
  _getPoolStorage()._bundleService.lock(bundleNftId);
129
214
  }
130
215
 
131
216
 
132
- function unlockBundle(NftId bundleNftId)
133
- public
217
+ /// @dev Unlocks the specified bundle.
218
+ /// A bundle to be unlocked MUST be in locked state.
219
+ function _unlockBundle(NftId bundleNftId)
220
+ internal
134
221
  virtual
135
- //restricted()
136
- onlyBundleOwner(bundleNftId)
137
222
  {
138
223
  _getPoolStorage()._bundleService.unlock(bundleNftId);
139
224
  }
140
225
 
141
226
 
142
- function close(NftId bundleNftId)
143
- public
227
+ /// @dev Close the specified bundle.
228
+ /// A bundle to be closed MUST be in active or locked state.
229
+ /// To close a bundle all all linked policies MUST be in closed state as well.
230
+ /// Closing a bundle finalizes the bundle bookkeeping including overall profit calculation.
231
+ /// Once a bundle is closed this action cannot be reversed.
232
+ function _close(NftId bundleNftId)
233
+ internal
144
234
  virtual
145
- //restricted()
146
- onlyBundleOwner(bundleNftId)
147
235
  {
148
236
  _getPoolStorage()._poolService.closeBundle(bundleNftId);
149
237
  }
150
238
 
151
239
 
152
- function setBundleFee(
240
+ /// @dev Sets the fee for the specified bundle.
241
+ /// The fee is added on top of the poolFee and deducted from the premium amounts
242
+ /// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
243
+ function _setBundleFee(
153
244
  NftId bundleNftId,
154
245
  Fee memory fee
155
246
  )
156
- public
247
+ internal
157
248
  virtual
158
- //restricted()
159
- onlyBundleOwner(bundleNftId)
160
249
  {
161
250
  _getPoolStorage()._bundleService.setFee(bundleNftId, fee);
162
251
  }
163
252
 
164
253
 
165
- function setMaxCapitalAmount(Amount maxCapitalAmount)
166
- public
254
+ /// @dev Sets the maximum overall capital amound held by this pool.
255
+ /// Function may only be called by pool owner.
256
+ function _setMaxCapitalAmount(Amount maxCapitalAmount)
257
+ internal
167
258
  virtual
168
- restricted()
169
- onlyOwner()
170
259
  {
171
260
  _getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
172
261
  }
173
262
 
174
-
175
- function setBundleOwnerRole(RoleId bundleOwnerRole)
176
- public
263
+ /// @dev Sets the required role to create/own bundles.
264
+ /// May only be called once after setting up a pool.
265
+ /// May only be called by pool owner.
266
+ function _setBundleOwnerRole(RoleId bundleOwnerRole)
267
+ internal
177
268
  virtual
178
- restricted()
179
- onlyOwner()
180
269
  {
181
270
  _getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
182
271
  }
183
272
 
184
273
 
185
- function setFees(
274
+ /// @dev Update pool fees to the specified values.
275
+ /// Pool fee: are deducted from the premium amount and goes to the pool owner.
276
+ /// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
277
+ /// Performance fee: when a bundle is closed a bundle specific profit is calculated.
278
+ /// The performance fee is deducted from this profit and goes to the pool owner.
279
+ function _setPoolFees(
186
280
  Fee memory poolFee,
187
281
  Fee memory stakingFee,
188
282
  Fee memory performanceFee
189
283
  )
190
- public
284
+ internal
191
285
  virtual
192
- restricted()
193
- onlyOwner()
194
286
  {
195
287
  _getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
196
288
  }
197
289
 
198
-
199
- /// @dev see {IPool.verifyApplication}
200
- function verifyApplication(
201
- NftId applicationNftId,
202
- bytes memory applicationData,
203
- NftId bundleNftId,
204
- bytes memory bundleFilter,
205
- Amount collateralizationAmount
206
- )
207
- public
208
- virtual
209
- restricted()
210
- {
211
- if(!applicationMatchesBundle(
212
- applicationNftId,
213
- applicationData,
214
- bundleNftId,
215
- bundleFilter,
216
- collateralizationAmount)
217
- )
218
- {
219
- revert ErrorPoolApplicationBundleMismatch(applicationNftId);
220
- }
221
-
222
- emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
223
- }
224
-
225
-
226
- /// @dev see {IPoolComponent.applicationMatchesBundle}
227
- /// Override this function to implement any custom application verification
228
- /// Default implementation always returns true
229
- function applicationMatchesBundle(
230
- NftId applicationNftId,
231
- bytes memory applicationData,
232
- NftId bundleNftId,
233
- bytes memory bundleFilter,
234
- Amount collateralizationAmount
235
- )
236
- public
237
- view
238
- virtual override
239
- returns (bool isMatching)
240
- {
241
- return true;
242
- }
243
-
244
-
245
- function getInitialPoolInfo()
246
- public
247
- virtual
248
- view
249
- returns (IComponents.PoolInfo memory poolInfo)
250
- {
251
- return IComponents.PoolInfo(
252
- NftIdLib.zero(), // will be set when GIF registers the related product
253
- PUBLIC_ROLE(), // bundleOwnerRole
254
- AmountLib.max(), // maxCapitalAmount,
255
- isNftInterceptor(), // isInterceptingBundleTransfers
256
- false, // isExternallyManaged,
257
- false, // isVerifyingApplications,
258
- UFixedLib.toUFixed(1), // collateralizationLevel,
259
- UFixedLib.toUFixed(1), // retentionLevel,
260
- FeeLib.zero(), // initialPoolFee,
261
- FeeLib.zero(), // initialStakingFee,
262
- FeeLib.zero() // initialPerformanceFee,
263
- );
264
- }
265
-
266
- // Internals
267
-
290
+ /// @dev Creates a new bundle using the provided parameter values.
268
291
  function _createBundle(
269
292
  address bundleOwner,
270
293
  Fee memory fee,
@@ -290,6 +313,12 @@ abstract contract Pool is
290
313
  return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
291
314
  }
292
315
 
316
+ function _withdrawBundleFees(NftId bundleNftId, Amount amount)
317
+ internal
318
+ returns (Amount withdrawnAmount)
319
+ {
320
+ return _getPoolStorage()._bundleService.withdrawBundleFees(bundleNftId, amount);
321
+ }
293
322
 
294
323
  function _getPoolStorage() private pure returns (PoolStorage storage $) {
295
324
  assembly {
@@ -1,46 +1,30 @@
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
- import {IBundle} from "../instance/module/IBundle.sol";
4
+ import {IBundleService} from "./IBundleService.sol";
8
5
  import {IComponents} from "../instance/module/IComponents.sol";
6
+ import {IComponentService} from "../shared/IComponentService.sol";
7
+ import {IInstance} from "../instance/IInstance.sol";
8
+ import {IInstanceService} from "../instance/IInstanceService.sol";
9
9
  import {IPolicy} from "../instance/module/IPolicy.sol";
10
-
11
- import {IVersionable} from "../shared/IVersionable.sol";
12
- import {Versionable} from "../shared/Versionable.sol";
13
- import {INftOwnable} from "../shared/INftOwnable.sol";
10
+ import {IPoolService} from "./IPoolService.sol";
11
+ import {IRegistry} from "../registry/IRegistry.sol";
12
+ import {IRegistryService} from "../registry/IRegistryService.sol";
13
+ import {IStaking} from "../staking/IStaking.sol";
14
14
 
15
15
  import {Amount, AmountLib} from "../type/Amount.sol";
16
16
  import {Fee, FeeLib} from "../type/Fee.sol";
17
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 {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY} from "../type/ObjectType.sol";
19
+ import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
20
20
  import {Fee, FeeLib} from "../type/Fee.sol";
21
- import {Version, VersionLib} from "../type/Version.sol";
22
- import {KEEP_STATE, StateId} from "../type/StateId.sol";
21
+ import {KEEP_STATE} from "../type/StateId.sol";
23
22
  import {Seconds} from "../type/Seconds.sol";
24
- import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
25
23
  import {TokenHandler} from "../shared/TokenHandler.sol";
26
24
  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
25
  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
26
  import {InstanceReader} from "../instance/InstanceReader.sol";
41
27
  import {InstanceStore} from "../instance/InstanceStore.sol";
42
- import {IComponent} from "../shared/IComponent.sol";
43
- import {IPoolComponent} from "./IPoolComponent.sol";
44
28
 
45
29
  string constant POOL_SERVICE_NAME = "PoolService";
46
30
 
@@ -84,10 +68,6 @@ contract PoolService is
84
68
  registerInterface(type(IPoolService).interfaceId);
85
69
  }
86
70
 
87
- function getDomain() public pure override returns(ObjectType) {
88
- return POOL();
89
- }
90
-
91
71
 
92
72
  function setMaxCapitalAmount(Amount maxCapitalAmount)
93
73
  external
@@ -230,7 +210,7 @@ contract PoolService is
230
210
  )
231
211
  external
232
212
  virtual
233
- restricted
213
+ restricted()
234
214
  {
235
215
  IRegistry registry = getRegistry();
236
216
  IRegistry.ObjectInfo memory bundleObjectInfo = registry.getObjectInfo(bundleNftId);
@@ -311,7 +291,7 @@ contract PoolService is
311
291
  )
312
292
  external
313
293
  virtual
314
- restricted
294
+ restricted()
315
295
  {
316
296
  _bundleService.releaseCollateral(
317
297
  instance,
@@ -337,7 +317,7 @@ contract PoolService is
337
317
  )
338
318
  external
339
319
  virtual
340
- restricted
320
+ restricted()
341
321
  {
342
322
  Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
343
323
 
@@ -450,4 +430,7 @@ contract PoolService is
450
430
  }
451
431
  }
452
432
 
433
+ function _getDomain() internal pure override returns(ObjectType) {
434
+ return POOL();
435
+ }
453
436
  }
@@ -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
@@ -80,11 +56,6 @@ contract ApplicationService is
80
56
  }
81
57
 
82
58
 
83
- function getDomain() public pure override returns(ObjectType) {
84
- return APPLICATION();
85
- }
86
-
87
-
88
59
  function _checkLinkedpplicationParameters(
89
60
  InstanceReader instanceReader,
90
61
  NftId productNftId,
@@ -251,4 +222,9 @@ contract ApplicationService is
251
222
  }
252
223
 
253
224
  // internal functions
225
+
226
+
227
+ function _getDomain() internal pure override returns(ObjectType) {
228
+ return APPLICATION();
229
+ }
254
230
  }
@@ -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 {