@etherisc/gif-next 0.0.2-e016345-525 → 0.0.2-e04dbfc-031

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 (465) hide show
  1. package/README.md +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +137 -58
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +37 -31
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +83 -3
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +449 -248
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  12. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +222 -21
  17. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +348 -184
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +100 -13
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +83 -129
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +207 -33
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -81
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +283 -181
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +74 -60
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +33 -68
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +155 -68
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +92 -42
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +188 -46
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +248 -191
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +207 -33
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +149 -131
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +207 -33
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -45
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +113 -47
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +188 -46
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +305 -150
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +207 -33
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +139 -28
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +100 -7
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +163 -53
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +672 -320
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +188 -46
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +374 -197
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +113 -83
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -38
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +422 -352
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -38
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +189 -35
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +38 -8
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -22
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -68
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +42 -36
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -21
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +188 -46
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +118 -201
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -64
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -8
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -21
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +265 -278
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +86 -56
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +139 -50
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -112
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +207 -33
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +260 -187
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +72 -74
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +69 -3
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -68
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -99
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +215 -187
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  166. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +68 -66
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +122 -78
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +48 -42
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +157 -112
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +131 -81
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +46 -28
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  186. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  188. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +548 -429
  192. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  193. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  194. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  196. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +22 -24
  198. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +324 -54
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  208. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Component.sol/Component.json +51 -21
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +96 -138
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +44 -50
  214. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +113 -4
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -8
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +28 -45
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -8
  228. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  229. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  230. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  234. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  237. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  238. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  239. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  240. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -21
  241. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  242. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  243. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  245. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  247. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  249. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  251. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  253. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  254. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  259. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  261. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  262. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +112 -17
  263. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  264. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +130 -6
  265. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  266. package/artifacts/contracts/staking/Staking.sol/Staking.json +191 -74
  267. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  268. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  269. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  271. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +56 -32
  273. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +30 -57
  275. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +185 -54
  277. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +39 -29
  279. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +143 -129
  281. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  282. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +33 -23
  283. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  284. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
  286. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  289. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  291. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  293. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  295. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  296. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  297. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  299. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  300. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  301. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  303. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  305. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  307. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  309. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
  311. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  313. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  316. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  318. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  322. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
  324. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  326. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  328. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  329. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  330. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +4 -4
  331. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  332. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  333. package/contracts/accounting/AccountingService.sol +43 -26
  334. package/contracts/accounting/AccountingServiceManager.sol +1 -1
  335. package/contracts/accounting/IAccountingService.sol +3 -0
  336. package/contracts/authorization/AccessAdmin.sol +293 -205
  337. package/contracts/authorization/AccessAdminLib.sol +183 -0
  338. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  339. package/contracts/authorization/Authorization.sol +307 -231
  340. package/contracts/authorization/IAccessAdmin.sol +69 -36
  341. package/contracts/authorization/IAuthorization.sol +21 -1
  342. package/contracts/distribution/BasicDistribution.sol +12 -8
  343. package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
  344. package/contracts/distribution/Distribution.sol +14 -55
  345. package/contracts/distribution/DistributionService.sol +62 -30
  346. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  347. package/contracts/distribution/IDistributionComponent.sol +0 -9
  348. package/contracts/distribution/IDistributionService.sol +18 -15
  349. package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
  350. package/contracts/examples/fire/FireProduct.sol +4 -3
  351. package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
  352. package/contracts/examples/unpermissioned/SimpleDistribution.sol +28 -0
  353. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
  354. package/contracts/examples/unpermissioned/SimplePool.sol +0 -1
  355. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
  356. package/contracts/examples/unpermissioned/SimpleProduct.sol +29 -4
  357. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
  358. package/contracts/instance/BundleSet.sol +4 -4
  359. package/contracts/instance/IInstance.sol +49 -15
  360. package/contracts/instance/IInstanceService.sol +15 -1
  361. package/contracts/instance/Instance.sol +80 -23
  362. package/contracts/instance/InstanceAdmin.sol +269 -104
  363. package/contracts/instance/InstanceAuthorizationV3.sol +49 -36
  364. package/contracts/instance/InstanceReader.sol +106 -35
  365. package/contracts/instance/InstanceService.sol +144 -73
  366. package/contracts/instance/InstanceServiceManager.sol +1 -1
  367. package/contracts/instance/InstanceStore.sol +13 -2
  368. package/contracts/instance/RiskSet.sol +11 -12
  369. package/contracts/instance/base/ObjectCounter.sol +1 -2
  370. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  371. package/contracts/instance/base/ObjectSet.sol +7 -8
  372. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  373. package/contracts/instance/module/IComponents.sol +3 -2
  374. package/contracts/instance/module/IDistribution.sol +5 -2
  375. package/contracts/instance/module/IRisk.sol +2 -0
  376. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  377. package/contracts/oracle/Oracle.sol +1 -1
  378. package/contracts/oracle/OracleService.sol +20 -19
  379. package/contracts/oracle/OracleServiceManager.sol +1 -1
  380. package/contracts/pool/BasicPoolAuthorization.sol +21 -13
  381. package/contracts/pool/BundleService.sol +28 -58
  382. package/contracts/pool/BundleServiceManager.sol +1 -1
  383. package/contracts/pool/IBundleService.sol +13 -20
  384. package/contracts/pool/IPoolService.sol +50 -38
  385. package/contracts/pool/Pool.sol +9 -9
  386. package/contracts/pool/PoolLib.sol +309 -0
  387. package/contracts/pool/PoolService.sol +334 -190
  388. package/contracts/pool/PoolServiceManager.sol +1 -1
  389. package/contracts/product/ApplicationService.sol +28 -9
  390. package/contracts/product/ApplicationServiceManager.sol +1 -1
  391. package/contracts/product/BasicProduct.sol +2 -0
  392. package/contracts/product/BasicProductAuthorization.sol +23 -8
  393. package/contracts/product/ClaimService.sol +165 -139
  394. package/contracts/product/ClaimServiceManager.sol +1 -1
  395. package/contracts/product/IApplicationService.sol +3 -0
  396. package/contracts/product/IClaimService.sol +14 -2
  397. package/contracts/product/IPolicyService.sol +11 -6
  398. package/contracts/product/IPricingService.sol +1 -0
  399. package/contracts/product/IProductComponent.sol +4 -1
  400. package/contracts/product/IRiskService.sol +7 -7
  401. package/contracts/product/PolicyService.sol +112 -184
  402. package/contracts/product/PolicyServiceLib.sol +119 -0
  403. package/contracts/product/PolicyServiceManager.sol +1 -1
  404. package/contracts/product/PricingService.sol +28 -19
  405. package/contracts/product/PricingServiceManager.sol +3 -3
  406. package/contracts/product/Product.sol +55 -13
  407. package/contracts/product/RiskService.sol +76 -29
  408. package/contracts/product/RiskServiceManager.sol +1 -1
  409. package/contracts/registry/ChainNft.sol +4 -2
  410. package/contracts/registry/IRegistry.sol +8 -15
  411. package/contracts/registry/IRelease.sol +26 -0
  412. package/contracts/registry/Registry.sol +7 -2
  413. package/contracts/registry/RegistryAdmin.sol +143 -342
  414. package/contracts/registry/RegistryAuthorization.sol +267 -0
  415. package/contracts/registry/RegistryService.sol +3 -3
  416. package/contracts/registry/RegistryServiceManager.sol +1 -1
  417. package/contracts/registry/ReleaseAdmin.sol +253 -0
  418. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  419. package/contracts/registry/ReleaseRegistry.sol +149 -117
  420. package/contracts/registry/ServiceAuthorizationV3.sol +159 -2
  421. package/contracts/registry/TokenRegistry.sol +6 -8
  422. package/contracts/shared/Component.sol +27 -19
  423. package/contracts/shared/ComponentService.sol +119 -116
  424. package/contracts/shared/ComponentServiceManager.sol +1 -1
  425. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  426. package/contracts/shared/ContractLib.sol +60 -3
  427. package/contracts/shared/IComponent.sol +3 -4
  428. package/contracts/shared/IComponentService.sol +4 -10
  429. package/contracts/shared/IRegisterable.sol +15 -4
  430. package/contracts/shared/IService.sol +3 -5
  431. package/contracts/shared/InitializableERC165.sol +9 -1
  432. package/contracts/shared/InstanceLinkedComponent.sol +2 -2
  433. package/contracts/shared/NftOwnable.sol +6 -5
  434. package/contracts/shared/PolicyHolder.sol +1 -1
  435. package/contracts/shared/Registerable.sol +42 -19
  436. package/contracts/shared/RegistryLinked.sol +1 -1
  437. package/contracts/shared/Service.sol +8 -27
  438. package/contracts/shared/TokenHandler.sol +45 -92
  439. package/contracts/staking/IStaking.sol +12 -10
  440. package/contracts/staking/IStakingService.sol +19 -1
  441. package/contracts/staking/Staking.sol +57 -26
  442. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
  443. package/contracts/staking/StakingReader.sol +6 -16
  444. package/contracts/staking/StakingService.sol +71 -44
  445. package/contracts/staking/StakingServiceManager.sol +5 -4
  446. package/contracts/staking/StakingStore.sol +2 -1
  447. package/contracts/type/ObjectType.sol +47 -39
  448. package/contracts/type/RiskId.sol +9 -3
  449. package/contracts/type/RoleId.sol +24 -4
  450. package/contracts/type/Selector.sol +5 -0
  451. package/contracts/type/Timestamp.sol +0 -5
  452. package/contracts/type/UFixed.sol +9 -119
  453. package/contracts/type/Version.sol +54 -5
  454. package/contracts/upgradeability/ProxyManager.sol +1 -1
  455. package/package.json +2 -2
  456. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  457. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  458. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  459. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  460. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  461. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  462. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  463. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  464. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  465. package/contracts/instance/module/IAccess.sol +0 -46
@@ -1,8 +1,6 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
-
6
4
  import {Amount} from "../type/Amount.sol";
7
5
  import {BundleSet} from "./BundleSet.sol";
8
6
  import {RiskSet} from "./RiskSet.sol";
@@ -10,7 +8,6 @@ import {InstanceAdmin} from "./InstanceAdmin.sol";
10
8
  import {InstanceReader} from "./InstanceReader.sol";
11
9
  import {InstanceStore} from "./InstanceStore.sol";
12
10
  import {IRegisterable} from "../shared/IRegisterable.sol";
13
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
14
11
  import {NftId} from "../type/NftId.sol";
15
12
  import {RoleId} from "../type/RoleId.sol";
16
13
  import {Seconds} from "../type/Seconds.sol";
@@ -18,12 +15,10 @@ import {UFixed} from "../type/UFixed.sol";
18
15
 
19
16
 
20
17
  interface IInstance is
21
- IRegisterable,
22
- ITransferInterceptor,
23
- IAccessManaged
18
+ IRegisterable
24
19
  {
25
20
  error ErrorInstanceInstanceAdminZero();
26
- error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
21
+ error ErrorInstanceInstanceAdminAlreadySet(address instanceAdmin);
27
22
  error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
28
23
 
29
24
  error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
@@ -43,26 +38,65 @@ interface IInstance is
43
38
  uint64 requestsCount;
44
39
  }
45
40
 
41
+ ///--- instance ---------------------------------------------------------//
42
+
43
+ /// @dev Locks/unlocks the complete instance, including all its components.
44
+ function setInstanceLocked(bool locked) external;
45
+
46
+ /// @dev Upgrades the instance reader to the specified target.
47
+ function upgradeInstanceReader() external;
48
+
49
+ /// @dev Sets the instance reader for the instance.
50
+ /// Permissioned: only the instance service may call this function.
51
+ function setInstanceReader(InstanceReader instanceReader) external;
52
+
53
+ ///--- staking ----------------------------------------------------------//
54
+
55
+ /// @dev Sets the duration for locking new stakes on this instance..
56
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
57
+
58
+ /// @dev Sets the staking reward rate [apr] for this instance.
59
+ function setStakingRewardRate(UFixed rewardRate) external;
60
+
61
+ /// @dev Sets the maximum staked amount for this instance.
62
+ function setStakingMaxAmount(Amount maxStakedAmount) external;
63
+
64
+ /// @dev Refills the staking reward reserves for the specified target.
65
+ function refillStakingRewardReserves(Amount dipAmount) external;
66
+
67
+ /// @dev Defunds the staking reward reserves for the specified target.
68
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
69
+
70
+ ///--- product/component ------------------------------------------------//
71
+
72
+ /// @dev Locks/unlocks the specified target.
73
+ function setTargetLocked(address target, bool locked) external;
74
+
46
75
  /// @dev Register a product with the instance.
47
76
  function registerProduct(address product) external returns (NftId productNftId);
48
77
 
78
+ ///--- authz ------------------------------------------------------------//
79
+
49
80
  function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
50
81
  function grantRole(RoleId roleId, address account) external;
51
82
  function revokeRole(RoleId roleId, address account) external;
52
83
 
53
84
  function createTarget(address target, string memory name) external;
54
85
  function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
55
- function setLocked(address target, bool locked) external;
56
86
 
57
- function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
58
- function setStakingRewardRate(UFixed rewardRate) external;
59
- function refillStakingRewardReserves(Amount dipAmount) external;
87
+ //--- getters -----------------------------------------------------------//
60
88
 
61
- /// @dev Defunds the staking reward reserves for the specified target.
62
- /// Permissioned: only the target owner may call this function.
63
- function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
89
+ /// @dev returns the overall locking state of the instance (including all components)
90
+ function isInstanceLocked() external view returns (bool isLocked);
91
+
92
+ /// @dev returns the locking state of the specified target
93
+ function isTargetLocked(address target) external view returns (bool isLocked);
94
+
95
+ // get products
96
+ function products() external view returns (uint256 productCount);
97
+ function getProductNftId(uint256 idx) external view returns (NftId productNftId);
64
98
 
65
- // get instance release and supporting contracts
99
+ // get supporting contracts
66
100
  function getInstanceReader() external view returns (InstanceReader);
67
101
  function getBundleSet() external view returns (BundleSet);
68
102
  function getRiskSet() external view returns (RiskSet);
@@ -15,7 +15,7 @@ interface IInstanceService is IService {
15
15
  // onlyInstance
16
16
  error ErrorInstanceServiceNotRegistered(address instance);
17
17
  error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
18
- error ErrorInstanceServiceInstanceVersionMismatch(address instance, VersionPart instanceVersion);
18
+ error ErrorInstanceServiceInstanceVersionMismatch(NftId instanceNftId, VersionPart expectedRelease, VersionPart instanceRelease);
19
19
 
20
20
  error ErrorInstanceServiceComponentNotInstanceLinked(address component);
21
21
 
@@ -53,6 +53,17 @@ interface IInstanceService is IService {
53
53
 
54
54
  event LogInstanceCloned(NftId instanceNftId, address instance);
55
55
 
56
+ /// @dev Locks the complete instance, including all its components.
57
+ function setInstanceLocked(bool locked) external;
58
+
59
+ /// @dev Locks/unlocks the specified target constrolled by the corresponding instance admin.
60
+ function setTargetLocked(address target, bool locked) external;
61
+
62
+ /// @dev Creates a new instance.
63
+ /// The caller becomes the owner of the new instance.
64
+ /// Creation of a new instance is achieved by this service through the creation and registration
65
+ /// of a new clone of the master instance and then setting up the initial wiring and authorization
66
+ /// of the necessary components.
56
67
  function createInstance()
57
68
  external
58
69
  returns (
@@ -60,9 +71,12 @@ interface IInstanceService is IService {
60
71
  NftId instanceNftId
61
72
  );
62
73
 
74
+ function upgradeInstanceReader() external;
75
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external;
63
76
 
64
77
  function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
65
78
  function setStakingRewardRate(UFixed rewardRate) external;
79
+ function setStakingMaxAmount(Amount maxStakedAmount) external;
66
80
  function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
67
81
 
68
82
  /// @dev Defunds the staking reward reserves for the specified target.
@@ -1,39 +1,40 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
4
+ import {IInstance} from "./IInstance.sol";
5
+ import {IComponentService} from "../shared/IComponentService.sol";
6
+ import {IInstanceService} from "./IInstanceService.sol";
7
+ import {IRegistry} from "../registry/IRegistry.sol";
5
8
 
6
9
  import {Amount} from "../type/Amount.sol";
7
10
  import {BundleSet} from "./BundleSet.sol";
8
11
  import {RiskSet} from "./RiskSet.sol";
9
12
  import {COMPONENT, INSTANCE} from "../type/ObjectType.sol";
10
- import {IInstance} from "./IInstance.sol";
11
- import {IComponentService} from "../shared/IComponentService.sol";
12
- import {IInstanceService} from "./IInstanceService.sol";
13
13
  import {InstanceReader} from "./InstanceReader.sol";
14
14
  import {InstanceAdmin} from "./InstanceAdmin.sol";
15
15
  import {InstanceStore} from "./InstanceStore.sol";
16
- import {IRegistry} from "../registry/IRegistry.sol";
17
16
  import {NftId} from "../type/NftId.sol";
18
17
  import {Registerable} from "../shared/Registerable.sol";
19
18
  import {RoleId} from "../type/RoleId.sol";
20
19
  import {Seconds} from "../type/Seconds.sol";
21
20
  import {UFixed} from "../type/UFixed.sol";
21
+ import {VersionPart} from "../type/Version.sol";
22
22
 
23
23
  contract Instance is
24
24
  IInstance,
25
- AccessManagedUpgradeable,
26
25
  Registerable
27
26
  {
28
27
  bool private _initialized;
29
28
 
30
29
  IComponentService internal _componentService;
31
30
  IInstanceService internal _instanceService;
31
+
32
32
  InstanceAdmin internal _instanceAdmin;
33
33
  InstanceReader internal _instanceReader;
34
34
  BundleSet internal _bundleSet;
35
35
  RiskSet internal _riskSet;
36
36
  InstanceStore internal _instanceStore;
37
+ NftId [] internal _products;
37
38
 
38
39
  modifier onlyChainNft() {
39
40
  if(msg.sender != getRegistry().getChainNftAddress()) {
@@ -49,21 +50,21 @@ contract Instance is
49
50
  RiskSet riskSet,
50
51
  InstanceReader instanceReader,
51
52
  IRegistry registry,
53
+ VersionPart release,
52
54
  address initialOwner
53
55
  )
54
56
  external
55
57
  initializer()
56
58
  {
57
- _instanceAdmin = instanceAdmin;
58
- if(_instanceAdmin.authority() == address(0)) {
59
+ if(address(instanceAdmin) == address(0)) {
59
60
  revert ErrorInstanceInstanceAdminZero();
60
61
  }
61
62
 
62
- // set authority to instance admin authority
63
- __AccessManaged_init(_instanceAdmin.authority());
63
+ _instanceAdmin = instanceAdmin;
64
64
 
65
65
  // setup instance object info
66
- _initializeRegisterable(
66
+ __Registerable_init(
67
+ instanceAdmin.authority(),
67
68
  address(registry),
68
69
  registry.getNftId(),
69
70
  INSTANCE(),
@@ -79,36 +80,59 @@ contract Instance is
79
80
 
80
81
  // initialize instance supporting contracts
81
82
  _instanceStore.initialize();
82
- _bundleSet.initialize();
83
- _riskSet.initialize();
83
+ _bundleSet.initialize(instanceAdmin.authority(), address(registry));
84
+ _riskSet.initialize(instanceAdmin.authority(), address(registry));
84
85
  _instanceReader.initialize();
85
86
 
86
87
  _componentService = IComponentService(
87
88
  getRegistry().getServiceAddress(
88
89
  COMPONENT(),
89
- getRelease()));
90
+ release));
90
91
 
91
92
  _instanceService = IInstanceService(
92
93
  getRegistry().getServiceAddress(
93
94
  INSTANCE(),
94
- getRelease()));
95
+ release));
95
96
 
96
97
  _registerInterface(type(IInstance).interfaceId);
97
98
  }
98
99
 
100
+
101
+ function setInstanceLocked(bool locked)
102
+ external
103
+ // not restricted(): need to be able to unlock a locked instance
104
+ onlyOwner()
105
+ {
106
+ _instanceService.setInstanceLocked(locked);
107
+ }
108
+
109
+
110
+ function upgradeInstanceReader()
111
+ external
112
+ restricted()
113
+ onlyOwner()
114
+ {
115
+ _instanceService.upgradeInstanceReader();
116
+ }
117
+
118
+
99
119
  //--- ProductRegistration ----------------------------------------------//
120
+
100
121
  function registerProduct(address product)
101
122
  external
123
+ restricted()
102
124
  onlyOwner()
103
125
  returns (NftId productNftId)
104
126
  {
105
- return _componentService.registerProduct(product);
127
+ productNftId = _componentService.registerProduct(product);
128
+ _products.push(productNftId);
106
129
  }
107
130
 
108
131
  //--- Staking ----------------------------------------------------------//
109
132
 
110
133
  function setStakingLockingPeriod(Seconds stakeLockingPeriod)
111
134
  external
135
+ restricted()
112
136
  onlyOwner()
113
137
  {
114
138
  _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
@@ -116,13 +140,22 @@ contract Instance is
116
140
 
117
141
  function setStakingRewardRate(UFixed rewardRate)
118
142
  external
143
+ restricted()
119
144
  onlyOwner()
120
145
  {
121
146
  _instanceService.setStakingRewardRate(rewardRate);
122
147
  }
123
148
 
149
+ function setStakingMaxAmount(Amount maxStakedAmount)
150
+ external
151
+ onlyOwner()
152
+ {
153
+ _instanceService.setStakingMaxAmount(maxStakedAmount);
154
+ }
155
+
124
156
  function refillStakingRewardReserves(Amount dipAmount)
125
157
  external
158
+ restricted()
126
159
  onlyOwner()
127
160
  {
128
161
  address instanceOwner = msg.sender;
@@ -131,6 +164,7 @@ contract Instance is
131
164
 
132
165
  function withdrawStakingRewardReserves(Amount dipAmount)
133
166
  external
167
+ restricted()
134
168
  onlyOwner()
135
169
  returns (Amount newBalance)
136
170
  {
@@ -141,6 +175,7 @@ contract Instance is
141
175
 
142
176
  function createRole(string memory roleName, string memory adminName)
143
177
  external
178
+ restricted()
144
179
  onlyOwner()
145
180
  returns (RoleId roleId, RoleId admin)
146
181
  {
@@ -150,6 +185,7 @@ contract Instance is
150
185
 
151
186
  function grantRole(RoleId roleId, address account)
152
187
  external
188
+ restricted()
153
189
  onlyOwner()
154
190
  {
155
191
  _instanceAdmin.grantRole(roleId, account);
@@ -157,6 +193,7 @@ contract Instance is
157
193
 
158
194
  function revokeRole(RoleId roleId, address account)
159
195
  external
196
+ restricted()
160
197
  onlyOwner()
161
198
  {
162
199
  // TODO refactor
@@ -165,8 +202,18 @@ contract Instance is
165
202
 
166
203
  //--- Targets ------------------------------------------------------------//
167
204
 
205
+
206
+ function setTargetLocked(address target, bool locked)
207
+ external
208
+ // not restricted(): instance owner may need to be able to unlock targets on an locked instance
209
+ onlyOwner()
210
+ {
211
+ _instanceService.setTargetLocked(target, locked);
212
+ }
213
+
168
214
  function createTarget(address target, string memory name)
169
215
  external
216
+ restricted()
170
217
  onlyOwner()
171
218
  {
172
219
  // TODO refactor
@@ -179,19 +226,13 @@ contract Instance is
179
226
  RoleId roleId
180
227
  )
181
228
  external
229
+ restricted()
182
230
  onlyOwner()
183
231
  {
184
232
  // TODO refactor
185
233
  // _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
186
234
  }
187
235
 
188
- function setLocked(address target, bool locked)
189
- external
190
- onlyOwner()
191
- {
192
- _componentService.setLockedFromInstance(target, locked);
193
- }
194
-
195
236
  //--- ITransferInterceptor ----------------------------------------------//
196
237
 
197
238
  function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external onlyChainNft {
@@ -215,6 +256,22 @@ contract Instance is
215
256
 
216
257
  //--- external view functions -------------------------------------------//
217
258
 
259
+ function isInstanceLocked() external view returns (bool) {
260
+ return _instanceAdmin.isLocked();
261
+ }
262
+
263
+ function isTargetLocked(address target) external view returns (bool) {
264
+ return _instanceAdmin.isTargetLocked(target);
265
+ }
266
+
267
+ function products() external view returns (uint256 productCount) {
268
+ return _products.length;
269
+ }
270
+
271
+ function getProductNftId(uint256 idx) external view returns (NftId productNftId) {
272
+ return _products[idx];
273
+ }
274
+
218
275
  function getInstanceReader() external view returns (InstanceReader) {
219
276
  return _instanceReader;
220
277
  }