@etherisc/gif-next 0.0.2-c37bcc5-708 → 0.0.2-c38863c-705

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 (580) hide show
  1. package/README.md +75 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/{shared/AccessManagerCustom.sol/AccessManagerCustom.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +533 -596
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +144 -544
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +419 -259
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +154 -108
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +201 -261
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +256 -62
  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 +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -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 +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -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 +188 -107
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +226 -117
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +208 -236
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1462 -241
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1044 -316
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +247 -275
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +105 -95
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +614 -538
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  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 +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +141 -126
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +81 -10
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +127 -398
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +177 -177
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -83
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +350 -194
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +148 -94
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +218 -28
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +132 -379
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +476 -311
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +124 -662
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +660 -518
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -93
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +151 -172
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +96 -90
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +438 -220
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +148 -110
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +106 -8
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +320 -15
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +377 -103
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +148 -82
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -237
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +79 -7
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +480 -293
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +148 -94
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +239 -292
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +258 -536
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +659 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +732 -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 +359 -55
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +84 -151
  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 +589 -116
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1677 -156
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +132 -278
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +101 -75
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +5 -5
  213. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  214. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +583 -502
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +138 -110
  219. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +63 -104
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -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 +1 -1
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +554 -218
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +127 -123
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -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 +67 -1
  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 +1 -1
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -351
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  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 +22 -57
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  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 +63 -104
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  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 +1 -1
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +125 -22
  278. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +97 -101
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +202 -398
  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 +1 -1
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +120 -109
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +161 -184
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -90
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +241 -147
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  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 +1 -1
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +136 -2
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +283 -6
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  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 +1 -1
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  336. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  342. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +66 -2
  346. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  347. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  352. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  353. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  354. package/contracts/accounting/AccountingService.sol +262 -0
  355. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  356. package/contracts/accounting/IAccountingService.sol +45 -0
  357. package/contracts/authorization/AccessAdmin.sol +689 -0
  358. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  359. package/contracts/authorization/Authorization.sol +337 -0
  360. package/contracts/authorization/IAccess.sol +49 -0
  361. package/contracts/authorization/IAccessAdmin.sol +143 -0
  362. package/contracts/authorization/IAuthorization.sol +74 -0
  363. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  364. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  365. package/contracts/distribution/BasicDistribution.sol +141 -0
  366. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  367. package/contracts/distribution/Distribution.sol +153 -125
  368. package/contracts/distribution/DistributionService.sol +175 -115
  369. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  370. package/contracts/distribution/IDistributionComponent.sol +26 -40
  371. package/contracts/distribution/IDistributionService.sol +42 -22
  372. package/contracts/examples/fire/DamageLevel.sol +59 -0
  373. package/contracts/examples/fire/FirePool.sol +90 -0
  374. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  375. package/contracts/examples/fire/FireProduct.sol +437 -0
  376. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  377. package/contracts/examples/fire/FireUSD.sol +26 -0
  378. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  379. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  380. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  381. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  382. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  384. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  385. package/contracts/instance/BundleSet.sol +130 -0
  386. package/contracts/instance/IInstance.sol +34 -46
  387. package/contracts/instance/IInstanceService.sol +31 -40
  388. package/contracts/instance/Instance.sol +143 -132
  389. package/contracts/instance/InstanceAdmin.sol +346 -240
  390. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  391. package/contracts/instance/InstanceReader.sol +295 -48
  392. package/contracts/instance/InstanceService.sol +210 -168
  393. package/contracts/instance/InstanceServiceManager.sol +8 -13
  394. package/contracts/instance/InstanceStore.sol +35 -18
  395. package/contracts/instance/RiskSet.sol +118 -0
  396. package/contracts/instance/base/BalanceStore.sol +11 -6
  397. package/contracts/instance/base/Cloneable.sol +2 -25
  398. package/contracts/instance/base/ObjectCounter.sol +1 -2
  399. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  400. package/contracts/instance/base/ObjectSet.sol +77 -0
  401. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  402. package/contracts/instance/module/IBundle.sol +1 -1
  403. package/contracts/instance/module/IComponents.sol +14 -15
  404. package/contracts/instance/module/IDistribution.sol +2 -2
  405. package/contracts/instance/module/IPolicy.sol +26 -25
  406. package/contracts/instance/module/IRisk.sol +3 -0
  407. package/contracts/mock/Dip.sol +1 -1
  408. package/contracts/oracle/BasicOracle.sol +47 -0
  409. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  410. package/contracts/oracle/IOracle.sol +16 -0
  411. package/contracts/oracle/IOracleComponent.sol +2 -1
  412. package/contracts/oracle/IOracleService.sol +2 -1
  413. package/contracts/oracle/Oracle.sol +64 -53
  414. package/contracts/oracle/OracleService.sol +114 -81
  415. package/contracts/oracle/OracleServiceManager.sol +8 -11
  416. package/contracts/pool/BasicPool.sol +175 -0
  417. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  418. package/contracts/pool/BundleService.sol +207 -108
  419. package/contracts/pool/BundleServiceManager.sol +8 -11
  420. package/contracts/pool/IBundleService.sol +31 -22
  421. package/contracts/pool/IPoolComponent.sol +20 -70
  422. package/contracts/pool/IPoolService.sol +90 -75
  423. package/contracts/pool/Pool.sol +209 -163
  424. package/contracts/pool/PoolLib.sol +216 -0
  425. package/contracts/pool/PoolService.sol +553 -249
  426. package/contracts/pool/PoolServiceManager.sol +6 -9
  427. package/contracts/product/ApplicationService.sol +88 -83
  428. package/contracts/product/ApplicationServiceManager.sol +6 -6
  429. package/contracts/product/BasicProduct.sol +51 -0
  430. package/contracts/product/BasicProductAuthorization.sol +56 -0
  431. package/contracts/product/ClaimService.sol +370 -180
  432. package/contracts/product/ClaimServiceManager.sol +6 -6
  433. package/contracts/product/IApplicationService.sol +6 -2
  434. package/contracts/product/IClaimService.sol +44 -8
  435. package/contracts/product/IPolicyService.sol +53 -36
  436. package/contracts/product/IPricingService.sol +10 -10
  437. package/contracts/product/IProductComponent.sol +29 -9
  438. package/contracts/product/{IProductService.sol → IRiskService.sol} +6 -9
  439. package/contracts/product/PolicyService.sol +481 -274
  440. package/contracts/product/PolicyServiceLib.sol +65 -0
  441. package/contracts/product/PolicyServiceManager.sol +6 -9
  442. package/contracts/product/PricingService.sol +69 -66
  443. package/contracts/product/PricingServiceManager.sol +6 -9
  444. package/contracts/product/Product.sol +231 -139
  445. package/contracts/product/RiskService.sol +144 -0
  446. package/contracts/product/RiskServiceManager.sol +39 -0
  447. package/contracts/registry/ChainNft.sol +72 -40
  448. package/contracts/registry/IRegistry.sol +74 -32
  449. package/contracts/registry/IRegistryService.sol +3 -10
  450. package/contracts/registry/IRelease.sol +26 -0
  451. package/contracts/registry/ITransferInterceptor.sol +1 -2
  452. package/contracts/registry/Registry.sol +368 -214
  453. package/contracts/registry/RegistryAdmin.sol +292 -175
  454. package/contracts/registry/RegistryService.sol +46 -71
  455. package/contracts/registry/RegistryServiceManager.sol +5 -10
  456. package/contracts/registry/ReleaseAdmin.sol +245 -0
  457. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  458. package/contracts/registry/ReleaseRegistry.sol +511 -0
  459. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  460. package/contracts/registry/TokenRegistry.sol +8 -10
  461. package/contracts/shared/Component.sol +74 -128
  462. package/contracts/shared/ComponentService.sol +458 -384
  463. package/contracts/shared/ComponentServiceManager.sol +10 -7
  464. package/contracts/shared/ComponentVerifyingService.sol +29 -18
  465. package/contracts/shared/ContractLib.sol +253 -0
  466. package/contracts/shared/IComponent.sol +8 -17
  467. package/contracts/shared/IComponentService.sol +49 -39
  468. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  469. package/contracts/shared/IKeyValueStore.sol +1 -0
  470. package/contracts/shared/ILifecycle.sol +3 -2
  471. package/contracts/shared/INftOwnable.sol +2 -0
  472. package/contracts/shared/IPolicyHolder.sol +12 -22
  473. package/contracts/shared/IRegisterable.sol +23 -1
  474. package/contracts/shared/IService.sol +10 -5
  475. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  476. package/contracts/shared/InstanceLinkedComponent.sol +96 -43
  477. package/contracts/shared/KeyValueStore.sol +7 -3
  478. package/contracts/shared/Lifecycle.sol +30 -72
  479. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  480. package/contracts/shared/NftOwnable.sol +31 -11
  481. package/contracts/shared/PolicyHolder.sol +17 -57
  482. package/contracts/shared/Registerable.sol +55 -21
  483. package/contracts/shared/RegistryLinked.sol +9 -14
  484. package/contracts/shared/Service.sol +28 -40
  485. package/contracts/shared/TokenHandler.sol +309 -26
  486. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  487. package/contracts/staking/IStaking.sol +8 -11
  488. package/contracts/staking/IStakingService.sol +30 -14
  489. package/contracts/staking/StakeManagerLib.sol +70 -25
  490. package/contracts/staking/Staking.sol +122 -147
  491. package/contracts/staking/StakingLifecycle.sol +23 -0
  492. package/contracts/staking/StakingManager.sol +10 -12
  493. package/contracts/staking/StakingReader.sol +24 -21
  494. package/contracts/staking/StakingService.sol +105 -81
  495. package/contracts/staking/StakingServiceManager.sol +8 -8
  496. package/contracts/staking/StakingStore.sol +93 -60
  497. package/contracts/staking/TargetManagerLib.sol +7 -3
  498. package/contracts/type/Amount.sol +27 -5
  499. package/contracts/type/Blocknumber.sol +7 -1
  500. package/contracts/type/ClaimId.sol +6 -1
  501. package/contracts/type/Key32.sol +2 -2
  502. package/contracts/type/Key32Set.sol +62 -0
  503. package/contracts/type/NftId.sol +7 -0
  504. package/contracts/type/ObjectType.sol +196 -61
  505. package/contracts/type/PayoutId.sol +10 -10
  506. package/contracts/type/Referral.sol +1 -0
  507. package/contracts/type/RiskId.sol +38 -6
  508. package/contracts/type/RoleId.sol +117 -81
  509. package/contracts/type/Seconds.sol +21 -1
  510. package/contracts/type/Selector.sol +107 -0
  511. package/contracts/type/StateId.sol +15 -1
  512. package/contracts/type/String.sol +53 -0
  513. package/contracts/type/Timestamp.sol +10 -5
  514. package/contracts/type/UFixed.sol +40 -121
  515. package/contracts/type/Version.sol +18 -6
  516. package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
  517. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  518. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  519. package/package.json +9 -6
  520. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  522. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  523. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  524. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  526. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  528. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  529. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  530. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
  531. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  532. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
  533. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  534. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  535. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  536. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  537. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  538. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  539. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  540. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  541. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  542. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  543. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  544. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  545. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  546. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  547. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  548. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  549. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  550. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  551. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  552. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  553. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  554. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  555. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  556. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  557. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  558. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  559. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  560. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  561. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  562. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  563. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  564. package/contracts/instance/BundleManager.sol +0 -126
  565. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  566. package/contracts/instance/base/ObjectManager.sol +0 -82
  567. package/contracts/instance/module/IAccess.sol +0 -46
  568. package/contracts/product/ProductService.sol +0 -124
  569. package/contracts/product/ProductServiceManager.sol +0 -42
  570. package/contracts/registry/ReleaseManager.sol +0 -600
  571. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  572. package/contracts/shared/AccessManagerCustom.sol +0 -736
  573. package/contracts/shared/AccessManagerExtended.sol +0 -470
  574. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  575. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  576. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  577. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  578. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  579. package/contracts/shared/InitializableCustom.sol +0 -177
  580. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -2,38 +2,35 @@
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
5
 
7
- import {BundleManager} from "./BundleManager.sol";
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
7
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
8
+ import {Amount} from "../type/Amount.sol";
9
+ import {BundleSet} from "./BundleSet.sol";
10
+ import {RiskSet} from "./RiskSet.sol";
8
11
  import {ChainNft} from "../registry/ChainNft.sol";
9
12
  import {NftId} from "../type/NftId.sol";
10
13
  import {RoleId} from "../type/RoleId.sol";
11
- import {SecondsLib} from "../type/Seconds.sol";
12
- import {UFixedLib} from "../type/UFixed.sol";
13
- 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 "../type/RoleId.sol";
14
- import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
15
+ import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
15
16
 
16
17
  import {Service} from "../shared/Service.sol";
17
- import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
18
- import {IService} from "../shared/IService.sol";
19
- import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
20
-
21
- import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
22
- import {IPoolComponent} from "../pool/IPoolComponent.sol";
23
- import {IProductComponent} from "../product/IProductComponent.sol";
24
18
 
25
19
  import {IRegistry} from "../registry/IRegistry.sol";
26
20
  import {IRegistryService} from "../registry/IRegistryService.sol";
27
21
  import {IStakingService} from "../staking/IStakingService.sol";
28
22
  import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
29
23
 
24
+ import {IComponentService} from "../shared/IComponentService.sol";
30
25
  import {Instance} from "./Instance.sol";
31
26
  import {IInstance} from "./IInstance.sol";
32
27
  import {InstanceAdmin} from "./InstanceAdmin.sol";
33
28
  import {IInstanceService} from "./IInstanceService.sol";
34
29
  import {InstanceReader} from "./InstanceReader.sol";
35
30
  import {InstanceStore} from "./InstanceStore.sol";
36
- import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
31
+ import {Seconds} from "../type/Seconds.sol";
32
+ import {VersionPart} from "../type/Version.sol";
33
+
37
34
 
38
35
  contract InstanceService is
39
36
  Service,
@@ -45,14 +42,38 @@ contract InstanceService is
45
42
 
46
43
  IRegistryService internal _registryService;
47
44
  IStakingService internal _stakingService;
45
+ IComponentService internal _componentService;
48
46
 
49
47
  address internal _masterAccessManager;
50
48
  address internal _masterInstanceAdmin;
51
49
  address internal _masterInstance;
52
50
  address internal _masterInstanceReader;
53
- address internal _masterInstanceBundleManager;
51
+ address internal _masterInstanceBundleSet;
52
+ address internal _masterInstanceRiskSet;
54
53
  address internal _masterInstanceStore;
55
54
 
55
+
56
+ modifier onlyInstance() {
57
+ address instanceAddress = msg.sender;
58
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
59
+ if (instanceNftId.eqz()) {
60
+ revert ErrorInstanceServiceNotRegistered(instanceAddress);
61
+ }
62
+
63
+ ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
64
+ if (objectType != INSTANCE()) {
65
+ revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
66
+ }
67
+
68
+ VersionPart instanceVersion = IInstance(instanceAddress).getRelease();
69
+ if (instanceVersion != getVersion().toMajorPart()) {
70
+ revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
71
+ }
72
+
73
+ _;
74
+ }
75
+
76
+
56
77
  modifier onlyInstanceOwner(NftId instanceNftId) {
57
78
  if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
58
79
  revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
@@ -60,6 +81,7 @@ contract InstanceService is
60
81
  _;
61
82
  }
62
83
 
84
+
63
85
  // TODO check component - service - instance version match
64
86
  modifier onlyComponent() {
65
87
  if (! getRegistry().isRegisteredComponent(msg.sender)) {
@@ -68,153 +90,158 @@ contract InstanceService is
68
90
  _;
69
91
  }
70
92
 
71
- function createInstanceClone()
93
+ function createInstance()
72
94
  external
95
+ restricted()
73
96
  returns (
74
- Instance clonedInstance,
75
- NftId clonedInstanceNftId
97
+ IInstance instance,
98
+ NftId instanceNftId
76
99
  )
77
100
  {
101
+ // tx sender will become instance owner
78
102
  address instanceOwner = msg.sender;
79
- AccessManagerExtendedInitializeable clonedAccessManager = AccessManagerExtendedInitializeable(
80
- Clones.clone(_masterAccessManager));
81
-
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 renounce ADMIN_ROLE when bootstraping is finished
85
- clonedAccessManager.initialize(address(this));
86
-
87
- clonedInstance = Instance(Clones.clone(_masterInstance));
88
- clonedInstance.initialize(
89
- address(clonedAccessManager),
90
- address(getRegistry()),
91
- instanceOwner);
92
- // initialize and set before instance reader
93
- InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
94
- clonedInstanceStore.initialize(address(clonedInstance));
95
- clonedInstance.setInstanceStore(clonedInstanceStore);
96
-
97
- InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
98
- clonedInstanceReader.initialize(address(clonedInstance));
99
- clonedInstance.setInstanceReader(clonedInstanceReader);
100
-
101
- BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
102
- clonedBundleManager.initialize(address(clonedInstance));
103
- clonedInstance.setBundleManager(clonedBundleManager);
104
-
105
- InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
106
- clonedAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAdmin), 0);
107
- clonedInstanceAdmin.initialize(address(clonedInstance));
108
- clonedInstance.setInstanceAdmin(clonedInstanceAdmin);
109
-
110
- // TODO amend setters with instance specific , policy manager ...
111
-
112
- // TODO library does external calls -> but it is registry and access manager -> find out is it best practice
113
- InstanceAuthorizationsLib.grantInitialAuthorizations(
114
- clonedAccessManager,
115
- clonedInstanceAdmin,
116
- clonedInstance,
117
- clonedBundleManager,
118
- clonedInstanceStore,
119
- instanceOwner,
120
- getRegistry(),
121
- getVersion().toMajorPart());
122
103
 
123
- clonedAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
104
+ // create instance admin and instance
105
+ InstanceAdmin instanceAdmin = _createInstanceAdmin();
106
+ instance = _createInstance(instanceAdmin, instanceOwner);
124
107
 
125
- // register new instance with registry
126
- IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
127
- clonedInstanceNftId = info.nftId;
108
+ // register cloned instance with registry
109
+ instanceNftId = _registryService.registerInstance(
110
+ instance, instanceOwner).nftId;
128
111
 
129
- // create corresponding staking target
112
+ // register cloned instance as staking target
130
113
  _stakingService.createInstanceTarget(
131
- clonedInstanceNftId,
114
+ instanceNftId,
132
115
  TargetManagerLib.getDefaultLockingPeriod(),
133
116
  TargetManagerLib.getDefaultRewardRate());
134
117
 
118
+ // MUST be set after instance is set up and registered
119
+ IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
120
+ VersionPart release = AccessManagerCloneable(authority()).getRelease();
121
+ instanceAdmin.completeSetup(
122
+ address(instance),
123
+ address(instanceAuthorization));
124
+
135
125
  emit LogInstanceCloned(
136
- address(clonedAccessManager),
137
- address(clonedInstanceAdmin),
138
- address(clonedInstance),
139
- address(clonedInstanceStore),
140
- address(clonedBundleManager),
141
- address(clonedInstanceReader),
142
- clonedInstanceNftId);
126
+ instanceNftId,
127
+ address(instance));
143
128
  }
144
129
 
145
- function setComponentLocked(bool locked)
130
+
131
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod)
146
132
  external
147
133
  virtual
148
- onlyComponent()
134
+ restricted()
135
+ onlyInstance()
149
136
  {
150
- // checks
151
- address componentAddress = msg.sender;
137
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
138
+ _stakingService.setInstanceLockingPeriod(
139
+ instanceNftId,
140
+ stakeLockingPeriod);
141
+ }
152
142
 
153
- if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
154
- revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
155
- }
156
143
 
157
- IRegistry registry = getRegistry();
158
- NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
144
+ function setStakingRewardRate(UFixed rewardRate)
145
+ external
146
+ virtual
147
+ restricted()
148
+ onlyInstance()
149
+ {
150
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
151
+ _stakingService.setInstanceRewardRate(
152
+ instanceNftId,
153
+ rewardRate);
154
+ }
159
155
 
160
- IInstance instance = IInstance(
161
- registry.getObjectInfo(
162
- instanceNftId).objectAddress);
163
156
 
164
- // no revert in case already locked
165
- instance.getInstanceAdmin().setTargetLockedByService(
166
- componentAddress,
167
- locked);
157
+ function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
158
+ external
159
+ virtual
160
+ restricted()
161
+ onlyInstance()
162
+ {
163
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
164
+ _stakingService.refillInstanceRewardReserves(
165
+ instanceNftId,
166
+ rewardProvider,
167
+ dipAmount);
168
168
  }
169
169
 
170
170
 
171
- function getMasterInstanceReader() external view returns (address) {
172
- return _masterInstanceReader;
171
+ function withdrawStakingRewardReserves(Amount dipAmount)
172
+ external
173
+ virtual
174
+ restricted()
175
+ onlyInstance()
176
+ returns (Amount newBalance)
177
+ {
178
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
179
+ _stakingService.withdrawInstanceRewardReserves(
180
+ instanceNftId,
181
+ dipAmount);
173
182
  }
174
183
 
175
- // From IService
176
- function getDomain() public pure override returns(ObjectType) {
177
- return INSTANCE();
184
+ function upgradeInstanceReader(NftId instanceNftId)
185
+ external
186
+ nonReentrant()
187
+ restricted()
188
+ onlyInstanceOwner(instanceNftId)
189
+ onlyNftOfType(instanceNftId, INSTANCE())
190
+ {
191
+ IRegistry registry = getRegistry();
192
+ IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
193
+ Instance instance = Instance(instanceInfo.objectAddress);
194
+
195
+ InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
196
+ upgradedInstanceReaderClone.initializeWithInstance(address(instance));
197
+ instance.setInstanceReader(upgradedInstanceReaderClone);
178
198
  }
179
199
 
180
200
  function setAndRegisterMasterInstance(address instanceAddress)
181
- external
182
- onlyOwner
183
- returns(NftId masterInstanceNftId)
201
+ external
202
+ onlyOwner()
203
+ returns(NftId masterInstanceNftId)
184
204
  {
185
205
  if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
186
- if(_masterAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
187
206
  if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
188
- if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
189
-
207
+ if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
208
+ if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
190
209
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
191
210
 
192
211
  IInstance instance = IInstance(instanceAddress);
212
+ address accessManagerAddress = instance.authority();
193
213
  InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
194
214
  address instanceAdminAddress = address(instanceAdmin);
195
215
  InstanceReader instanceReader = instance.getInstanceReader();
196
216
  address instanceReaderAddress = address(instanceReader);
197
- BundleManager bundleManager = instance.getBundleManager();
198
- address bundleManagerAddress = address(bundleManager);
217
+ BundleSet bundleSet = instance.getBundleSet();
218
+ address bundleSetAddress = address(bundleSet);
219
+ RiskSet riskSet = instance.getRiskSet();
220
+ address riskSetAddress = address(riskSet);
199
221
  InstanceStore instanceStore = instance.getInstanceStore();
200
222
  address instanceStoreAddress = address(instanceStore);
201
223
 
224
+ if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
202
225
  if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
203
226
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
204
- if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
227
+ if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
228
+ if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
205
229
  if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
206
230
 
207
231
  if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
208
- if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
232
+ if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
233
+ if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
209
234
  if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
210
- if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
235
+ if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
236
+ if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
211
237
  if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
212
238
 
213
- _masterAccessManager = instance.authority();
239
+ _masterAccessManager = accessManagerAddress;
214
240
  _masterInstanceAdmin = instanceAdminAddress;
215
241
  _masterInstance = instanceAddress;
216
242
  _masterInstanceReader = instanceReaderAddress;
217
- _masterInstanceBundleManager = bundleManagerAddress;
243
+ _masterInstanceBundleSet = bundleSetAddress;
244
+ _masterInstanceRiskSet = riskSetAddress;
218
245
  _masterInstanceStore = instanceStoreAddress;
219
246
 
220
247
  IInstance masterInstance = IInstance(_masterInstance);
@@ -222,7 +249,10 @@ contract InstanceService is
222
249
  masterInstanceNftId = info.nftId;
223
250
  }
224
251
 
225
- function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
252
+ function upgradeMasterInstanceReader(address instanceReaderAddress)
253
+ external
254
+ onlyOwner
255
+ {
226
256
  if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
227
257
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
228
258
  if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
@@ -233,59 +263,57 @@ contract InstanceService is
233
263
  _masterInstanceReader = instanceReaderAddress;
234
264
  }
235
265
 
236
- function upgradeInstanceReader(NftId instanceNftId)
237
- external
238
- onlyInstanceOwner(instanceNftId)
239
- {
240
- IRegistry registry = getRegistry();
241
- IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
242
- Instance instance = Instance(instanceInfo.objectAddress);
243
-
244
- InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
245
- upgradedInstanceReaderClone.initialize(address(instance));
246
- instance.setInstanceReader(upgradedInstanceReaderClone);
266
+ function getMasterInstanceReader() external view returns (address) {
267
+ return _masterInstanceReader;
247
268
  }
248
269
 
249
-
250
- function createGifTarget(
251
- NftId instanceNftId,
252
- address targetAddress,
253
- string memory targetName,
254
- bytes4[][] memory selectors,
255
- RoleId[] memory roles
256
- )
257
- external
270
+ /// @dev create new cloned instance admin
271
+ /// function used to setup a new instance
272
+ function _createInstanceAdmin()
273
+ internal
258
274
  virtual
259
- restricted()
275
+ returns (InstanceAdmin clonedInstanceAdmin)
260
276
  {
261
- _createGifTarget(
262
- instanceNftId,
263
- targetAddress,
264
- targetName,
265
- roles,
266
- selectors
267
- );
277
+ // start with setting up a new OZ access manager
278
+ // TODO consider _masterInstanceAdmin.authority() instead of _masterAccessManager
279
+ AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
280
+ Clones.clone(_masterAccessManager));
281
+
282
+ // set up the instance admin
283
+ clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
284
+ clonedInstanceAdmin.initialize(
285
+ clonedAccessManager,
286
+ getRegistry(),
287
+ getRelease());
268
288
  }
269
289
 
270
290
 
271
- function createComponentTarget(
272
- NftId instanceNftId,
273
- address targetAddress,
274
- string memory targetName,
275
- bytes4[][] memory selectors,
276
- RoleId[] memory roles
291
+ /// @dev create new cloned instance
292
+ /// function used to setup a new instance
293
+ function _createInstance(
294
+ InstanceAdmin instanceAdmin,
295
+ address instanceOwner
277
296
  )
278
- external
297
+ internal
279
298
  virtual
280
- restricted()
299
+ returns (IInstance)
281
300
  {
282
- _createGifTarget(
283
- instanceNftId,
284
- targetAddress,
285
- targetName,
286
- roles,
287
- selectors
288
- );
301
+ InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
302
+ BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
303
+ RiskSet clonedRiskSet = RiskSet(Clones.clone(_masterInstanceRiskSet));
304
+ InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
305
+
306
+ // clone instance
307
+ Instance clonedInstance = Instance(Clones.clone(_masterInstance));
308
+ clonedInstance.initialize(
309
+ instanceAdmin,
310
+ clonedInstanceStore,
311
+ clonedBundleSet,
312
+ clonedRiskSet,
313
+ clonedInstanceReader,
314
+ getRegistry(),
315
+ instanceOwner);
316
+ return clonedInstance;
289
317
  }
290
318
 
291
319
 
@@ -307,12 +335,14 @@ contract InstanceService is
307
335
  ) = _validateInstanceAndComponent(instanceNftId, targetAddress);
308
336
 
309
337
  InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
310
- instanceAdmin.createGifTarget(targetAddress, targetName);
338
+
339
+ // TODO refactor/implement
340
+ // instanceAdmin.createGifTarget(targetAddress, targetName);
341
+
311
342
  // set proposed target config
312
- // TODO restriction: gif targets are set only once and only here?
313
- // assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
314
343
  for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
315
- instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
344
+ // TODO refactor/implement
345
+ // instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
316
346
  }
317
347
  }
318
348
 
@@ -322,21 +352,21 @@ contract InstanceService is
322
352
  bytes memory data
323
353
  )
324
354
  internal
325
- initializer
326
355
  virtual override
356
+ initializer()
327
357
  {
328
358
  (
329
- address registryAddress,,
330
- //address managerAddress
331
- address authority
332
- ) = abi.decode(data, (address, address, address));
359
+ address authority,
360
+ address registry
361
+ ) = abi.decode(data, (address, address));
333
362
 
334
- initializeService(registryAddress, authority, owner);
363
+ __Service_init(authority, registry, owner);
335
364
 
336
365
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
337
366
  _stakingService = IStakingService(_getServiceAddress(STAKING()));
367
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
338
368
 
339
- registerInterface(type(IInstanceService).interfaceId);
369
+ _registerInterface(type(IInstanceService).interfaceId);
340
370
  }
341
371
 
342
372
 
@@ -348,15 +378,27 @@ contract InstanceService is
348
378
  IRegistry registry = getRegistry();
349
379
  IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
350
380
  if(instanceInfo.objectType != INSTANCE()) {
351
- revert ErrorInstanceServiceNotInstance(instanceNftId);
381
+ revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
352
382
  }
353
383
 
354
- IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
355
- if(componentInfo.parentNftId != instanceNftId) {
356
- revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
384
+ if (registry.getNftIdForAddress(componentAddress).gtz()) {
385
+ IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
386
+
387
+ if(componentInfo.parentNftId != instanceNftId) {
388
+ revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
389
+ }
390
+
391
+ componentNftId = componentInfo.nftId;
392
+ } else {
393
+
357
394
  }
358
395
 
359
396
  instance = Instance(instanceInfo.objectAddress);
360
- componentNftId = componentInfo.nftId;
397
+
398
+ }
399
+
400
+ // From IService
401
+ function _getDomain() internal pure override returns(ObjectType) {
402
+ return INSTANCE();
361
403
  }
362
404
  }
@@ -1,13 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Instance} from "./Instance.sol";
5
- import {IVersionable} from "../shared/IVersionable.sol";
6
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
6
  import {InstanceService} from "./InstanceService.sol";
8
- import {Registry} from "../registry/Registry.sol";
9
- import {RegistryService} from "../registry/RegistryService.sol";
10
- import {REGISTRY} from "../type/ObjectType.sol";
11
7
 
12
8
  contract InstanceServiceManager is ProxyManager {
13
9
 
@@ -16,16 +12,15 @@ contract InstanceServiceManager is ProxyManager {
16
12
  /// @dev initializes proxy manager with instance service implementation
17
13
  constructor(
18
14
  address authority,
19
- address registryAddress,
15
+ address registry,
20
16
  bytes32 salt
21
17
  )
22
- ProxyManager(registryAddress)
23
18
  {
24
- InstanceService instSrv = new InstanceService{salt: salt}();
25
- // bytes memory initCode = type(InstanceService).creationCode;
26
- bytes memory data = abi.encode(registryAddress, address(this), authority);
27
- IVersionable versionable = deployDetermenistic(
28
- address(instSrv),
19
+ InstanceService svc = new InstanceService{salt: salt}();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
29
24
  data,
30
25
  salt);
31
26