@etherisc/gif-next 0.0.2-b28f7c7-340 → 0.0.2-b312c9a-831

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 (707) hide show
  1. package/README.md +77 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1000 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +746 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +767 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -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/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -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 +1292 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  33. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +333 -316
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +885 -0
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +221 -327
  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 +1441 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1991 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -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 +1429 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1145 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2293 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +350 -1997
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +189 -113
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +406 -2791
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1684 -0
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1328 -331
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +264 -425
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -151
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -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/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  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 +181 -0
  100. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +929 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +744 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +282 -179
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +256 -253
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +325 -479
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1360 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +323 -60
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → pool/IPoolComponent.sol/IPoolComponent.json} +333 -286
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +353 -420
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +391 -442
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +117 -166
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPolicyService.sol/IPolicyService.json} +485 -385
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +973 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +41 -62
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1313 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -0
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  178. package/artifacts/contracts/product/Product.sol/Product.json +1074 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +457 -27
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -110
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +949 -128
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -245
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  207. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  208. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +274 -204
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1574 -0
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +818 -0
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  214. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +124 -125
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  222. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +128 -131
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1197 -0
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +679 -0
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  228. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  229. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  230. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  237. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  239. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.json +46 -6
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +767 -0
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  248. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  259. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Service.sol/Service.json +58 -112
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  268. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +695 -607
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  272. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  273. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  274. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  276. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  289. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  290. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  291. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  293. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  295. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  297. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  299. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  301. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  303. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  304. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  305. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  307. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  308. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  309. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  311. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  313. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  315. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  317. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +180 -0
  319. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  321. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  323. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  325. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  327. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  329. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  331. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  333. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  335. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  337. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  339. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  341. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  342. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  343. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  344. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  345. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  346. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  347. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  348. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  349. package/contracts/accounting/AccountingService.sol +264 -0
  350. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  351. package/contracts/accounting/IAccountingService.sol +45 -0
  352. package/contracts/authorization/AccessAdmin.sol +616 -0
  353. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  354. package/contracts/authorization/Authorization.sol +289 -0
  355. package/contracts/authorization/IAccess.sol +49 -0
  356. package/contracts/authorization/IAccessAdmin.sol +137 -0
  357. package/contracts/authorization/IAuthorization.sol +60 -0
  358. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  359. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  360. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  361. package/contracts/distribution/BasicDistribution.sol +139 -0
  362. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  363. package/contracts/{components → distribution}/Distribution.sol +170 -163
  364. package/contracts/distribution/DistributionService.sol +357 -0
  365. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  366. package/contracts/distribution/IDistributionComponent.sol +52 -0
  367. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
  368. package/contracts/examples/fire/DamageLevel.sol +59 -0
  369. package/contracts/examples/fire/FirePool.sol +90 -0
  370. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  371. package/contracts/examples/fire/FireProduct.sol +436 -0
  372. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  373. package/contracts/examples/fire/FireUSD.sol +26 -0
  374. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  375. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  376. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  377. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  378. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  379. package/contracts/examples/unpermissioned/SimpleProduct.sol +352 -0
  380. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  381. package/contracts/instance/BundleSet.sol +130 -0
  382. package/contracts/instance/IInstance.sol +45 -72
  383. package/contracts/instance/IInstanceService.sol +37 -39
  384. package/contracts/instance/Instance.sol +162 -250
  385. package/contracts/instance/InstanceAdmin.sol +285 -0
  386. package/contracts/instance/InstanceAuthorizationV3.sol +222 -0
  387. package/contracts/instance/InstanceReader.sol +349 -61
  388. package/contracts/instance/InstanceService.sol +249 -353
  389. package/contracts/instance/InstanceServiceManager.sol +14 -29
  390. package/contracts/instance/InstanceStore.sol +287 -0
  391. package/contracts/instance/RiskSet.sol +119 -0
  392. package/contracts/instance/base/BalanceStore.sol +123 -0
  393. package/contracts/instance/base/Cloneable.sol +28 -0
  394. package/contracts/instance/base/ObjectCounter.sol +21 -0
  395. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  396. package/contracts/instance/base/ObjectSet.sol +78 -0
  397. package/contracts/instance/module/IAccess.sol +4 -12
  398. package/contracts/instance/module/IBundle.sol +6 -9
  399. package/contracts/instance/module/IComponents.sol +27 -18
  400. package/contracts/instance/module/IDistribution.sol +6 -6
  401. package/contracts/instance/module/IPolicy.sol +48 -35
  402. package/contracts/instance/module/IRisk.sol +2 -1
  403. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  404. package/contracts/oracle/BasicOracle.sol +47 -0
  405. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  406. package/contracts/oracle/IOracle.sol +36 -0
  407. package/contracts/oracle/IOracleComponent.sol +33 -0
  408. package/contracts/oracle/IOracleService.sol +66 -0
  409. package/contracts/oracle/Oracle.sol +156 -0
  410. package/contracts/oracle/OracleService.sol +309 -0
  411. package/contracts/oracle/OracleServiceManager.sol +39 -0
  412. package/contracts/pool/BasicPool.sol +175 -0
  413. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  414. package/contracts/pool/BundleService.sol +425 -0
  415. package/contracts/pool/BundleServiceManager.sol +39 -0
  416. package/contracts/pool/IBundleService.sol +121 -0
  417. package/contracts/pool/IPoolComponent.sol +62 -0
  418. package/contracts/pool/IPoolService.sol +153 -0
  419. package/contracts/pool/Pool.sol +345 -0
  420. package/contracts/pool/PoolService.sol +615 -0
  421. package/contracts/pool/PoolServiceManager.sol +39 -0
  422. package/contracts/product/ApplicationService.sol +259 -0
  423. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  424. package/contracts/product/BasicProduct.sol +49 -0
  425. package/contracts/product/BasicProductAuthorization.sol +41 -0
  426. package/contracts/product/ClaimService.sol +614 -0
  427. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  428. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  429. package/contracts/product/IClaimService.sol +123 -0
  430. package/contracts/product/IPolicyService.sol +90 -0
  431. package/contracts/product/IPricingService.sol +39 -0
  432. package/contracts/product/IProductComponent.sol +59 -0
  433. package/contracts/product/IRiskService.sol +33 -0
  434. package/contracts/product/PolicyService.sol +736 -0
  435. package/contracts/product/PolicyServiceManager.sol +39 -0
  436. package/contracts/product/PricingService.sol +300 -0
  437. package/contracts/product/PricingServiceManager.sol +39 -0
  438. package/contracts/product/Product.sol +427 -0
  439. package/contracts/product/RiskService.sol +107 -0
  440. package/contracts/product/RiskServiceManager.sol +39 -0
  441. package/contracts/registry/ChainNft.sol +75 -38
  442. package/contracts/registry/IRegistry.sol +98 -26
  443. package/contracts/registry/IRegistryService.sol +34 -40
  444. package/contracts/registry/ITransferInterceptor.sol +1 -2
  445. package/contracts/registry/Registry.sol +453 -195
  446. package/contracts/registry/RegistryAdmin.sol +457 -0
  447. package/contracts/registry/RegistryService.sol +87 -128
  448. package/contracts/registry/RegistryServiceManager.sol +23 -32
  449. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  450. package/contracts/registry/ReleaseRegistry.sol +485 -0
  451. package/contracts/registry/ServiceAuthorizationV3.sol +207 -0
  452. package/contracts/registry/TokenRegistry.sol +261 -62
  453. package/contracts/shared/Component.sol +219 -0
  454. package/contracts/shared/ComponentService.sol +693 -0
  455. package/contracts/shared/ComponentServiceManager.sol +38 -0
  456. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  457. package/contracts/shared/ContractLib.sol +224 -0
  458. package/contracts/shared/IComponent.sol +62 -0
  459. package/contracts/shared/IComponentService.sol +116 -0
  460. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  461. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  462. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  463. package/contracts/shared/INftOwnable.sol +4 -2
  464. package/contracts/shared/IPolicyHolder.sol +23 -14
  465. package/contracts/shared/IRegisterable.sol +11 -0
  466. package/contracts/shared/IRegistryLinked.sol +0 -1
  467. package/contracts/shared/IService.sol +12 -3
  468. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  469. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  470. package/contracts/shared/KeyValueStore.sol +131 -0
  471. package/contracts/shared/Lifecycle.sol +88 -0
  472. package/contracts/shared/NftIdSet.sol +65 -0
  473. package/contracts/shared/NftOwnable.sol +32 -25
  474. package/contracts/shared/PolicyHolder.sol +22 -41
  475. package/contracts/shared/Registerable.sol +32 -23
  476. package/contracts/shared/RegistryLinked.sol +9 -19
  477. package/contracts/shared/Service.sol +48 -36
  478. package/contracts/shared/TokenHandler.sol +368 -12
  479. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  480. package/contracts/staking/IStaking.sol +173 -0
  481. package/contracts/staking/IStakingService.sol +157 -0
  482. package/contracts/staking/StakeManagerLib.sol +224 -0
  483. package/contracts/staking/Staking.sol +515 -0
  484. package/contracts/staking/StakingLifecycle.sol +23 -0
  485. package/contracts/staking/StakingManager.sol +52 -0
  486. package/contracts/staking/StakingReader.sol +190 -0
  487. package/contracts/staking/StakingService.sol +440 -0
  488. package/contracts/staking/StakingServiceManager.sol +44 -0
  489. package/contracts/staking/StakingStore.sol +605 -0
  490. package/contracts/staking/TargetManagerLib.sol +211 -0
  491. package/contracts/{types → type}/AddressSet.sol +1 -1
  492. package/contracts/type/Amount.sol +150 -0
  493. package/contracts/{types → type}/Blocknumber.sol +26 -3
  494. package/contracts/{types → type}/ClaimId.sol +31 -3
  495. package/contracts/{types → type}/Fee.sol +24 -22
  496. package/contracts/{types → type}/Key32.sol +2 -2
  497. package/contracts/type/Key32Set.sol +62 -0
  498. package/contracts/{types → type}/NftId.sol +21 -16
  499. package/contracts/{types → type}/NftIdSet.sol +2 -2
  500. package/contracts/type/ObjectType.sol +286 -0
  501. package/contracts/type/PayoutId.sol +82 -0
  502. package/contracts/{types → type}/Referral.sol +2 -1
  503. package/contracts/type/RequestId.sol +75 -0
  504. package/contracts/{types → type}/RiskId.sol +31 -5
  505. package/contracts/type/RoleId.sol +162 -0
  506. package/contracts/type/Seconds.sol +101 -0
  507. package/contracts/type/Selector.sol +102 -0
  508. package/contracts/{types → type}/StateId.sol +47 -4
  509. package/contracts/type/String.sol +53 -0
  510. package/contracts/{types → type}/Timestamp.sol +21 -2
  511. package/contracts/{types → type}/UFixed.sol +38 -9
  512. package/contracts/{types → type}/Version.sol +4 -2
  513. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  514. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  515. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  516. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  517. package/package.json +11 -7
  518. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  519. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  520. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  521. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  522. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  523. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  524. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  525. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  526. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  527. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  528. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  529. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  530. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  531. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  532. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  533. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  534. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  535. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  537. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  538. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  539. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  540. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  542. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  543. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  544. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  545. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  547. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  549. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  550. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  551. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  553. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  555. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  557. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  559. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  561. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  570. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  572. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  574. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  576. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  578. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  580. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  581. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  582. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  583. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  584. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  585. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  586. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  587. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  588. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  589. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  590. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  591. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  592. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  593. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  594. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  595. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  596. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  597. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  598. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  599. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  600. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  601. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  602. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  604. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  606. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  608. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  609. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  610. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  611. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  612. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  614. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  616. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  618. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  620. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  622. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  624. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  625. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  626. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  628. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  629. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  630. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  632. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  634. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  636. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  638. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  640. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  642. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  644. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  646. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  648. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  650. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  652. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  654. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  656. package/contracts/components/Component.sol +0 -253
  657. package/contracts/components/IComponent.sol +0 -76
  658. package/contracts/components/IDistributionComponent.sol +0 -71
  659. package/contracts/components/IPoolComponent.sol +0 -113
  660. package/contracts/components/IProductComponent.sol +0 -40
  661. package/contracts/components/Pool.sol +0 -303
  662. package/contracts/components/Product.sol +0 -293
  663. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  664. package/contracts/instance/BundleManager.sol +0 -127
  665. package/contracts/instance/Cloneable.sol +0 -51
  666. package/contracts/instance/InstanceAccessManager.sol +0 -527
  667. package/contracts/instance/ObjectManager.sol +0 -82
  668. package/contracts/instance/base/ComponentService.sol +0 -121
  669. package/contracts/instance/base/KeyValueStore.sol +0 -180
  670. package/contracts/instance/base/Lifecycle.sol +0 -109
  671. package/contracts/instance/module/ISetup.sol +0 -33
  672. package/contracts/instance/module/ITreasury.sol +0 -23
  673. package/contracts/instance/service/ApplicationService.sol +0 -350
  674. package/contracts/instance/service/BundleService.sol +0 -431
  675. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  676. package/contracts/instance/service/ClaimService.sol +0 -151
  677. package/contracts/instance/service/DistributionService.sol +0 -435
  678. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  679. package/contracts/instance/service/IBundleService.sol +0 -93
  680. package/contracts/instance/service/IClaimService.sol +0 -61
  681. package/contracts/instance/service/IPolicyService.sol +0 -72
  682. package/contracts/instance/service/IPoolService.sol +0 -99
  683. package/contracts/instance/service/IProductService.sol +0 -40
  684. package/contracts/instance/service/PolicyService.sol +0 -362
  685. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  686. package/contracts/instance/service/PoolService.sol +0 -303
  687. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  688. package/contracts/instance/service/ProductService.sol +0 -210
  689. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  690. package/contracts/registry/RegistryAccessManager.sol +0 -216
  691. package/contracts/registry/ReleaseManager.sol +0 -324
  692. package/contracts/shared/ContractDeployerLib.sol +0 -72
  693. package/contracts/test/TestFee.sol +0 -25
  694. package/contracts/test/TestRegisterable.sol +0 -18
  695. package/contracts/test/TestRoleId.sol +0 -14
  696. package/contracts/test/TestService.sol +0 -25
  697. package/contracts/test/TestToken.sol +0 -26
  698. package/contracts/test/TestVersion.sol +0 -44
  699. package/contracts/test/TestVersionable.sol +0 -17
  700. package/contracts/types/Amount.sol +0 -60
  701. package/contracts/types/ChainId.sol +0 -38
  702. package/contracts/types/NumberId.sol +0 -52
  703. package/contracts/types/ObjectType.sol +0 -157
  704. package/contracts/types/PayoutId.sol +0 -54
  705. package/contracts/types/RoleId.sol +0 -97
  706. package/contracts/types/Seconds.sol +0 -54
  707. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,303 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Pool} from "../../components/Pool.sol";
5
- import {IRegistry} from "../../registry/IRegistry.sol";
6
- import {IInstance} from "../../instance/IInstance.sol";
7
- import {IBundle} from "../../instance/module/IBundle.sol";
8
- import {TokenHandler} from "../../instance/module/ITreasury.sol";
9
- import {IComponents} from "../module/IComponents.sol";
10
- import {IPolicy} from "../module/IPolicy.sol";
11
-
12
- import {IVersionable} from "../../shared/IVersionable.sol";
13
- import {Versionable} from "../../shared/Versionable.sol";
14
- import {INftOwnable} from "../../shared/INftOwnable.sol";
15
-
16
- import {Amount} from "../../types/Amount.sol";
17
- import {Fee, FeeLib} from "../../types/Fee.sol";
18
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
19
- import {ObjectType, POOL, BUNDLE} from "../../types/ObjectType.sol";
20
- import {PUBLIC_ROLE, POOL_OWNER_ROLE, POLICY_SERVICE_ROLE, RoleId} from "../../types/RoleId.sol";
21
- import {Fee, FeeLib} from "../../types/Fee.sol";
22
- import {Version, VersionLib} from "../../types/Version.sol";
23
- import {KEEP_STATE, StateId} from "../../types/StateId.sol";
24
- import {Seconds} from "../../types/Seconds.sol";
25
- import {TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
26
- import {Version, VersionLib} from "../../types/Version.sol";
27
-
28
- import {IService} from "../../shared/IService.sol";
29
- import {Service} from "../../shared/Service.sol";
30
- import {BundleManager} from "../BundleManager.sol";
31
- import {ComponentService} from "../base/ComponentService.sol";
32
- import {IBundleService} from "./IBundleService.sol";
33
- import {IPoolService} from "./IPoolService.sol";
34
- import {IRegistryService} from "../../registry/IRegistryService.sol";
35
- import {InstanceService} from "../InstanceService.sol";
36
- import {InstanceReader} from "../InstanceReader.sol";
37
- import {IComponent} from "../../components/IComponent.sol";
38
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
39
-
40
- string constant POOL_SERVICE_NAME = "PoolService";
41
-
42
- contract PoolService is
43
- ComponentService,
44
- IPoolService
45
- {
46
- using NftIdLib for NftId;
47
-
48
- IBundleService internal _bundleService;
49
-
50
- function _initialize(
51
- address owner,
52
- bytes memory data
53
- )
54
- internal
55
- initializer
56
- virtual override
57
- {
58
- address registryAddress;
59
- address initialOwner;
60
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
61
- // TODO while PoolService is not deployed in PoolServiceManager constructor
62
- // owner is PoolServiceManager deployer
63
- initializeService(registryAddress, address(0), owner);
64
-
65
- _bundleService = IBundleService(getRegistry().getServiceAddress(BUNDLE(), getVersion().toMajorPart()));
66
-
67
- registerInterface(type(IPoolService).interfaceId);
68
- }
69
-
70
- function getDomain() public pure override returns(ObjectType) {
71
- return POOL();
72
- }
73
-
74
- function register(address poolAddress)
75
- external
76
- returns(NftId poolNftId)
77
- {
78
- (
79
- IComponent component,
80
- address owner,
81
- IInstance instance,
82
- NftId instanceNftId
83
- ) = _checkComponentForRegistration(
84
- poolAddress,
85
- POOL(),
86
- POOL_OWNER_ROLE());
87
-
88
- IPoolComponent pool = IPoolComponent(poolAddress);
89
- IRegistry.ObjectInfo memory registryInfo = getRegistryService().registerPool(pool, owner);
90
- pool.linkToRegisteredNftId();
91
- poolNftId = registryInfo.nftId;
92
-
93
- // amend component info with pool specific token handler
94
- IComponents.ComponentInfo memory componentInfo = pool.getComponentInfo();
95
- componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
96
-
97
- // save amended component info with instance
98
- instance.createPoolSetup(poolNftId, componentInfo);
99
-
100
- bytes4[][] memory selectors = new bytes4[][](2);
101
- selectors[0] = new bytes4[](1);
102
- selectors[1] = new bytes4[](1);
103
-
104
- selectors[0][0] = IPoolComponent.setFees.selector;
105
- selectors[1][0] = IPoolComponent.verifyApplication.selector;
106
-
107
- RoleId[] memory roles = new RoleId[](2);
108
- roles[0] = POOL_OWNER_ROLE();
109
- roles[1] = POLICY_SERVICE_ROLE();
110
-
111
- getInstanceService().createGifTarget(
112
- instanceNftId,
113
- poolAddress,
114
- pool.getName(),
115
- selectors,
116
- roles);
117
- }
118
-
119
-
120
- function setMaxCapitalAmount(uint256 maxCapitalAmount)
121
- external
122
- virtual
123
- {
124
- (NftId poolNftId, IRegistry.ObjectInfo memory registryInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
125
- InstanceReader instanceReader = instance.getInstanceReader();
126
-
127
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
128
- IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
129
- uint256 previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
130
-
131
- poolInfo.maxCapitalAmount = maxCapitalAmount;
132
- componentInfo.data = abi.encode(poolInfo);
133
- instance.updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
134
-
135
- emit LogPoolServiceMaxCapitalAmountUpdated(poolNftId, previousMaxCapitalAmount, maxCapitalAmount);
136
- }
137
-
138
- function setBundleOwnerRole(RoleId bundleOwnerRole)
139
- external
140
- virtual
141
- {
142
- (NftId poolNftId, IRegistry.ObjectInfo memory registryInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
143
- InstanceReader instanceReader = instance.getInstanceReader();
144
-
145
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
146
- IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
147
-
148
- // bundle owner role may only be set once per pool
149
- if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
150
- revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
151
- }
152
-
153
- poolInfo.bundleOwnerRole = bundleOwnerRole;
154
- componentInfo.data = abi.encode(poolInfo);
155
- instance.updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
156
-
157
- emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
158
- }
159
-
160
-
161
- function setFees(
162
- Fee memory poolFee,
163
- Fee memory stakingFee,
164
- Fee memory performanceFee
165
- )
166
- external
167
- virtual
168
- {
169
- (NftId poolNftId, IRegistry.ObjectInfo memory registryInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
170
- InstanceReader instanceReader = instance.getInstanceReader();
171
-
172
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
173
- IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
174
-
175
- poolInfo.poolFee = poolFee;
176
- poolInfo.stakingFee = stakingFee;
177
- poolInfo.performanceFee = performanceFee;
178
- componentInfo.data = abi.encode(poolInfo);
179
- instance.updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
180
-
181
- // TODO add logging
182
- }
183
-
184
-
185
- function createBundle(
186
- address owner, // initial bundle owner
187
- Fee memory fee, // fees deducted from premium that go to bundle owner
188
- Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
189
- Seconds lifetime, // initial duration for which new policies are covered
190
- bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
191
- )
192
- external
193
- virtual
194
- returns(NftId bundleNftId)
195
- {
196
- (NftId poolNftId,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
197
- InstanceReader instanceReader = instance.getInstanceReader();
198
-
199
- // TODO add implementation that takes care of staking fees
200
- Amount stakingAfterFeesAmount = stakingAmount;
201
-
202
- bundleNftId = _bundleService.create(
203
- instance,
204
- poolNftId,
205
- owner,
206
- fee,
207
- stakingAfterFeesAmount,
208
- lifetime,
209
- filter);
210
-
211
- emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
212
- }
213
-
214
-
215
- function closeBundle(NftId bundleNftId)
216
- external
217
- virtual
218
- {
219
- (NftId poolNftId,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
220
-
221
- // TODO book keeping for pool collateral released outside of retention level
222
-
223
- // releasing collateral in bundle
224
- _bundleService.close(instance, bundleNftId);
225
-
226
- // TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
227
-
228
- emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
229
- }
230
-
231
-
232
- function lockCollateral(
233
- IInstance instance,
234
- NftId productNftId,
235
- NftId applicationNftId,
236
- IPolicy.PolicyInfo memory applicationInfo,
237
- uint256 premiumAmount // premium amount after product and distribution fees
238
- )
239
- external
240
- virtual
241
- // TODO add restricted and granting for policy service
242
- {
243
- InstanceReader instanceReader = instance.getInstanceReader();
244
- NftId poolNftId = instanceReader.getProductSetupInfo(productNftId).poolNftId;
245
- NftId bundleNftId = applicationInfo.bundleNftId;
246
-
247
- // TODO move this check to application creation and don't repeat this here
248
- // ensure that pool for bundle from application matches with pool for product of application
249
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
250
- if(bundleInfo.poolNftId != poolNftId) {
251
- revert ErrorPoolServiceBundlePoolMismatch(bundleInfo.poolNftId, poolNftId);
252
- }
253
-
254
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
255
- IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
256
-
257
- // TODO add correct required collateral calculation (collateralization level mibht be != 1, retention level might be < 1)
258
- uint256 collateralAmount = applicationInfo.sumInsuredAmount;
259
-
260
- // TODO add correct net premium calculation (pool fee might be > 0)
261
- uint256 premiumAfterPoolFeeAmount = premiumAmount;
262
-
263
- // lock collateral amount from involvedd bundle
264
- _bundleService.lockCollateral(
265
- instance,
266
- applicationNftId,
267
- bundleNftId,
268
- collateralAmount,
269
- premiumAfterPoolFeeAmount);
270
-
271
- // also verify/confirm application by pool if necessary
272
- if(poolInfo.isVerifyingApplications) {
273
- address poolAddress = getRegistry().getObjectInfo(poolNftId).objectAddress;
274
- IPoolComponent(poolAddress).verifyApplication(
275
- applicationNftId,
276
- applicationInfo.applicationData,
277
- bundleNftId,
278
- bundleInfo.filter,
279
- collateralAmount);
280
- }
281
- }
282
-
283
-
284
- /// @dev releases the remaining collateral linked to the specified policy
285
- /// may only be called by the policy service for unlocked pool components
286
- function releaseCollateral(
287
- IInstance instance,
288
- NftId policyNftId,
289
- IPolicy.PolicyInfo memory policyInfo
290
- )
291
- external
292
- virtual
293
- // TODO add restricted and granting for policy service
294
- {
295
- // release collateral from involved bundle
296
- _bundleService.releaseCollateral(
297
- instance,
298
- policyNftId,
299
- policyInfo.bundleNftId,
300
- policyInfo.sumInsuredAmount);
301
- }
302
-
303
- }
@@ -1,51 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
6
- import {PoolService} from "./PoolService.sol";
7
- import {Registry} from "../../registry/Registry.sol";
8
- import {RegistryService} from "../../registry/RegistryService.sol";
9
- import {REGISTRY} from "../../types/ObjectType.sol";
10
-
11
- contract PoolServiceManager is ProxyManager {
12
-
13
- PoolService private _poolService;
14
-
15
- /// @dev initializes proxy manager with pool service implementation
16
- constructor(
17
- address registryAddress
18
- )
19
- ProxyManager(registryAddress)
20
- {
21
- PoolService poolSrv = new PoolService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
24
- address(poolSrv),
25
- data);
26
-
27
- _poolService = PoolService(address(versionable));
28
-
29
- // TODO `this` must have a role or own nft to register service
30
- //Registry registry = Registry(registryAddress);
31
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _poolService.getMajorVersion());
32
- //RegistryService registryService = RegistryService(registryServiceAddress);
33
- //registryService.registerService(_poolService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_poolService));
40
- }
41
-
42
- //--- view functions ----------------------------------------------------//
43
- function getPoolService()
44
- external
45
- view
46
- returns (PoolService poolService)
47
- {
48
- return _poolService;
49
- }
50
-
51
- }
@@ -1,210 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IProductComponent} from "../../components/IProductComponent.sol";
6
- import {Product} from "../../components/Product.sol";
7
- import {IComponent} from "../../components/IComponent.sol";
8
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
9
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
10
- import {IInstance} from "../IInstance.sol";
11
- import {IPolicy} from "../module/IPolicy.sol";
12
- import {IRisk} from "../module/IRisk.sol";
13
- import {IBundle} from "../module/IBundle.sol";
14
- import {IProductService} from "./IProductService.sol";
15
- import {ITreasury} from "../module/ITreasury.sol";
16
- import {ISetup} from "../module/ISetup.sol";
17
-
18
- import {TokenHandler} from "../../shared/TokenHandler.sol";
19
-
20
- import {IVersionable} from "../../shared/IVersionable.sol";
21
- import {Versionable} from "../../shared/Versionable.sol";
22
-
23
- import {Timestamp, zeroTimestamp} from "../../types/Timestamp.sol";
24
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
25
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
26
- import {ObjectType, PRODUCT, POOL, POLICY} from "../../types/ObjectType.sol";
27
- import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE} from "../../types/StateId.sol";
28
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
29
- import {Fee, FeeLib} from "../../types/Fee.sol";
30
- import {ReferralId} from "../../types/Referral.sol";
31
- import {RiskId} from "../../types/RiskId.sol";
32
- import {StateId} from "../../types/StateId.sol";
33
- import {Version, VersionLib} from "../../types/Version.sol";
34
- import {RoleId, PRODUCT_OWNER_ROLE} from "../../types/RoleId.sol";
35
-
36
- import {IService} from "../../shared/IService.sol";
37
- import {Service} from "../../shared/Service.sol";
38
- import {ComponentService} from "../base/ComponentService.sol";
39
- import {IProductService} from "./IProductService.sol";
40
- import {InstanceReader} from "../InstanceReader.sol";
41
- import {IPoolService} from "./PoolService.sol";
42
-
43
- // TODO or name this ProtectionService to have Product be something more generic (loan, savings account, ...)
44
- contract ProductService is ComponentService, IProductService {
45
- using NftIdLib for NftId;
46
-
47
- IPoolService internal _poolService;
48
-
49
- event LogProductServiceSender(address sender);
50
-
51
- function _initialize(
52
- address owner,
53
- bytes memory data
54
- )
55
- internal
56
- initializer
57
- virtual override
58
- {
59
- address registryAddress;
60
- address initialOwner;
61
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
62
-
63
- initializeService(registryAddress, address(0), owner);
64
-
65
- _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
66
-
67
- registerInterface(type(IProductService).interfaceId);
68
- }
69
-
70
-
71
- function register(address productAddress)
72
- external
73
- returns(NftId productNftId)
74
- {
75
- (
76
- IComponent component,
77
- address owner,
78
- IInstance instance,
79
- NftId instanceNftId
80
- ) = _checkComponentForRegistration(
81
- productAddress,
82
- PRODUCT(),
83
- PRODUCT_OWNER_ROLE());
84
-
85
- IProductComponent product = IProductComponent(productAddress);
86
- IRegistry.ObjectInfo memory productInfo = getRegistryService().registerProduct(product, owner);
87
- productNftId = productInfo.nftId;
88
- _createProductSetup(
89
- instance,
90
- product,
91
- productNftId);
92
- }
93
-
94
-
95
- function _createProductSetup(
96
- IInstance instance,
97
- IProductComponent product,
98
- NftId productNftId
99
- )
100
- internal
101
- returns (string memory name)
102
- {
103
- // wire distribution and pool components to product component
104
- ISetup.ProductSetupInfo memory setup = product.getSetupInfo();
105
- IComponent distribution = IComponent(getRegistry().getObjectInfo(setup.distributionNftId).objectAddress);
106
- IComponent pool = IComponent(getRegistry().getObjectInfo(setup.poolNftId).objectAddress);
107
-
108
- distribution.setProductNftId(productNftId);
109
- pool.setProductNftId(productNftId);
110
- product.setProductNftId(productNftId);
111
- product.linkToRegisteredNftId();
112
-
113
- // create product setup in instance
114
- instance.createProductSetup(productNftId, product.getSetupInfo());
115
-
116
- bytes4[][] memory selectors = new bytes4[][](1);
117
- selectors[0] = new bytes4[](1);
118
- selectors[0][0] = IProductComponent.setFees.selector;
119
-
120
- RoleId[] memory roles = new RoleId[](1);
121
- roles[0] = PRODUCT_OWNER_ROLE();
122
-
123
- // create target for instane access manager
124
- getInstanceService().createGifTarget(
125
- getRegistry().getNftId(address(instance)),
126
- address(product),
127
- product.getName(),
128
- selectors,
129
- roles);
130
- }
131
-
132
- function getDomain() public pure override returns(ObjectType) {
133
- return PRODUCT();
134
- }
135
-
136
-
137
- function _decodeAndVerifyProductData(bytes memory data)
138
- internal
139
- returns(string memory name, ISetup.ProductSetupInfo memory setup)
140
- {
141
- (name, setup) = abi.decode(
142
- data,
143
- (string, ISetup.ProductSetupInfo)
144
- );
145
-
146
- // TODO add checks
147
- // if(wallet == address(0)) {
148
- // revert WalletIsZero();
149
- // }
150
- }
151
-
152
- function setFees(
153
- Fee memory productFee,
154
- Fee memory processingFee
155
- )
156
- external
157
- {
158
- // TODO check args
159
-
160
- (NftId productNftId, IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
161
- InstanceReader instanceReader = instance.getInstanceReader();
162
-
163
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
164
-
165
- productSetupInfo.productFee = productFee;
166
- productSetupInfo.processingFee = processingFee;
167
-
168
- instance.updateProductSetup(productNftId, productSetupInfo, KEEP_STATE());
169
- }
170
-
171
- function createRisk(
172
- RiskId riskId,
173
- bytes memory data
174
- )
175
- external
176
- override
177
- {
178
- (NftId productNftId, IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
179
- IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo(productNftId, data);
180
-
181
- instance.createRisk(
182
- riskId,
183
- riskInfo
184
- );
185
- }
186
-
187
- function updateRisk(
188
- RiskId riskId,
189
- bytes memory data
190
- )
191
- external
192
- {
193
- (,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
194
- InstanceReader instanceReader = instance.getInstanceReader();
195
-
196
- IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
197
- riskInfo.data = data;
198
- instance.updateRisk(riskId, riskInfo, KEEP_STATE());
199
- }
200
-
201
- function updateRiskState(
202
- RiskId riskId,
203
- StateId state
204
- )
205
- external
206
- {
207
- (,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
208
- instance.updateRiskState(riskId, state);
209
- }
210
- }
@@ -1,54 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
6
- import {ProductService} from "./ProductService.sol";
7
- import {Registry} from "../../registry/Registry.sol";
8
- import {RegistryService} from "../../registry/RegistryService.sol";
9
- import {VersionLib} from "../../types/Version.sol";
10
-
11
- contract ProductServiceManager is ProxyManager {
12
-
13
- ProductService private _productService;
14
-
15
- /// @dev initializes proxy manager with product service implementation
16
- constructor(
17
- address registryAddress
18
- )
19
- ProxyManager(registryAddress)
20
- {
21
- ProductService svc = new ProductService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
24
- address(svc),
25
- data);
26
-
27
- _productService = ProductService(address(versionable));
28
-
29
- // Registry registry = Registry(registryAddress);
30
- // address registryServiceAddress = registry.getServiceAddress("RegistryService", VersionLib.toVersion(3, 0, 0).toMajorPart());
31
- // RegistryService registryService = RegistryService(registryServiceAddress);
32
- // TODO this must have a role or own nft to register service
33
- //registryService.registerService(_productService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_productService));
40
-
41
- // implies that after this constructor call only upgrade functionality is available
42
- // _isDeployed = true;
43
- }
44
-
45
- //--- view functions ----------------------------------------------------//
46
- function getProductService()
47
- external
48
- view
49
- returns (ProductService productService)
50
- {
51
- return _productService;
52
- }
53
-
54
- }