@etherisc/gif-next 0.0.2-7e8dbef-751 → 0.0.2-7edde36-170

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