@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,38 +1,40 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
- import {Amount} from "../types/Amount.sol";
7
- import {ClaimId} from "../types/ClaimId.sol";
8
- import {Component} from "./Component.sol";
9
- import {Fee} from "../types/Fee.sol";
6
+ import {Amount, AmountLib} from "../type/Amount.sol";
7
+ import {ClaimId} from "../type/ClaimId.sol";
8
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
9
+ import {Fee, FeeLib} from "../type/Fee.sol";
10
10
  import {IRisk} from "../instance/module/IRisk.sol";
11
- import {IApplicationService} from "../instance/service/IApplicationService.sol";
12
- import {IPolicyService} from "../instance/service/IPolicyService.sol";
13
- import {IProductService} from "../instance/service/IProductService.sol";
14
- import {IClaimService} from "../instance/service/IClaimService.sol";
11
+ import {IApplicationService} from "./IApplicationService.sol";
12
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
13
+ import {IComponentService} from "../shared/IComponentService.sol";
14
+ import {IPolicyService} from "./IPolicyService.sol";
15
+ import {IProductService} from "./IProductService.sol";
16
+ import {IClaimService} from "./IClaimService.sol";
17
+ import {IPricingService} from "./IPricingService.sol";
15
18
  import {IProductComponent} from "./IProductComponent.sol";
16
- import {NftId, NftIdLib} from "../types/NftId.sol";
17
- import {PayoutId} from "../types/PayoutId.sol";
18
- import {PRODUCT, APPLICATION, POLICY, CLAIM } from "../types/ObjectType.sol";
19
- import {ReferralId} from "../types/Referral.sol";
20
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
21
- import {Seconds} from "../types/Seconds.sol";
22
- import {StateId} from "../types/StateId.sol";
23
- import {Timestamp} from "../types/Timestamp.sol";
19
+ import {NftId, NftIdLib} from "../type/NftId.sol";
20
+ import {PayoutId} from "../type/PayoutId.sol";
21
+ import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
22
+ import {ReferralId} from "../type/Referral.sol";
23
+ import {RiskId, RiskIdLib} from "../type/RiskId.sol";
24
+ import {Seconds} from "../type/Seconds.sol";
25
+ import {StateId} from "../type/StateId.sol";
26
+ import {Timestamp} from "../type/Timestamp.sol";
24
27
 
25
28
  import {TokenHandler} from "../shared/TokenHandler.sol";
26
29
 
27
30
  import {InstanceReader} from "../instance/InstanceReader.sol";
28
31
  import {IPolicy} from "../instance/module/IPolicy.sol";
29
- import {ISetup} from "../instance/module/ISetup.sol";
30
32
  import {IComponents} from "../instance/module/IComponents.sol";
31
- import {Pool} from "../components/Pool.sol";
32
- import {Distribution} from "../components/Distribution.sol";
33
+ import {Pool} from "../pool/Pool.sol";
34
+ import {Distribution} from "../distribution/Distribution.sol";
33
35
 
34
36
  abstract contract Product is
35
- Component,
37
+ InstanceLinkedComponent,
36
38
  IProductComponent
37
39
  {
38
40
  // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Product")) - 1)) & ~bytes32(uint256(0xff));
@@ -43,33 +45,124 @@ abstract contract Product is
43
45
  IApplicationService _applicationService;
44
46
  IPolicyService _policyService;
45
47
  IClaimService _claimService;
46
- Pool _pool;
47
- Distribution _distribution;
48
- Fee _initialProductFee;
49
- Fee _initialProcessingFee;
50
- TokenHandler _tokenHandler;
48
+ IPricingService _pricingService;
49
+ IComponentService _componentService;
51
50
  NftId _poolNftId;
52
51
  NftId _distributionNftId;
52
+ Pool _pool;
53
+ Distribution _distribution;
53
54
  }
54
55
 
55
- function initializeProduct(
56
+
57
+ function calculatePremium(
58
+ Amount sumInsuredAmount,
59
+ RiskId riskId,
60
+ Seconds lifetime,
61
+ bytes memory applicationData,
62
+ NftId bundleNftId,
63
+ ReferralId referralId
64
+ )
65
+ external
66
+ view
67
+ override
68
+ returns (Amount premiumAmount)
69
+ {
70
+ IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
71
+ getNftId(),
72
+ riskId,
73
+ sumInsuredAmount,
74
+ lifetime,
75
+ applicationData,
76
+ bundleNftId,
77
+ referralId
78
+ );
79
+
80
+ return AmountLib.toAmount(premium.premiumAmount);
81
+ }
82
+
83
+ function calculateNetPremium(
84
+ Amount sumInsuredAmount,
85
+ RiskId riskId,
86
+ Seconds lifetime,
87
+ bytes memory applicationData
88
+ )
89
+ external
90
+ view
91
+ virtual override
92
+ returns (Amount netPremiumAmount)
93
+ {
94
+ // default 10% of sum insured
95
+ return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
96
+ }
97
+
98
+
99
+ function register()
100
+ external
101
+ virtual
102
+ onlyOwner()
103
+ {
104
+ _getProductStorage()._componentService.registerProduct();
105
+ }
106
+
107
+
108
+ function getInitialProductInfo()
109
+ public
110
+ virtual
111
+ view
112
+ returns (IComponents.ProductInfo memory poolInfo)
113
+ {
114
+ ProductStorage storage $ = _getProductStorage();
115
+
116
+ return IComponents.ProductInfo({
117
+ distributionNftId: $._distributionNftId,
118
+ poolNftId: $._poolNftId,
119
+ productFee: FeeLib.zero(),
120
+ processingFee: FeeLib.zero(),
121
+ distributionFee: FeeLib.zero(),
122
+ minDistributionOwnerFee: FeeLib.zero(),
123
+ poolFee: FeeLib.zero(),
124
+ stakingFee: FeeLib.zero(),
125
+ performanceFee: FeeLib.zero()
126
+ });
127
+ }
128
+
129
+ function getPoolNftId() external view override returns (NftId poolNftId) {
130
+ return getRegistry().getNftId(address(_getProductStorage()._pool));
131
+ }
132
+
133
+ function getDistributionNftId() external view override returns (NftId distributionNftId) {
134
+ return getRegistry().getNftId(address(_getProductStorage()._distribution));
135
+ }
136
+
137
+
138
+ function _initializeProduct(
56
139
  address registry,
57
140
  NftId instanceNftId,
141
+ IAuthorization authorization,
142
+ address initialOwner,
58
143
  string memory name,
59
144
  address token,
60
145
  bool isInterceptor,
61
146
  address pool,
62
147
  address distribution,
63
- Fee memory productFee,
64
- Fee memory processingFee,
65
- address initialOwner,
66
- bytes memory registryData // writeonly data that will saved in the object info record of the registry
148
+ bytes memory registryData, // writeonly data that will saved in the object info record of the registry
149
+ bytes memory componentData // writeonly data that will saved in the object info record of the registry
67
150
  )
68
- public
151
+ internal
69
152
  virtual
70
153
  onlyInitializing()
71
154
  {
72
- initializeComponent(registry, instanceNftId, name, token, PRODUCT(), isInterceptor, initialOwner, registryData);
155
+ _initializeInstanceLinkedComponent(
156
+ registry,
157
+ instanceNftId,
158
+ name,
159
+ token,
160
+ PRODUCT(),
161
+ authorization,
162
+ isInterceptor,
163
+ initialOwner,
164
+ registryData,
165
+ componentData);
73
166
 
74
167
  ProductStorage storage $ = _getProductStorage();
75
168
  // TODO add validation
@@ -78,30 +171,28 @@ abstract contract Product is
78
171
  $._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
79
172
  $._policyService = IPolicyService(_getServiceAddress(POLICY()));
80
173
  $._claimService = IClaimService(_getServiceAddress(CLAIM()));
174
+ $._pricingService = IPricingService(_getServiceAddress(PRICE()));
175
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
81
176
  $._pool = Pool(pool);
82
177
  $._distribution = Distribution(distribution);
83
- $._initialProductFee = productFee;
84
- $._initialProcessingFee = processingFee;
85
- $._tokenHandler = new TokenHandler(token);
86
178
  $._poolNftId = getRegistry().getNftId(pool);
87
179
  $._distributionNftId = getRegistry().getNftId(distribution);
88
180
 
89
181
  registerInterface(type(IProductComponent).interfaceId);
90
182
  }
91
183
 
92
- // from product component
93
- function setFees(
184
+
185
+ function _setFees(
94
186
  Fee memory productFee,
95
187
  Fee memory processingFee
96
188
  )
97
- external
98
- onlyOwner
99
- restricted()
100
- override
189
+ internal
190
+ virtual
101
191
  {
102
- _getProductService().setFees(productFee, processingFee);
192
+ _getProductStorage()._componentService.setProductFees(productFee, processingFee);
103
193
  }
104
194
 
195
+
105
196
  function _createRisk(
106
197
  RiskId id,
107
198
  bytes memory data
@@ -132,14 +223,16 @@ abstract contract Product is
132
223
  );
133
224
  }
134
225
 
226
+
135
227
  function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
136
228
  return getInstance().getInstanceReader().getRiskInfo(id);
137
229
  }
138
230
 
231
+
139
232
  function _createApplication(
140
233
  address applicationOwner,
141
234
  RiskId riskId,
142
- uint256 sumInsuredAmount,
235
+ Amount sumInsuredAmount,
143
236
  Seconds lifetime,
144
237
  NftId bundleNftId,
145
238
  ReferralId referralId,
@@ -211,7 +304,7 @@ abstract contract Product is
211
304
  internal
212
305
  returns(ClaimId)
213
306
  {
214
- return _getProductStorage()._policyService.submitClaim(
307
+ return _getProductStorage()._claimService.submit(
215
308
  policyNftId,
216
309
  claimAmount,
217
310
  claimData);
@@ -220,25 +313,29 @@ abstract contract Product is
220
313
  function _confirmClaim(
221
314
  NftId policyNftId,
222
315
  ClaimId claimId,
223
- Amount confirmedAmount
316
+ Amount confirmedAmount,
317
+ bytes memory data
224
318
  )
225
319
  internal
226
320
  {
227
- _getProductStorage()._policyService.confirmClaim(
321
+ _getProductStorage()._claimService.confirm(
228
322
  policyNftId,
229
323
  claimId,
230
- confirmedAmount);
324
+ confirmedAmount,
325
+ data);
231
326
  }
232
327
 
233
328
  function _declineClaim(
234
329
  NftId policyNftId,
235
- ClaimId claimId
330
+ ClaimId claimId,
331
+ bytes memory data
236
332
  )
237
333
  internal
238
334
  {
239
- _getProductStorage()._policyService.declineClaim(
335
+ _getProductStorage()._claimService.decline(
240
336
  policyNftId,
241
- claimId);
337
+ claimId,
338
+ data);
242
339
  }
243
340
 
244
341
  function _closeClaim(
@@ -247,7 +344,7 @@ abstract contract Product is
247
344
  )
248
345
  internal
249
346
  {
250
- _getProductStorage()._policyService.closeClaim(
347
+ _getProductStorage()._claimService.close(
251
348
  policyNftId,
252
349
  claimId);
253
350
  }
@@ -261,7 +358,7 @@ abstract contract Product is
261
358
  internal
262
359
  returns (PayoutId)
263
360
  {
264
- return _getProductStorage()._policyService.createPayout(
361
+ return _getProductStorage()._claimService.createPayout(
265
362
  policyNftId,
266
363
  claimId,
267
364
  amount,
@@ -274,91 +371,15 @@ abstract contract Product is
274
371
  )
275
372
  internal
276
373
  {
277
- _getProductStorage()._policyService.processPayout(
374
+ _getProductStorage()._claimService.processPayout(
278
375
  policyNftId,
279
376
  payoutId);
280
377
  }
281
378
 
282
- function calculatePremium(
283
- uint256 sumInsuredAmount,
284
- RiskId riskId,
285
- Seconds lifetime,
286
- bytes memory applicationData,
287
- NftId bundleNftId,
288
- ReferralId referralId
289
- )
290
- external
291
- view
292
- override
293
- returns (uint256 premiumAmount)
294
- {
295
- IPolicy.Premium memory premium = _getProductStorage()._applicationService.calculatePremium(
296
- getNftId(),
297
- riskId,
298
- sumInsuredAmount,
299
- lifetime,
300
- applicationData,
301
- bundleNftId,
302
- referralId
303
- );
304
- premiumAmount = premium.premiumAmount;
305
- }
306
-
307
- function calculateNetPremium(
308
- uint256 sumInsuredAmount,
309
- RiskId riskId,
310
- Seconds lifetime,
311
- bytes memory applicationData
312
- )
313
- external
314
- view
315
- virtual override
316
- returns (uint256 netPremiumAmount)
317
- {
318
- // default 10% of sum insured
319
- return sumInsuredAmount / 10;
320
- }
321
-
322
379
  function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
323
380
  return RiskIdLib.toRiskId(riskName);
324
381
  }
325
382
 
326
- function getPoolNftId() external view override returns (NftId poolNftId) {
327
- return getRegistry().getNftId(address(_getProductStorage()._pool));
328
- }
329
-
330
- function getDistributionNftId() external view override returns (NftId distributionNftId) {
331
- return getRegistry().getNftId(address(_getProductStorage()._distribution));
332
- }
333
-
334
- function getSetupInfo() public view returns (ISetup.ProductSetupInfo memory setupInfo) {
335
- InstanceReader reader = getInstance().getInstanceReader();
336
- setupInfo = reader.getProductSetupInfo(getNftId());
337
-
338
- // fallback to initial setup info (wallet is always != address(0))
339
- if(setupInfo.wallet == address(0)) {
340
- setupInfo = _getInitialSetupInfo();
341
- }
342
- }
343
-
344
- function _getInitialSetupInfo() internal view returns (ISetup.ProductSetupInfo memory setupInfo) {
345
- ProductStorage storage $ = _getProductStorage();
346
-
347
- ISetup.DistributionSetupInfo memory distributionSetupInfo = $._distribution.getSetupInfo();
348
- IComponents.PoolInfo memory poolInfo = $._pool.getPoolInfo();
349
-
350
- return ISetup.ProductSetupInfo(
351
- getToken(),
352
- $._tokenHandler,
353
- $._distributionNftId,
354
- $._poolNftId,
355
- $._initialProductFee,
356
- $._initialProcessingFee,
357
- false,
358
- getWallet()
359
- );
360
- }
361
-
362
383
  function _getProductStorage() private pure returns (ProductStorage storage $) {
363
384
  assembly {
364
385
  $.slot := PRODUCT_STORAGE_LOCATION_V1
@@ -368,4 +389,4 @@ abstract contract Product is
368
389
  function _getProductService() internal view returns (IProductService) {
369
390
  return _getProductStorage()._productService;
370
391
  }
371
- }
392
+ }
@@ -0,0 +1,124 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IRegistry} from "../registry/IRegistry.sol";
5
+ import {IProductComponent} from "./IProductComponent.sol";
6
+ import {Product} from "./Product.sol";
7
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
9
+ import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
10
+ import {IInstance} from "../instance/IInstance.sol";
11
+ import {IPolicy} from "../instance/module/IPolicy.sol";
12
+ import {IRisk} from "../instance/module/IRisk.sol";
13
+ import {IBundle} from "../instance/module/IBundle.sol";
14
+ import {IProductService} from "./IProductService.sol";
15
+ import {IComponents} from "../instance/module/IComponents.sol";
16
+
17
+ import {TokenHandler} from "../shared/TokenHandler.sol";
18
+
19
+ import {IVersionable} from "../shared/IVersionable.sol";
20
+ import {Versionable} from "../shared/Versionable.sol";
21
+
22
+ import {Timestamp, zeroTimestamp} from "../type/Timestamp.sol";
23
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
24
+ import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
25
+ import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY} from "../type/ObjectType.sol";
26
+ import {APPLIED, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
27
+ import {NftId, NftIdLib} from "../type/NftId.sol";
28
+ import {Fee, FeeLib} from "../type/Fee.sol";
29
+ import {ReferralId} from "../type/Referral.sol";
30
+ import {RiskId} from "../type/RiskId.sol";
31
+ import {StateId} from "../type/StateId.sol";
32
+ import {Version, VersionLib} from "../type/Version.sol";
33
+ import {RoleId, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
34
+
35
+ import {IService} from "../shared/IService.sol";
36
+ import {Service} from "../shared/Service.sol";
37
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
38
+ import {IInstanceService} from "../instance/IInstanceService.sol";
39
+ import {IProductService} from "./IProductService.sol";
40
+ import {IRegistryService} from "../registry/IRegistryService.sol";
41
+ import {InstanceReader} from "../instance/InstanceReader.sol";
42
+ import {IPoolService} from "../pool/PoolService.sol";
43
+
44
+ contract ProductService is
45
+ ComponentVerifyingService,
46
+ IProductService
47
+ {
48
+ IInstanceService private _instanceService;
49
+ IPoolService internal _poolService;
50
+ IRegistryService private _registryService;
51
+
52
+ event LogProductServiceSender(address sender);
53
+
54
+ function _initialize(
55
+ address owner,
56
+ bytes memory data
57
+ )
58
+ internal
59
+ initializer
60
+ virtual override
61
+ {
62
+ (
63
+ address registryAddress,,
64
+ //address managerAddress
65
+ address authority
66
+ ) = abi.decode(data, (address, address, address));
67
+
68
+ initializeService(registryAddress, authority, owner);
69
+
70
+ _instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
71
+ _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
72
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
73
+
74
+ registerInterface(type(IProductService).interfaceId);
75
+ }
76
+
77
+
78
+ function createRisk(
79
+ RiskId riskId,
80
+ bytes memory data
81
+ )
82
+ external
83
+ override
84
+ {
85
+ (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
86
+ IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo(productNftId, data);
87
+
88
+ instance.getInstanceStore().createRisk(
89
+ riskId,
90
+ riskInfo
91
+ );
92
+ }
93
+
94
+
95
+ function updateRisk(
96
+ RiskId riskId,
97
+ bytes memory data
98
+ )
99
+ external
100
+ {
101
+ (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
102
+ InstanceReader instanceReader = instance.getInstanceReader();
103
+
104
+ IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
105
+ riskInfo.data = data;
106
+ instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
107
+ }
108
+
109
+
110
+ function updateRiskState(
111
+ RiskId riskId,
112
+ StateId state
113
+ )
114
+ external
115
+ {
116
+ (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
117
+ instance.getInstanceStore().updateRiskState(riskId, state);
118
+ }
119
+
120
+
121
+ function _getDomain() internal pure override returns(ObjectType) {
122
+ return PRODUCT();
123
+ }
124
+ }
@@ -0,0 +1,42 @@
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 "../type/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 authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
21
+ ProxyManager(registryAddress)
22
+ {
23
+ ProductService svc = new ProductService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
26
+ address(svc),
27
+ data,
28
+ salt);
29
+
30
+ _productService = ProductService(address(versionable));
31
+ }
32
+
33
+ //--- view functions ----------------------------------------------------//
34
+ function getProductService()
35
+ external
36
+ view
37
+ returns (ProductService productService)
38
+ {
39
+ return _productService;
40
+ }
41
+
42
+ }
@@ -15,6 +15,7 @@ contract ChainNft is ERC721Enumerable {
15
15
  uint256 public constant PROTOCOL_NFT_ID = 1101;
16
16
  uint256 public constant GLOBAL_REGISTRY_ID = 2101;
17
17
 
18
+ // TODO rename errors to error pattern: CallerNotRegistry -> ErrorCallerNotRegistry etc.
18
19
  // custom errors
19
20
  error CallerNotRegistry(address caller);
20
21
  error RegistryAddressZero();
@@ -59,7 +60,13 @@ contract ChainNft is ERC721Enumerable {
59
60
  }
60
61
 
61
62
  _chainIdMultiplier = 10 ** _chainIdDigits;
62
- _idNext = 3;
63
+
64
+ // the first object registered through normal registration starts with id 4
65
+ // 1 -> protocol
66
+ // 2 -> registry
67
+ // 3 -> staking
68
+ // >= 4 -> all other objects
69
+ _idNext = 4;
63
70
  }
64
71
 
65
72
  /**