@etherisc/gif-next 0.0.2-9dd41ff-671 → 0.0.2-9ed3c41-176

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 (476) hide show
  1. package/README.md +30 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +148 -352
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +154 -335
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +72 -97
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +151 -251
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +67 -64
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +71 -72
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +190 -49
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +81 -141
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1158 -278
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +493 -332
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +271 -109
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +65 -58
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1103 -359
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +21 -0
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -268
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +60 -73
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -51
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +149 -285
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +134 -133
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +191 -348
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +180 -368
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +47 -84
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +93 -167
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +61 -50
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +121 -211
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +75 -72
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +20 -1
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +94 -25
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +40 -1
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +253 -148
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -55
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +180 -297
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +58 -103
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +163 -174
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +86 -59
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  144. package/artifacts/contracts/product/Product.sol/Product.json +288 -248
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -222
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +39 -48
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +106 -32
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +42 -73
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +359 -47
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1557 -116
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +198 -28
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +45 -42
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -136
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  173. package/artifacts/contracts/shared/Component.sol/Component.json +100 -96
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +892 -55
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  180. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  181. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -81
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +12 -16
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  201. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  202. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  207. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  210. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  211. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  212. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +33 -20
  214. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  215. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
  216. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +19 -32
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +17 -22
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  222. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Service.sol/Service.json +16 -16
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +40 -4
  226. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  227. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  228. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  229. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  230. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  231. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  232. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
  233. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  234. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  235. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  236. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  237. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  238. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  239. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  240. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  241. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  242. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  243. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +657 -100
  245. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +65 -46
  247. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  248. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  249. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  250. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  251. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  252. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  253. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  255. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  257. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  259. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  261. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/Fee.sol/FeeLib.json +34 -34
  263. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  264. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  265. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  267. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  268. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  269. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  271. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  273. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  275. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  277. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  279. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  281. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
  283. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  285. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  287. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  289. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  291. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  293. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  295. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  297. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  299. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  301. package/contracts/authorization/AccessAdmin.sol +591 -0
  302. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  303. package/contracts/authorization/Authorization.sol +218 -0
  304. package/contracts/authorization/IAccess.sol +48 -0
  305. package/contracts/authorization/IAccessAdmin.sol +136 -0
  306. package/contracts/authorization/IAuthorization.sol +54 -0
  307. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  308. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  309. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  310. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  311. package/contracts/distribution/BasicDistribution.sol +149 -0
  312. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  313. package/contracts/distribution/Distribution.sol +144 -146
  314. package/contracts/distribution/DistributionService.sol +69 -118
  315. package/contracts/distribution/IDistributionComponent.sol +20 -43
  316. package/contracts/distribution/IDistributionService.sol +7 -9
  317. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  318. package/contracts/instance/IInstance.sol +21 -12
  319. package/contracts/instance/IInstanceService.sol +44 -25
  320. package/contracts/instance/Instance.sol +110 -86
  321. package/contracts/instance/InstanceAdmin.sol +194 -282
  322. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  323. package/contracts/instance/InstanceReader.sol +84 -47
  324. package/contracts/instance/InstanceService.sol +253 -108
  325. package/contracts/instance/InstanceStore.sol +131 -66
  326. package/contracts/instance/base/BalanceStore.sol +123 -0
  327. package/contracts/instance/base/Cloneable.sol +2 -25
  328. package/contracts/instance/base/ObjectCounter.sol +21 -0
  329. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  330. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  331. package/contracts/instance/module/IAccess.sol +2 -0
  332. package/contracts/instance/module/IBundle.sol +1 -4
  333. package/contracts/instance/module/IComponents.sol +15 -4
  334. package/contracts/instance/module/IPolicy.sol +8 -2
  335. package/contracts/mock/Dip.sol +26 -0
  336. package/contracts/oracle/BasicOracle.sol +48 -0
  337. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  338. package/contracts/oracle/IOracle.sol +36 -0
  339. package/contracts/oracle/IOracleComponent.sol +32 -0
  340. package/contracts/oracle/IOracleService.sol +65 -0
  341. package/contracts/oracle/Oracle.sol +157 -0
  342. package/contracts/oracle/OracleService.sol +278 -0
  343. package/contracts/oracle/OracleServiceManager.sol +42 -0
  344. package/contracts/pool/BasicPool.sol +164 -0
  345. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  346. package/contracts/pool/BundleService.sol +86 -174
  347. package/contracts/pool/IBundleService.sol +4 -16
  348. package/contracts/pool/IPoolComponent.sol +4 -66
  349. package/contracts/pool/IPoolService.sol +45 -9
  350. package/contracts/pool/Pool.sol +150 -141
  351. package/contracts/pool/PoolService.sol +191 -144
  352. package/contracts/product/ApplicationService.sol +109 -42
  353. package/contracts/product/BasicProduct.sol +82 -0
  354. package/contracts/product/BasicProductAuthorization.sol +40 -0
  355. package/contracts/product/ClaimService.sol +18 -19
  356. package/contracts/product/IApplicationService.sol +1 -1
  357. package/contracts/product/IClaimService.sol +7 -1
  358. package/contracts/product/IPolicyService.sol +6 -8
  359. package/contracts/product/IPricingService.sol +3 -1
  360. package/contracts/product/IProductComponent.sol +9 -11
  361. package/contracts/product/IProductService.sol +1 -8
  362. package/contracts/product/PolicyService.sol +225 -128
  363. package/contracts/product/PricingService.sol +72 -48
  364. package/contracts/product/Product.sol +118 -105
  365. package/contracts/product/ProductService.sol +26 -114
  366. package/contracts/registry/ChainNft.sol +8 -1
  367. package/contracts/registry/IRegistry.sol +40 -18
  368. package/contracts/registry/IRegistryService.sol +15 -5
  369. package/contracts/registry/Registry.sol +221 -110
  370. package/contracts/registry/RegistryAdmin.sol +299 -77
  371. package/contracts/registry/RegistryService.sol +48 -14
  372. package/contracts/registry/RegistryServiceManager.sol +2 -9
  373. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  374. package/contracts/registry/ReleaseRegistry.sol +487 -0
  375. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  376. package/contracts/registry/TokenRegistry.sol +261 -64
  377. package/contracts/shared/Component.sol +139 -129
  378. package/contracts/shared/ComponentService.sol +527 -87
  379. package/contracts/shared/ComponentServiceManager.sol +35 -0
  380. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  381. package/contracts/shared/ERC165.sol +1 -1
  382. package/contracts/shared/IComponent.sol +17 -37
  383. package/contracts/shared/IComponentService.sol +102 -0
  384. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  385. package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
  386. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  387. package/contracts/shared/INftOwnable.sol +1 -1
  388. package/contracts/shared/IPolicyHolder.sol +6 -1
  389. package/contracts/shared/IService.sol +8 -1
  390. package/contracts/shared/InitializableCustom.sol +177 -0
  391. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  392. package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
  393. package/contracts/shared/Lifecycle.sol +77 -0
  394. package/contracts/shared/NftIdSet.sol +65 -0
  395. package/contracts/shared/NftOwnable.sol +3 -13
  396. package/contracts/shared/PolicyHolder.sol +21 -13
  397. package/contracts/shared/ProxyManager.sol +2 -3
  398. package/contracts/shared/Registerable.sol +2 -2
  399. package/contracts/shared/Service.sol +32 -21
  400. package/contracts/shared/TokenHandler.sol +24 -1
  401. package/contracts/staking/IStaking.sol +167 -0
  402. package/contracts/staking/IStakingService.sol +105 -47
  403. package/contracts/staking/StakeManagerLib.sol +231 -0
  404. package/contracts/staking/Staking.sol +511 -0
  405. package/contracts/staking/StakingLifecycle.sol +23 -0
  406. package/contracts/staking/StakingManager.sol +53 -0
  407. package/contracts/staking/StakingReader.sol +186 -0
  408. package/contracts/staking/StakingService.sol +286 -44
  409. package/contracts/staking/StakingServiceManager.sol +7 -3
  410. package/contracts/staking/StakingStore.sol +615 -0
  411. package/contracts/staking/TargetManagerLib.sol +207 -0
  412. package/contracts/type/AddressSet.sol +1 -1
  413. package/contracts/type/Amount.sol +20 -1
  414. package/contracts/type/Blocknumber.sol +20 -3
  415. package/contracts/type/Fee.sol +17 -16
  416. package/contracts/type/NftId.sol +14 -16
  417. package/contracts/type/NftIdSet.sol +1 -1
  418. package/contracts/type/ObjectType.sol +172 -63
  419. package/contracts/type/Referral.sol +1 -1
  420. package/contracts/type/RequestId.sol +75 -0
  421. package/contracts/type/RiskId.sol +1 -1
  422. package/contracts/type/RoleId.sol +104 -69
  423. package/contracts/type/Seconds.sol +27 -0
  424. package/contracts/type/Selector.sol +102 -0
  425. package/contracts/type/StateId.sol +27 -2
  426. package/contracts/type/String.sol +53 -0
  427. package/contracts/type/Timestamp.sol +6 -2
  428. package/contracts/type/UFixed.sol +6 -0
  429. package/contracts/type/Version.sol +4 -2
  430. package/package.json +8 -5
  431. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  432. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  433. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  434. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -188
  435. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  436. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  437. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  438. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  439. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  440. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  441. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  442. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  443. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  444. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  445. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  446. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  447. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1018
  448. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  449. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  450. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  451. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  452. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  453. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  454. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  455. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1747
  456. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  457. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1765
  458. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  459. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  460. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  461. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  462. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  463. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1594
  464. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -320
  465. package/contracts/instance/base/Lifecycle.sol +0 -121
  466. package/contracts/instance/module/ISetup.sol +0 -33
  467. package/contracts/instance/module/ITreasury.sol +0 -23
  468. package/contracts/registry/ReleaseManager.sol +0 -465
  469. package/contracts/shared/AccessManagerCustom.sol +0 -736
  470. package/contracts/shared/AccessManagerExtended.sol +0 -469
  471. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  472. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -125
  473. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  474. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  475. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  476. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -17
@@ -4,14 +4,20 @@ pragma solidity ^0.8.20;
4
4
  import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
5
  import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
6
 
7
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
8
+ import {Amount} from "../type/Amount.sol";
9
+ import {BundleSet} from "./BundleSet.sol";
10
+ import {ChainNft} from "../registry/ChainNft.sol";
7
11
  import {NftId} from "../type/NftId.sol";
8
12
  import {RoleId} from "../type/RoleId.sol";
9
- import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../type/RoleId.sol";
10
- import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../type/ObjectType.sol";
13
+ import {SecondsLib} from "../type/Seconds.sol";
14
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
15
+ import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
16
+ import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
11
17
 
12
18
  import {Service} from "../shared/Service.sol";
19
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
13
20
  import {IService} from "../shared/IService.sol";
14
- import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
15
21
 
16
22
  import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
17
23
  import {IPoolComponent} from "../pool/IPoolComponent.sol";
@@ -19,16 +25,19 @@ import {IProductComponent} from "../product/IProductComponent.sol";
19
25
 
20
26
  import {IRegistry} from "../registry/IRegistry.sol";
21
27
  import {IRegistryService} from "../registry/IRegistryService.sol";
22
- import {ChainNft} from "../registry/ChainNft.sol";
28
+ import {IStakingService} from "../staking/IStakingService.sol";
29
+ import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
23
30
 
24
31
  import {Instance} from "./Instance.sol";
32
+ import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
25
33
  import {IInstance} from "./IInstance.sol";
26
34
  import {InstanceAdmin} from "./InstanceAdmin.sol";
27
35
  import {IInstanceService} from "./IInstanceService.sol";
28
36
  import {InstanceReader} from "./InstanceReader.sol";
29
- import {BundleManager} from "./BundleManager.sol";
30
37
  import {InstanceStore} from "./InstanceStore.sol";
31
- import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
38
+ import {Seconds} from "../type/Seconds.sol";
39
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
40
+
32
41
 
33
42
  contract InstanceService is
34
43
  Service,
@@ -39,13 +48,37 @@ contract InstanceService is
39
48
  bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
40
49
 
41
50
  IRegistryService internal _registryService;
42
- address internal _masterOzAccessManager;
51
+ IStakingService internal _stakingService;
52
+
53
+ address internal _masterAccessManager;
43
54
  address internal _masterInstanceAdmin;
44
55
  address internal _masterInstance;
45
56
  address internal _masterInstanceReader;
46
- address internal _masterInstanceBundleManager;
57
+ address internal _masterInstanceBundleSet;
47
58
  address internal _masterInstanceStore;
48
59
 
60
+
61
+ modifier onlyInstance() {
62
+ address instanceAddress = msg.sender;
63
+ NftId instanceNftId = getRegistry().getNftId(msg.sender);
64
+ if (instanceNftId.eqz()) {
65
+ revert ErrorInstanceServiceNotRegistered(instanceAddress);
66
+ }
67
+
68
+ ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
69
+ if (objectType != INSTANCE()) {
70
+ revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
71
+ }
72
+
73
+ VersionPart instanceVersion = IInstance(instanceAddress).getMajorVersion();
74
+ if (instanceVersion != getVersion().toMajorPart()) {
75
+ revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
76
+ }
77
+
78
+ _;
79
+ }
80
+
81
+
49
82
  modifier onlyInstanceOwner(NftId instanceNftId) {
50
83
  if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
51
84
  revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
@@ -61,71 +94,141 @@ contract InstanceService is
61
94
  _;
62
95
  }
63
96
 
64
- function createInstanceClone()
97
+ function createInstance()
65
98
  external
66
99
  returns (
67
100
  Instance clonedInstance,
68
101
  NftId clonedInstanceNftId
69
102
  )
70
103
  {
104
+ // tx sender will become instance owner
71
105
  address instanceOwner = msg.sender;
72
- AccessManagerExtendedInitializeable clonedOzAccessManager = AccessManagerExtendedInitializeable(
73
- Clones.clone(_masterOzAccessManager));
74
106
 
75
- // initially grants ADMIN_ROLE to this (being the instance service).
76
- // This will allow the instance service to bootstrap the authorizations of the instance.
77
- // Instance service will renounce ADMIN_ROLE when bootstraping is finished
78
- clonedOzAccessManager.initialize(address(this));
107
+ // start with setting up a new OZ access manager
108
+ AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
109
+ Clones.clone(_masterAccessManager));
110
+
111
+ // set up the instance admin
112
+ InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
113
+ clonedAccessManager.initialize(
114
+ address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
115
+
116
+ clonedInstanceAdmin.initialize(
117
+ clonedAccessManager,
118
+ InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
79
119
 
80
- clonedInstance = Instance(Clones.clone(_masterInstance));
81
- clonedInstance.initialize(
82
- address(clonedOzAccessManager),
83
- address(getRegistry()),
84
- instanceOwner);
85
- // initialize and set before instance reader
86
120
  InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
87
- clonedInstanceStore.initialize(address(clonedInstance));
88
- clonedInstance.setInstanceStore(clonedInstanceStore);
89
-
121
+ BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
90
122
  InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
91
- clonedInstanceReader.initialize(address(clonedInstance));
92
- clonedInstance.setInstanceReader(clonedInstanceReader);
93
-
94
- BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
95
- clonedBundleManager.initialize(address(clonedInstance));
96
- clonedInstance.setBundleManager(clonedBundleManager);
97
123
 
98
- InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
99
- clonedOzAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAdmin), 0);
100
- clonedInstanceAdmin.initialize(address(clonedInstance));
101
- clonedInstance.setInstanceAdmin(clonedInstanceAdmin);
102
-
103
- // TODO amend setters with instance specific , policy manager ...
104
-
105
- // TODO library does external calls -> but it is registry and access manager -> find out is it best practice
106
- InstanceAuthorizationsLib.grantInitialAuthorizations(
107
- clonedOzAccessManager,
108
- clonedInstanceAdmin,
109
- clonedInstance,
110
- clonedBundleManager,
111
- clonedInstanceStore,
112
- instanceOwner,
124
+ // clone instance
125
+ clonedInstance = Instance(Clones.clone(_masterInstance));
126
+ clonedInstance.initialize(
127
+ clonedInstanceAdmin,
128
+ clonedInstanceStore,
129
+ clonedBundleSet,
130
+ clonedInstanceReader,
113
131
  getRegistry(),
114
- getVersion().toMajorPart());
132
+ instanceOwner);
115
133
 
116
- clonedOzAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
134
+ // register cloned instance with registry
135
+ clonedInstanceNftId = _registryService.registerInstance(
136
+ clonedInstance, instanceOwner).nftId;
117
137
 
118
- IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
119
- clonedInstanceNftId = info.nftId;
138
+ // register cloned instance as staking target
139
+ _stakingService.createInstanceTarget(
140
+ clonedInstanceNftId,
141
+ TargetManagerLib.getDefaultLockingPeriod(),
142
+ TargetManagerLib.getDefaultRewardRate());
143
+
144
+ // MUST be set after instance is set up and registered
145
+ clonedInstanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
120
146
 
121
147
  emit LogInstanceCloned(
122
- address(clonedOzAccessManager),
123
- address(clonedInstanceAdmin),
124
- address(clonedInstance),
125
- address(clonedInstanceStore),
126
- address(clonedBundleManager),
127
- address(clonedInstanceReader),
128
- clonedInstanceNftId);
148
+ clonedInstanceNftId,
149
+ address(clonedInstance));
150
+ }
151
+
152
+
153
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod)
154
+ external
155
+ virtual
156
+ onlyInstance()
157
+ {
158
+ NftId instanceNftId = getRegistry().getNftId(msg.sender);
159
+ _stakingService.setInstanceLockingPeriod(
160
+ instanceNftId,
161
+ stakeLockingPeriod);
162
+ }
163
+
164
+
165
+ function setStakingRewardRate(UFixed rewardRate)
166
+ external
167
+ virtual
168
+ onlyInstance()
169
+ {
170
+ NftId instanceNftId = getRegistry().getNftId(msg.sender);
171
+ _stakingService.setInstanceRewardRate(
172
+ instanceNftId,
173
+ rewardRate);
174
+ }
175
+
176
+
177
+ function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
178
+ external
179
+ virtual
180
+ onlyInstance()
181
+ {
182
+ NftId instanceNftId = getRegistry().getNftId(msg.sender);
183
+ _stakingService.refillInstanceRewardReserves(
184
+ instanceNftId,
185
+ rewardProvider,
186
+ dipAmount);
187
+ }
188
+
189
+
190
+ function withdrawStakingRewardReserves(Amount dipAmount)
191
+ external
192
+ virtual
193
+ onlyInstance()
194
+ returns (Amount newBalance)
195
+ {
196
+ NftId instanceNftId = getRegistry().getNftId(msg.sender);
197
+ _stakingService.withdrawInstanceRewardReserves(
198
+ instanceNftId,
199
+ dipAmount);
200
+ }
201
+
202
+
203
+ function setComponentLocked(bool locked)
204
+ external
205
+ virtual
206
+ onlyComponent()
207
+ {
208
+ // checks
209
+ address componentAddress = msg.sender;
210
+
211
+ if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
212
+ revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
213
+ }
214
+
215
+ IRegistry registry = getRegistry();
216
+ NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
217
+
218
+ IInstance instance = IInstance(
219
+ registry.getObjectInfo(
220
+ instanceNftId).objectAddress);
221
+
222
+ // no revert in case already locked
223
+ // TODO refactor/implement
224
+ // instance.getInstanceAdmin().setTargetLockedByService(
225
+ // componentAddress,
226
+ // locked);
227
+ }
228
+
229
+
230
+ function getMasterInstanceReader() external view returns (address) {
231
+ return _masterInstanceReader;
129
232
  }
130
233
 
131
234
  function setAndRegisterMasterInstance(address instanceAddress)
@@ -134,38 +237,39 @@ contract InstanceService is
134
237
  returns(NftId masterInstanceNftId)
135
238
  {
136
239
  if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
137
- if(_masterOzAccessManager != address(0)) { revert ErrorInstanceServiceMasterOzAccessManagerAlreadySet(); }
138
240
  if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
139
- if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
241
+ if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
140
242
 
141
243
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
142
244
 
143
245
  IInstance instance = IInstance(instanceAddress);
144
- InstanceAdmin InstanceAdmin = instance.getInstanceAdmin();
145
- address InstanceAdminAddress = address(InstanceAdmin);
246
+ address accessManagerAddress = instance.authority();
247
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
248
+ address instanceAdminAddress = address(instanceAdmin);
146
249
  InstanceReader instanceReader = instance.getInstanceReader();
147
250
  address instanceReaderAddress = address(instanceReader);
148
- BundleManager bundleManager = instance.getBundleManager();
251
+ BundleSet bundleManager = instance.getBundleSet();
149
252
  address bundleManagerAddress = address(bundleManager);
150
253
  InstanceStore instanceStore = instance.getInstanceStore();
151
254
  address instanceStoreAddress = address(instanceStore);
152
255
 
153
- if(InstanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
256
+ if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
257
+ if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
154
258
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
155
- if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
259
+ if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
156
260
  if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
157
261
 
158
- if(instance.authority() != InstanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
159
- if(bundleManager.authority() != InstanceAdmin.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
160
- if(instanceStore.authority() != InstanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
262
+ if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
263
+ if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
264
+ if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
161
265
  if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
162
266
  if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
163
267
 
164
- _masterOzAccessManager = instance.authority();
165
- _masterInstanceAdmin = InstanceAdminAddress;
268
+ _masterAccessManager = accessManagerAddress;
269
+ _masterInstanceAdmin = instanceAdminAddress;
166
270
  _masterInstance = instanceAddress;
167
271
  _masterInstanceReader = instanceReaderAddress;
168
- _masterInstanceBundleManager = bundleManagerAddress;
272
+ _masterInstanceBundleSet = bundleManagerAddress;
169
273
  _masterInstanceStore = instanceStoreAddress;
170
274
 
171
275
  IInstance masterInstance = IInstance(_masterInstance);
@@ -173,7 +277,7 @@ contract InstanceService is
173
277
  masterInstanceNftId = info.nftId;
174
278
  }
175
279
 
176
- function setMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
280
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
177
281
  if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
178
282
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
179
283
  if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
@@ -193,12 +297,11 @@ contract InstanceService is
193
297
  Instance instance = Instance(instanceInfo.objectAddress);
194
298
 
195
299
  InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
196
- upgradedInstanceReaderClone.initialize(address(instance));
300
+ upgradedInstanceReaderClone.initializeWithInstance(address(instance));
197
301
  instance.setInstanceReader(upgradedInstanceReaderClone);
198
302
  }
199
303
 
200
304
 
201
- // all gif targets MUST be childs of instanceNftId
202
305
  function createGifTarget(
203
306
  NftId instanceNftId,
204
307
  address targetAddress,
@@ -207,47 +310,86 @@ contract InstanceService is
207
310
  RoleId[] memory roles
208
311
  )
209
312
  external
210
- restricted
313
+ virtual
314
+ restricted()
211
315
  {
212
- (
213
- IInstance instance, // or instanceInfo
214
- // or targetInfo
215
- ) = _validateInstanceAndComponent(instanceNftId, targetAddress);
216
-
217
- InstanceAdmin accessManager = instance.getInstanceAdmin();
218
- accessManager.createGifTarget(targetAddress, targetName);
219
- // set proposed target config
220
- // TODO restriction: gif targets are set only once and only here?
221
- // assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
222
- for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++)
223
- {
224
- accessManager.setCoreTargetFunctionRole(targetName, selectors[roleIdx], roles[roleIdx]);
225
- }
316
+ _createGifTarget(
317
+ instanceNftId,
318
+ targetAddress,
319
+ targetName,
320
+ roles,
321
+ selectors
322
+ );
226
323
  }
227
324
 
228
- function setComponentLocked(bool locked) onlyComponent external {
229
325
 
230
- address componentAddress = msg.sender;
231
- IRegistry registry = getRegistry();
232
- NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
326
+ function initializeAuthorization(
327
+ NftId instanceNftId,
328
+ IInstanceLinkedComponent component
329
+ )
330
+ external
331
+ virtual
332
+ restricted()
333
+ {
334
+ (IInstance instance, ) = _validateInstanceAndComponent(
335
+ instanceNftId,
336
+ address(component));
337
+
338
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
339
+ instanceAdmin.initializeComponentAuthorization(
340
+ address(component),
341
+ component.getAuthorization());
342
+ }
233
343
 
234
- IInstance instance = IInstance(
235
- registry.getObjectInfo(
236
- instanceNftId).objectAddress);
237
344
 
238
- instance.getInstanceAdmin().setTargetLockedByService(
239
- componentAddress,
240
- locked);
345
+ function createComponentTarget(
346
+ NftId instanceNftId,
347
+ address targetAddress,
348
+ string memory targetName,
349
+ bytes4[][] memory selectors,
350
+ RoleId[] memory roles
351
+ )
352
+ external
353
+ virtual
354
+ restricted()
355
+ {
356
+ _createGifTarget(
357
+ instanceNftId,
358
+ targetAddress,
359
+ targetName,
360
+ roles,
361
+ selectors
362
+ );
241
363
  }
242
364
 
243
365
 
244
- function getMasterInstanceReader() external view returns (address) {
245
- return _masterInstanceReader;
246
- }
366
+ /// all gif targets MUST be children of instanceNftId
367
+ function _createGifTarget(
368
+ NftId instanceNftId,
369
+ address targetAddress,
370
+ string memory targetName,
371
+ RoleId[] memory roles,
372
+ bytes4[][] memory selectors
373
+ )
374
+ internal
375
+ virtual
376
+ {
377
+ // TODO instanceAdmin will check target instance match anyway
378
+ (
379
+ IInstance instance, // or instanceInfo
380
+ // or targetInfo
381
+ ) = _validateInstanceAndComponent(instanceNftId, targetAddress);
247
382
 
248
- // From IService
249
- function getDomain() public pure override returns(ObjectType) {
250
- return INSTANCE();
383
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
384
+
385
+ // TODO refactor/implement
386
+ // instanceAdmin.createGifTarget(targetAddress, targetName);
387
+
388
+ // set proposed target config
389
+ for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
390
+ // TODO refactor/implement
391
+ // instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
392
+ }
251
393
  }
252
394
 
253
395
  /// @dev top level initializer
@@ -267,10 +409,8 @@ contract InstanceService is
267
409
 
268
410
  initializeService(registryAddress, authority, owner);
269
411
 
270
- _registryService = IRegistryService(
271
- IRegistry(registryAddress).getServiceAddress(
272
- REGISTRY(),
273
- getVersion().toMajorPart()));
412
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
413
+ _stakingService = IStakingService(_getServiceAddress(STAKING()));
274
414
 
275
415
  registerInterface(type(IInstanceService).interfaceId);
276
416
  }
@@ -284,7 +424,7 @@ contract InstanceService is
284
424
  IRegistry registry = getRegistry();
285
425
  IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
286
426
  if(instanceInfo.objectType != INSTANCE()) {
287
- revert ErrorInstanceServiceNotInstance(instanceNftId);
427
+ revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
288
428
  }
289
429
 
290
430
  IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
@@ -295,4 +435,9 @@ contract InstanceService is
295
435
  instance = Instance(instanceInfo.objectAddress);
296
436
  componentNftId = componentInfo.nftId;
297
437
  }
438
+
439
+ // From IService
440
+ function _getDomain() internal pure override returns(ObjectType) {
441
+ return INSTANCE();
442
+ }
298
443
  }