@etherisc/gif-next 0.0.2-b51dcb9-674 → 0.0.2-b51e065-216

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 (732) hide show
  1. package/README.md +133 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +280 -331
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +271 -284
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → distribution/IDistributionService.sol/IDistributionService.json} +615 -707
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1472 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2045 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1423 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1639 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2484 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +588 -95
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +516 -56
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +587 -218
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1849 -772
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +535 -192
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +215 -99
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1776 -780
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  116. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → oracle/IOracleService.sol/IOracleService.json} +275 -256
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  118. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +253 -253
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/BasicPool.sol/BasicPool.json} +440 -293
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  136. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +750 -378
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +446 -485
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1552 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +894 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IApplicationService.sol/IApplicationService.json} +305 -236
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service → product}/IPricingService.sol/IPricingService.json +218 -76
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IRiskService.sol/IRiskService.json} +222 -208
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  180. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +496 -31
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +320 -106
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  195. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/Registry.sol/Registry.json +984 -128
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +391 -243
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +212 -96
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -141
  215. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  216. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +281 -207
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1535 -0
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +854 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  230. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +130 -136
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  232. package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/IComponentService.sol/IComponentService.json} +516 -748
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  236. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  238. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +42 -1
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +173 -0
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +103 -2
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +47 -57
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +148 -90
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  266. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Service.sol/Service.json +96 -102
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +617 -8
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1646 -0
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1196 -0
  278. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.json +2054 -0
  280. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +842 -0
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1425 -0
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +782 -0
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +265 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  336. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  339. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  342. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  346. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  347. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  352. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  353. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  354. package/contracts/accounting/AccountingService.sol +274 -0
  355. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  356. package/contracts/accounting/IAccountingService.sol +47 -0
  357. package/contracts/authorization/AccessAdmin.sol +780 -0
  358. package/contracts/authorization/AccessAdminLib.sol +396 -0
  359. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  360. package/contracts/authorization/Authorization.sol +169 -0
  361. package/contracts/authorization/IAccess.sol +67 -0
  362. package/contracts/authorization/IAccessAdmin.sol +144 -0
  363. package/contracts/authorization/IAuthorization.sol +27 -0
  364. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  365. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  366. package/contracts/distribution/BasicDistribution.sol +141 -0
  367. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  368. package/contracts/distribution/Distribution.sol +247 -0
  369. package/contracts/distribution/DistributionService.sol +448 -0
  370. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  371. package/contracts/distribution/IDistributionComponent.sol +45 -0
  372. package/contracts/distribution/IDistributionService.sol +115 -0
  373. package/contracts/examples/fire/DamageLevel.sol +59 -0
  374. package/contracts/examples/fire/FirePool.sol +86 -0
  375. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  376. package/contracts/examples/fire/FireProduct.sol +433 -0
  377. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  378. package/contracts/examples/fire/FireUSD.sol +26 -0
  379. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  380. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  381. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  382. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  383. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  384. package/contracts/examples/unpermissioned/SimpleProduct.sol +391 -0
  385. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  386. package/contracts/instance/BundleSet.sol +130 -0
  387. package/contracts/instance/IInstance.sol +117 -49
  388. package/contracts/instance/IInstanceService.sol +81 -38
  389. package/contracts/instance/Instance.sol +251 -134
  390. package/contracts/instance/InstanceAdmin.sol +383 -0
  391. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  392. package/contracts/instance/InstanceReader.sol +507 -243
  393. package/contracts/instance/InstanceService.sol +387 -196
  394. package/contracts/instance/InstanceServiceManager.sol +14 -29
  395. package/contracts/instance/InstanceStore.sol +157 -71
  396. package/contracts/instance/RiskSet.sol +126 -0
  397. package/contracts/instance/base/BalanceStore.sol +121 -0
  398. package/contracts/instance/base/Cloneable.sol +28 -0
  399. package/contracts/instance/base/ObjectCounter.sol +20 -0
  400. package/contracts/instance/base/ObjectLifecycle.sol +108 -0
  401. package/contracts/instance/base/ObjectSet.sol +77 -0
  402. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  403. package/contracts/instance/module/IBundle.sol +9 -11
  404. package/contracts/instance/module/IComponents.sol +44 -23
  405. package/contracts/instance/module/IDistribution.sol +25 -13
  406. package/contracts/instance/module/IPolicy.sol +64 -36
  407. package/contracts/instance/module/IRisk.sol +6 -1
  408. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  409. package/contracts/oracle/BasicOracle.sol +45 -0
  410. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  411. package/contracts/oracle/IOracle.sol +41 -0
  412. package/contracts/oracle/IOracleComponent.sol +33 -0
  413. package/contracts/oracle/IOracleService.sol +66 -0
  414. package/contracts/oracle/Oracle.sol +154 -0
  415. package/contracts/oracle/OracleService.sol +310 -0
  416. package/contracts/oracle/OracleServiceManager.sol +39 -0
  417. package/contracts/pool/BasicPool.sol +162 -0
  418. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  419. package/contracts/pool/BundleService.sol +386 -0
  420. package/contracts/pool/BundleServiceManager.sol +39 -0
  421. package/contracts/pool/IBundleService.sol +116 -0
  422. package/contracts/pool/IPoolComponent.sol +62 -0
  423. package/contracts/pool/IPoolService.sol +170 -0
  424. package/contracts/pool/Pool.sol +333 -0
  425. package/contracts/pool/PoolLib.sol +341 -0
  426. package/contracts/pool/PoolService.sol +614 -0
  427. package/contracts/pool/PoolServiceManager.sol +39 -0
  428. package/contracts/product/ApplicationService.sol +327 -0
  429. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  430. package/contracts/product/BasicProduct.sol +49 -0
  431. package/contracts/product/BasicProductAuthorization.sol +63 -0
  432. package/contracts/product/ClaimService.sol +641 -0
  433. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  434. package/contracts/{instance/service → product}/IApplicationService.sol +37 -11
  435. package/contracts/{instance/service → product}/IClaimService.sol +64 -19
  436. package/contracts/product/IPolicyService.sol +102 -0
  437. package/contracts/product/IPricingService.sol +40 -0
  438. package/contracts/product/IProductComponent.sol +62 -0
  439. package/contracts/product/IRiskService.sol +48 -0
  440. package/contracts/product/PolicyService.sol +645 -0
  441. package/contracts/product/PolicyServiceLib.sol +139 -0
  442. package/contracts/product/PolicyServiceManager.sol +39 -0
  443. package/contracts/product/PricingService.sol +306 -0
  444. package/contracts/product/PricingServiceManager.sol +39 -0
  445. package/contracts/product/Product.sol +483 -0
  446. package/contracts/product/RiskService.sol +190 -0
  447. package/contracts/product/RiskServiceManager.sol +39 -0
  448. package/contracts/registry/ChainNft.sol +79 -40
  449. package/contracts/registry/IRegistry.sol +104 -30
  450. package/contracts/registry/IRegistryService.sol +34 -38
  451. package/contracts/registry/IRelease.sol +29 -0
  452. package/contracts/registry/ITransferInterceptor.sol +1 -2
  453. package/contracts/registry/Registry.sol +466 -197
  454. package/contracts/registry/RegistryAdmin.sol +188 -0
  455. package/contracts/registry/RegistryAuthorization.sol +284 -0
  456. package/contracts/registry/RegistryService.sol +90 -135
  457. package/contracts/registry/RegistryServiceManager.sol +23 -32
  458. package/contracts/registry/ReleaseAdmin.sol +195 -0
  459. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  460. package/contracts/registry/ReleaseRegistry.sol +520 -0
  461. package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
  462. package/contracts/registry/TokenRegistry.sol +263 -65
  463. package/contracts/shared/Component.sol +210 -0
  464. package/contracts/shared/ComponentService.sol +679 -0
  465. package/contracts/shared/ComponentServiceManager.sol +38 -0
  466. package/contracts/shared/ContractLib.sol +311 -0
  467. package/contracts/shared/IComponent.sol +58 -0
  468. package/contracts/shared/IComponentService.sol +111 -0
  469. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  470. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  471. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  472. package/contracts/shared/INftOwnable.sol +6 -2
  473. package/contracts/shared/IPolicyHolder.sol +16 -21
  474. package/contracts/shared/IRegisterable.sol +22 -1
  475. package/contracts/shared/IService.sol +12 -7
  476. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  477. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  478. package/contracts/shared/KeyValueStore.sol +131 -0
  479. package/contracts/shared/Lifecycle.sol +88 -0
  480. package/contracts/shared/NftIdSet.sol +65 -0
  481. package/contracts/shared/NftOwnable.sol +36 -25
  482. package/contracts/shared/PolicyHolder.sol +21 -52
  483. package/contracts/shared/Registerable.sol +55 -24
  484. package/contracts/shared/RegistryLinked.sol +9 -14
  485. package/contracts/shared/Service.sol +36 -41
  486. package/contracts/shared/TokenHandler.sol +320 -13
  487. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  488. package/contracts/staking/IStaking.sol +195 -0
  489. package/contracts/staking/IStakingService.sol +170 -0
  490. package/contracts/staking/Staking.sol +605 -0
  491. package/contracts/staking/StakingLib.sol +281 -0
  492. package/contracts/staking/StakingLifecycle.sol +23 -0
  493. package/contracts/staking/StakingManager.sol +52 -0
  494. package/contracts/staking/StakingReader.sol +199 -0
  495. package/contracts/staking/StakingService.sol +468 -0
  496. package/contracts/staking/StakingServiceManager.sol +45 -0
  497. package/contracts/staking/StakingStore.sol +606 -0
  498. package/contracts/staking/TargetManagerLib.sol +211 -0
  499. package/contracts/{types → type}/AddressSet.sol +1 -1
  500. package/contracts/{types → type}/Amount.sol +44 -3
  501. package/contracts/{types → type}/Blocknumber.sol +26 -3
  502. package/contracts/{types → type}/ClaimId.sol +6 -1
  503. package/contracts/{types → type}/Fee.sol +22 -21
  504. package/contracts/{types → type}/Key32.sol +2 -2
  505. package/contracts/type/Key32Set.sol +62 -0
  506. package/contracts/{types → type}/NftId.sol +21 -16
  507. package/contracts/{types → type}/NftIdSet.sol +2 -2
  508. package/contracts/type/ObjectType.sol +307 -0
  509. package/contracts/{types → type}/PayoutId.sol +10 -10
  510. package/contracts/{types → type}/Referral.sol +2 -1
  511. package/contracts/type/RequestId.sol +75 -0
  512. package/contracts/type/RiskId.sol +75 -0
  513. package/contracts/type/RoleId.sol +180 -0
  514. package/contracts/type/Seconds.sol +105 -0
  515. package/contracts/type/Selector.sol +107 -0
  516. package/contracts/{types → type}/StateId.sol +41 -2
  517. package/contracts/type/String.sol +65 -0
  518. package/contracts/{types → type}/Timestamp.sol +16 -7
  519. package/contracts/type/UFixed.sol +262 -0
  520. package/contracts/{types → type}/Version.sol +58 -7
  521. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  522. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  523. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  524. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  525. package/package.json +12 -8
  526. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  527. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  528. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  529. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  532. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  533. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  534. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  536. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  537. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  539. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  540. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  541. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  542. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  543. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  546. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  548. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  549. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  550. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  552. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  553. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  555. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -918
  557. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -648
  559. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1288
  561. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -696
  563. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1384
  565. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -752
  567. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1556
  569. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  571. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +0 -493
  573. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -840
  577. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -442
  582. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1281
  584. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -740
  586. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  587. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1622
  588. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  589. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -708
  590. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +0 -4
  591. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +0 -1004
  592. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +0 -688
  594. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  596. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  597. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  598. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  599. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  600. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  601. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  602. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  603. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  604. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  605. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  606. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  607. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  608. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  609. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  610. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  611. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  612. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  613. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  615. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  616. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  617. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  618. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  619. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  620. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  621. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  622. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  623. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  624. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  625. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  626. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  627. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  628. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  629. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  630. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  631. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  632. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -281
  634. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  636. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  638. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  640. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  642. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -312
  644. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  645. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  646. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  648. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  649. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  650. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  652. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  654. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  656. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  658. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  660. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  662. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  663. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  664. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  665. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  666. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  667. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  669. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  671. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  673. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  675. package/contracts/components/Component.sol +0 -272
  676. package/contracts/components/Distribution.sol +0 -285
  677. package/contracts/components/IComponent.sol +0 -90
  678. package/contracts/components/IDistributionComponent.sol +0 -71
  679. package/contracts/components/IPoolComponent.sol +0 -114
  680. package/contracts/components/IProductComponent.sol +0 -41
  681. package/contracts/components/Pool.sol +0 -302
  682. package/contracts/components/Product.sol +0 -375
  683. package/contracts/instance/BundleManager.sol +0 -126
  684. package/contracts/instance/Cloneable.sol +0 -51
  685. package/contracts/instance/InstanceAccessManager.sol +0 -541
  686. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  687. package/contracts/instance/ObjectManager.sol +0 -82
  688. package/contracts/instance/base/ComponentService.sol +0 -148
  689. package/contracts/instance/base/KeyValueStore.sol +0 -149
  690. package/contracts/instance/base/Lifecycle.sol +0 -120
  691. package/contracts/instance/module/IAccess.sol +0 -54
  692. package/contracts/instance/module/ISetup.sol +0 -33
  693. package/contracts/instance/module/ITreasury.sol +0 -23
  694. package/contracts/instance/service/ApplicationService.sol +0 -186
  695. package/contracts/instance/service/BundleService.sol +0 -382
  696. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  697. package/contracts/instance/service/ClaimService.sol +0 -437
  698. package/contracts/instance/service/DistributionService.sol +0 -348
  699. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  700. package/contracts/instance/service/IBundleService.sol +0 -118
  701. package/contracts/instance/service/IDistributionService.sol +0 -87
  702. package/contracts/instance/service/IPolicyService.sol +0 -80
  703. package/contracts/instance/service/IPoolService.sol +0 -114
  704. package/contracts/instance/service/IPricingService.sol +0 -37
  705. package/contracts/instance/service/IProductService.sol +0 -40
  706. package/contracts/instance/service/PolicyService.sol +0 -376
  707. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  708. package/contracts/instance/service/PoolService.sol +0 -403
  709. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  710. package/contracts/instance/service/PricingService.sol +0 -275
  711. package/contracts/instance/service/PricingServiceManager.sol +0 -51
  712. package/contracts/instance/service/ProductService.sol +0 -210
  713. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  714. package/contracts/registry/RegistryAccessManager.sol +0 -216
  715. package/contracts/registry/ReleaseManager.sol +0 -324
  716. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  717. package/contracts/shared/ContractDeployerLib.sol +0 -72
  718. package/contracts/test/TestFee.sol +0 -25
  719. package/contracts/test/TestRegisterable.sol +0 -18
  720. package/contracts/test/TestRoleId.sol +0 -14
  721. package/contracts/test/TestService.sol +0 -25
  722. package/contracts/test/TestToken.sol +0 -26
  723. package/contracts/test/TestVersion.sol +0 -44
  724. package/contracts/test/TestVersionable.sol +0 -17
  725. package/contracts/types/ChainId.sol +0 -38
  726. package/contracts/types/NumberId.sol +0 -52
  727. package/contracts/types/ObjectType.sol +0 -161
  728. package/contracts/types/RiskId.sol +0 -43
  729. package/contracts/types/RoleId.sol +0 -97
  730. package/contracts/types/Seconds.sol +0 -54
  731. package/contracts/types/UFixed.sol +0 -326
  732. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -2,33 +2,33 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
- import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
-
7
- import {NftId} from "../../contracts/types/NftId.sol";
8
- import {RoleId} from "../types/RoleId.sol";
9
- import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../types/RoleId.sol";
10
- import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../types/ObjectType.sol";
11
-
12
- import {Service} from "../shared/Service.sol";
13
- import {IService} from "../shared/IService.sol";
14
- import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
15
-
16
- import {IDistributionComponent} from "../components/IDistributionComponent.sol";
17
- import {IPoolComponent} from "../components/IPoolComponent.sol";
18
- import {IProductComponent} from "../components/IProductComponent.sol";
19
5
 
6
+ import {IAccess} from "../authorization/IAccess.sol";
7
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
8
+ import {IComponentService} from "../shared/IComponentService.sol";
9
+ import {IInstance} from "./IInstance.sol";
10
+ import {IInstanceService} from "./IInstanceService.sol";
20
11
  import {IRegistry} from "../registry/IRegistry.sol";
21
12
  import {IRegistryService} from "../registry/IRegistryService.sol";
22
- import {ChainNft} from "../registry/ChainNft.sol";
13
+ import {IStakingService} from "../staking/IStakingService.sol";
23
14
 
15
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
16
+ import {Amount} from "../type/Amount.sol";
17
+ import {BundleSet} from "./BundleSet.sol";
24
18
  import {Instance} from "./Instance.sol";
25
- import {IInstance} from "./IInstance.sol";
26
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
27
- import {IInstanceService} from "./IInstanceService.sol";
19
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
28
20
  import {InstanceReader} from "./InstanceReader.sol";
29
- import {BundleManager} from "./BundleManager.sol";
30
21
  import {InstanceStore} from "./InstanceStore.sol";
31
- import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
22
+ import {NftId} from "../type/NftId.sol";
23
+ import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
24
+ import {RiskSet} from "./RiskSet.sol";
25
+ import {RoleId} from "../type/RoleId.sol";
26
+ import {Seconds} from "../type/Seconds.sol";
27
+ import {Service} from "../shared/Service.sol";
28
+ import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
29
+ import {UFixed} from "../type/UFixed.sol";
30
+ import {VersionPart} from "../type/Version.sol";
31
+
32
32
 
33
33
  contract InstanceService is
34
34
  Service,
@@ -39,140 +39,323 @@ contract InstanceService is
39
39
  bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
40
40
 
41
41
  IRegistryService internal _registryService;
42
- address internal _masterOzAccessManager;
43
- address internal _masterInstanceAccessManager;
42
+ IStakingService internal _stakingService;
43
+ IComponentService internal _componentService;
44
+
45
+ address internal _masterAccessManager;
46
+ address internal _masterInstanceAdmin;
44
47
  address internal _masterInstance;
45
48
  address internal _masterInstanceReader;
46
- address internal _masterInstanceBundleManager;
49
+ address internal _masterInstanceBundleSet;
50
+ address internal _masterInstanceRiskSet;
47
51
  address internal _masterInstanceStore;
48
52
 
49
- modifier onlyInstanceOwner(NftId instanceNftId) {
50
- if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
51
- revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
52
- }
53
+
54
+ modifier onlyInstance() {
55
+ _checkInstance(msg.sender, getRelease());
53
56
  _;
54
57
  }
55
- // TODO check service domain?
56
- // TODO check release version?
57
- modifier onlyRegisteredService() {
58
- if (! getRegistry().isRegisteredService(msg.sender)) {
59
- revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
60
- }
61
- _;
58
+
59
+
60
+ /// @inheritdoc IInstanceService
61
+ function createRole(
62
+ string memory roleName,
63
+ RoleId adminRoleId,
64
+ uint32 maxMemberCount
65
+ )
66
+ external
67
+ restricted()
68
+ onlyInstance()
69
+ returns (RoleId roleId)
70
+ {
71
+ IInstance instance = IInstance(msg.sender);
72
+ roleId = instance.getInstanceAdmin().createRole(
73
+ roleName,
74
+ adminRoleId,
75
+ maxMemberCount);
62
76
  }
63
- // TODO check release version?
64
- modifier onlyComponent() {
65
- if (! getRegistry().isRegisteredComponent(msg.sender)) {
66
- revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
67
- }
68
- _;
77
+
78
+
79
+ /// @inheritdoc IInstanceService
80
+ function setRoleActive(RoleId roleId, bool active)
81
+ external
82
+ restricted()
83
+ onlyInstance()
84
+ {
85
+ IInstance instance = IInstance(msg.sender);
86
+ instance.getInstanceAdmin().setRoleActive(roleId, active);
87
+ }
88
+
89
+
90
+ /// @inheritdoc IInstanceService
91
+ function grantRole(RoleId roleId, address account)
92
+ external
93
+ restricted()
94
+ onlyInstance()
95
+ {
96
+ IInstance instance = IInstance(msg.sender);
97
+ instance.getInstanceAdmin().grantRole(roleId, account);
98
+ }
99
+
100
+
101
+ /// @inheritdoc IInstanceService
102
+ function revokeRole(RoleId roleId, address account)
103
+ external
104
+ restricted()
105
+ onlyInstance()
106
+ {
107
+ IInstance instance = IInstance(msg.sender);
108
+ instance.getInstanceAdmin().revokeRole(roleId, account);
69
109
  }
70
110
 
71
- function createInstanceClone()
111
+
112
+ /// @inheritdoc IInstanceService
113
+ function createTarget(address target, string memory name)
114
+ external
115
+ restricted()
116
+ onlyInstance()
117
+ returns (RoleId contractRoleId)
118
+ {
119
+ IInstance instance = IInstance(msg.sender);
120
+ return instance.getInstanceAdmin().createTarget(target, name);
121
+ }
122
+
123
+
124
+ /// @inheritdoc IInstanceService
125
+ function authorizeFunctions(
126
+ address target,
127
+ RoleId roleId,
128
+ IAccess.FunctionInfo[] memory functions
129
+ )
130
+ external
131
+ restricted()
132
+ onlyInstance()
133
+ {
134
+ IInstance instance = IInstance(msg.sender);
135
+ return instance.getInstanceAdmin().authorizeFunctions(target, roleId, functions);
136
+ }
137
+
138
+
139
+ /// @inheritdoc IInstanceService
140
+ function unauthorizeFunctions(
141
+ address target,
142
+ IAccess.FunctionInfo[] memory functions
143
+ )
144
+ external
145
+ restricted()
146
+ onlyInstance()
147
+ {
148
+ IInstance instance = IInstance(msg.sender);
149
+ return instance.getInstanceAdmin().unauthorizeFunctions(target, functions);
150
+ }
151
+
152
+
153
+ /// @inheritdoc IInstanceService
154
+ function setTargetLocked(address target, bool locked)
155
+ external
156
+ virtual
157
+ restricted()
158
+ onlyInstance()
159
+ {
160
+ address instanceAddress = msg.sender;
161
+ IInstance(instanceAddress).getInstanceAdmin().setTargetLocked(target, locked);
162
+ }
163
+
164
+
165
+ /// @inheritdoc IInstanceService
166
+ function setInstanceLocked(bool locked)
167
+ external
168
+ virtual
169
+ restricted()
170
+ onlyInstance()
171
+ {
172
+ address instanceAddress = msg.sender;
173
+ IInstance(instanceAddress).getInstanceAdmin().setInstanceLocked(locked);
174
+
175
+ emit LogInstanceServiceInstanceLocked(
176
+ getRegistry().getNftIdForAddress(instanceAddress),
177
+ locked);
178
+ }
179
+
180
+
181
+ /// @inheritdoc IInstanceService
182
+ function createInstance(bool allowAnyToken)
72
183
  external
184
+ virtual
185
+ restricted()
73
186
  returns (
74
- Instance clonedInstance,
75
- NftId clonedInstanceNftId
187
+ IInstance instance,
188
+ NftId instanceNftId
76
189
  )
77
190
  {
191
+ // tx sender will become instance owner
78
192
  address instanceOwner = msg.sender;
79
- AccessManagerUpgradeableInitializeable clonedOzAccessManager = AccessManagerUpgradeableInitializeable(
80
- Clones.clone(_masterOzAccessManager));
81
193
 
82
- // initially grants ADMIN_ROLE to this (being the instance service).
83
- // This will allow the instance service to bootstrap the authorizations of the instance.
84
- // Instance service will not use oz access manager directlly but through instance access manager instead
85
- // Instance service will renounce ADMIN_ROLE when bootstraping is finished
86
- clonedOzAccessManager.initialize(address(this));
194
+ // create instance admin and instance
195
+ InstanceAdmin instanceAdmin = _cloneNewInstanceAdmin();
196
+ instance = _createInstance(instanceAdmin, instanceOwner, allowAnyToken);
197
+
198
+ // register cloned instance with registry
199
+ instanceNftId = _registryService.registerInstance(
200
+ instance, instanceOwner).nftId;
201
+
202
+ // MUST be set after instance is set up and registered
203
+ IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
204
+ instanceAdmin.completeSetup(
205
+ address(getRegistry()),
206
+ address(instanceAuthorization),
207
+ getRelease(),
208
+ address(instance));
209
+
210
+ // hard checks for newly cloned instance
211
+ assert(address(instance.getRegistry()) == address(getRegistry()));
212
+ assert(instance.getRelease() == getRelease());
213
+
214
+ // register cloned instance as staking target
215
+ _stakingService.createInstanceTarget(
216
+ instanceNftId,
217
+ TargetManagerLib.getDefaultLockingPeriod(),
218
+ TargetManagerLib.getDefaultRewardRate());
219
+
220
+ emit LogInstanceServiceInstanceCreated(
221
+ instanceNftId,
222
+ address(instance));
223
+ }
87
224
 
88
- clonedInstance = Instance(Clones.clone(_masterInstance));
89
- clonedInstance.initialize(
90
- address(clonedOzAccessManager),
91
- address(getRegistry()),
92
- instanceOwner);
93
- // initialize and set before instance reader
94
- InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
95
- clonedInstanceStore.initialize(address(clonedInstance));
96
- clonedInstance.setInstanceStore(clonedInstanceStore);
97
-
98
- InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
99
- clonedInstanceReader.initialize(address(clonedInstance));
100
- clonedInstance.setInstanceReader(clonedInstanceReader);
101
-
102
- BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
103
- clonedBundleManager.initialize(address(clonedInstance));
104
- clonedInstance.setBundleManager(clonedBundleManager);
105
-
106
- InstanceAccessManager clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
107
- clonedOzAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAccessManager), 0);
108
- clonedInstanceAccessManager.initialize(address(clonedInstance));
109
- clonedInstance.setInstanceAccessManager(clonedInstanceAccessManager);
110
-
111
- // TODO amend setters with instance specific , policy manager ...
112
-
113
- // TODO library does external calls -> but it is registry and access manager -> find out is it best practice
114
- InstanceAuthorizationsLib.grantInitialAuthorizations(
115
- clonedInstanceAccessManager,
116
- clonedInstance,
117
- clonedBundleManager,
118
- clonedInstanceStore,
119
- instanceOwner,
120
- getRegistry(),
121
- getVersion().toMajorPart());
122
225
 
123
- clonedOzAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
226
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod)
227
+ external
228
+ virtual
229
+ restricted()
230
+ onlyInstance()
231
+ {
232
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
233
+ _stakingService.setInstanceLockingPeriod(
234
+ instanceNftId,
235
+ stakeLockingPeriod);
236
+ }
237
+
238
+
239
+ function setStakingRewardRate(UFixed rewardRate)
240
+ external
241
+ virtual
242
+ restricted()
243
+ onlyInstance()
244
+ {
245
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
246
+ _stakingService.setInstanceRewardRate(
247
+ instanceNftId,
248
+ rewardRate);
249
+ }
250
+
251
+ function setStakingMaxAmount(Amount maxStakedAmount)
252
+ external
253
+ virtual
254
+ restricted()
255
+ onlyInstance()
256
+ {
257
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
258
+ _stakingService.setInstanceMaxStakedAmount(
259
+ instanceNftId,
260
+ maxStakedAmount);
261
+ }
262
+
263
+
264
+ function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
265
+ external
266
+ virtual
267
+ restricted()
268
+ onlyInstance()
269
+ {
270
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
271
+ _stakingService.refillInstanceRewardReserves(
272
+ instanceNftId,
273
+ rewardProvider,
274
+ dipAmount);
275
+ }
276
+
277
+
278
+ function withdrawStakingRewardReserves(Amount dipAmount)
279
+ external
280
+ virtual
281
+ restricted()
282
+ onlyInstance()
283
+ returns (Amount newBalance)
284
+ {
285
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
286
+ newBalance = _stakingService.withdrawInstanceRewardReserves(
287
+ instanceNftId,
288
+ dipAmount);
289
+ }
124
290
 
125
- IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
126
- clonedInstanceNftId = info.nftId;
127
291
 
128
- emit LogInstanceCloned(
129
- address(clonedOzAccessManager),
130
- address(clonedInstanceAccessManager),
131
- address(clonedInstance),
132
- address(clonedInstanceStore),
133
- address(clonedBundleManager),
134
- address(clonedInstanceReader),
135
- clonedInstanceNftId);
292
+ function upgradeInstanceReader()
293
+ external
294
+ virtual
295
+ restricted()
296
+ onlyInstance()
297
+ {
298
+ address instanceAddress = msg.sender;
299
+ IInstance instance = IInstance(msg.sender);
300
+
301
+ InstanceReader upgradedInstanceReaderClone = InstanceReader(
302
+ Clones.clone(address(_masterInstanceReader)));
303
+
304
+ upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
305
+ instance.setInstanceReader(upgradedInstanceReaderClone);
306
+
307
+ emit LogInstanceServiceInstanceReaderUpgraded(
308
+ getRegistry().getNftIdForAddress(instanceAddress),
309
+ address(upgradedInstanceReaderClone));
136
310
  }
137
311
 
312
+
138
313
  function setAndRegisterMasterInstance(address instanceAddress)
139
- external
140
- onlyOwner
141
- returns(NftId masterInstanceNftId)
314
+ external
315
+ virtual
316
+ onlyOwner()
317
+ returns(NftId masterInstanceNftId)
142
318
  {
143
319
  if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
144
- if(_masterOzAccessManager != address(0)) { revert ErrorInstanceServiceMasterOzAccessManagerAlreadySet(); }
145
- if(_masterInstanceAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
146
- if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
147
-
320
+ if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
321
+ if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
322
+ if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
148
323
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
149
324
 
150
325
  IInstance instance = IInstance(instanceAddress);
151
- InstanceAccessManager instanceAccessManager = instance.getInstanceAccessManager();
152
- address instanceAccessManagerAddress = address(instanceAccessManager);
326
+ address accessManagerAddress = instance.authority();
327
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
328
+ address instanceAdminAddress = address(instanceAdmin);
153
329
  InstanceReader instanceReader = instance.getInstanceReader();
154
330
  address instanceReaderAddress = address(instanceReader);
155
- BundleManager bundleManager = instance.getBundleManager();
156
- address bundleManagerAddress = address(bundleManager);
331
+ BundleSet bundleSet = instance.getBundleSet();
332
+ address bundleSetAddress = address(bundleSet);
333
+ RiskSet riskSet = instance.getRiskSet();
334
+ address riskSetAddress = address(riskSet);
157
335
  InstanceStore instanceStore = instance.getInstanceStore();
158
336
  address instanceStoreAddress = address(instanceStore);
159
337
 
160
- if(instanceAccessManagerAddress == address(0)) { revert ErrorInstanceServiceInstanceAccessManagerZero(); }
338
+ if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
339
+ if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
161
340
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
162
- if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
341
+ if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
342
+ if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
163
343
  if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
164
344
 
165
- if(instance.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
166
- if(bundleManager.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
167
- if(instanceStore.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
168
- if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
345
+ if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
346
+ if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
347
+ if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
348
+ if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
349
+ if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
350
+ if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
169
351
  if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
170
352
 
171
- _masterOzAccessManager = instance.authority();
172
- _masterInstanceAccessManager = instanceAccessManagerAddress;
353
+ _masterAccessManager = accessManagerAddress;
354
+ _masterInstanceAdmin = instanceAdminAddress;
173
355
  _masterInstance = instanceAddress;
174
356
  _masterInstanceReader = instanceReaderAddress;
175
- _masterInstanceBundleManager = bundleManagerAddress;
357
+ _masterInstanceBundleSet = bundleSetAddress;
358
+ _masterInstanceRiskSet = riskSetAddress;
176
359
  _masterInstanceStore = instanceStoreAddress;
177
360
 
178
361
  IInstance masterInstance = IInstance(_masterInstance);
@@ -180,7 +363,12 @@ contract InstanceService is
180
363
  masterInstanceNftId = info.nftId;
181
364
  }
182
365
 
183
- function setMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
366
+
367
+ function upgradeMasterInstanceReader(address instanceReaderAddress)
368
+ external
369
+ virtual
370
+ onlyOwner
371
+ {
184
372
  if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
185
373
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
186
374
  if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
@@ -189,120 +377,123 @@ contract InstanceService is
189
377
  if(instanceReader.getInstance() != IInstance(_masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
190
378
 
191
379
  _masterInstanceReader = instanceReaderAddress;
380
+
381
+ emit LogInstanceServiceMasterInstanceReaderUpgraded(
382
+ getRegistry().getNftIdForAddress(_masterInstance),
383
+ instanceReaderAddress);
192
384
  }
193
385
 
194
- function upgradeInstanceReader(NftId instanceNftId)
195
- external
196
- onlyInstanceOwner(instanceNftId)
197
- {
198
- IRegistry registry = getRegistry();
199
- IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
200
- Instance instance = Instance(instanceInfo.objectAddress);
201
-
202
- InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
203
- upgradedInstanceReaderClone.initialize(address(instance));
204
- instance.setInstanceReader(upgradedInstanceReaderClone);
386
+ function getMasterInstanceReader() external virtual view returns (address) {
387
+ return _masterInstanceReader;
205
388
  }
206
389
 
390
+ //--- internal functions --------------------------------------------------------//
207
391
 
208
- // all gif targets MUST be childs of instanceNftId
209
- function createGifTarget(
210
- NftId instanceNftId,
211
- address targetAddress,
212
- string memory targetName,
213
- bytes4[][] memory selectors,
214
- RoleId[] memory roles
215
- )
216
- external
217
- onlyRegisteredService
392
+ /// @dev create new cloned instance admin
393
+ /// function used to setup a new instance
394
+ function _cloneNewInstanceAdmin()
395
+ internal
396
+ virtual
397
+ returns (InstanceAdmin clonedAdmin)
218
398
  {
219
- (
220
- IInstance instance, // or instanceInfo
221
- // or targetInfo
222
- ) = _validateInstanceAndComponent(instanceNftId, targetAddress);
223
-
224
- InstanceAccessManager accessManager = instance.getInstanceAccessManager();
225
- accessManager.createGifTarget(targetAddress, targetName);
226
- // set proposed target config
227
- // TODO restriction: gif targets are set only once and only here?
228
- // assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
229
- for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++)
230
- {
231
- accessManager.setCoreTargetFunctionRole(targetName, selectors[roleIdx], roles[roleIdx]);
232
- }
233
- }
399
+ // clone instance specific access manager
400
+ AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
401
+ Clones.clone(
402
+ InstanceAdmin(_masterInstanceAdmin).authority()));
403
+
404
+ // set up the instance admin
405
+ clonedAdmin = InstanceAdmin(
406
+ Clones.clone(_masterInstanceAdmin));
234
407
 
408
+ clonedAdmin.initialize(
409
+ address(clonedAccessManager),
410
+ "InstanceAdmin");
411
+ }
235
412
 
236
- // TODO called by component, but target can be component helper...so needs target name
237
- // TODO check that targetName associated with component...how???
238
- function setComponentLocked(bool locked) onlyComponent external {
239
413
 
240
- address componentAddress = msg.sender;
241
- IRegistry registry = getRegistry();
242
- NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
243
-
244
- IInstance instance = IInstance(
245
- registry.getObjectInfo(
246
- instanceNftId).objectAddress);
414
+ /// @dev create new cloned instance
415
+ /// function used to setup a new instance
416
+ function _createInstance(
417
+ InstanceAdmin instanceAdmin,
418
+ address instanceOwner,
419
+ bool allowAnyToken
420
+ )
421
+ internal
422
+ virtual
423
+ returns (IInstance)
424
+ {
425
+ // clone instance
426
+ Instance clonedInstance = Instance(Clones.clone(_masterInstance));
427
+ clonedInstance.initialize(
428
+ instanceAdmin,
429
+ InstanceStore(Clones.clone(address(_masterInstanceStore))),
430
+ BundleSet(Clones.clone(_masterInstanceBundleSet)),
431
+ RiskSet(Clones.clone(_masterInstanceRiskSet)),
432
+ InstanceReader(Clones.clone(address(_masterInstanceReader))),
433
+ getRegistry(),
434
+ getRelease(),
435
+ instanceOwner,
436
+ allowAnyToken);
247
437
 
248
- instance.getInstanceAccessManager().setTargetLockedByService(
249
- componentAddress,
250
- locked);
438
+ return clonedInstance;
251
439
  }
252
440
 
253
441
 
254
- function getMasterInstanceReader() external view returns (address) {
255
- return _masterInstanceReader;
256
- }
257
-
258
- // From IService
259
- function getDomain() public pure override returns(ObjectType) {
260
- return INSTANCE();
261
- }
262
-
263
- /// @dev top level initializer
442
+ /// @dev top level initializer (upgradable contract)
264
443
  function _initialize(
265
444
  address owner,
266
445
  bytes memory data
267
446
  )
268
447
  internal
269
- initializer
270
448
  virtual override
449
+ initializer()
271
450
  {
272
451
  (
273
- address registryAddress,
274
- address initialOwner
452
+ address authority,
453
+ address registry
275
454
  ) = abi.decode(data, (address, address));
276
455
 
277
- _registryService = IRegistryService(
278
- IRegistry(registryAddress).getServiceAddress(
279
- REGISTRY(),
280
- getVersion().toMajorPart()));
456
+ __Service_init(authority, registry, owner);
457
+
458
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
459
+ _stakingService = IStakingService(_getServiceAddress(STAKING()));
460
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
281
461
 
282
- // TODO while InstanceService is not deployed in InstanceServiceManager constructor
283
- // owner is InstanceServiceManager deployer
284
- initializeService(registryAddress, address(0), owner);
285
- registerInterface(type(IInstanceService).interfaceId);
462
+ _registerInterface(type(IInstanceService).interfaceId);
286
463
  }
287
464
 
288
465
 
289
- function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
466
+ function _checkInstance(
467
+ address instanceAddress,
468
+ VersionPart expectedRelease
469
+ )
290
470
  internal
471
+ virtual
291
472
  view
292
- returns (IInstance instance, NftId componentNftId)
293
473
  {
294
474
  IRegistry registry = getRegistry();
295
- IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
296
- if(instanceInfo.objectType != INSTANCE()) {
297
- revert ErrorInstanceServiceNotInstance(instanceNftId);
475
+
476
+ NftId instanceNftId = registry.getNftIdForAddress(instanceAddress);
477
+ if (instanceNftId.eqz()) {
478
+ revert ErrorInstanceServiceNotRegistered(instanceAddress);
479
+ }
480
+
481
+ ObjectType objectType = registry.getObjectInfo(instanceNftId).objectType;
482
+ if (objectType != INSTANCE()) {
483
+ revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
298
484
  }
299
485
 
300
- IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
301
- if(componentInfo.parentNftId != instanceNftId) {
302
- revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
486
+ if (expectedRelease.gtz()) {
487
+ VersionPart instanceRelease = IInstance(instanceAddress).getRelease();
488
+ if (instanceRelease != expectedRelease) {
489
+ revert ErrorInstanceServiceInstanceVersionMismatch(instanceNftId, expectedRelease, instanceRelease);
490
+ }
303
491
  }
492
+ }
493
+
304
494
 
305
- instance = Instance(instanceInfo.objectAddress);
306
- componentNftId = componentInfo.nftId;
495
+ // From IService
496
+ function _getDomain() internal pure override returns(ObjectType) {
497
+ return INSTANCE();
307
498
  }
308
499
  }