@etherisc/gif-next 0.0.2-e818783-565 → 0.0.2-e83e4a5-207

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 (616) hide show
  1. package/README.md +20 -3
  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 +1505 -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 +188 -342
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +184 -253
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +77 -324
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +37 -112
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +218 -2177
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +194 -70
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +429 -2801
  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 +721 -389
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +259 -239
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -119
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -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/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.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 -218
  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 +1063 -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} +254 -153
  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 +1134 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +65 -48
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +191 -296
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +290 -56
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -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 +1299 -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 +1315 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +96 -186
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +93 -258
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  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} +63 -141
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -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 +338 -248
  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 +135 -29
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -53
  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 +371 -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 +367 -73
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  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/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  167. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +697 -97
  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 -153
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  173. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -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} +27 -95
  180. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  181. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
  202. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  204. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  207. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  211. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  212. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  213. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  215. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  217. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  222. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  223. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  224. package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  226. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  227. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  228. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  229. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  230. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  231. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  232. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  234. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  236. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  237. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  238. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  240. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  242. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  244. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  246. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  248. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  250. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  251. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  252. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  253. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  254. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  256. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  258. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  260. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  262. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  264. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  266. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  268. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  269. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  270. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  272. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  274. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  278. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  280. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  282. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  284. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  288. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  290. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  293. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  298. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  302. package/contracts/authorization/AccessAdmin.sol +591 -0
  303. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  304. package/contracts/authorization/Authorization.sol +218 -0
  305. package/contracts/authorization/IAccess.sol +48 -0
  306. package/contracts/authorization/IAccessAdmin.sol +136 -0
  307. package/contracts/authorization/IAuthorization.sol +54 -0
  308. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  309. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  310. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  311. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  312. package/contracts/distribution/BasicDistribution.sol +149 -0
  313. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  314. package/contracts/{components → distribution}/Distribution.sol +157 -158
  315. package/contracts/distribution/DistributionService.sol +302 -0
  316. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  317. package/contracts/distribution/IDistributionComponent.sol +48 -0
  318. package/contracts/{instance/service → distribution}/IDistributionService.sol +24 -38
  319. package/contracts/instance/BundleManager.sol +5 -5
  320. package/contracts/instance/IInstance.sol +49 -65
  321. package/contracts/instance/IInstanceService.sol +47 -23
  322. package/contracts/instance/Instance.sol +148 -204
  323. package/contracts/instance/InstanceAdmin.sol +266 -0
  324. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  325. package/contracts/instance/InstanceReader.sol +148 -60
  326. package/contracts/instance/InstanceService.sol +276 -311
  327. package/contracts/instance/InstanceServiceManager.sol +11 -21
  328. package/contracts/instance/InstanceStore.sol +276 -0
  329. package/contracts/instance/base/BalanceStore.sol +123 -0
  330. package/contracts/instance/base/Cloneable.sol +28 -0
  331. package/contracts/instance/base/ObjectCounter.sol +21 -0
  332. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  333. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +13 -16
  334. package/contracts/instance/module/IAccess.sol +4 -12
  335. package/contracts/instance/module/IBundle.sol +6 -9
  336. package/contracts/instance/module/IComponents.sol +21 -10
  337. package/contracts/instance/module/IDistribution.sol +7 -6
  338. package/contracts/instance/module/IPolicy.sol +22 -15
  339. package/contracts/instance/module/IRisk.sol +1 -1
  340. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  341. package/contracts/oracle/BasicOracle.sol +48 -0
  342. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  343. package/contracts/oracle/IOracle.sol +36 -0
  344. package/contracts/oracle/IOracleComponent.sol +32 -0
  345. package/contracts/oracle/IOracleService.sol +65 -0
  346. package/contracts/oracle/Oracle.sol +157 -0
  347. package/contracts/oracle/OracleService.sol +278 -0
  348. package/contracts/oracle/OracleServiceManager.sol +42 -0
  349. package/contracts/pool/BasicPool.sol +164 -0
  350. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  351. package/contracts/pool/BundleService.sol +296 -0
  352. package/contracts/pool/BundleServiceManager.sol +42 -0
  353. package/contracts/{instance/service → pool}/IBundleService.sol +33 -23
  354. package/contracts/pool/IPoolComponent.sol +52 -0
  355. package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
  356. package/contracts/pool/Pool.sol +311 -0
  357. package/contracts/pool/PoolService.sol +452 -0
  358. package/contracts/pool/PoolServiceManager.sol +42 -0
  359. package/contracts/product/ApplicationService.sol +254 -0
  360. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  361. package/contracts/product/BasicProduct.sol +82 -0
  362. package/contracts/product/BasicProductAuthorization.sol +40 -0
  363. package/contracts/product/ClaimService.sol +442 -0
  364. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  365. package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
  366. package/contracts/product/IClaimService.sol +99 -0
  367. package/contracts/product/IPolicyService.sol +78 -0
  368. package/contracts/product/IPricingService.sol +39 -0
  369. package/contracts/product/IProductComponent.sol +39 -0
  370. package/contracts/product/IProductService.sol +33 -0
  371. package/contracts/product/PolicyService.sol +475 -0
  372. package/contracts/product/PolicyServiceManager.sol +42 -0
  373. package/contracts/product/PricingService.sol +300 -0
  374. package/contracts/product/PricingServiceManager.sol +42 -0
  375. package/contracts/{components → product}/Product.sol +152 -131
  376. package/contracts/product/ProductService.sol +124 -0
  377. package/contracts/product/ProductServiceManager.sol +42 -0
  378. package/contracts/registry/ChainNft.sol +8 -1
  379. package/contracts/registry/IRegistry.sol +41 -21
  380. package/contracts/registry/IRegistryService.sol +37 -36
  381. package/contracts/registry/Registry.sol +194 -83
  382. package/contracts/registry/RegistryAdmin.sol +365 -0
  383. package/contracts/registry/RegistryService.sol +71 -87
  384. package/contracts/registry/RegistryServiceManager.sol +21 -30
  385. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  386. package/contracts/registry/ReleaseManager.sol +356 -193
  387. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  388. package/contracts/registry/TokenRegistry.sol +261 -62
  389. package/contracts/shared/Component.sol +281 -0
  390. package/contracts/shared/ComponentService.sol +581 -0
  391. package/contracts/shared/ComponentServiceManager.sol +35 -0
  392. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  393. package/contracts/shared/ERC165.sol +1 -1
  394. package/contracts/{components → shared}/IComponent.sol +23 -29
  395. package/contracts/shared/IComponentService.sol +102 -0
  396. package/contracts/shared/IInstanceLinkedComponent.sol +50 -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 +29 -10
  401. package/contracts/shared/IRegistryLinked.sol +0 -1
  402. package/contracts/shared/IService.sol +11 -2
  403. package/contracts/shared/IVersionable.sol +1 -1
  404. package/contracts/shared/InitializableCustom.sol +177 -0
  405. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  406. package/contracts/shared/KeyValueStore.sol +131 -0
  407. package/contracts/shared/Lifecycle.sol +77 -0
  408. package/contracts/shared/NftIdSetManager.sol +65 -0
  409. package/contracts/shared/NftOwnable.sol +3 -16
  410. package/contracts/shared/PolicyHolder.sol +40 -19
  411. package/contracts/shared/ProxyManager.sol +34 -4
  412. package/contracts/shared/Registerable.sol +13 -12
  413. package/contracts/shared/RegistryLinked.sol +0 -5
  414. package/contracts/shared/Service.sol +32 -21
  415. package/contracts/shared/TokenHandler.sol +27 -2
  416. package/contracts/shared/Versionable.sol +1 -1
  417. package/contracts/staking/IStaking.sol +168 -0
  418. package/contracts/staking/IStakingService.sol +153 -0
  419. package/contracts/staking/StakeManagerLib.sol +231 -0
  420. package/contracts/staking/Staking.sol +513 -0
  421. package/contracts/staking/StakingLifecycle.sol +23 -0
  422. package/contracts/staking/StakingManager.sol +54 -0
  423. package/contracts/staking/StakingReader.sol +187 -0
  424. package/contracts/staking/StakingService.sol +411 -0
  425. package/contracts/staking/StakingServiceManager.sol +44 -0
  426. package/contracts/staking/StakingStore.sol +615 -0
  427. package/contracts/staking/TargetManagerLib.sol +207 -0
  428. package/contracts/{types → type}/AddressSet.sol +1 -1
  429. package/contracts/type/Amount.sol +128 -0
  430. package/contracts/{types → type}/Blocknumber.sol +20 -3
  431. package/contracts/{types → type}/Fee.sol +24 -22
  432. package/contracts/{types → type}/NftId.sol +14 -16
  433. package/contracts/{types → type}/NftIdSet.sol +2 -2
  434. package/contracts/type/ObjectType.sol +275 -0
  435. package/contracts/{types → type}/Referral.sol +1 -1
  436. package/contracts/type/RequestId.sol +75 -0
  437. package/contracts/{types → type}/RiskId.sol +1 -1
  438. package/contracts/type/RoleId.sol +174 -0
  439. package/contracts/{types → type}/Seconds.sol +27 -0
  440. package/contracts/type/Selector.sol +102 -0
  441. package/contracts/{types → type}/StateId.sol +27 -2
  442. package/contracts/type/String.sol +53 -0
  443. package/contracts/{types → type}/Timestamp.sol +6 -2
  444. package/contracts/{types → type}/UFixed.sol +6 -0
  445. package/contracts/{types → type}/Version.sol +1 -1
  446. package/package.json +6 -3
  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/Cloneable.sol/Cloneable.dbg.json +0 -4
  458. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  459. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  460. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  461. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  462. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  463. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  464. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  465. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  466. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  467. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  469. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  470. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  471. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  472. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  473. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
  474. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  475. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  476. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  477. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1266
  478. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  479. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  480. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  481. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  482. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  483. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  484. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  486. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  487. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  488. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  489. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1511
  497. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
  499. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  501. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  503. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  505. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  507. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  508. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  509. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  510. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  511. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  512. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  513. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  514. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  515. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  516. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  517. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  518. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  519. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  520. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  521. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  522. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  523. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  525. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  526. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  527. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  528. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  529. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  530. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -185
  531. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  533. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  534. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  535. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  536. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  537. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  538. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  539. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  540. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  541. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  542. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  543. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  544. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  545. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  546. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  547. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  549. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  551. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  553. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  555. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  557. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  559. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  561. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  564. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  565. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  567. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  569. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  571. package/contracts/components/Component.sol +0 -253
  572. package/contracts/components/IDistributionComponent.sol +0 -71
  573. package/contracts/components/IPoolComponent.sol +0 -113
  574. package/contracts/components/IProductComponent.sol +0 -40
  575. package/contracts/components/Pool.sol +0 -302
  576. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  577. package/contracts/instance/Cloneable.sol +0 -51
  578. package/contracts/instance/InstanceAccessManager.sol +0 -527
  579. package/contracts/instance/base/ComponentService.sol +0 -121
  580. package/contracts/instance/base/KeyValueStore.sol +0 -180
  581. package/contracts/instance/base/Lifecycle.sol +0 -117
  582. package/contracts/instance/module/ISetup.sol +0 -33
  583. package/contracts/instance/module/ITreasury.sol +0 -23
  584. package/contracts/instance/service/ApplicationService.sol +0 -355
  585. package/contracts/instance/service/BundleService.sol +0 -436
  586. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  587. package/contracts/instance/service/ClaimService.sol +0 -239
  588. package/contracts/instance/service/DistributionService.sol +0 -431
  589. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  590. package/contracts/instance/service/IClaimService.sol +0 -92
  591. package/contracts/instance/service/IPolicyService.sol +0 -137
  592. package/contracts/instance/service/IProductService.sol +0 -40
  593. package/contracts/instance/service/PolicyService.sol +0 -541
  594. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  595. package/contracts/instance/service/PoolService.sol +0 -303
  596. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  597. package/contracts/instance/service/ProductService.sol +0 -210
  598. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  599. package/contracts/registry/RegistryAccessManager.sol +0 -216
  600. package/contracts/shared/ContractDeployerLib.sol +0 -72
  601. package/contracts/test/TestFee.sol +0 -25
  602. package/contracts/test/TestRegisterable.sol +0 -18
  603. package/contracts/test/TestRoleId.sol +0 -14
  604. package/contracts/test/TestService.sol +0 -25
  605. package/contracts/test/TestVersion.sol +0 -44
  606. package/contracts/test/TestVersionable.sol +0 -17
  607. package/contracts/test/Usdc.sol +0 -26
  608. package/contracts/types/Amount.sol +0 -65
  609. package/contracts/types/ChainId.sol +0 -38
  610. package/contracts/types/NumberId.sol +0 -52
  611. package/contracts/types/ObjectType.sol +0 -157
  612. package/contracts/types/RoleId.sol +0 -97
  613. /package/contracts/{types → type}/ClaimId.sol +0 -0
  614. /package/contracts/{types → type}/DistributorType.sol +0 -0
  615. /package/contracts/{types → type}/Key32.sol +0 -0
  616. /package/contracts/{types → type}/PayoutId.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, 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
- }