@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
@@ -1,24 +1,30 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {BundleSet} from "./BundleSet.sol";
6
+ import {Instance} from "./Instance.sol";
7
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
+ import {IService} from "../shared/IService.sol";
4
9
  import {NftId} from "../type/NftId.sol";
5
10
  import {ObjectType} from "../type/ObjectType.sol";
6
11
  import {RoleId} from "../type/RoleId.sol";
7
- import {IService} from "../shared/IService.sol";
8
-
9
- import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
10
- import {InstanceAdmin} from "./InstanceAdmin.sol";
11
- import {Instance} from "./Instance.sol";
12
- import {InstanceReader} from "./InstanceReader.sol";
13
- import {BundleManager} from "./BundleManager.sol";
14
- import {InstanceStore} from "./InstanceStore.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
13
+ import {UFixed} from "../type/UFixed.sol";
14
+ import {VersionPart} from "../type/Version.sol";
15
15
 
16
16
  interface IInstanceService is IService {
17
17
 
18
+ // onlyInstance
19
+ error ErrorInstanceServiceNotRegistered(address instance);
20
+ error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
21
+ error ErrorInstanceServiceInstanceVersionMismatch(address instance, VersionPart instanceVersion);
22
+
23
+ error ErrorInstanceServiceComponentNotInstanceLinked(address component);
24
+
18
25
  error ErrorInstanceServiceMasterInstanceAlreadySet();
19
- error ErrorInstanceServiceMasterOzAccessManagerAlreadySet();
20
26
  error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
21
- error ErrorInstanceServiceMasterBundleManagerAlreadySet();
27
+ error ErrorInstanceServiceMasterBundleSetAlreadySet();
22
28
  error ErrorInstanceServiceInstanceAddressZero();
23
29
 
24
30
  error ErrorInstanceServiceMasterInstanceReaderNotSet();
@@ -26,41 +32,54 @@ interface IInstanceService is IService {
26
32
  error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
27
33
  error ErrorInstanceServiceInstanceReaderInstanceMismatch();
28
34
 
35
+ error ErrorInstanceServiceAccessManagerZero();
29
36
  error ErrorInstanceServiceInstanceAdminZero();
30
37
  error ErrorInstanceServiceInstanceReaderZero();
31
- error ErrorInstanceServiceBundleManagerZero();
38
+ error ErrorInstanceServiceBundleSetZero();
32
39
  error ErrorInstanceServiceInstanceStoreZero();
33
40
 
34
41
  error ErrorInstanceServiceInstanceAuthorityMismatch();
35
- error ErrorInstanceServiceBundleManagerAuthorityMismatch();
42
+ error ErrorInstanceServiceBundleSetAuthorityMismatch();
36
43
  error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
37
44
  error ErrorInstanceServiceBundleMangerInstanceMismatch();
38
45
  error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
39
46
 
40
47
  error ErrorInstanceServiceRequestUnauhorized(address caller);
41
- error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
42
- error ErrorInstanceServiceNotInstance(NftId nftId);
48
+ error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
43
49
  error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
44
50
  error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
45
51
  error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
46
52
 
47
- event LogInstanceCloned(
48
- address clonedOzAccessManager,
49
- address clonedInstanceAccessManager,
50
- address clonedInstance,
51
- address clonedInstanceStore,
52
- address clonedBundleManager,
53
- address clonedInstanceReader,
54
- NftId clonedInstanceNftId
55
- );
56
-
57
- function createInstanceClone()
53
+ event LogInstanceCloned(NftId instanceNftId, address instance);
54
+
55
+ function createInstance()
58
56
  external
59
57
  returns (
58
+ // TODO check if Instance can be changed to IInstance
60
59
  Instance clonedInstance,
61
60
  NftId instanceNftId
62
61
  );
63
62
 
63
+
64
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
65
+ function setStakingRewardRate(UFixed rewardRate) external;
66
+ function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
67
+
68
+ /// @dev Defunds the staking reward reserves for the specified target.
69
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
70
+
71
+ /// @dev Sets up the component authorization for the specified instance.
72
+ /// The authorization is based on the authz specification provided by the component via getAuthorization.
73
+ function initializeAuthorization(NftId instanceNftId, IInstanceLinkedComponent component) external;
74
+
75
+ function createComponentTarget(
76
+ NftId instanceNftId,
77
+ address targetAddress,
78
+ string memory targetName,
79
+ bytes4[][] memory selectors,
80
+ RoleId[] memory roles
81
+ ) external;
82
+
64
83
  function createGifTarget(
65
84
  NftId instanceNftId,
66
85
  address targetAddress,
@@ -3,35 +3,39 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
 
6
+ import {Amount} from "../type/Amount.sol";
6
7
  import {Key32} from "../type/Key32.sol";
7
8
  import {NftId} from "../type/NftId.sol";
8
9
  import {RiskId} from "../type/RiskId.sol";
9
10
  import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
10
- import {RoleId, RoleIdLib, eqRoleId, ADMIN_ROLE, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
11
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
11
+ import {RoleId} from "../type/RoleId.sol";
12
12
  import {ClaimId} from "../type/ClaimId.sol";
13
13
  import {ReferralId} from "../type/Referral.sol";
14
14
  import {PayoutId} from "../type/PayoutId.sol";
15
15
  import {DistributorType} from "../type/DistributorType.sol";
16
+ import {Seconds} from "../type/Seconds.sol";
17
+ import {UFixed} from "../type/UFixed.sol";
18
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
16
19
 
17
20
  import {Registerable} from "../shared/Registerable.sol";
18
21
  import {TokenHandler} from "../shared/TokenHandler.sol";
19
- import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
20
22
 
21
23
  import {IRegistry} from "../registry/IRegistry.sol";
22
24
 
23
25
  import {IInstance} from "./IInstance.sol";
26
+ import {IInstanceService} from "./IInstanceService.sol";
24
27
  import {InstanceReader} from "./InstanceReader.sol";
25
28
  import {InstanceAdmin} from "./InstanceAdmin.sol";
26
- import {BundleManager} from "./BundleManager.sol";
29
+ import {BundleSet} from "./BundleSet.sol";
27
30
  import {InstanceStore} from "./InstanceStore.sol";
28
31
 
32
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
33
+
29
34
  import {IBundle} from "./module/IBundle.sol";
30
35
  import {IComponents} from "./module/IComponents.sol";
31
36
  import {IDistribution} from "./module/IDistribution.sol";
32
37
  import {IPolicy} from "./module/IPolicy.sol";
33
38
  import {IRisk} from "./module/IRisk.sol";
34
- import {ISetup} from "./module/ISetup.sol";
35
39
 
36
40
  import {IDistributionService} from "../distribution/IDistributionService.sol";
37
41
  import {IPoolService} from "../pool/IPoolService.sol";
@@ -48,9 +52,10 @@ contract Instance is
48
52
 
49
53
  bool private _initialized;
50
54
 
55
+ IInstanceService internal _instanceService;
51
56
  InstanceAdmin internal _instanceAdmin;
52
57
  InstanceReader internal _instanceReader;
53
- BundleManager internal _bundleManager;
58
+ BundleSet internal _bundleManager;
54
59
  InstanceStore internal _instanceStore;
55
60
 
56
61
  modifier onlyChainNft() {
@@ -60,53 +65,120 @@ contract Instance is
60
65
  _;
61
66
  }
62
67
 
63
- function initialize(address authority, address registryAddress, address initialOwner)
68
+ function initialize(
69
+ InstanceAdmin instanceAdmin,
70
+ InstanceStore instanceStore,
71
+ BundleSet bundleManager,
72
+ InstanceReader instanceReader,
73
+ IRegistry registry,
74
+ address initialOwner
75
+ )
64
76
  external
65
77
  initializer()
66
78
  {
67
- if(authority == address(0)) {
79
+ _instanceAdmin = instanceAdmin;
80
+ if(_instanceAdmin.authority() == address(0)) {
81
+ // TODO rename error
68
82
  revert ErrorInstanceInstanceAdminZero();
69
83
  }
70
84
 
71
- __AccessManaged_init(authority);
72
-
73
- IRegistry registry = IRegistry(registryAddress);
74
- initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
85
+ // set authority to instance admin authority
86
+ __AccessManaged_init(_instanceAdmin.authority());
87
+
88
+ // setup instance object info
89
+ initializeRegisterable(
90
+ address(registry),
91
+ registry.getNftId(),
92
+ INSTANCE(),
93
+ true,
94
+ initialOwner,
95
+ "");
96
+
97
+ // store instance supporting contracts
98
+ _instanceStore = instanceStore;
99
+ _bundleManager = bundleManager;
100
+ _instanceReader = instanceReader;
101
+
102
+ // initialize instance supporting contracts
103
+ _instanceStore.initialize();
104
+ _bundleManager.initialize();
105
+ _instanceReader.initialize();
106
+
107
+ _instanceService = IInstanceService(
108
+ getRegistry().getServiceAddress(
109
+ INSTANCE(),
110
+ getMajorVersion()));
75
111
 
76
112
  registerInterface(type(IInstance).interfaceId);
77
113
  }
78
114
 
115
+ //--- Staking ----------------------------------------------------------//
116
+
117
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod)
118
+ external
119
+ // TODO decide if onlyOwner or restricted to instance owner role is better
120
+ onlyOwner()
121
+ {
122
+ _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
123
+ }
124
+
125
+ function setStakingRewardRate(UFixed rewardRate)
126
+ external
127
+ onlyOwner()
128
+ {
129
+ _instanceService.setStakingRewardRate(rewardRate);
130
+ }
131
+
132
+ function refillStakingRewardReserves(Amount dipAmount)
133
+ external
134
+ onlyOwner()
135
+ {
136
+ address instanceOwner = msg.sender;
137
+ _instanceService.refillStakingRewardReserves(instanceOwner, dipAmount);
138
+ }
139
+
140
+ function withdrawStakingRewardReserves(Amount dipAmount)
141
+ external
142
+ onlyOwner()
143
+ returns (Amount newBalance)
144
+ {
145
+ return _instanceService.withdrawStakingRewardReserves(dipAmount);
146
+ }
147
+
79
148
  //--- Roles ------------------------------------------------------------//
80
149
 
81
150
  function createRole(string memory roleName, string memory adminName)
82
151
  external
83
- restricted // INSTANCE_OWNER_ROLE
152
+ onlyOwner()
84
153
  returns (RoleId roleId, RoleId admin)
85
154
  {
86
- (roleId, admin) = _instanceAdmin.createRole(roleName, adminName);
155
+ // TODO refactor
156
+ // (roleId, admin) = _instanceAdmin.createRole(roleName, adminName);
87
157
  }
88
158
 
89
159
  function grantRole(RoleId roleId, address account)
90
160
  external
91
- restricted // INSTANCE_OWNER_ROLE
161
+ onlyOwner()
92
162
  {
93
- AccessManagerExtendedInitializeable(authority()).grantRole(roleId.toInt(), account, 0);
163
+ _instanceAdmin.grantRole(roleId, account);
94
164
  }
95
165
 
96
166
  function revokeRole(RoleId roleId, address account)
97
167
  external
98
- restricted // INSTANCE_OWNER_ROLE
168
+ onlyOwner()
99
169
  {
100
- AccessManagerExtendedInitializeable(authority()).revokeRole(roleId.toInt(), account);
170
+ // TODO refactor
171
+ // AccessManagerExtendedInitializeable(authority()).revokeRole(roleId.toInt(), account);
101
172
  }
102
173
 
103
174
  //--- Targets ------------------------------------------------------------//
104
175
 
105
176
  function createTarget(address target, string memory name)
106
177
  external
107
- restricted // INSTANCE_OWNER_ROLE
178
+ onlyOwner()
108
179
  {
109
- _instanceAdmin.createTarget(target, name);
180
+ // TODO refactor
181
+ // _instanceAdmin.createTarget(target, name);
110
182
  }
111
183
 
112
184
  function setTargetFunctionRole(
@@ -115,58 +187,40 @@ contract Instance is
115
187
  RoleId roleId
116
188
  )
117
189
  external
118
- restricted // INSTANCE_OWNER_ROLE
190
+ onlyOwner()
119
191
  {
120
- _instanceAdmin.setTargetFunctionRole(targetName, selectors, roleId);
192
+ // TODO refactor
193
+ // _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
121
194
  }
122
195
 
123
196
  function setTargetLocked(address target, bool locked)
124
197
  external
125
- restricted // INSTANCE_OWNER_ROLE
198
+ onlyOwner()
126
199
  {
127
- _instanceAdmin.setTargetLockedByInstance(target, locked);
200
+ // TODO refactor
201
+ // _instanceAdmin.setTargetLockedByInstance(target, locked);
128
202
  }
129
203
 
130
- //--- ITransferInterceptor ------------------------------------------------------------//
204
+ //--- ITransferInterceptor ----------------------------------------------//
205
+
131
206
  // TODO interception of child components nfts
132
207
  function nftMint(address to, uint256 tokenId) external onlyChainNft {
133
- _instanceAdmin.transferInstanceOwnerRole(address(0), to);
208
+ // TODO refactor
209
+ // _instanceAdmin.transferInstanceOwnerRole(address(0), to);
134
210
  }
135
211
 
136
212
  function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
137
- _instanceAdmin.transferInstanceOwnerRole(from, to);
213
+ // TODO refactor
214
+ // _instanceAdmin.transferInstanceOwnerRole(from, to);
138
215
  }
139
216
 
140
- //function nftBurn(address from, uint256 tokenId) external onlyChainNft {
141
- //_instanceAdmin.transferInstanceOwnerRole(from, address(0));
142
- //}
143
-
144
217
  //--- initial setup functions -------------------------------------------//
145
218
 
146
- function setInstanceAdmin(InstanceAdmin accessManager) external restricted {
147
- if(address(_instanceAdmin) != address(0)) {
148
- revert ErrorInstanceInstanceAdminAlreadySet(address(_instanceAdmin));
149
- }
150
- if(accessManager.authority() != authority()) {
151
- revert ErrorInstanceInstanceAdminAuthorityMismatch(authority());
152
- }
153
- _instanceAdmin = accessManager;
154
- }
155
-
156
- function setBundleManager(BundleManager bundleManager) external restricted() {
157
- if(address(_bundleManager) != address(0)) {
158
- revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
159
- }
160
- if(bundleManager.getInstance() != Instance(this)) {
161
- revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
162
- }
163
- if(bundleManager.authority() != authority()) {
164
- revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
165
- }
166
- _bundleManager = bundleManager;
167
- }
168
219
 
169
- function setInstanceReader(InstanceReader instanceReader) external restricted() {
220
+ function setInstanceReader(InstanceReader instanceReader)
221
+ external
222
+ restricted()
223
+ {
170
224
  if(instanceReader.getInstance() != Instance(this)) {
171
225
  revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
172
226
  }
@@ -180,7 +234,7 @@ contract Instance is
180
234
  return _instanceReader;
181
235
  }
182
236
 
183
- function getBundleManager() external view returns (BundleManager) {
237
+ function getBundleSet() external view returns (BundleSet) {
184
238
  return _bundleManager;
185
239
  }
186
240
 
@@ -188,43 +242,13 @@ contract Instance is
188
242
  return _instanceAdmin;
189
243
  }
190
244
 
191
- function setInstanceStore(InstanceStore instanceStore) external restricted {
192
- if(address(_instanceStore) != address(0)) {
193
- revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
194
- }
195
- if(instanceStore.authority() != authority()) {
196
- revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
197
- }
198
- _instanceStore = instanceStore;
199
- }
200
-
201
245
  function getInstanceStore() external view returns (InstanceStore) {
202
246
  return _instanceStore;
203
247
  }
204
248
 
205
- function getMajorVersion() external pure returns (VersionPart majorVersion) {
249
+ function getMajorVersion() public pure returns (VersionPart majorVersion) {
206
250
  return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
207
251
  }
208
252
 
209
- function getDistributionService() external view returns (IDistributionService) {
210
- return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
211
- }
212
-
213
- function getProductService() external view returns (IProductService) {
214
- return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
215
- }
216
-
217
- function getPoolService() external view returns (IPoolService) {
218
- return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
219
- }
220
-
221
- function getPolicyService() external view returns (IPolicyService) {
222
- return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
223
- }
224
-
225
- function getBundleService() external view returns (IBundleService) {
226
- return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
227
- }
228
-
229
253
  //--- internal view/pure functions --------------------------------------//
230
254
  }