@etherisc/gif-next 0.0.2-7bdebe2-893 → 0.0.2-7bf391b-976

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 (626) hide show
  1. package/README.md +48 -5
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1518 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +181 -361
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +181 -238
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +160 -297
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +247 -2323
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +203 -46
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +427 -2916
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +499 -375
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +268 -207
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -102
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +160 -219
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1055 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +265 -240
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1521 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +830 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +253 -45
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +190 -339
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +332 -196
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1700 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +798 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1280 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1339 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +47 -2
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +255 -90
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +66 -136
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +14 -56
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1335 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +794 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/{components → product}/Product.sol/Product.json +354 -314
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +182 -28
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +206 -124
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +443 -43
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +374 -72
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -41
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  173. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +105 -120
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1712 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +22 -114
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  181. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +77 -82
  182. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  184. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
  186. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  187. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  188. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  190. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  192. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
  194. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  196. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  199. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  200. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  201. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  202. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  203. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +977 -0
  205. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  207. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  209. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  210. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  211. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
  213. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
  215. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
  217. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  219. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
  221. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  222. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +107 -6
  223. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  224. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  225. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  226. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  227. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  228. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  229. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  230. package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
  231. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  232. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  233. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  234. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
  235. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  236. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  237. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  238. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  239. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  240. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  241. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  242. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  243. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  244. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  245. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  246. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  247. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  248. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  249. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  250. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  251. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  254. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  255. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  256. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  257. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  258. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  259. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  260. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  261. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  262. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  263. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  264. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  265. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  266. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  267. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  268. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  269. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  270. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  271. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  273. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  275. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  277. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  279. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  281. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  282. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  283. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  285. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  286. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  287. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  289. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  291. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  293. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  295. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  296. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  297. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  298. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  299. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  300. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  301. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  302. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  303. package/contracts/authorization/AccessAdmin.sol +591 -0
  304. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  305. package/contracts/authorization/Authorization.sol +218 -0
  306. package/contracts/authorization/IAccess.sol +48 -0
  307. package/contracts/authorization/IAccessAdmin.sol +136 -0
  308. package/contracts/authorization/IAuthorization.sol +54 -0
  309. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  310. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  311. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  312. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  313. package/contracts/distribution/BasicDistribution.sol +138 -0
  314. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  315. package/contracts/{components → distribution}/Distribution.sol +172 -161
  316. package/contracts/distribution/DistributionService.sol +336 -0
  317. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  318. package/contracts/distribution/IDistributionComponent.sol +52 -0
  319. package/contracts/{instance/service → distribution}/IDistributionService.sol +36 -38
  320. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +27 -27
  321. package/contracts/instance/IInstance.sol +54 -72
  322. package/contracts/instance/IInstanceService.sol +50 -21
  323. package/contracts/instance/Instance.sol +150 -214
  324. package/contracts/instance/InstanceAdmin.sol +266 -0
  325. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  326. package/contracts/instance/InstanceReader.sol +109 -67
  327. package/contracts/instance/InstanceService.sol +267 -308
  328. package/contracts/instance/InstanceServiceManager.sol +12 -26
  329. package/contracts/instance/InstanceStore.sol +277 -0
  330. package/contracts/instance/base/BalanceStore.sol +123 -0
  331. package/contracts/instance/base/Cloneable.sol +28 -0
  332. package/contracts/instance/base/ObjectCounter.sol +21 -0
  333. package/contracts/instance/base/ObjectLifecycle.sol +104 -0
  334. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  335. package/contracts/instance/module/IAccess.sol +4 -12
  336. package/contracts/instance/module/IBundle.sol +6 -9
  337. package/contracts/instance/module/IComponents.sol +20 -15
  338. package/contracts/instance/module/IDistribution.sol +6 -6
  339. package/contracts/instance/module/IPolicy.sol +21 -14
  340. package/contracts/instance/module/IRisk.sol +1 -1
  341. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  342. package/contracts/oracle/BasicOracle.sol +48 -0
  343. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  344. package/contracts/oracle/IOracle.sol +36 -0
  345. package/contracts/oracle/IOracleComponent.sol +33 -0
  346. package/contracts/oracle/IOracleService.sol +65 -0
  347. package/contracts/oracle/Oracle.sol +166 -0
  348. package/contracts/oracle/OracleService.sol +278 -0
  349. package/contracts/oracle/OracleServiceManager.sol +39 -0
  350. package/contracts/pool/BasicPool.sol +166 -0
  351. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  352. package/contracts/pool/BundleService.sol +450 -0
  353. package/contracts/pool/BundleServiceManager.sol +39 -0
  354. package/contracts/{instance/service → pool}/IBundleService.sol +50 -30
  355. package/contracts/pool/IPoolComponent.sol +58 -0
  356. package/contracts/{instance/service → pool}/IPoolService.sol +70 -44
  357. package/contracts/pool/Pool.sol +328 -0
  358. package/contracts/pool/PoolService.sol +559 -0
  359. package/contracts/pool/PoolServiceManager.sol +39 -0
  360. package/contracts/product/ApplicationService.sol +230 -0
  361. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  362. package/contracts/product/BasicProduct.sol +52 -0
  363. package/contracts/product/BasicProductAuthorization.sol +43 -0
  364. package/contracts/{instance/service → product}/ClaimService.sol +81 -101
  365. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  366. package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
  367. package/contracts/{instance/service → product}/IClaimService.sol +24 -14
  368. package/contracts/product/IPolicyService.sol +85 -0
  369. package/contracts/product/IPricingService.sol +39 -0
  370. package/contracts/product/IProductComponent.sol +40 -0
  371. package/contracts/product/IProductService.sol +33 -0
  372. package/contracts/product/PolicyService.sol +556 -0
  373. package/contracts/product/PolicyServiceManager.sol +39 -0
  374. package/contracts/product/PricingService.sol +300 -0
  375. package/contracts/product/PricingServiceManager.sol +39 -0
  376. package/contracts/{components → product}/Product.sol +165 -125
  377. package/contracts/product/ProductService.sol +99 -0
  378. package/contracts/product/ProductServiceManager.sol +39 -0
  379. package/contracts/registry/ChainNft.sol +8 -1
  380. package/contracts/registry/IRegistry.sol +59 -26
  381. package/contracts/registry/IRegistryService.sol +42 -39
  382. package/contracts/registry/Registry.sol +234 -125
  383. package/contracts/registry/RegistryAdmin.sol +365 -0
  384. package/contracts/registry/RegistryService.sol +69 -99
  385. package/contracts/registry/RegistryServiceManager.sol +23 -32
  386. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  387. package/contracts/registry/ReleaseRegistry.sol +485 -0
  388. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  389. package/contracts/registry/TokenRegistry.sol +261 -62
  390. package/contracts/shared/Component.sol +281 -0
  391. package/contracts/shared/ComponentService.sol +650 -0
  392. package/contracts/shared/ComponentServiceManager.sol +35 -0
  393. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  394. package/contracts/{components → shared}/IComponent.sol +21 -40
  395. package/contracts/shared/IComponentService.sol +108 -0
  396. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  397. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  398. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  399. package/contracts/shared/INftOwnable.sol +2 -2
  400. package/contracts/shared/IPolicyHolder.sol +10 -5
  401. package/contracts/shared/IService.sol +10 -3
  402. package/contracts/shared/InitializableCustom.sol +177 -0
  403. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
  404. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  405. package/contracts/shared/KeyValueStore.sol +131 -0
  406. package/contracts/shared/Lifecycle.sol +77 -0
  407. package/contracts/shared/NftIdSet.sol +65 -0
  408. package/contracts/shared/NftOwnable.sol +5 -16
  409. package/contracts/shared/PolicyHolder.sol +24 -19
  410. package/contracts/shared/Registerable.sol +3 -3
  411. package/contracts/shared/Service.sol +32 -22
  412. package/contracts/shared/TokenHandler.sol +31 -2
  413. package/contracts/staking/IStaking.sol +167 -0
  414. package/contracts/staking/IStakingService.sol +160 -0
  415. package/contracts/staking/StakeManagerLib.sol +231 -0
  416. package/contracts/staking/Staking.sol +516 -0
  417. package/contracts/staking/StakingLifecycle.sol +23 -0
  418. package/contracts/staking/StakingManager.sol +50 -0
  419. package/contracts/staking/StakingReader.sol +183 -0
  420. package/contracts/staking/StakingService.sol +407 -0
  421. package/contracts/staking/StakingServiceManager.sol +44 -0
  422. package/contracts/staking/StakingStore.sol +605 -0
  423. package/contracts/staking/TargetManagerLib.sol +207 -0
  424. package/contracts/{types → type}/AddressSet.sol +1 -1
  425. package/contracts/{types → type}/Amount.sol +56 -1
  426. package/contracts/{types → type}/Blocknumber.sol +26 -3
  427. package/contracts/{types → type}/Fee.sol +24 -22
  428. package/contracts/{types → type}/NftId.sol +14 -16
  429. package/contracts/{types → type}/NftIdSet.sol +2 -2
  430. package/contracts/type/ObjectType.sol +271 -0
  431. package/contracts/{types → type}/Referral.sol +2 -1
  432. package/contracts/type/RequestId.sol +75 -0
  433. package/contracts/{types → type}/RiskId.sol +1 -1
  434. package/contracts/type/RoleId.sol +174 -0
  435. package/contracts/{types → type}/Seconds.sol +40 -1
  436. package/contracts/type/Selector.sol +102 -0
  437. package/contracts/{types → type}/StateId.sol +27 -2
  438. package/contracts/type/String.sol +53 -0
  439. package/contracts/{types → type}/Timestamp.sol +17 -3
  440. package/contracts/{types → type}/UFixed.sol +34 -9
  441. package/contracts/{types → type}/Version.sol +4 -2
  442. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  443. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  444. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  445. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  446. package/package.json +8 -5
  447. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  448. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  449. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  450. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  451. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  452. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  453. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  454. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  455. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  456. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  457. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  458. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  459. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  460. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  461. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  462. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  463. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  464. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  465. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  466. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  469. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  471. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  472. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  473. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  474. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  475. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1092
  476. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  477. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
  478. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  479. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1291
  480. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  481. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -700
  482. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  483. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1400
  484. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -760
  486. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  487. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  488. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  489. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  490. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1153
  499. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
  501. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1670
  503. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -732
  505. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  507. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  509. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  510. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  511. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  512. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  513. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  514. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  515. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  516. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  517. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  518. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  519. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  520. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  521. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  522. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  523. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  525. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  527. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  529. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  531. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  532. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  533. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  534. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  535. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  536. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  537. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  538. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  539. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  540. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  541. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  542. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  543. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  544. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  545. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  547. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  549. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  551. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  553. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  554. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  555. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  557. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  558. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  559. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  561. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  563. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  564. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  565. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  567. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  569. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  571. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  572. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  573. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  574. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  576. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  577. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  579. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  581. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  582. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  583. package/contracts/components/Component.sol +0 -272
  584. package/contracts/components/IDistributionComponent.sol +0 -71
  585. package/contracts/components/IPoolComponent.sol +0 -113
  586. package/contracts/components/IProductComponent.sol +0 -40
  587. package/contracts/components/Pool.sol +0 -302
  588. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  589. package/contracts/instance/Cloneable.sol +0 -51
  590. package/contracts/instance/InstanceAccessManager.sol +0 -527
  591. package/contracts/instance/base/ComponentService.sol +0 -130
  592. package/contracts/instance/base/KeyValueStore.sol +0 -149
  593. package/contracts/instance/base/Lifecycle.sol +0 -120
  594. package/contracts/instance/module/ISetup.sol +0 -33
  595. package/contracts/instance/module/ITreasury.sol +0 -23
  596. package/contracts/instance/service/ApplicationService.sol +0 -356
  597. package/contracts/instance/service/BundleService.sol +0 -385
  598. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  599. package/contracts/instance/service/DistributionService.sol +0 -431
  600. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  601. package/contracts/instance/service/IPolicyService.sol +0 -80
  602. package/contracts/instance/service/IProductService.sol +0 -40
  603. package/contracts/instance/service/PolicyService.sol +0 -358
  604. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  605. package/contracts/instance/service/PoolService.sol +0 -403
  606. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  607. package/contracts/instance/service/ProductService.sol +0 -210
  608. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  609. package/contracts/registry/RegistryAccessManager.sol +0 -216
  610. package/contracts/registry/ReleaseManager.sol +0 -324
  611. package/contracts/shared/ContractDeployerLib.sol +0 -72
  612. package/contracts/test/TestFee.sol +0 -25
  613. package/contracts/test/TestRegisterable.sol +0 -18
  614. package/contracts/test/TestRoleId.sol +0 -14
  615. package/contracts/test/TestService.sol +0 -25
  616. package/contracts/test/TestToken.sol +0 -26
  617. package/contracts/test/TestVersion.sol +0 -44
  618. package/contracts/test/TestVersionable.sol +0 -17
  619. package/contracts/types/ChainId.sol +0 -38
  620. package/contracts/types/NumberId.sol +0 -52
  621. package/contracts/types/ObjectType.sol +0 -157
  622. package/contracts/types/RoleId.sol +0 -97
  623. /package/contracts/{types → type}/ClaimId.sol +0 -0
  624. /package/contracts/{types → type}/DistributorType.sol +0 -0
  625. /package/contracts/{types → type}/Key32.sol +0 -0
  626. /package/contracts/{types → type}/PayoutId.sol +0 -0
@@ -1,403 +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, AmountLib} 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
- using AmountLib for Amount;
48
-
49
- IBundleService internal _bundleService;
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
- // TODO while PoolService is not deployed in PoolServiceManager constructor
63
- // owner is PoolServiceManager deployer
64
- initializeService(registryAddress, address(0), owner);
65
-
66
- _bundleService = IBundleService(getRegistry().getServiceAddress(BUNDLE(), getVersion().toMajorPart()));
67
-
68
- registerInterface(type(IPoolService).interfaceId);
69
- }
70
-
71
- function getDomain() public pure override returns(ObjectType) {
72
- return POOL();
73
- }
74
-
75
- function register(address poolAddress)
76
- external
77
- returns(NftId poolNftId)
78
- {
79
- (
80
- IComponent component,
81
- address owner,
82
- IInstance instance,
83
- NftId instanceNftId
84
- ) = _checkComponentForRegistration(
85
- poolAddress,
86
- POOL(),
87
- POOL_OWNER_ROLE());
88
-
89
- IPoolComponent pool = IPoolComponent(poolAddress);
90
- IRegistry.ObjectInfo memory registryInfo = getRegistryService().registerPool(pool, owner);
91
- pool.linkToRegisteredNftId();
92
- poolNftId = registryInfo.nftId;
93
-
94
- // amend component info with pool specific token handler
95
- IComponents.ComponentInfo memory componentInfo = pool.getComponentInfo();
96
- componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
97
-
98
- // save amended component info with instance
99
- instance.createPoolSetup(poolNftId, componentInfo);
100
-
101
- bytes4[][] memory selectors = new bytes4[][](2);
102
- selectors[0] = new bytes4[](1);
103
- selectors[1] = new bytes4[](1);
104
-
105
- selectors[0][0] = IPoolComponent.setFees.selector;
106
- selectors[1][0] = IPoolComponent.verifyApplication.selector;
107
-
108
- RoleId[] memory roles = new RoleId[](2);
109
- roles[0] = POOL_OWNER_ROLE();
110
- roles[1] = POLICY_SERVICE_ROLE();
111
-
112
- getInstanceService().createGifTarget(
113
- instanceNftId,
114
- poolAddress,
115
- pool.getName(),
116
- selectors,
117
- roles);
118
- }
119
-
120
-
121
- function setMaxCapitalAmount(uint256 maxCapitalAmount)
122
- external
123
- virtual
124
- {
125
- (NftId poolNftId, IRegistry.ObjectInfo memory registryInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
126
- InstanceReader instanceReader = instance.getInstanceReader();
127
-
128
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
129
- IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
130
- uint256 previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
131
-
132
- poolInfo.maxCapitalAmount = maxCapitalAmount;
133
- componentInfo.data = abi.encode(poolInfo);
134
- instance.updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
135
-
136
- emit LogPoolServiceMaxCapitalAmountUpdated(poolNftId, previousMaxCapitalAmount, maxCapitalAmount);
137
- }
138
-
139
- function setBundleOwnerRole(RoleId bundleOwnerRole)
140
- external
141
- virtual
142
- {
143
- (NftId poolNftId, IRegistry.ObjectInfo memory registryInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
144
- InstanceReader instanceReader = instance.getInstanceReader();
145
-
146
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
147
- IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
148
-
149
- // bundle owner role may only be set once per pool
150
- if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
151
- revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
152
- }
153
-
154
- poolInfo.bundleOwnerRole = bundleOwnerRole;
155
- componentInfo.data = abi.encode(poolInfo);
156
- instance.updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
157
-
158
- emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
159
- }
160
-
161
-
162
- function setFees(
163
- Fee memory poolFee,
164
- Fee memory stakingFee,
165
- Fee memory performanceFee
166
- )
167
- external
168
- virtual
169
- {
170
- (NftId poolNftId, IRegistry.ObjectInfo memory registryInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
171
- InstanceReader instanceReader = instance.getInstanceReader();
172
-
173
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
174
- IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
175
-
176
- poolInfo.poolFee = poolFee;
177
- poolInfo.stakingFee = stakingFee;
178
- poolInfo.performanceFee = performanceFee;
179
- componentInfo.data = abi.encode(poolInfo);
180
- instance.updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
181
-
182
- // TODO add logging
183
- }
184
-
185
-
186
- function createBundle(
187
- address owner, // initial bundle owner
188
- Fee memory fee, // fees deducted from premium that go to bundle owner
189
- Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
190
- Seconds lifetime, // initial duration for which new policies are covered
191
- bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
192
- )
193
- external
194
- virtual
195
- returns(NftId bundleNftId)
196
- {
197
- (NftId poolNftId,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
198
- InstanceReader instanceReader = instance.getInstanceReader();
199
-
200
- // pool fee book keeping
201
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
202
- Amount stakingNetAmount = _processStakingFees(componentInfo, stakingAmount);
203
-
204
- bundleNftId = _bundleService.create(
205
- instance,
206
- poolNftId,
207
- owner,
208
- fee,
209
- stakingNetAmount,
210
- lifetime,
211
- filter);
212
-
213
- // collect tokens from bundle owner
214
- _transferStakingAmount(componentInfo, owner, stakingAmount);
215
-
216
- emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
217
- }
218
-
219
-
220
- function closeBundle(NftId bundleNftId)
221
- external
222
- virtual
223
- {
224
- (NftId poolNftId,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
225
-
226
- // TODO book keeping for pool collateral released outside of retention level
227
-
228
- // releasing collateral in bundle
229
- _bundleService.close(instance, bundleNftId);
230
-
231
- // TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
232
-
233
- emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
234
- }
235
-
236
- function processSale(
237
- NftId bundleNftId,
238
- IPolicy.Premium memory premium,
239
- uint256 actualAmountTransferred
240
- )
241
- external
242
- virtual
243
- {
244
- IRegistry registry = getRegistry();
245
- IRegistry.ObjectInfo memory bundleObjectInfo = registry.getObjectInfo(bundleNftId);
246
- IRegistry.ObjectInfo memory poolObjectInfo = registry.getObjectInfo(bundleObjectInfo.parentNftId);
247
- IRegistry.ObjectInfo memory instanceObjectInfo = registry.getObjectInfo(poolObjectInfo.parentNftId);
248
- IInstance instance = IInstance(instanceObjectInfo.objectAddress);
249
-
250
- Amount poolFeeAmount = AmountLib.toAmount(premium.poolFeeFixAmount + premium.poolFeeVarAmount);
251
- Amount bundleFeeAmount = AmountLib.toAmount(premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
252
- Amount expectedTransferAmount = AmountLib.toAmount(premium.netPremiumAmount).add(poolFeeAmount).add(bundleFeeAmount);
253
- if (! AmountLib.toAmount(actualAmountTransferred).eq(expectedTransferAmount)) {
254
- revert ErrorPoolServiceInvalidTransferAmount(expectedTransferAmount, AmountLib.toAmount(actualAmountTransferred));
255
- }
256
-
257
- // update pool fee balance
258
- if (poolFeeAmount.gtz()) {
259
- IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolObjectInfo.nftId);
260
- poolComponentInfo.feeAmount = poolComponentInfo.feeAmount.add(poolFeeAmount);
261
- instance.updatePoolSetup(poolObjectInfo.nftId, poolComponentInfo, KEEP_STATE());
262
- }
263
-
264
- if (bundleFeeAmount.gtz()) {
265
- _bundleService.updateBundleFees(instance, bundleNftId, bundleFeeAmount);
266
- }
267
- }
268
-
269
- function lockCollateral(
270
- IInstance instance,
271
- NftId productNftId,
272
- NftId applicationNftId,
273
- IPolicy.PolicyInfo memory applicationInfo,
274
- uint256 premiumAmount // premium amount after product and distribution fees
275
- )
276
- external
277
- virtual
278
- // TODO add restricted and granting for policy service
279
- {
280
- InstanceReader instanceReader = instance.getInstanceReader();
281
- NftId poolNftId = instanceReader.getProductSetupInfo(productNftId).poolNftId;
282
- NftId bundleNftId = applicationInfo.bundleNftId;
283
-
284
- // TODO move this check to application creation and don't repeat this here
285
- // ensure that pool for bundle from application matches with pool for product of application
286
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
287
- if(bundleInfo.poolNftId != poolNftId) {
288
- revert ErrorPoolServiceBundlePoolMismatch(bundleInfo.poolNftId, poolNftId);
289
- }
290
-
291
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
292
- IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
293
-
294
- // TODO add correct required collateral calculation (collateralization level mibht be != 1, retention level might be < 1)
295
- uint256 collateralAmount = applicationInfo.sumInsuredAmount;
296
-
297
- // TODO add correct net premium calculation (pool fee might be > 0)
298
- uint256 premiumAfterPoolFeeAmount = premiumAmount;
299
-
300
- // lock collateral amount from involvedd bundle
301
- _bundleService.lockCollateral(
302
- instance,
303
- applicationNftId,
304
- bundleNftId,
305
- collateralAmount,
306
- premiumAfterPoolFeeAmount);
307
-
308
- // also verify/confirm application by pool if necessary
309
- if(poolInfo.isVerifyingApplications) {
310
- address poolAddress = getRegistry().getObjectInfo(poolNftId).objectAddress;
311
- IPoolComponent(poolAddress).verifyApplication(
312
- applicationNftId,
313
- applicationInfo.applicationData,
314
- bundleNftId,
315
- bundleInfo.filter,
316
- collateralAmount);
317
- }
318
- }
319
-
320
-
321
- function reduceCollateral(
322
- IInstance instance,
323
- NftId policyNftId,
324
- IPolicy.PolicyInfo memory policyInfo,
325
- Amount payoutAmount
326
- )
327
- external
328
- virtual
329
- // TODO add restricted and granting for claim service
330
- {
331
- _bundleService.releaseCollateral(
332
- instance,
333
- policyNftId,
334
- policyInfo.bundleNftId,
335
- payoutAmount.toInt());
336
- }
337
-
338
-
339
- /// @dev releases the remaining collateral linked to the specified policy
340
- /// may only be called by the policy service for unlocked pool components
341
- function releaseCollateral(
342
- IInstance instance,
343
- NftId policyNftId,
344
- IPolicy.PolicyInfo memory policyInfo
345
- )
346
- external
347
- virtual
348
- // TODO add restricted and granting for policy service
349
- {
350
- _bundleService.releaseCollateral(
351
- instance,
352
- policyNftId,
353
- policyInfo.bundleNftId,
354
- policyInfo.sumInsuredAmount - policyInfo.claimAmount.toInt());
355
-
356
- _bundleService.unlinkPolicy(
357
- instance,
358
- policyNftId);
359
- }
360
-
361
-
362
- function _processStakingFees(
363
- IComponents.ComponentInfo memory componentInfo,
364
- Amount stakingAmount
365
- )
366
- internal
367
- returns (Amount stakingNetAmount)
368
- {
369
- stakingNetAmount = stakingAmount;
370
-
371
- // check if any staking fees apply
372
- Fee memory stakingFee = abi.decode(componentInfo.data, (IComponents.PoolInfo)).stakingFee;
373
- if (FeeLib.gtz(stakingFee)) {
374
- (uint256 feeAmount, uint256 netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount.toInt());
375
- stakingNetAmount = AmountLib.toAmount(netAmount);
376
-
377
- // TODO update fee balance for pool
378
- }
379
- }
380
-
381
-
382
- // TODO create (I)TreasuryService that deals with all gif related token transfers
383
- /// @dev transfers the specified amount from the bundle owner to the pool's wallet
384
- function _transferStakingAmount(
385
- IComponents.ComponentInfo memory componentInfo,
386
- address bundleOwner,
387
- Amount stakingAmount
388
- )
389
- internal
390
- {
391
- TokenHandler tokenHandler = componentInfo.tokenHandler;
392
- address poolWallet = componentInfo.wallet;
393
-
394
- if(stakingAmount.gtz()) {
395
- tokenHandler.transfer(
396
- bundleOwner,
397
- poolWallet,
398
- stakingAmount.toInt()
399
- );
400
- }
401
- }
402
-
403
- }
@@ -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, 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
- }