@etherisc/gif-next 0.0.2-edc084c-558 → 0.0.2-edd8f00-238

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 (582) hide show
  1. package/README.md +11 -3
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +254 -167
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +117 -111
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +49 -312
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +36 -105
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +303 -2005
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +177 -41
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +429 -2753
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +801 -389
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +262 -221
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +122 -105
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3597 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  40. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  42. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  44. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  48. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  49. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  50. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  51. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  52. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  54. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  56. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  58. package/artifacts/contracts/{components/Product.sol/Product.json → oracle/Oracle.sol/Oracle.json} +255 -276
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  60. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  62. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  64. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  66. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  67. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  68. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +90 -46
  69. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  70. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +193 -103
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  72. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +294 -60
  73. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  74. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +298 -109
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  76. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  78. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  80. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  82. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  84. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  86. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  87. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  88. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +131 -94
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  90. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  91. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  92. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +194 -80
  93. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  94. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +86 -159
  95. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  96. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +283 -118
  97. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  98. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  100. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  102. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  104. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  106. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  107. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  108. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  110. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  112. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  114. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  116. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  118. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -53
  119. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  120. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  121. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  122. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  123. package/artifacts/contracts/registry/Registry.sol/Registry.json +415 -43
  124. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  125. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  126. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
  128. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  130. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +187 -0
  132. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  133. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +783 -108
  134. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  136. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  137. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +206 -0
  138. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  139. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  140. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  142. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  144. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  150. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  151. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  152. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  153. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
  154. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  155. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  156. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  158. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -95
  160. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  161. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  162. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  164. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  166. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  168. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  169. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
  170. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  172. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  173. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  174. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  176. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  177. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  178. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  180. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  182. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  184. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  186. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
  188. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  189. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  190. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  191. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  192. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  193. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  194. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +570 -0
  195. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  196. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +156 -0
  197. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  198. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  199. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  200. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  201. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  202. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  203. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  204. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  205. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  206. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  207. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  208. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  209. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  210. package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
  211. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  212. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  213. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  214. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  215. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  216. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  217. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  218. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  219. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  220. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  222. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  223. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  224. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +187 -0
  226. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  228. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  230. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  232. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  234. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2260 -0
  236. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  237. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  238. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  239. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  240. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  242. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  244. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  246. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  247. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  248. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  250. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  251. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  252. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  254. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  256. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  258. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  260. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  262. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  264. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  266. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  268. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  270. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  272. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  274. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  276. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  278. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +33 -7
  280. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  282. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  284. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  286. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  287. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  288. package/contracts/{components → distribution}/Distribution.sol +47 -66
  289. package/contracts/distribution/DistributionService.sol +297 -0
  290. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  291. package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
  292. package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
  293. package/contracts/instance/BundleManager.sol +8 -9
  294. package/contracts/instance/IInstance.sol +55 -66
  295. package/contracts/instance/IInstanceService.sol +50 -25
  296. package/contracts/instance/Instance.sol +160 -224
  297. package/contracts/instance/InstanceAdmin.sol +331 -0
  298. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  299. package/contracts/instance/InstanceReader.sol +157 -56
  300. package/contracts/instance/InstanceService.sol +258 -314
  301. package/contracts/instance/InstanceServiceManager.sol +11 -21
  302. package/contracts/instance/InstanceStore.sol +272 -0
  303. package/contracts/instance/base/BalanceStore.sol +123 -0
  304. package/contracts/instance/base/Cloneable.sol +28 -0
  305. package/contracts/instance/base/ObjectCounter.sol +21 -0
  306. package/contracts/instance/base/ObjectLifecycle.sol +96 -0
  307. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -9
  308. package/contracts/instance/module/IAccess.sol +4 -12
  309. package/contracts/instance/module/IBundle.sol +6 -9
  310. package/contracts/instance/module/IComponents.sol +21 -10
  311. package/contracts/instance/module/IDistribution.sol +7 -6
  312. package/contracts/instance/module/IPolicy.sol +28 -16
  313. package/contracts/instance/module/IRisk.sol +1 -1
  314. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  315. package/contracts/oracle/IOracle.sol +20 -0
  316. package/contracts/oracle/IOracleComponent.sol +32 -0
  317. package/contracts/oracle/IOracleService.sol +65 -0
  318. package/contracts/oracle/Oracle.sol +145 -0
  319. package/contracts/oracle/OracleService.sol +278 -0
  320. package/contracts/oracle/OracleServiceManager.sol +42 -0
  321. package/contracts/pool/BundleService.sol +296 -0
  322. package/contracts/pool/BundleServiceManager.sol +42 -0
  323. package/contracts/{instance/service → pool}/IBundleService.sol +35 -22
  324. package/contracts/{components → pool}/IPoolComponent.sol +17 -18
  325. package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
  326. package/contracts/{components → pool}/Pool.sol +54 -58
  327. package/contracts/pool/PoolService.sol +452 -0
  328. package/contracts/pool/PoolServiceManager.sol +42 -0
  329. package/contracts/product/ApplicationService.sol +254 -0
  330. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  331. package/contracts/product/ClaimService.sol +442 -0
  332. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  333. package/contracts/{instance/service → product}/IApplicationService.sol +15 -35
  334. package/contracts/product/IClaimService.sol +99 -0
  335. package/contracts/{instance/service → product}/IPolicyService.sol +37 -31
  336. package/contracts/product/IPricingService.sol +39 -0
  337. package/contracts/product/IProductComponent.sol +42 -0
  338. package/contracts/product/IProductService.sol +33 -0
  339. package/contracts/product/PolicyService.sol +475 -0
  340. package/contracts/product/PolicyServiceManager.sol +42 -0
  341. package/contracts/product/PricingService.sol +300 -0
  342. package/contracts/product/PricingServiceManager.sol +42 -0
  343. package/contracts/{components → product}/Product.sol +191 -107
  344. package/contracts/product/ProductService.sol +124 -0
  345. package/contracts/product/ProductServiceManager.sol +42 -0
  346. package/contracts/registry/ChainNft.sol +8 -1
  347. package/contracts/registry/IRegistry.sol +44 -21
  348. package/contracts/registry/IRegistryService.sol +37 -36
  349. package/contracts/registry/IServiceAuthorization.sol +38 -0
  350. package/contracts/registry/Registry.sol +198 -83
  351. package/contracts/registry/RegistryAdmin.sol +333 -0
  352. package/contracts/registry/RegistryService.sol +71 -87
  353. package/contracts/registry/RegistryServiceManager.sol +21 -30
  354. package/contracts/registry/ReleaseLifecycle.sol +28 -0
  355. package/contracts/registry/ReleaseManager.sol +389 -190
  356. package/contracts/registry/ServiceAuthorization.sol +90 -0
  357. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  358. package/contracts/registry/TokenRegistry.sol +261 -62
  359. package/contracts/shared/AccessAdmin.sol +759 -0
  360. package/contracts/shared/AccessManagerCustom.sol +741 -0
  361. package/contracts/shared/AccessManagerExtended.sol +481 -0
  362. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  363. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  364. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  365. package/contracts/shared/Component.sol +281 -0
  366. package/contracts/shared/ComponentService.sol +620 -0
  367. package/contracts/shared/ComponentServiceManager.sol +35 -0
  368. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  369. package/contracts/shared/ERC165.sol +1 -1
  370. package/contracts/shared/IAccessAdmin.sol +168 -0
  371. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  372. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  373. package/contracts/{components → shared}/IComponent.sol +23 -29
  374. package/contracts/shared/IComponentService.sol +102 -0
  375. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  376. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  377. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  378. package/contracts/shared/INftOwnable.sol +2 -2
  379. package/contracts/shared/IPolicyHolder.sol +29 -10
  380. package/contracts/shared/IRegistryLinked.sol +0 -1
  381. package/contracts/shared/IService.sol +11 -2
  382. package/contracts/shared/IVersionable.sol +1 -1
  383. package/contracts/shared/InitializableCustom.sol +177 -0
  384. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  385. package/contracts/shared/KeyValueStore.sol +131 -0
  386. package/contracts/shared/Lifecycle.sol +71 -0
  387. package/contracts/shared/NftIdSetManager.sol +65 -0
  388. package/contracts/shared/NftOwnable.sol +3 -16
  389. package/contracts/shared/PolicyHolder.sol +40 -19
  390. package/contracts/shared/ProxyManager.sol +34 -4
  391. package/contracts/shared/Registerable.sol +13 -12
  392. package/contracts/shared/RegistryLinked.sol +0 -5
  393. package/contracts/shared/Service.sol +32 -21
  394. package/contracts/shared/TokenHandler.sol +27 -2
  395. package/contracts/shared/Versionable.sol +1 -1
  396. package/contracts/staking/IStaking.sol +168 -0
  397. package/contracts/staking/IStakingService.sol +153 -0
  398. package/contracts/staking/StakeManagerLib.sol +231 -0
  399. package/contracts/staking/Staking.sol +513 -0
  400. package/contracts/staking/StakingLifecycle.sol +24 -0
  401. package/contracts/staking/StakingManager.sol +54 -0
  402. package/contracts/staking/StakingReader.sol +187 -0
  403. package/contracts/staking/StakingService.sol +411 -0
  404. package/contracts/staking/StakingServiceManager.sol +44 -0
  405. package/contracts/staking/StakingStore.sol +615 -0
  406. package/contracts/staking/TargetManagerLib.sol +207 -0
  407. package/contracts/{types → type}/AddressSet.sol +1 -1
  408. package/contracts/type/Amount.sol +128 -0
  409. package/contracts/{types → type}/Blocknumber.sol +20 -3
  410. package/contracts/{types → type}/ClaimId.sol +25 -2
  411. package/contracts/{types → type}/Fee.sol +24 -22
  412. package/contracts/{types → type}/NftId.sol +14 -16
  413. package/contracts/{types → type}/NftIdSet.sol +2 -2
  414. package/contracts/type/ObjectType.sol +241 -0
  415. package/contracts/{types → type}/PayoutId.sol +33 -5
  416. package/contracts/{types → type}/Referral.sol +1 -1
  417. package/contracts/type/RequestId.sol +75 -0
  418. package/contracts/{types → type}/RiskId.sol +1 -1
  419. package/contracts/type/RoleId.sol +201 -0
  420. package/contracts/{types → type}/Seconds.sol +27 -0
  421. package/contracts/type/Selector.sol +102 -0
  422. package/contracts/{types → type}/StateId.sol +33 -4
  423. package/contracts/type/String.sol +53 -0
  424. package/contracts/{types → type}/Timestamp.sol +10 -1
  425. package/contracts/{types → type}/Version.sol +1 -1
  426. package/package.json +4 -3
  427. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  428. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  429. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  430. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  431. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  432. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  433. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  434. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  435. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  436. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  437. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  438. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  439. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  440. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  441. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  442. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  443. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  444. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  445. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  446. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  447. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  448. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  449. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  450. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  451. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  452. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  453. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  454. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  455. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  456. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  457. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  458. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  459. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  460. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  461. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  462. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  463. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  464. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  465. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  466. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  467. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  468. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  469. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  470. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  471. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  472. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  473. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  474. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  475. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  476. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  477. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  479. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  481. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  483. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  485. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  487. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  488. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  489. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  490. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  491. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  492. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  493. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  494. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  495. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  496. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  497. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  498. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  499. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  500. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  501. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  502. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  503. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  504. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  505. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  506. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  507. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  508. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  509. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  510. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  511. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  512. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  513. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  514. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  515. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  516. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  517. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  518. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  519. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  520. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  521. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  522. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  523. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  524. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  525. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  526. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  527. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  528. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  529. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  530. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  531. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  533. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  534. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  536. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  538. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  539. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  540. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  541. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  542. package/contracts/components/Component.sol +0 -253
  543. package/contracts/components/IProductComponent.sol +0 -40
  544. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  545. package/contracts/instance/Cloneable.sol +0 -51
  546. package/contracts/instance/InstanceAccessManager.sol +0 -527
  547. package/contracts/instance/base/ComponentService.sol +0 -121
  548. package/contracts/instance/base/KeyValueStore.sol +0 -180
  549. package/contracts/instance/base/Lifecycle.sol +0 -109
  550. package/contracts/instance/module/ISetup.sol +0 -33
  551. package/contracts/instance/module/ITreasury.sol +0 -23
  552. package/contracts/instance/service/ApplicationService.sol +0 -350
  553. package/contracts/instance/service/BundleService.sol +0 -431
  554. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  555. package/contracts/instance/service/ClaimService.sol +0 -151
  556. package/contracts/instance/service/DistributionService.sol +0 -435
  557. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  558. package/contracts/instance/service/IClaimService.sol +0 -61
  559. package/contracts/instance/service/IProductService.sol +0 -40
  560. package/contracts/instance/service/PolicyService.sol +0 -362
  561. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  562. package/contracts/instance/service/PoolService.sol +0 -303
  563. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  564. package/contracts/instance/service/ProductService.sol +0 -210
  565. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  566. package/contracts/registry/RegistryAccessManager.sol +0 -216
  567. package/contracts/shared/ContractDeployerLib.sol +0 -72
  568. package/contracts/test/TestFee.sol +0 -25
  569. package/contracts/test/TestRegisterable.sol +0 -18
  570. package/contracts/test/TestRoleId.sol +0 -14
  571. package/contracts/test/TestService.sol +0 -25
  572. package/contracts/test/TestVersion.sol +0 -44
  573. package/contracts/test/TestVersionable.sol +0 -17
  574. package/contracts/test/Usdc.sol +0 -26
  575. package/contracts/types/Amount.sol +0 -60
  576. package/contracts/types/ChainId.sol +0 -38
  577. package/contracts/types/NumberId.sol +0 -52
  578. package/contracts/types/ObjectType.sol +0 -157
  579. package/contracts/types/RoleId.sol +0 -97
  580. /package/contracts/{types → type}/DistributorType.sol +0 -0
  581. /package/contracts/{types → type}/Key32.sol +0 -0
  582. /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -1,35 +1,39 @@
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, 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";
6
10
  import {IRisk} from "../instance/module/IRisk.sol";
7
- import {IApplicationService} from "../instance/service/IApplicationService.sol";
8
- import {IPolicyService} from "../instance/service/IPolicyService.sol";
9
- import {IProductService} from "../instance/service/IProductService.sol";
10
- import {IClaimService} from "../instance/service/IClaimService.sol";
11
+ import {IApplicationService} from "./IApplicationService.sol";
12
+ import {IComponentService} from "../shared/IComponentService.sol";
13
+ import {IPolicyService} from "./IPolicyService.sol";
14
+ import {IProductService} from "./IProductService.sol";
15
+ import {IClaimService} from "./IClaimService.sol";
16
+ import {IPricingService} from "./IPricingService.sol";
11
17
  import {IProductComponent} from "./IProductComponent.sol";
12
- import {NftId, NftIdLib} from "../types/NftId.sol";
13
- import {PRODUCT, APPLICATION, POLICY, CLAIM } from "../types/ObjectType.sol";
14
- import {ReferralId} from "../types/Referral.sol";
15
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
16
- import {Seconds} from "../types/Seconds.sol";
17
- import {StateId} from "../types/StateId.sol";
18
- import {Timestamp} from "../types/Timestamp.sol";
19
- import {Fee} from "../types/Fee.sol";
20
- import {Component} from "./Component.sol";
18
+ import {NftId, NftIdLib} from "../type/NftId.sol";
19
+ import {PayoutId} from "../type/PayoutId.sol";
20
+ import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
21
+ import {ReferralId} from "../type/Referral.sol";
22
+ import {RiskId, RiskIdLib} from "../type/RiskId.sol";
23
+ import {Seconds} from "../type/Seconds.sol";
24
+ import {StateId} from "../type/StateId.sol";
25
+ import {Timestamp} from "../type/Timestamp.sol";
21
26
 
22
27
  import {TokenHandler} from "../shared/TokenHandler.sol";
23
28
 
24
29
  import {InstanceReader} from "../instance/InstanceReader.sol";
25
30
  import {IPolicy} from "../instance/module/IPolicy.sol";
26
- import {ISetup} from "../instance/module/ISetup.sol";
27
31
  import {IComponents} from "../instance/module/IComponents.sol";
28
- import {Pool} from "../components/Pool.sol";
29
- import {Distribution} from "../components/Distribution.sol";
32
+ import {Pool} from "../pool/Pool.sol";
33
+ import {Distribution} from "../distribution/Distribution.sol";
30
34
 
31
35
  abstract contract Product is
32
- Component,
36
+ InstanceLinkedComponent,
33
37
  IProductComponent
34
38
  {
35
39
  // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Product")) - 1)) & ~bytes32(uint256(0xff));
@@ -40,46 +44,43 @@ abstract contract Product is
40
44
  IApplicationService _applicationService;
41
45
  IPolicyService _policyService;
42
46
  IClaimService _claimService;
43
- Pool _pool;
44
- Distribution _distribution;
45
- Fee _initialProductFee;
46
- Fee _initialProcessingFee;
47
- TokenHandler _tokenHandler;
47
+ IPricingService _pricingService;
48
+ IComponentService _componentService;
48
49
  NftId _poolNftId;
49
50
  NftId _distributionNftId;
51
+ Pool _pool;
52
+ Distribution _distribution;
50
53
  }
51
54
 
52
55
  function initializeProduct(
53
56
  address registry,
54
57
  NftId instanceNftId,
58
+ address initialOwner,
55
59
  string memory name,
56
60
  address token,
57
61
  bool isInterceptor,
58
62
  address pool,
59
63
  address distribution,
60
- Fee memory productFee,
61
- Fee memory processingFee,
62
- address initialOwner,
63
- bytes memory registryData // writeonly data that will saved in the object info record of the registry
64
+ bytes memory registryData, // writeonly data that will saved in the object info record of the registry
65
+ bytes memory componentData // writeonly data that will saved in the object info record of the registry
64
66
  )
65
67
  public
66
68
  virtual
67
69
  onlyInitializing()
68
70
  {
69
- initializeComponent(registry, instanceNftId, name, token, PRODUCT(), isInterceptor, initialOwner, registryData);
71
+ initializeInstanceLinkedComponent(registry, instanceNftId, name, token, PRODUCT(), isInterceptor, initialOwner, registryData, componentData);
70
72
 
71
73
  ProductStorage storage $ = _getProductStorage();
72
74
  // TODO add validation
73
- // TODO refactor to go via registry
75
+ // TODO refactor to go via registry ?
74
76
  $._productService = IProductService(_getServiceAddress(PRODUCT()));
75
77
  $._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
76
78
  $._policyService = IPolicyService(_getServiceAddress(POLICY()));
77
79
  $._claimService = IClaimService(_getServiceAddress(CLAIM()));
80
+ $._pricingService = IPricingService(_getServiceAddress(PRICE()));
81
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
78
82
  $._pool = Pool(pool);
79
83
  $._distribution = Distribution(distribution);
80
- $._initialProductFee = productFee;
81
- $._initialProcessingFee = processingFee;
82
- $._tokenHandler = new TokenHandler(token);
83
84
  $._poolNftId = getRegistry().getNftId(pool);
84
85
  $._distributionNftId = getRegistry().getNftId(distribution);
85
86
 
@@ -87,49 +88,25 @@ abstract contract Product is
87
88
  }
88
89
 
89
90
 
90
- function calculatePremium(
91
- uint256 sumInsuredAmount,
92
- RiskId riskId,
93
- Seconds lifetime,
94
- bytes memory applicationData,
95
- NftId bundleNftId,
96
- ReferralId referralId
97
- )
98
- external
99
- view
100
- override
101
- returns (uint256 premiumAmount)
91
+ function register()
92
+ external
93
+ virtual
94
+ onlyOwner()
102
95
  {
103
- IPolicy.Premium memory premium = _getProductStorage()._applicationService.calculatePremium(
104
- getNftId(),
105
- riskId,
106
- sumInsuredAmount,
107
- lifetime,
108
- applicationData,
109
- bundleNftId,
110
- referralId
111
- );
112
- premiumAmount = premium.premiumAmount;
96
+ _getProductStorage()._componentService.registerProduct();
113
97
  }
114
98
 
115
99
 
116
- function calculateNetPremium(
117
- uint256 sumInsuredAmount,
118
- RiskId riskId,
119
- Seconds lifetime,
120
- bytes memory applicationData
100
+ function setFees(
101
+ Fee memory productFee,
102
+ Fee memory processingFee
121
103
  )
122
104
  external
123
- view
124
- virtual override
125
- returns (uint256 netPremiumAmount)
105
+ onlyOwner
106
+ restricted()
107
+ override
126
108
  {
127
- // default 10% of sum insured
128
- return sumInsuredAmount / 10;
129
- }
130
-
131
- function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
132
- return RiskIdLib.toRiskId(riskName);
109
+ _getProductStorage()._componentService.setProductFees(productFee, processingFee);
133
110
  }
134
111
 
135
112
  function _createRisk(
@@ -169,7 +146,7 @@ abstract contract Product is
169
146
  function _createApplication(
170
147
  address applicationOwner,
171
148
  RiskId riskId,
172
- uint256 sumInsuredAmount,
149
+ Amount sumInsuredAmount,
173
150
  Seconds lifetime,
174
151
  NftId bundleNftId,
175
152
  ReferralId referralId,
@@ -189,14 +166,14 @@ abstract contract Product is
189
166
  );
190
167
  }
191
168
 
192
- function _underwrite(
169
+ function _collateralize(
193
170
  NftId policyNftId,
194
171
  bool requirePremiumPayment,
195
172
  Timestamp activateAt
196
173
  )
197
174
  internal
198
175
  {
199
- _getProductStorage()._policyService.underwrite(
176
+ _getProductStorage()._policyService.collateralize(
200
177
  policyNftId,
201
178
  requirePremiumPayment,
202
179
  activateAt);
@@ -229,56 +206,163 @@ abstract contract Product is
229
206
  )
230
207
  internal
231
208
  {
232
- _getProductStorage()._policyService.close(policyNftId);
209
+ _getProductStorage()._policyService.close(
210
+ policyNftId);
233
211
  }
234
212
 
235
- function getPoolNftId() external view override returns (NftId poolNftId) {
236
- return getRegistry().getNftId(address(_getProductStorage()._pool));
213
+ function _submitClaim(
214
+ NftId policyNftId,
215
+ Amount claimAmount,
216
+ bytes memory claimData
217
+ )
218
+ internal
219
+ returns(ClaimId)
220
+ {
221
+ return _getProductStorage()._claimService.submit(
222
+ policyNftId,
223
+ claimAmount,
224
+ claimData);
237
225
  }
238
226
 
239
- function getDistributionNftId() external view override returns (NftId distributionNftId) {
240
- return getRegistry().getNftId(address(_getProductStorage()._distribution));
227
+ function _confirmClaim(
228
+ NftId policyNftId,
229
+ ClaimId claimId,
230
+ Amount confirmedAmount,
231
+ bytes memory data
232
+ )
233
+ internal
234
+ {
235
+ _getProductStorage()._claimService.confirm(
236
+ policyNftId,
237
+ claimId,
238
+ confirmedAmount,
239
+ data);
241
240
  }
242
241
 
243
- // from product component
244
- function setFees(
245
- Fee memory productFee,
246
- Fee memory processingFee
242
+ function _declineClaim(
243
+ NftId policyNftId,
244
+ ClaimId claimId,
245
+ bytes memory data
247
246
  )
248
- external
249
- onlyOwner
250
- restricted()
251
- override
247
+ internal
252
248
  {
253
- _getProductService().setFees(productFee, processingFee);
249
+ _getProductStorage()._claimService.decline(
250
+ policyNftId,
251
+ claimId,
252
+ data);
254
253
  }
255
254
 
256
- function getSetupInfo() public view returns (ISetup.ProductSetupInfo memory setupInfo) {
257
- InstanceReader reader = getInstance().getInstanceReader();
258
- setupInfo = reader.getProductSetupInfo(getNftId());
255
+ function _closeClaim(
256
+ NftId policyNftId,
257
+ ClaimId claimId
258
+ )
259
+ internal
260
+ {
261
+ _getProductStorage()._claimService.close(
262
+ policyNftId,
263
+ claimId);
264
+ }
259
265
 
260
- // fallback to initial setup info (wallet is always != address(0))
261
- if(setupInfo.wallet == address(0)) {
262
- setupInfo = _getInitialSetupInfo();
263
- }
266
+ function _createPayout(
267
+ NftId policyNftId,
268
+ ClaimId claimId,
269
+ Amount amount,
270
+ bytes memory data
271
+ )
272
+ internal
273
+ returns (PayoutId)
274
+ {
275
+ return _getProductStorage()._claimService.createPayout(
276
+ policyNftId,
277
+ claimId,
278
+ amount,
279
+ data);
264
280
  }
265
281
 
266
- function _getInitialSetupInfo() internal view returns (ISetup.ProductSetupInfo memory setupInfo) {
267
- ProductStorage storage $ = _getProductStorage();
282
+ function _processPayout(
283
+ NftId policyNftId,
284
+ PayoutId payoutId
285
+ )
286
+ internal
287
+ {
288
+ _getProductStorage()._claimService.processPayout(
289
+ policyNftId,
290
+ payoutId);
291
+ }
268
292
 
269
- ISetup.DistributionSetupInfo memory distributionSetupInfo = $._distribution.getSetupInfo();
270
- IComponents.PoolInfo memory poolInfo = $._pool.getPoolInfo();
271
-
272
- return ISetup.ProductSetupInfo(
273
- getToken(),
274
- $._tokenHandler,
275
- $._distributionNftId,
276
- $._poolNftId,
277
- $._initialProductFee,
278
- $._initialProcessingFee,
279
- false,
280
- getWallet()
293
+ function calculatePremium(
294
+ Amount sumInsuredAmount,
295
+ RiskId riskId,
296
+ Seconds lifetime,
297
+ bytes memory applicationData,
298
+ NftId bundleNftId,
299
+ ReferralId referralId
300
+ )
301
+ external
302
+ view
303
+ override
304
+ returns (Amount premiumAmount)
305
+ {
306
+ IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
307
+ getNftId(),
308
+ riskId,
309
+ sumInsuredAmount,
310
+ lifetime,
311
+ applicationData,
312
+ bundleNftId,
313
+ referralId
281
314
  );
315
+
316
+ return AmountLib.toAmount(premium.premiumAmount);
317
+ }
318
+
319
+ function calculateNetPremium(
320
+ Amount sumInsuredAmount,
321
+ RiskId riskId,
322
+ Seconds lifetime,
323
+ bytes memory applicationData
324
+ )
325
+ external
326
+ view
327
+ virtual override
328
+ returns (Amount netPremiumAmount)
329
+ {
330
+ // default 10% of sum insured
331
+ return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
332
+ }
333
+
334
+
335
+ function getInitialProductInfo()
336
+ public
337
+ virtual
338
+ view
339
+ returns (IComponents.ProductInfo memory poolInfo)
340
+ {
341
+ ProductStorage storage $ = _getProductStorage();
342
+
343
+ return IComponents.ProductInfo({
344
+ distributionNftId: $._distributionNftId,
345
+ poolNftId: $._poolNftId,
346
+ productFee: FeeLib.zero(),
347
+ processingFee: FeeLib.zero(),
348
+ distributionFee: FeeLib.zero(),
349
+ minDistributionOwnerFee: FeeLib.zero(),
350
+ poolFee: FeeLib.zero(),
351
+ stakingFee: FeeLib.zero(),
352
+ performanceFee: FeeLib.zero()
353
+ });
354
+ }
355
+
356
+ function getPoolNftId() external view override returns (NftId poolNftId) {
357
+ return getRegistry().getNftId(address(_getProductStorage()._pool));
358
+ }
359
+
360
+ function getDistributionNftId() external view override returns (NftId distributionNftId) {
361
+ return getRegistry().getNftId(address(_getProductStorage()._distribution));
362
+ }
363
+
364
+ function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
365
+ return RiskIdLib.toRiskId(riskName);
282
366
  }
283
367
 
284
368
  function _getProductStorage() private pure returns (ProductStorage storage $) {
@@ -290,4 +374,4 @@ abstract contract Product is
290
374
  function _getProductService() internal view returns (IProductService) {
291
375
  return _getProductStorage()._productService;
292
376
  }
293
- }
377
+ }
@@ -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
  /**