@etherisc/gif-next 0.0.2-7ef1483-704 → 0.0.2-7f111bb-562

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