@etherisc/gif-next 0.0.2-7c515fb-081 → 0.0.2-7c8d286-020

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 (753) hide show
  1. package/README.md +146 -22
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  19. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1224 -0
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1246 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +951 -0
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1596 -0
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +876 -0
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +850 -0
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1071 -0
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1491 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2048 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1447 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1671 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2448 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +633 -555
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +481 -159
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +448 -2973
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1637 -562
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +519 -362
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +355 -113
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3738 -0
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  104. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  105. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  108. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  109. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1013 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +772 -0
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1277 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +808 -0
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +880 -0
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  140. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  141. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1606 -0
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +824 -0
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +895 -0
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +748 -0
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  155. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1512 -0
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +856 -0
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  161. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +261 -373
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +623 -0
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  169. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  170. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +199 -185
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1341 -0
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +812 -0
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingService.sol/PricingService.json +967 -0
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +792 -0
  182. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  183. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  189. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +628 -171
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +391 -201
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  198. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/Registry.sol/Registry.json +958 -202
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +355 -323
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +340 -130
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  217. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +352 -101
  218. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  219. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1532 -0
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
  224. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  225. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +182 -207
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  234. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  235. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/IComponent.sol/IComponent.json} +323 -252
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1180 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  240. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  241. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  251. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IService.sol/IService.json +137 -159
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  259. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  261. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  267. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  272. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  273. package/artifacts/contracts/shared/Service.sol/Service.json +156 -171
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  280. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1512 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  285. package/artifacts/contracts/staking/Staking.sol/Staking.json +1933 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +804 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1396 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +744 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  348. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  360. package/contracts/accounting/AccountingService.sol +261 -0
  361. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  362. package/contracts/accounting/IAccountingService.sol +45 -0
  363. package/contracts/authorization/AccessAdmin.sol +704 -0
  364. package/contracts/authorization/AccessAdminLib.sol +183 -0
  365. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  366. package/contracts/authorization/Authorization.sol +365 -0
  367. package/contracts/authorization/IAccess.sol +49 -0
  368. package/contracts/authorization/IAccessAdmin.sol +170 -0
  369. package/contracts/authorization/IAuthorization.sol +80 -0
  370. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  371. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  372. package/contracts/distribution/BasicDistribution.sol +143 -0
  373. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  374. package/contracts/distribution/Distribution.sol +246 -0
  375. package/contracts/distribution/DistributionService.sol +389 -0
  376. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  377. package/contracts/distribution/IDistributionComponent.sol +43 -0
  378. package/contracts/distribution/IDistributionService.sol +103 -0
  379. package/contracts/examples/fire/DamageLevel.sol +59 -0
  380. package/contracts/examples/fire/FirePool.sol +90 -0
  381. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  382. package/contracts/examples/fire/FireProduct.sol +437 -0
  383. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  384. package/contracts/examples/fire/FireUSD.sol +26 -0
  385. package/contracts/examples/unpermissioned/SimpleDistribution.sol +85 -0
  386. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  387. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  388. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  389. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  390. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  391. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  392. package/contracts/instance/BundleSet.sol +130 -0
  393. package/contracts/instance/IInstance.sol +91 -25
  394. package/contracts/instance/IInstanceService.sol +71 -17
  395. package/contracts/instance/Instance.sol +209 -356
  396. package/contracts/instance/InstanceAdmin.sol +450 -0
  397. package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
  398. package/contracts/instance/InstanceReader.sol +422 -78
  399. package/contracts/instance/InstanceService.sol +406 -126
  400. package/contracts/instance/InstanceServiceManager.sol +14 -31
  401. package/contracts/instance/InstanceStore.sol +298 -0
  402. package/contracts/instance/RiskSet.sol +118 -0
  403. package/contracts/instance/base/BalanceStore.sol +123 -0
  404. package/contracts/instance/base/Cloneable.sol +28 -0
  405. package/contracts/instance/base/ObjectCounter.sol +20 -0
  406. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  407. package/contracts/instance/base/ObjectSet.sol +77 -0
  408. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  409. package/contracts/instance/module/IBundle.sol +8 -8
  410. package/contracts/instance/module/IComponents.sol +51 -0
  411. package/contracts/instance/module/IDistribution.sol +11 -6
  412. package/contracts/instance/module/IPolicy.sol +59 -19
  413. package/contracts/instance/module/IRisk.sol +4 -1
  414. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  415. package/contracts/oracle/BasicOracle.sol +47 -0
  416. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  417. package/contracts/oracle/IOracle.sol +36 -0
  418. package/contracts/oracle/IOracleComponent.sol +33 -0
  419. package/contracts/oracle/IOracleService.sol +66 -0
  420. package/contracts/oracle/Oracle.sol +156 -0
  421. package/contracts/oracle/OracleService.sol +310 -0
  422. package/contracts/oracle/OracleServiceManager.sol +39 -0
  423. package/contracts/pool/BasicPool.sol +175 -0
  424. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  425. package/contracts/pool/BundleService.sol +395 -0
  426. package/contracts/pool/BundleServiceManager.sol +39 -0
  427. package/contracts/pool/IBundleService.sol +115 -0
  428. package/contracts/pool/IPoolComponent.sol +62 -0
  429. package/contracts/pool/IPoolService.sol +165 -0
  430. package/contracts/pool/Pool.sol +345 -0
  431. package/contracts/pool/PoolLib.sol +309 -0
  432. package/contracts/pool/PoolService.sol +759 -0
  433. package/contracts/pool/PoolServiceManager.sol +39 -0
  434. package/contracts/product/ApplicationService.sol +278 -0
  435. package/contracts/product/ApplicationServiceManager.sol +38 -0
  436. package/contracts/product/BasicProduct.sol +51 -0
  437. package/contracts/product/BasicProductAuthorization.sol +56 -0
  438. package/contracts/product/ClaimService.sol +640 -0
  439. package/contracts/product/ClaimServiceManager.sol +38 -0
  440. package/contracts/product/IApplicationService.sol +69 -0
  441. package/contracts/product/IClaimService.sol +135 -0
  442. package/contracts/product/IPolicyService.sol +95 -0
  443. package/contracts/product/IPricingService.sol +40 -0
  444. package/contracts/product/IProductComponent.sol +62 -0
  445. package/contracts/product/IRiskService.sol +33 -0
  446. package/contracts/product/PolicyService.sol +664 -0
  447. package/contracts/product/PolicyServiceLib.sol +119 -0
  448. package/contracts/product/PolicyServiceManager.sol +39 -0
  449. package/contracts/product/PricingService.sol +309 -0
  450. package/contracts/product/PricingServiceManager.sol +39 -0
  451. package/contracts/product/Product.sol +469 -0
  452. package/contracts/product/RiskService.sol +154 -0
  453. package/contracts/product/RiskServiceManager.sol +39 -0
  454. package/contracts/registry/ChainNft.sol +82 -35
  455. package/contracts/registry/IRegistry.sol +122 -50
  456. package/contracts/registry/IRegistryService.sol +45 -16
  457. package/contracts/registry/IRelease.sol +26 -0
  458. package/contracts/registry/ITransferInterceptor.sol +1 -1
  459. package/contracts/registry/Registry.sol +545 -304
  460. package/contracts/registry/RegistryAdmin.sol +258 -0
  461. package/contracts/registry/RegistryAuthorization.sol +267 -0
  462. package/contracts/registry/RegistryService.sol +126 -284
  463. package/contracts/registry/RegistryServiceManager.sol +26 -53
  464. package/contracts/registry/ReleaseAdmin.sol +253 -0
  465. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  466. package/contracts/registry/ReleaseRegistry.sol +517 -0
  467. package/contracts/registry/ServiceAuthorizationV3.sol +332 -0
  468. package/contracts/registry/TokenRegistry.sol +261 -59
  469. package/contracts/shared/Component.sol +227 -0
  470. package/contracts/shared/ComponentService.sol +696 -0
  471. package/contracts/shared/ComponentServiceManager.sol +38 -0
  472. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  473. package/contracts/shared/ContractLib.sol +281 -0
  474. package/contracts/shared/IComponent.sol +61 -0
  475. package/contracts/shared/IComponentService.sol +110 -0
  476. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  477. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  478. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  479. package/contracts/shared/INftOwnable.sol +15 -12
  480. package/contracts/shared/IPolicyHolder.sol +35 -0
  481. package/contracts/shared/IRegisterable.sol +25 -5
  482. package/contracts/shared/IRegistryLinked.sol +11 -0
  483. package/contracts/shared/IService.sol +13 -5
  484. package/contracts/shared/InitializableERC165.sol +35 -0
  485. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  486. package/contracts/shared/KeyValueStore.sol +131 -0
  487. package/contracts/shared/Lifecycle.sol +88 -0
  488. package/contracts/shared/NftIdSet.sol +65 -0
  489. package/contracts/shared/NftOwnable.sol +76 -84
  490. package/contracts/shared/PolicyHolder.sol +62 -0
  491. package/contracts/shared/Registerable.sol +54 -38
  492. package/contracts/shared/RegistryLinked.sol +38 -0
  493. package/contracts/shared/Service.sol +44 -33
  494. package/contracts/shared/TokenHandler.sol +327 -12
  495. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  496. package/contracts/staking/IStaking.sol +175 -0
  497. package/contracts/staking/IStakingService.sol +175 -0
  498. package/contracts/staking/Staking.sol +546 -0
  499. package/contracts/staking/StakingLib.sol +281 -0
  500. package/contracts/staking/StakingLifecycle.sol +23 -0
  501. package/contracts/staking/StakingManager.sol +52 -0
  502. package/contracts/staking/StakingReader.sol +180 -0
  503. package/contracts/staking/StakingService.sol +467 -0
  504. package/contracts/staking/StakingServiceManager.sol +45 -0
  505. package/contracts/staking/StakingStore.sol +606 -0
  506. package/contracts/staking/TargetManagerLib.sol +211 -0
  507. package/contracts/{types → type}/AddressSet.sol +1 -1
  508. package/contracts/type/Amount.sol +150 -0
  509. package/contracts/{types → type}/Blocknumber.sol +27 -3
  510. package/contracts/type/ClaimId.sol +80 -0
  511. package/contracts/{types → type}/DistributorType.sol +2 -2
  512. package/contracts/{types → type}/Fee.sol +33 -23
  513. package/contracts/{types → type}/Key32.sol +2 -2
  514. package/contracts/type/Key32Set.sol +62 -0
  515. package/contracts/{types → type}/NftId.sol +28 -15
  516. package/contracts/type/NftIdSet.sol +62 -0
  517. package/contracts/type/ObjectType.sol +294 -0
  518. package/contracts/type/PayoutId.sol +82 -0
  519. package/contracts/{types → type}/Referral.sol +6 -1
  520. package/contracts/type/RequestId.sol +75 -0
  521. package/contracts/type/RiskId.sol +75 -0
  522. package/contracts/type/RoleId.sol +182 -0
  523. package/contracts/type/Seconds.sol +101 -0
  524. package/contracts/type/Selector.sol +107 -0
  525. package/contracts/{types → type}/StateId.sol +48 -4
  526. package/contracts/type/String.sol +53 -0
  527. package/contracts/{types → type}/Timestamp.sol +33 -19
  528. package/contracts/{types → type}/UFixed.sol +41 -121
  529. package/contracts/{types → type}/Version.sol +59 -7
  530. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  531. package/contracts/upgradeability/ProxyManager.sol +232 -0
  532. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  533. package/contracts/upgradeability/Versionable.sol +59 -0
  534. package/package.json +12 -8
  535. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  537. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  538. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -670
  539. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  540. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  541. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  542. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -204
  543. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  544. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  545. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  546. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  547. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  548. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -873
  549. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  550. package/artifacts/contracts/components/Product.sol/Product.json +0 -775
  551. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  553. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  555. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  557. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  559. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  561. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  562. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  563. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  565. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  567. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  569. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  571. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  574. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  576. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  577. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  578. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  579. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  580. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  581. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  582. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  583. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  584. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  585. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  586. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  587. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  588. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  589. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  590. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  591. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  592. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  593. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  594. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  595. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  596. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  597. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  598. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  599. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  600. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  601. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  602. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  603. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  604. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  605. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  606. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  607. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  608. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  609. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  610. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  612. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  613. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -681
  614. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  615. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -436
  616. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  617. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  619. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  621. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -820
  623. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  624. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -448
  625. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  626. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  627. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  628. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  629. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  630. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  631. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  632. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  633. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  634. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  635. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  636. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  637. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  638. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  639. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  640. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  641. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  642. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  643. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  644. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  645. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  646. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  647. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  648. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  649. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  650. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  651. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  652. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  653. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  654. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  655. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  656. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  657. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  659. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  661. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  663. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  665. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  666. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  667. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  669. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  670. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  671. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  673. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  675. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  677. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  679. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  681. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  682. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  683. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  685. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  686. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  687. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  689. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  691. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  693. package/contracts/components/BaseComponent.sol +0 -91
  694. package/contracts/components/Distribution.sol +0 -166
  695. package/contracts/components/IBaseComponent.sol +0 -25
  696. package/contracts/components/IDistributionComponent.sol +0 -46
  697. package/contracts/components/IPoolComponent.sol +0 -62
  698. package/contracts/components/IProductComponent.sol +0 -35
  699. package/contracts/components/Pool.sol +0 -247
  700. package/contracts/components/Product.sol +0 -297
  701. package/contracts/experiment/cloning/Cloner.sol +0 -47
  702. package/contracts/experiment/errors/Require.sol +0 -38
  703. package/contracts/experiment/errors/Revert.sol +0 -44
  704. package/contracts/experiment/inheritance/A.sol +0 -53
  705. package/contracts/experiment/inheritance/B.sol +0 -28
  706. package/contracts/experiment/inheritance/C.sol +0 -34
  707. package/contracts/experiment/inheritance/IA.sol +0 -13
  708. package/contracts/experiment/inheritance/IB.sol +0 -10
  709. package/contracts/experiment/inheritance/IC.sol +0 -12
  710. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  711. package/contracts/experiment/statemachine/ISM.sol +0 -25
  712. package/contracts/experiment/statemachine/SM.sol +0 -57
  713. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  714. package/contracts/experiment/types/TypeA.sol +0 -47
  715. package/contracts/experiment/types/TypeB.sol +0 -29
  716. package/contracts/instance/AccessManagedSimple.sol +0 -115
  717. package/contracts/instance/AccessManagerSimple.sol +0 -692
  718. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  719. package/contracts/instance/InstanceAccessManager.sol +0 -288
  720. package/contracts/instance/base/ComponentServiceBase.sol +0 -60
  721. package/contracts/instance/base/IInstanceBase.sol +0 -23
  722. package/contracts/instance/base/KeyValueStore.sol +0 -172
  723. package/contracts/instance/base/Lifecycle.sol +0 -100
  724. package/contracts/instance/module/IAccess.sol +0 -38
  725. package/contracts/instance/module/ISetup.sol +0 -44
  726. package/contracts/instance/module/ITreasury.sol +0 -23
  727. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  728. package/contracts/instance/service/DistributionService.sol +0 -99
  729. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  730. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  731. package/contracts/instance/service/IDistributionService.sol +0 -12
  732. package/contracts/instance/service/IPoolService.sol +0 -37
  733. package/contracts/instance/service/IProductService.sol +0 -107
  734. package/contracts/instance/service/PoolService.sol +0 -205
  735. package/contracts/instance/service/PoolServiceManager.sol +0 -53
  736. package/contracts/shared/ContractDeployerLib.sol +0 -72
  737. package/contracts/shared/ERC165.sol +0 -25
  738. package/contracts/shared/ProxyManager.sol +0 -94
  739. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  740. package/contracts/shared/Versionable.sol +0 -147
  741. package/contracts/test/TestFee.sol +0 -25
  742. package/contracts/test/TestRegisterable.sol +0 -18
  743. package/contracts/test/TestRoleId.sol +0 -14
  744. package/contracts/test/TestService.sol +0 -24
  745. package/contracts/test/TestToken.sol +0 -26
  746. package/contracts/test/TestVersion.sol +0 -44
  747. package/contracts/test/TestVersionable.sol +0 -17
  748. package/contracts/types/ChainId.sol +0 -38
  749. package/contracts/types/NftIdSet.sol +0 -60
  750. package/contracts/types/NumberId.sol +0 -52
  751. package/contracts/types/ObjectType.sol +0 -152
  752. package/contracts/types/RiskId.sol +0 -43
  753. package/contracts/types/RoleId.sol +0 -89
@@ -0,0 +1,759 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccountingService} from "../accounting/IAccountingService.sol";
5
+ import {IBundle} from "../instance/module/IBundle.sol";
6
+ import {IBundleService} from "./IBundleService.sol";
7
+ import {IComponents} from "../instance/module/IComponents.sol";
8
+ import {IComponentService} from "../shared/IComponentService.sol";
9
+ import {IInstance} from "../instance/IInstance.sol";
10
+ import {IPolicy} from "../instance/module/IPolicy.sol";
11
+ import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
12
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
13
+ import {IPoolService} from "./IPoolService.sol";
14
+ import {IProductComponent} from "../product/IProductComponent.sol";
15
+ import {IRegistry} from "../registry/IRegistry.sol";
16
+ import {IStaking} from "../staking/IStaking.sol";
17
+
18
+ import {Amount, AmountLib} from "../type/Amount.sol";
19
+ import {ClaimId} from "../type/ClaimId.sol";
20
+ import {ContractLib} from "../shared/ContractLib.sol";
21
+ import {InstanceReader} from "../instance/InstanceReader.sol";
22
+ import {InstanceStore} from "../instance/InstanceStore.sol";
23
+ import {KEEP_STATE} from "../type/StateId.sol";
24
+ import {NftId} from "../type/NftId.sol";
25
+ import {ObjectType, ACCOUNTING, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
26
+ import {PayoutId} from "../type/PayoutId.sol";
27
+ import {PoolLib} from "./PoolLib.sol";
28
+ import {Service} from "../shared/Service.sol";
29
+ import {TokenHandler} from "../shared/TokenHandler.sol";
30
+ import {UFixed} from "../type/UFixed.sol";
31
+
32
+ string constant POOL_SERVICE_NAME = "PoolService";
33
+
34
+
35
+ contract PoolService is
36
+ Service,
37
+ IPoolService
38
+ {
39
+ IAccountingService private _accountingService;
40
+ IBundleService internal _bundleService;
41
+ IComponentService internal _componentService;
42
+ IStaking private _staking;
43
+
44
+ function _initialize(
45
+ address owner,
46
+ bytes memory data
47
+ )
48
+ internal
49
+ virtual override
50
+ initializer()
51
+ {
52
+ (
53
+ address authority,
54
+ address registry
55
+ ) = abi.decode(data, (address, address));
56
+
57
+ __Service_init(authority, registry, owner);
58
+
59
+ _accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
60
+ _bundleService = IBundleService(_getServiceAddress(BUNDLE()));
61
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
62
+ _staking = IStaking(getRegistry().getStakingAddress());
63
+
64
+ _registerInterface(type(IPoolService).interfaceId);
65
+ }
66
+
67
+
68
+ /// @inheritdoc IPoolService
69
+ function setMaxBalanceAmount(Amount maxBalanceAmount)
70
+ external
71
+ virtual
72
+ restricted()
73
+ {
74
+ (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
75
+ InstanceReader instanceReader = instance.getInstanceReader();
76
+ IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
77
+
78
+ Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
79
+ poolInfo.maxBalanceAmount = maxBalanceAmount;
80
+ instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
81
+
82
+ emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
83
+ }
84
+
85
+
86
+ function closeBundle(NftId bundleNftId)
87
+ external
88
+ restricted()
89
+ virtual
90
+ {
91
+ _checkNftType(bundleNftId, BUNDLE());
92
+
93
+ (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
94
+
95
+ // TODO get performance fee for pool (#477)
96
+
97
+ // releasing collateral in bundle
98
+ (Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
99
+
100
+ _accountingService.decreasePoolBalance(
101
+ instance.getInstanceStore(),
102
+ poolNftId,
103
+ unstakedAmount + feeAmount,
104
+ AmountLib.zero());
105
+
106
+ emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
107
+
108
+ if ((unstakedAmount + feeAmount).gtz()){
109
+ IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
110
+ poolComponentInfo.tokenHandler.pushToken(
111
+ getRegistry().ownerOf(bundleNftId),
112
+ unstakedAmount + feeAmount);
113
+ }
114
+ }
115
+
116
+
117
+ /// @inheritdoc IPoolService
118
+ function processFundedClaim(
119
+ NftId policyNftId,
120
+ ClaimId claimId,
121
+ Amount availableAmount
122
+ )
123
+ external
124
+ restricted()
125
+ virtual
126
+ {
127
+ _checkNftType(policyNftId, POLICY());
128
+
129
+ (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
130
+ InstanceReader instanceReader = instance.getInstanceReader();
131
+ NftId productNftId = getRegistry().getParentNftId(poolNftId);
132
+
133
+ // check policy matches with calling pool
134
+ IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
135
+ if(policyInfo.productNftId != productNftId) {
136
+ revert ErrorPoolServicePolicyPoolMismatch(
137
+ policyNftId,
138
+ policyInfo.productNftId,
139
+ productNftId);
140
+ }
141
+
142
+ emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
143
+
144
+ // callback to product component if applicable
145
+ if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
146
+ address productAddress = getRegistry().getObjectAddress(productNftId);
147
+ IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
148
+ }
149
+ }
150
+
151
+
152
+ // function _checkAndGetPoolInfo(NftId bundleNftId)
153
+ // internal
154
+ // view
155
+ // returns (
156
+ // InstanceReader instanceReader,
157
+ // InstanceStore instanceStore,
158
+ // NftId instanceNftId,
159
+ // NftId poolNftId,
160
+ // IComponents.PoolInfo memory poolInfo
161
+ // )
162
+ // {
163
+ // _checkNftType(bundleNftId, BUNDLE());
164
+
165
+ // (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
166
+ // instanceReader = instance.getInstanceReader();
167
+ // instanceStore = instance.getInstanceStore();
168
+ // instanceNftId = instance.getNftId();
169
+ // poolInfo = instanceReader.getPoolInfo(poolNftId);
170
+
171
+ // if (getRegistry().getParentNftId(bundleNftId) != poolNftId) {
172
+ // revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
173
+ // }
174
+ // }
175
+
176
+
177
+ /// @inheritdoc IPoolService
178
+ function stake(NftId bundleNftId, Amount amount)
179
+ external
180
+ virtual
181
+ restricted()
182
+ returns(
183
+ Amount netAmount
184
+ )
185
+ {
186
+ (
187
+ InstanceReader instanceReader,
188
+ InstanceStore instanceStore,
189
+ NftId instanceNftId,
190
+ NftId poolNftId,
191
+ IComponents.PoolInfo memory poolInfo
192
+ ) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
193
+
194
+ {
195
+ Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
196
+ if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
197
+ revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
198
+ }
199
+ }
200
+
201
+ // calculate fees
202
+ Amount feeAmount;
203
+ (
204
+ feeAmount,
205
+ netAmount
206
+ ) = PoolLib.calculateStakingAmounts(
207
+ getRegistry(),
208
+ instanceReader,
209
+ poolNftId,
210
+ amount);
211
+
212
+ // do all the book keeping
213
+ _accountingService.increasePoolBalance(
214
+ instanceStore,
215
+ poolNftId,
216
+ netAmount,
217
+ feeAmount);
218
+
219
+ _bundleService.stake(instanceReader, instanceStore, bundleNftId, netAmount);
220
+
221
+ emit LogPoolServiceBundleStaked(instanceNftId, poolNftId, bundleNftId, amount, netAmount);
222
+
223
+ // only collect staking amount when pool is not externally managed
224
+ if (!poolInfo.isExternallyManaged) {
225
+
226
+ // collect tokens from bundle owner
227
+ address bundleOwner = getRegistry().ownerOf(bundleNftId);
228
+ PoolLib.pullStakingAmount(
229
+ instanceReader,
230
+ poolNftId,
231
+ bundleOwner,
232
+ amount);
233
+ }
234
+ }
235
+
236
+
237
+ /// @inheritdoc IPoolService
238
+ function unstake(NftId bundleNftId, Amount amount)
239
+ external
240
+ virtual
241
+ restricted()
242
+ returns(Amount netAmount)
243
+ {
244
+ (
245
+ InstanceReader instanceReader,
246
+ InstanceStore instanceStore,
247
+ NftId instanceNftId,
248
+ NftId poolNftId,
249
+ ) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
250
+
251
+ // call bundle service for bookkeeping and additional checks
252
+ Amount unstakedAmount = _bundleService.unstake(instanceStore, bundleNftId, amount);
253
+
254
+ // Important: from now on work only with unstakedAmount as it is the only reliable amount.
255
+ // if amount was max, this was set to the available amount
256
+
257
+ // TODO: handle performance fees (issue #477)
258
+ netAmount = unstakedAmount;
259
+
260
+ // update pool bookkeeping - performance fees stay in the pool, but as fees
261
+ _accountingService.decreasePoolBalance(
262
+ instanceStore,
263
+ poolNftId,
264
+ unstakedAmount,
265
+ AmountLib.zero());
266
+
267
+
268
+ emit LogPoolServiceBundleUnstaked(instanceNftId, poolNftId, bundleNftId, unstakedAmount, netAmount);
269
+
270
+ // only distribute staking amount when pool is not externally managed
271
+ if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
272
+
273
+ // transfer amount to bundle owner
274
+ address bundleOwner = getRegistry().ownerOf(bundleNftId);
275
+ PoolLib.pushUnstakingAmount(
276
+ instanceReader,
277
+ poolNftId,
278
+ bundleOwner,
279
+ netAmount);
280
+ }
281
+ }
282
+
283
+
284
+ function fundPoolWallet(Amount amount)
285
+ external
286
+ virtual
287
+ restricted()
288
+ {
289
+ (
290
+ NftId poolNftId,
291
+ IInstance instance
292
+ ) = _getAndVerifyActivePool();
293
+
294
+ // check that pool is externally managed
295
+ InstanceReader reader = instance.getInstanceReader();
296
+ if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
297
+ revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
298
+ }
299
+
300
+ address poolOwner = getRegistry().ownerOf(poolNftId);
301
+ emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
302
+
303
+ PoolLib.pullStakingAmount(
304
+ reader,
305
+ poolNftId,
306
+ poolOwner,
307
+ amount);
308
+ }
309
+
310
+
311
+ function defundPoolWallet(Amount amount)
312
+ external
313
+ virtual
314
+ restricted()
315
+ {
316
+ (
317
+ NftId poolNftId,
318
+ IInstance instance
319
+ ) = _getAndVerifyActivePool();
320
+
321
+ // check that pool is externally managed
322
+ InstanceReader reader = instance.getInstanceReader();
323
+ if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
324
+ revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
325
+ }
326
+
327
+ address poolOwner = getRegistry().ownerOf(poolNftId);
328
+ emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
329
+
330
+ PoolLib.pushUnstakingAmount(
331
+ reader,
332
+ poolNftId,
333
+ poolOwner,
334
+ amount);
335
+ }
336
+
337
+
338
+ function processSale(
339
+ NftId bundleNftId,
340
+ IPolicy.PremiumInfo memory premium
341
+ )
342
+ external
343
+ virtual
344
+ restricted()
345
+ {
346
+ _checkNftType(bundleNftId, BUNDLE());
347
+
348
+ IRegistry registry = getRegistry();
349
+ NftId poolNftId = registry.getParentNftId(bundleNftId);
350
+ (, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
351
+ IInstance instance = IInstance(instanceAddress);
352
+
353
+ Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
354
+ Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
355
+ Amount bundleNetAmount = premium.netPremiumAmount;
356
+
357
+ InstanceStore instanceStore = instance.getInstanceStore();
358
+ _accountingService.increasePoolBalance(
359
+ instanceStore,
360
+ poolNftId,
361
+ bundleNetAmount + bundleFeeAmount,
362
+ poolFeeAmount);
363
+
364
+ _accountingService.increaseBundleBalanceForPool(
365
+ instanceStore,
366
+ bundleNftId,
367
+ bundleNetAmount,
368
+ bundleFeeAmount);
369
+ }
370
+
371
+
372
+ function lockCollateral(
373
+ IInstance instance,
374
+ address token,
375
+ NftId productNftId,
376
+ NftId applicationNftId,
377
+ NftId bundleNftId,
378
+ Amount sumInsuredAmount // premium amount after product and distribution fees
379
+ )
380
+ external
381
+ virtual
382
+ restricted()
383
+ returns (
384
+ Amount totalCollateralAmount,
385
+ Amount localCollateralAmount
386
+ )
387
+ {
388
+ _checkNftType(productNftId, PRODUCT());
389
+ _checkNftType(applicationNftId, POLICY());
390
+ _checkNftType(bundleNftId, BUNDLE());
391
+
392
+ NftId poolNftId;
393
+ bool poolIsVerifyingApplications;
394
+ (
395
+ poolNftId,
396
+ totalCollateralAmount,
397
+ localCollateralAmount,
398
+ poolIsVerifyingApplications
399
+ ) = PoolLib.calculateRequiredCollateral(
400
+ instance.getInstanceReader(),
401
+ productNftId,
402
+ sumInsuredAmount);
403
+
404
+ // lock collateral amount from involved bundle
405
+ _bundleService.lockCollateral(
406
+ instance,
407
+ applicationNftId,
408
+ bundleNftId,
409
+ localCollateralAmount);
410
+
411
+ // update value locked with staking service
412
+ _staking.increaseTotalValueLocked(
413
+ instance.getNftId(),
414
+ token,
415
+ totalCollateralAmount);
416
+
417
+ // pool callback when required
418
+ if (poolIsVerifyingApplications) {
419
+ IPoolComponent pool = IPoolComponent(
420
+ getRegistry().getObjectAddress(poolNftId));
421
+
422
+ pool.verifyApplication(
423
+ applicationNftId,
424
+ bundleNftId,
425
+ totalCollateralAmount);
426
+
427
+ // TODO add logging
428
+ }
429
+
430
+ // TODO add logging
431
+ }
432
+
433
+ function processPayout(
434
+ InstanceReader instanceReader,
435
+ InstanceStore instanceStore,
436
+ NftId productNftId,
437
+ NftId policyNftId,
438
+ NftId bundleNftId,
439
+ PayoutId payoutId,
440
+ Amount payoutAmount,
441
+ address payoutBeneficiary
442
+ )
443
+ external
444
+ virtual
445
+ restricted()
446
+ {
447
+ // checks
448
+ _checkNftType(policyNftId, POLICY());
449
+
450
+ // effects
451
+ NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
452
+
453
+ _accountingService.decreasePoolBalance(
454
+ instanceStore,
455
+ poolNftId,
456
+ payoutAmount,
457
+ AmountLib.zero());
458
+
459
+ _accountingService.decreaseBundleBalanceForPool(
460
+ instanceStore,
461
+ bundleNftId,
462
+ payoutAmount,
463
+ AmountLib.zero());
464
+
465
+ _bundleService.releaseCollateral(
466
+ instanceStore,
467
+ policyNftId,
468
+ bundleNftId,
469
+ payoutAmount);
470
+
471
+ // update value locked with staking service
472
+ TokenHandler poolTokenHandler = TokenHandler(
473
+ instanceReader.getTokenHandler(
474
+ poolNftId));
475
+
476
+ _staking.decreaseTotalValueLocked(
477
+ instanceReader.getInstanceNftId(),
478
+ address(poolTokenHandler.TOKEN()),
479
+ payoutAmount);
480
+
481
+ // interactions
482
+ PoolLib.transferTokenAndNotifyPolicyHolder(
483
+ getRegistry(),
484
+ instanceReader,
485
+ poolTokenHandler,
486
+ productNftId,
487
+ policyNftId,
488
+ payoutId,
489
+ payoutAmount,
490
+ payoutBeneficiary);
491
+ }
492
+
493
+ //function _transferTokenAndNotifyPolicyHolder(
494
+ // InstanceReader instanceReader,
495
+ // TokenHandler poolTokenHandler,
496
+ // NftId productNftId,
497
+ // NftId policyNftId,
498
+ // PayoutId payoutId,
499
+ // Amount payoutAmount,
500
+ // address payoutBeneficiary
501
+ //)
502
+ // internal
503
+ //{
504
+ // (
505
+ // Amount netPayoutAmount,
506
+ // Amount processingFeeAmount,
507
+ // address beneficiary
508
+ // ) = PoolLib.calculatePayoutAmounts(
509
+ // getRegistry(),
510
+ // instanceReader,
511
+ // productNftId,
512
+ // policyNftId,
513
+ // payoutAmount,
514
+ // payoutBeneficiary);
515
+
516
+ // 1st token tx to payout to beneficiary
517
+ // poolTokenHandler.pushToken(
518
+ // beneficiary,
519
+ // netPayoutAmount);
520
+
521
+ // 2nd token tx to transfer processing fees to product wallet
522
+ // if processingFeeAmount > 0
523
+ // if (processingFeeAmount.gtz()) {
524
+ // poolTokenHandler.pushToken(
525
+ // instanceReader.getWallet(productNftId),
526
+ // processingFeeAmount);
527
+ // }
528
+
529
+ // callback to policy holder if applicable
530
+ // _policyHolderPayoutExecuted(
531
+ // policyNftId,
532
+ // payoutId,
533
+ // beneficiary,
534
+ // netPayoutAmount);
535
+ //}
536
+
537
+
538
+ /// @inheritdoc IPoolService
539
+ function withdrawBundleFees(
540
+ NftId bundleNftId,
541
+ Amount amount
542
+ )
543
+ public
544
+ virtual
545
+ restricted()
546
+ returns (Amount withdrawnAmount)
547
+ {
548
+ // checks
549
+ _checkNftType(bundleNftId, BUNDLE());
550
+
551
+ (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
552
+ InstanceReader reader = instance.getInstanceReader();
553
+
554
+ // determine withdrawn amount
555
+ withdrawnAmount = amount;
556
+ if (withdrawnAmount.gte(AmountLib.max())) {
557
+ withdrawnAmount = reader.getFeeAmount(bundleNftId);
558
+ } else {
559
+ if (withdrawnAmount > reader.getFeeAmount(bundleNftId)) {
560
+ revert ErrorPoolServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
561
+ }
562
+ }
563
+
564
+ // effects
565
+ // decrease fee counters by withdrawnAmount
566
+ {
567
+ InstanceStore store = instance.getInstanceStore();
568
+ // decrease fee amount of the bundle
569
+ _accountingService.decreaseBundleBalanceForPool(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
570
+ // decrease pool balance
571
+ _accountingService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
572
+ }
573
+
574
+ // interactions
575
+ // transfer amount to bundle owner
576
+ {
577
+ address bundleOwner = getRegistry().ownerOf(bundleNftId);
578
+ TokenHandler tokenHandler = reader.getTokenHandler(poolNftId);
579
+ address token = address(tokenHandler.TOKEN());
580
+ emit LogPoolServiceFeesWithdrawn(bundleNftId, bundleOwner, token, withdrawnAmount);
581
+
582
+ tokenHandler.pushToken(bundleOwner, withdrawnAmount);
583
+ }
584
+ }
585
+
586
+
587
+ /// @dev releases the remaining collateral linked to the specified policy
588
+ /// may only be called by the policy service for unlocked pool components
589
+ function releaseCollateral(
590
+ IInstance instance,
591
+ NftId policyNftId,
592
+ IPolicy.PolicyInfo memory policyInfo
593
+ )
594
+ external
595
+ virtual
596
+ restricted()
597
+ {
598
+ _checkNftType(policyNftId, POLICY());
599
+
600
+ Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
601
+
602
+ _bundleService.releaseCollateral(
603
+ instance.getInstanceStore(),
604
+ policyNftId,
605
+ policyInfo.bundleNftId,
606
+ remainingCollateralAmount);
607
+
608
+ // update value locked with staking service
609
+ InstanceReader instanceReader = instance.getInstanceReader();
610
+ _staking.decreaseTotalValueLocked(
611
+ instanceReader.getInstanceNftId(),
612
+ address(instanceReader.getToken(policyInfo.productNftId)),
613
+ remainingCollateralAmount);
614
+ }
615
+
616
+
617
+ // function calculateRequiredCollateral(
618
+ // InstanceReader instanceReader,
619
+ // NftId productNftId,
620
+ // Amount sumInsuredAmount
621
+ // )
622
+ // public
623
+ // view
624
+ // returns(
625
+ // NftId poolNftId,
626
+ // Amount totalCollateralAmount,
627
+ // Amount localCollateralAmount,
628
+ // bool poolIsVerifyingApplications
629
+ // )
630
+ // {
631
+ // return CollateralLib.calculateRequiredCollateral(
632
+ // instanceReader,
633
+ // productNftId,
634
+ // sumInsuredAmount);
635
+ // }
636
+
637
+ // _checkNftType(productNftId, PRODUCT());
638
+
639
+ // poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
640
+ // IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
641
+ // poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
642
+
643
+ // (
644
+ // totalCollateralAmount,
645
+ // localCollateralAmount
646
+ // ) = calculateRequiredCollateral(
647
+ // poolInfo.collateralizationLevel,
648
+ // poolInfo.retentionLevel,
649
+ // sumInsuredAmount);
650
+ // }
651
+
652
+
653
+ // function calculateRequiredCollateral(
654
+ // UFixed collateralizationLevel,
655
+ // UFixed retentionLevel,
656
+ // Amount sumInsuredAmount
657
+ // )
658
+ // public
659
+ // pure
660
+ // returns(
661
+ // Amount totalCollateralAmount,
662
+ // Amount localCollateralAmount
663
+ // )
664
+ // {
665
+ // // collateralization is applied to sum insured
666
+ // UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
667
+ // totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
668
+
669
+ // // retention level defines how much capital is required locally
670
+ // localCollateralAmount = AmountLib.toAmount(
671
+ // (retentionLevel * totalUFixed).toInt());
672
+ // }
673
+
674
+
675
+
676
+
677
+ //function _policyHolderPayoutExecuted(
678
+ // NftId policyNftId,
679
+ // PayoutId payoutId,
680
+ // address beneficiary,
681
+ // Amount payoutAmount
682
+ //)
683
+ // internal
684
+ //{
685
+ // IPolicyHolder policyHolder = PoolLib.getPolicyHolder(getRegistry(), policyNftId);
686
+ // if(address(policyHolder) != address(0)) {
687
+ // policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
688
+ // }
689
+ //}
690
+
691
+
692
+ //function _pullStakingAmount(
693
+ // InstanceReader reader,
694
+ // NftId poolNftId,
695
+ // address from,
696
+ // Amount amount
697
+ //)
698
+ // internal
699
+ //{
700
+ // IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
701
+ // info.tokenHandler.pullToken(
702
+ // from,
703
+ // amount);
704
+ //}
705
+
706
+ //function _pushUnstakingAmount(
707
+ // InstanceReader reader,
708
+ // NftId poolNftId,
709
+ // address to,
710
+ // Amount amount
711
+ //)
712
+ // internal
713
+ //{
714
+ // IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
715
+ // info.tokenHandler.pushToken(
716
+ // to,
717
+ // amount);
718
+ //}
719
+
720
+
721
+ function _getAndVerifyActivePool()
722
+ internal
723
+ virtual
724
+ view
725
+ returns (
726
+ NftId poolNftId,
727
+ IInstance instance
728
+ )
729
+ {
730
+ return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
731
+ }
732
+
733
+ // function _getAndVerifyActivePool()
734
+ // internal
735
+ // virtual
736
+ // view
737
+ // returns (
738
+ // NftId poolNftId,
739
+ // IInstance instance
740
+ // )
741
+ // {
742
+ // (
743
+ // IRegistry.ObjectInfo memory info,
744
+ // address instanceAddress
745
+ // ) = ContractLib.getAndVerifyComponent(
746
+ // getRegistry(),
747
+ // msg.sender,
748
+ // POOL(),
749
+ // true); // only active pools
750
+
751
+ // poolNftId = info.nftId;
752
+ // instance = IInstance(instanceAddress);
753
+ // }
754
+
755
+
756
+ function _getDomain() internal pure override returns(ObjectType) {
757
+ return POOL();
758
+ }
759
+ }