@etherisc/gif-next 0.0.2-9b434da-265 → 0.0.2-9b58b75-869

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 (606) hide show
  1. package/README.md +209 -16
  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/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +499 -549
  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 +1548 -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 +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1234 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1571 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +858 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +943 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +956 -0
  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 +4 -0
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +652 -0
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +757 -0
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +416 -3032
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  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 +4 -0
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1735 -0
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1073 -30
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -0
  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 +4 -0
  59. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  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 +30 -112
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  70. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  71. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  74. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  75. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1093 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1496 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  95. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  101. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  103. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +978 -0
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  107. package/artifacts/contracts/pool/Pool.sol/Pool.json +1288 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  125. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  129. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  133. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/base/IService.sol/IService.json → product/IProductService.sol/IProductService.json} +145 -166
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  144. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  145. package/artifacts/contracts/product/Product.sol/Product.json +1276 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +404 -58
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +389 -194
  156. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  158. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/Registry.sol/Registry.json +567 -150
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +698 -259
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +368 -123
  166. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  168. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  173. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  174. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  175. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1640 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  181. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  182. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  183. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  184. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  186. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +977 -0
  188. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  189. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
  190. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  191. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
  192. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  194. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  199. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  201. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/IService.sol/IService.json} +134 -29
  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 +1015 -0
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  207. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +78 -87
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  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 +115 -29
  214. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  216. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  217. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  218. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  219. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +203 -164
  220. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  221. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  222. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  223. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  224. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  225. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  226. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  228. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  229. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  230. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  232. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  234. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  236. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  238. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  240. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  242. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  243. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  244. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  245. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  246. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  248. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  250. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  252. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  254. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  256. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  258. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  260. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  261. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  262. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  264. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  266. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  268. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  270. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  272. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  274. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  276. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  278. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  280. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  282. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  284. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  286. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  288. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  290. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  292. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  294. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  295. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  296. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  297. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  298. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  299. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  300. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  302. package/contracts/authorization/AccessAdmin.sol +591 -0
  303. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  304. package/contracts/authorization/Authorization.sol +218 -0
  305. package/contracts/authorization/IAccess.sol +48 -0
  306. package/contracts/authorization/IAccessAdmin.sol +136 -0
  307. package/contracts/authorization/IAuthorization.sol +54 -0
  308. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  309. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  310. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  311. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  312. package/contracts/distribution/BasicDistribution.sol +138 -0
  313. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  314. package/contracts/distribution/Distribution.sol +295 -0
  315. package/contracts/distribution/DistributionService.sol +352 -0
  316. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  317. package/contracts/distribution/IDistributionComponent.sol +52 -0
  318. package/contracts/distribution/IDistributionService.sol +98 -0
  319. package/contracts/instance/BundleSet.sol +126 -0
  320. package/contracts/instance/IInstance.sol +86 -0
  321. package/contracts/instance/IInstanceService.sol +92 -0
  322. package/contracts/instance/Instance.sol +185 -321
  323. package/contracts/instance/InstanceAdmin.sol +266 -0
  324. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  325. package/contracts/instance/InstanceReader.sol +405 -0
  326. package/contracts/instance/InstanceService.sol +422 -24
  327. package/contracts/instance/InstanceServiceManager.sol +40 -0
  328. package/contracts/instance/InstanceStore.sol +276 -0
  329. package/contracts/instance/base/BalanceStore.sol +123 -0
  330. package/contracts/instance/base/Cloneable.sol +28 -0
  331. package/contracts/instance/base/ObjectCounter.sol +21 -0
  332. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  333. package/contracts/instance/base/ObjectSet.sol +79 -0
  334. package/contracts/instance/module/IAccess.sol +30 -22
  335. package/contracts/instance/module/IBundle.sol +8 -7
  336. package/contracts/instance/module/IComponents.sol +51 -0
  337. package/contracts/instance/module/IDistribution.sol +7 -4
  338. package/contracts/instance/module/IPolicy.sol +56 -17
  339. package/contracts/instance/module/IRisk.sol +1 -1
  340. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  341. package/contracts/oracle/BasicOracle.sol +48 -0
  342. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  343. package/contracts/oracle/IOracle.sol +36 -0
  344. package/contracts/oracle/IOracleComponent.sol +33 -0
  345. package/contracts/oracle/IOracleService.sol +65 -0
  346. package/contracts/oracle/Oracle.sol +166 -0
  347. package/contracts/oracle/OracleService.sol +278 -0
  348. package/contracts/oracle/OracleServiceManager.sol +39 -0
  349. package/contracts/pool/BasicPool.sol +164 -0
  350. package/contracts/pool/BasicPoolAuthorization.sol +52 -0
  351. package/contracts/pool/BundleService.sol +284 -0
  352. package/contracts/pool/BundleServiceManager.sol +39 -0
  353. package/contracts/pool/IBundleService.sol +106 -0
  354. package/contracts/pool/IPoolComponent.sol +51 -0
  355. package/contracts/pool/IPoolService.sol +150 -0
  356. package/contracts/pool/Pool.sol +311 -0
  357. package/contracts/pool/PoolService.sol +436 -0
  358. package/contracts/pool/PoolServiceManager.sol +39 -0
  359. package/contracts/product/ApplicationService.sol +230 -0
  360. package/contracts/product/ApplicationServiceManager.sol +38 -0
  361. package/contracts/product/BasicProduct.sol +82 -0
  362. package/contracts/product/BasicProductAuthorization.sol +43 -0
  363. package/contracts/product/ClaimService.sol +416 -0
  364. package/contracts/product/ClaimServiceManager.sol +38 -0
  365. package/contracts/product/IApplicationService.sol +62 -0
  366. package/contracts/product/IClaimService.sol +99 -0
  367. package/contracts/product/IPolicyService.sol +78 -0
  368. package/contracts/product/IPricingService.sol +39 -0
  369. package/contracts/product/IProductComponent.sol +40 -0
  370. package/contracts/product/IProductService.sol +33 -0
  371. package/contracts/product/PolicyService.sol +475 -0
  372. package/contracts/product/PolicyServiceManager.sol +39 -0
  373. package/contracts/product/PricingService.sol +300 -0
  374. package/contracts/product/PricingServiceManager.sol +39 -0
  375. package/contracts/product/Product.sol +392 -0
  376. package/contracts/product/ProductService.sol +99 -0
  377. package/contracts/product/ProductServiceManager.sol +39 -0
  378. package/contracts/registry/ChainNft.sol +55 -25
  379. package/contracts/registry/IRegistry.sol +91 -30
  380. package/contracts/registry/IRegistryService.sol +56 -16
  381. package/contracts/registry/ITransferInterceptor.sol +1 -0
  382. package/contracts/registry/Registry.sol +411 -326
  383. package/contracts/registry/RegistryAdmin.sol +365 -0
  384. package/contracts/registry/RegistryService.sol +155 -272
  385. package/contracts/registry/RegistryServiceManager.sol +29 -19
  386. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  387. package/contracts/registry/ReleaseRegistry.sol +485 -0
  388. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  389. package/contracts/registry/TokenRegistry.sol +315 -0
  390. package/contracts/shared/Component.sol +280 -0
  391. package/contracts/shared/ComponentService.sol +622 -0
  392. package/contracts/shared/ComponentServiceManager.sol +35 -0
  393. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  394. package/contracts/shared/ERC165.sol +16 -10
  395. package/contracts/shared/IComponent.sol +70 -0
  396. package/contracts/shared/IComponentService.sol +112 -0
  397. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  398. package/contracts/{instance/base → shared}/IKeyValueStore.sol +20 -14
  399. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  400. package/contracts/shared/INftOwnable.sol +13 -12
  401. package/contracts/shared/IRegisterable.sol +4 -6
  402. package/contracts/shared/IRegistryLinked.sol +11 -0
  403. package/contracts/shared/IService.sol +25 -0
  404. package/contracts/shared/InitializableCustom.sol +177 -0
  405. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  406. package/contracts/shared/KeyValueStore.sol +131 -0
  407. package/contracts/shared/Lifecycle.sol +77 -0
  408. package/contracts/shared/NftIdSet.sol +65 -0
  409. package/contracts/shared/NftOwnable.sol +60 -89
  410. package/contracts/shared/Registerable.sol +27 -41
  411. package/contracts/shared/RegistryLinked.sol +43 -0
  412. package/contracts/shared/Service.sol +82 -0
  413. package/contracts/shared/TokenHandler.sol +39 -8
  414. package/contracts/staking/IStaking.sol +167 -0
  415. package/contracts/staking/IStakingService.sol +160 -0
  416. package/contracts/staking/StakeManagerLib.sol +231 -0
  417. package/contracts/staking/Staking.sol +514 -0
  418. package/contracts/staking/StakingLifecycle.sol +23 -0
  419. package/contracts/staking/StakingManager.sol +50 -0
  420. package/contracts/staking/StakingReader.sol +183 -0
  421. package/contracts/staking/StakingService.sol +411 -0
  422. package/contracts/staking/StakingServiceManager.sol +44 -0
  423. package/contracts/staking/StakingStore.sol +605 -0
  424. package/contracts/staking/TargetManagerLib.sol +207 -0
  425. package/contracts/{types → type}/AddressSet.sol +1 -1
  426. package/contracts/type/Amount.sol +128 -0
  427. package/contracts/{types → type}/Blocknumber.sol +21 -3
  428. package/contracts/type/ClaimId.sol +75 -0
  429. package/contracts/{types → type}/DistributorType.sol +2 -2
  430. package/contracts/type/Fee.sol +66 -0
  431. package/contracts/{types → type}/NftId.sol +21 -15
  432. package/contracts/type/NftIdSet.sol +62 -0
  433. package/contracts/type/ObjectType.sol +271 -0
  434. package/contracts/type/PayoutId.sol +82 -0
  435. package/contracts/{types → type}/Referral.sol +5 -1
  436. package/contracts/type/RequestId.sol +75 -0
  437. package/contracts/{types → type}/RiskId.sol +1 -1
  438. package/contracts/type/RoleId.sol +174 -0
  439. package/contracts/type/Seconds.sol +81 -0
  440. package/contracts/type/Selector.sol +102 -0
  441. package/contracts/{types → type}/StateId.sol +38 -4
  442. package/contracts/type/String.sol +53 -0
  443. package/contracts/{types → type}/Timestamp.sol +23 -14
  444. package/contracts/type/UFixed.sol +332 -0
  445. package/contracts/{types → type}/Version.sol +8 -2
  446. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  447. package/contracts/upgradeability/ProxyManager.sol +198 -0
  448. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +2 -4
  449. package/contracts/upgradeability/Versionable.sol +59 -0
  450. package/package.json +11 -7
  451. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  452. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  454. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  456. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  458. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  460. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  461. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  462. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  463. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  464. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  465. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  466. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  467. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  469. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  471. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  473. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  474. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  475. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  476. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  477. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  478. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  479. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  480. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  482. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  483. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  484. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  485. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  486. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1119
  487. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  488. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  489. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  490. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  491. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  492. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  494. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -736
  495. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  496. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  497. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  498. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  499. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  500. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  501. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  502. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  503. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  504. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  505. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  506. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  507. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  508. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  509. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  510. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  511. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  512. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  513. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  514. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  515. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  516. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  517. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -10
  518. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  519. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  520. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  521. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  522. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  523. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  524. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  525. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  526. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  527. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  528. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  529. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  530. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  531. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  532. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  533. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  534. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  536. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  538. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  539. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  540. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  541. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  542. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  543. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  544. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  545. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  546. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  547. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  548. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  549. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  550. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  551. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  552. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  554. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  557. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  559. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  561. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  563. package/contracts/components/IBaseComponent.sol +0 -19
  564. package/contracts/experiment/errors/Require.sol +0 -38
  565. package/contracts/experiment/errors/Revert.sol +0 -44
  566. package/contracts/experiment/inheritance/A.sol +0 -53
  567. package/contracts/experiment/inheritance/B.sol +0 -28
  568. package/contracts/experiment/inheritance/C.sol +0 -34
  569. package/contracts/experiment/inheritance/IA.sol +0 -13
  570. package/contracts/experiment/inheritance/IB.sol +0 -10
  571. package/contracts/experiment/inheritance/IC.sol +0 -12
  572. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  573. package/contracts/experiment/statemachine/ISM.sol +0 -25
  574. package/contracts/experiment/statemachine/SM.sol +0 -57
  575. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  576. package/contracts/experiment/types/TypeA.sol +0 -47
  577. package/contracts/experiment/types/TypeB.sol +0 -29
  578. package/contracts/instance/AccessManagedSimple.sol +0 -114
  579. package/contracts/instance/AccessManagerSimple.sol +0 -682
  580. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  581. package/contracts/instance/InstanceAccessManager.sol +0 -288
  582. package/contracts/instance/base/IService.sol +0 -15
  583. package/contracts/instance/base/KeyValueStore.sol +0 -188
  584. package/contracts/instance/base/Lifecycle.sol +0 -100
  585. package/contracts/instance/base/ServiceBase.sol +0 -44
  586. package/contracts/instance/module/ISetup.sol +0 -41
  587. package/contracts/instance/module/ITreasury.sol +0 -23
  588. package/contracts/registry/IChainNft.sol +0 -22
  589. package/contracts/shared/ContractDeployerLib.sol +0 -72
  590. package/contracts/shared/ProxyManager.sol +0 -94
  591. package/contracts/shared/Versionable.sol +0 -147
  592. package/contracts/test/TestFee.sol +0 -25
  593. package/contracts/test/TestRegisterable.sol +0 -18
  594. package/contracts/test/TestRoleId.sol +0 -14
  595. package/contracts/test/TestService.sol +0 -26
  596. package/contracts/test/TestVersion.sol +0 -44
  597. package/contracts/test/TestVersionable.sol +0 -17
  598. package/contracts/test/Usdc.sol +0 -26
  599. package/contracts/types/ChainId.sol +0 -38
  600. package/contracts/types/Fee.sol +0 -56
  601. package/contracts/types/NftIdSet.sol +0 -60
  602. package/contracts/types/NumberId.sol +0 -52
  603. package/contracts/types/ObjectType.sol +0 -152
  604. package/contracts/types/RoleId.sol +0 -75
  605. package/contracts/types/UFixed.sol +0 -209
  606. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,45 +1,443 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Clones} from "@openzeppelin5/contracts/proxy/Clones.sol";
4
+ import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
+ import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
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";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {RoleId} from "../type/RoleId.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";
17
+
18
+ import {Service} from "../shared/Service.sol";
19
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
20
+ import {IService} from "../shared/IService.sol";
21
+
22
+ import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
23
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
24
+ import {IProductComponent} from "../product/IProductComponent.sol";
25
+
26
+ import {IRegistry} from "../registry/IRegistry.sol";
27
+ import {IRegistryService} from "../registry/IRegistryService.sol";
28
+ import {IStakingService} from "../staking/IStakingService.sol";
29
+ import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
5
30
 
6
- import {AccessManagerSimple} from "./AccessManagerSimple.sol";
7
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
8
31
  import {Instance} from "./Instance.sol";
32
+ import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
33
+ import {IInstance} from "./IInstance.sol";
34
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
35
+ import {IInstanceService} from "./IInstanceService.sol";
36
+ import {InstanceReader} from "./InstanceReader.sol";
37
+ import {InstanceStore} from "./InstanceStore.sol";
38
+ import {Seconds} from "../type/Seconds.sol";
39
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
40
+
41
+
42
+ contract InstanceService is
43
+ Service,
44
+ IInstanceService
45
+ {
46
+
47
+ // TODO update to real hash when instance is stable
48
+ bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
49
+
50
+ IRegistryService internal _registryService;
51
+ IStakingService internal _stakingService;
52
+
53
+ address internal _masterAccessManager;
54
+ address internal _masterInstanceAdmin;
55
+ address internal _masterInstance;
56
+ address internal _masterInstanceReader;
57
+ address internal _masterInstanceBundleSet;
58
+ address internal _masterInstanceStore;
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
+ }
9
72
 
10
- contract InstanceService {
73
+ VersionPart instanceVersion = IInstance(instanceAddress).getMajorVersion();
74
+ if (instanceVersion != getVersion().toMajorPart()) {
75
+ revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
76
+ }
11
77
 
12
- address internal _accessManagerMaster;
13
- address internal _instanceAccessManagerMaster;
14
- address internal _instanceMaster;
78
+ _;
79
+ }
80
+
81
+
82
+ modifier onlyInstanceOwner(NftId instanceNftId) {
83
+ if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
84
+ revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
85
+ }
86
+ _;
87
+ }
88
+
89
+ // TODO check component - service - instance version match
90
+ modifier onlyComponent() {
91
+ if (! getRegistry().isRegisteredComponent(msg.sender)) {
92
+ revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
93
+ }
94
+ _;
95
+ }
15
96
 
16
- function createInstanceClone()
97
+ function createInstance()
17
98
  external
18
99
  returns (
19
- AccessManagerSimple am,
20
- InstanceAccessManager im,
21
- Instance i
100
+ Instance clonedInstance,
101
+ NftId clonedInstanceNftId
22
102
  )
23
103
  {
24
- am = AccessManagerSimple(Clones.clone(_accessManagerMaster));
25
- im = InstanceAccessManager(Clones.clone(_instanceAccessManagerMaster));
26
- i = Instance(Clones.clone(_instanceMaster));
104
+ // tx sender will become instance owner
105
+ address instanceOwner = msg.sender;
106
+
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());
119
+
120
+ InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
121
+ BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
122
+ InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
123
+
124
+ // clone instance
125
+ clonedInstance = Instance(Clones.clone(_masterInstance));
126
+ clonedInstance.initialize(
127
+ clonedInstanceAdmin,
128
+ clonedInstanceStore,
129
+ clonedBundleSet,
130
+ clonedInstanceReader,
131
+ getRegistry(),
132
+ instanceOwner);
133
+
134
+ // register cloned instance with registry
135
+ clonedInstanceNftId = _registryService.registerInstance(
136
+ clonedInstance, instanceOwner).nftId;
137
+
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));
146
+
147
+ emit LogInstanceCloned(
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);
27
162
  }
28
163
 
29
- function setAccessManagerMaster(address accessManager) external {
30
- _accessManagerMaster = accessManager;
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);
31
174
  }
32
175
 
33
- function setInstanceAccessManagerMaster(address instanceAccessManager) external {
34
- _instanceAccessManagerMaster = instanceAccessManager;
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);
35
187
  }
36
188
 
37
- function setInstanceMaster(address instance) external {
38
- _instanceMaster = instance;
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);
39
200
  }
40
201
 
41
- function getAccessManagerMaster() external view returns (address) { return address(_accessManagerMaster); }
42
- function getInstanceAccessManagerMaster() external view returns (address) { return address(_instanceAccessManagerMaster); }
43
- function getInstanceMaster() external view returns (address) { return address(_instanceMaster); }
44
- }
45
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;
232
+ }
233
+
234
+ function setAndRegisterMasterInstance(address instanceAddress)
235
+ external
236
+ onlyOwner
237
+ returns(NftId masterInstanceNftId)
238
+ {
239
+ if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
240
+ if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
241
+ if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
242
+
243
+ if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
244
+
245
+ IInstance instance = IInstance(instanceAddress);
246
+ address accessManagerAddress = instance.authority();
247
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
248
+ address instanceAdminAddress = address(instanceAdmin);
249
+ InstanceReader instanceReader = instance.getInstanceReader();
250
+ address instanceReaderAddress = address(instanceReader);
251
+ BundleSet bundleManager = instance.getBundleSet();
252
+ address bundleManagerAddress = address(bundleManager);
253
+ InstanceStore instanceStore = instance.getInstanceStore();
254
+ address instanceStoreAddress = address(instanceStore);
255
+
256
+ if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
257
+ if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
258
+ if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
259
+ if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
260
+ if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
261
+
262
+ if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
263
+ if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
264
+ if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
265
+ if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
266
+ if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
267
+
268
+ _masterAccessManager = accessManagerAddress;
269
+ _masterInstanceAdmin = instanceAdminAddress;
270
+ _masterInstance = instanceAddress;
271
+ _masterInstanceReader = instanceReaderAddress;
272
+ _masterInstanceBundleSet = bundleManagerAddress;
273
+ _masterInstanceStore = instanceStoreAddress;
274
+
275
+ IInstance masterInstance = IInstance(_masterInstance);
276
+ IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
277
+ masterInstanceNftId = info.nftId;
278
+ }
279
+
280
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
281
+ if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
282
+ if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
283
+ if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
284
+
285
+ InstanceReader instanceReader = InstanceReader(instanceReaderAddress);
286
+ if(instanceReader.getInstance() != IInstance(_masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
287
+
288
+ _masterInstanceReader = instanceReaderAddress;
289
+ }
290
+
291
+ function upgradeInstanceReader(NftId instanceNftId)
292
+ external
293
+ onlyInstanceOwner(instanceNftId)
294
+ {
295
+ IRegistry registry = getRegistry();
296
+ IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
297
+ Instance instance = Instance(instanceInfo.objectAddress);
298
+
299
+ InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
300
+ upgradedInstanceReaderClone.initializeWithInstance(address(instance));
301
+ instance.setInstanceReader(upgradedInstanceReaderClone);
302
+ }
303
+
304
+
305
+ function createGifTarget(
306
+ NftId instanceNftId,
307
+ address targetAddress,
308
+ string memory targetName,
309
+ bytes4[][] memory selectors,
310
+ RoleId[] memory roles
311
+ )
312
+ external
313
+ virtual
314
+ restricted()
315
+ {
316
+ _createGifTarget(
317
+ instanceNftId,
318
+ targetAddress,
319
+ targetName,
320
+ roles,
321
+ selectors
322
+ );
323
+ }
324
+
325
+
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
+ }
343
+
344
+
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
+ );
363
+ }
364
+
365
+
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);
382
+
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
+ }
393
+ }
394
+
395
+ /// @dev top level initializer
396
+ function _initialize(
397
+ address owner,
398
+ bytes memory data
399
+ )
400
+ internal
401
+ initializer
402
+ virtual override
403
+ {
404
+ (
405
+ address registryAddress,,
406
+ //address managerAddress
407
+ address authority
408
+ ) = abi.decode(data, (address, address, address));
409
+
410
+ initializeService(registryAddress, authority, owner);
411
+
412
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
413
+ _stakingService = IStakingService(_getServiceAddress(STAKING()));
414
+
415
+ registerInterface(type(IInstanceService).interfaceId);
416
+ }
417
+
418
+
419
+ function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
420
+ internal
421
+ view
422
+ returns (IInstance instance, NftId componentNftId)
423
+ {
424
+ IRegistry registry = getRegistry();
425
+ IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
426
+ if(instanceInfo.objectType != INSTANCE()) {
427
+ revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
428
+ }
429
+
430
+ IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
431
+ if(componentInfo.parentNftId != instanceNftId) {
432
+ revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
433
+ }
434
+
435
+ instance = Instance(instanceInfo.objectAddress);
436
+ componentNftId = componentInfo.nftId;
437
+ }
438
+
439
+ // From IService
440
+ function _getDomain() internal pure override returns(ObjectType) {
441
+ return INSTANCE();
442
+ }
443
+ }
@@ -0,0 +1,40 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
+ import {InstanceService} from "./InstanceService.sol";
7
+
8
+ contract InstanceServiceManager is ProxyManager {
9
+
10
+ InstanceService private _instanceService;
11
+
12
+ /// @dev initializes proxy manager with instance service implementation
13
+ constructor(
14
+ address authority,
15
+ address registryAddress,
16
+ bytes32 salt
17
+ )
18
+ ProxyManager(registryAddress)
19
+ {
20
+ InstanceService instSrv = new InstanceService{salt: salt}();
21
+ // bytes memory initCode = type(InstanceService).creationCode;
22
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
23
+ IVersionable versionable = deployDetermenistic(
24
+ address(instSrv),
25
+ data,
26
+ salt);
27
+
28
+ _instanceService = InstanceService(address(versionable));
29
+ }
30
+
31
+ //--- view functions ----------------------------------------------------//
32
+ function getInstanceService()
33
+ external
34
+ view
35
+ returns (InstanceService instanceService)
36
+ {
37
+ return _instanceService;
38
+ }
39
+
40
+ }