@etherisc/gif-next 0.0.2-676522f-203 → 0.0.2-683d8b2-607

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 (475) 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/authorization/IAccess.sol/IAccess.json +10 -0
  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 +29 -254
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +138 -93
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -58
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +75 -150
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +45 -16
  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 +64 -84
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1214 -280
  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 +230 -65
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +221 -106
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +53 -49
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -137
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  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/IBundle.sol/IBundle.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  82. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  84. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  86. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  88. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  90. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  92. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  94. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -58
  96. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +54 -42
  98. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
  100. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -206
  102. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +28 -0
  104. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  105. package/artifacts/contracts/pool/Pool.sol/Pool.json +18 -314
  106. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +77 -41
  108. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +43 -39
  110. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -35
  112. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +48 -36
  114. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  116. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  118. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +112 -67
  120. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +68 -52
  122. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  124. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  126. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  128. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
  130. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +17 -46
  132. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
  134. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +90 -45
  136. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +57 -41
  138. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.json +98 -61
  140. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +61 -49
  142. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  143. package/artifacts/contracts/product/Product.sol/Product.json +24 -164
  144. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
  146. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +39 -31
  148. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +40 -16
  150. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +4 -0
  151. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +1487 -0
  152. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +4 -0
  153. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +1876 -0
  154. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +4 -0
  155. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +974 -0
  156. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +40 -60
  158. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
  160. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  161. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  162. package/artifacts/contracts/registry/Registry.sol/Registry.json +182 -88
  163. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  164. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1599 -153
  165. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  166. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
  167. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +38 -26
  169. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  170. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  171. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  172. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1140 -0
  173. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  175. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +22 -4
  177. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  178. package/artifacts/contracts/shared/Component.sol/Component.json +11 -11
  179. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  180. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +89 -77
  181. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +53 -57
  183. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  184. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
  185. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  186. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  187. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  188. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +4 -4
  189. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  190. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +20 -0
  191. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  192. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +17 -4
  193. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
  195. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  196. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  197. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +24 -64
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  207. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  210. package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.dbg.json +4 -0
  211. package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.json +34 -0
  212. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  213. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  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 +13 -0
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +114 -117
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +215 -70
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +102 -44
  232. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  233. package/artifacts/contracts/staking/Staking.sol/Staking.json +179 -182
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +44 -44
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +223 -21
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +264 -134
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +42 -46
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +771 -216
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -18
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  261. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  265. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  284. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  286. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  288. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  294. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  298. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  299. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  304. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  305. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  306. package/contracts/authorization/AccessAdmin.sol +590 -0
  307. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  308. package/contracts/authorization/Authorization.sol +218 -0
  309. package/contracts/authorization/IAccess.sol +48 -0
  310. package/contracts/authorization/IAccessAdmin.sol +136 -0
  311. package/contracts/authorization/IAuthorization.sol +54 -0
  312. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  313. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  314. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  315. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  316. package/contracts/distribution/BasicDistribution.sol +149 -0
  317. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  318. package/contracts/distribution/Distribution.sol +126 -104
  319. package/contracts/distribution/DistributionService.sol +15 -25
  320. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  321. package/contracts/distribution/IDistributionComponent.sol +17 -35
  322. package/contracts/distribution/IDistributionService.sol +5 -1
  323. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  324. package/contracts/instance/IInstance.sol +20 -13
  325. package/contracts/instance/IInstanceService.sol +34 -23
  326. package/contracts/instance/Instance.sol +108 -89
  327. package/contracts/instance/InstanceAdmin.sol +202 -266
  328. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  329. package/contracts/instance/InstanceReader.sol +52 -12
  330. package/contracts/instance/InstanceService.sol +159 -78
  331. package/contracts/instance/InstanceServiceManager.sol +2 -6
  332. package/contracts/instance/InstanceStore.sol +38 -22
  333. package/contracts/instance/base/BalanceStore.sol +11 -6
  334. package/contracts/instance/base/Cloneable.sol +2 -25
  335. package/contracts/instance/base/ObjectCounter.sol +21 -0
  336. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  337. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  338. package/contracts/oracle/BasicOracle.sol +48 -0
  339. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  340. package/contracts/oracle/IOracle.sol +36 -0
  341. package/contracts/oracle/IOracleComponent.sol +32 -0
  342. package/contracts/oracle/IOracleService.sol +65 -0
  343. package/contracts/oracle/Oracle.sol +157 -0
  344. package/contracts/oracle/OracleService.sol +278 -0
  345. package/contracts/oracle/OracleServiceManager.sol +39 -0
  346. package/contracts/pool/BasicPool.sol +164 -0
  347. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  348. package/contracts/pool/BundleService.sol +32 -44
  349. package/contracts/pool/BundleServiceManager.sol +2 -5
  350. package/contracts/pool/IPoolComponent.sol +0 -60
  351. package/contracts/pool/IPoolService.sol +3 -0
  352. package/contracts/pool/Pool.sol +143 -131
  353. package/contracts/pool/PoolService.sol +45 -33
  354. package/contracts/pool/PoolServiceManager.sol +2 -5
  355. package/contracts/product/ApplicationService.sol +17 -41
  356. package/contracts/product/ApplicationServiceManager.sol +2 -2
  357. package/contracts/product/BasicProduct.sol +82 -0
  358. package/contracts/product/BasicProductAuthorization.sol +40 -0
  359. package/contracts/product/ClaimService.sol +16 -37
  360. package/contracts/product/ClaimServiceManager.sol +2 -2
  361. package/contracts/product/IClaimService.sol +6 -0
  362. package/contracts/product/IProductComponent.sol +6 -9
  363. package/contracts/product/PolicyService.sol +8 -6
  364. package/contracts/product/PolicyServiceManager.sol +2 -5
  365. package/contracts/product/PricingService.sol +7 -8
  366. package/contracts/product/PricingServiceManager.sol +2 -5
  367. package/contracts/product/Product.sol +103 -88
  368. package/contracts/product/ProductService.sol +12 -37
  369. package/contracts/product/ProductServiceManager.sol +2 -5
  370. package/contracts/registry/ChainNft.sol +37 -22
  371. package/contracts/registry/GlobalRegistry.sol +89 -0
  372. package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
  373. package/contracts/registry/IGlobalRegistry.sol +17 -0
  374. package/contracts/registry/IRegistry.sol +25 -18
  375. package/contracts/registry/IRegistryService.sol +6 -6
  376. package/contracts/registry/Registry.sol +129 -150
  377. package/contracts/registry/RegistryAdmin.sol +358 -150
  378. package/contracts/registry/RegistryService.sol +9 -23
  379. package/contracts/registry/RegistryServiceManager.sol +2 -7
  380. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  381. package/contracts/registry/ReleaseRegistry.sol +533 -0
  382. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  383. package/contracts/registry/TokenRegistry.sol +9 -52
  384. package/contracts/shared/Component.sol +8 -13
  385. package/contracts/shared/ComponentService.sol +45 -60
  386. package/contracts/shared/ComponentServiceManager.sol +2 -2
  387. package/contracts/shared/ComponentVerifyingService.sol +13 -7
  388. package/contracts/shared/IComponent.sol +3 -7
  389. package/contracts/shared/IComponentService.sol +11 -0
  390. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  391. package/contracts/shared/IKeyValueStore.sol +2 -1
  392. package/contracts/shared/ILifecycle.sol +1 -2
  393. package/contracts/shared/IService.sol +8 -1
  394. package/contracts/shared/InstanceLinkedComponent.sol +26 -19
  395. package/contracts/shared/KeyValueStore.sol +7 -6
  396. package/contracts/shared/Lifecycle.sol +16 -60
  397. package/contracts/shared/MainnetContract.sol +15 -0
  398. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  399. package/contracts/shared/Service.sol +27 -22
  400. package/contracts/staking/IStaking.sol +41 -26
  401. package/contracts/staking/IStakingService.sol +42 -44
  402. package/contracts/staking/StakeManagerLib.sol +101 -26
  403. package/contracts/staking/Staking.sol +139 -125
  404. package/contracts/staking/StakingLifecycle.sol +23 -0
  405. package/contracts/staking/StakingManager.sol +2 -6
  406. package/contracts/staking/StakingReader.sol +73 -36
  407. package/contracts/staking/StakingService.sol +121 -86
  408. package/contracts/staking/StakingServiceManager.sol +2 -3
  409. package/contracts/staking/StakingStore.sol +401 -127
  410. package/contracts/staking/TargetManagerLib.sol +28 -0
  411. package/contracts/type/Amount.sol +15 -1
  412. package/contracts/type/NftId.sol +8 -8
  413. package/contracts/type/ObjectType.sol +171 -69
  414. package/contracts/type/RequestId.sol +75 -0
  415. package/contracts/type/RoleId.sol +103 -72
  416. package/contracts/type/Seconds.sol +10 -0
  417. package/contracts/type/Selector.sol +102 -0
  418. package/contracts/type/StateId.sol +12 -0
  419. package/contracts/type/String.sol +53 -0
  420. package/contracts/type/Timestamp.sol +6 -2
  421. package/contracts/type/UFixed.sol +6 -0
  422. package/contracts/type/Version.sol +3 -1
  423. package/contracts/{shared → upgradeability}/ProxyManager.sol +4 -5
  424. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  425. package/package.json +8 -5
  426. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  427. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  428. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  429. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
  430. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  431. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  432. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  433. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  434. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  435. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  436. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  437. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  438. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  439. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  440. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  441. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  442. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  443. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  444. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  445. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  446. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  447. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  448. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  449. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  450. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  451. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  452. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  453. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  454. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  455. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  456. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  457. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  458. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
  459. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
  460. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
  461. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
  462. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
  463. package/contracts/registry/ReleaseManager.sol +0 -596
  464. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  465. package/contracts/shared/AccessManagerCustom.sol +0 -736
  466. package/contracts/shared/AccessManagerExtended.sol +0 -470
  467. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  468. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  469. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  470. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  471. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  472. package/contracts/staking/IStakingManager.sol +0 -15
  473. package/contracts/staking/IStakingStore.sol +0 -130
  474. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  475. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -0,0 +1,200 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {
5
+ ALL, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE
6
+ } from "../../contracts/type/ObjectType.sol";
7
+
8
+ import {ComponentService} from "../shared/ComponentService.sol";
9
+ import {IAccess} from "../authorization/IAccess.sol";
10
+ import {IBundleService} from "../pool/IBundleService.sol";
11
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
12
+ import {InstanceService} from "../instance/InstanceService.sol";
13
+ import {IInstanceService} from "../instance/IInstanceService.sol";
14
+ import {IPoolService} from "../pool/IPoolService.sol";
15
+ import {IStakingService} from "../staking/IStakingService.sol";
16
+ import {IRegistryService} from "./IRegistryService.sol";
17
+ import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
18
+
19
+
20
+ contract ServiceAuthorizationV3
21
+ is ServiceAuthorization
22
+ {
23
+
24
+ constructor(string memory commitHash)
25
+ ServiceAuthorization(commitHash)
26
+ {}
27
+
28
+ function _setupDomains()
29
+ internal
30
+ override
31
+ {
32
+ _authorizeDomain(REGISTRY(), address(1));
33
+ _authorizeDomain(STAKING(), address(2));
34
+ _authorizeDomain(INSTANCE(), address(3));
35
+ _authorizeDomain(COMPONENT(), address(4));
36
+ _authorizeDomain(DISTRIBUTION(), address(5));
37
+ _authorizeDomain(PRICE(), address(6));
38
+ _authorizeDomain(BUNDLE(), address(7));
39
+ _authorizeDomain(POOL(), address(8));
40
+ _authorizeDomain(ORACLE(), address(9));
41
+ _authorizeDomain(PRODUCT(), address(10));
42
+ _authorizeDomain(CLAIM(), address(11));
43
+ _authorizeDomain(APPLICATION(), address(12));
44
+ _authorizeDomain(POLICY(), address(13));
45
+ }
46
+
47
+
48
+ function _setupDomainAuthorizations()
49
+ internal
50
+ override
51
+ {
52
+ _setupIRegistryServiceAuthorization();
53
+ _setupStakingServiceAuthorization();
54
+ _setupInstanceServiceAuthorization();
55
+ _setupComponentServiceAuthorization();
56
+ _setupDistributionServiceAuthorization();
57
+ _setupPoolServiceAuthorization();
58
+ _setupBundleServiceAuthorization();
59
+ }
60
+
61
+
62
+ /// @dev registry service authorization.
63
+ /// authorized functions MUST be implemented with a restricted modifier
64
+ function _setupIRegistryServiceAuthorization()
65
+ internal
66
+ {
67
+ IAccess.FunctionInfo[] storage functions;
68
+
69
+ functions = _authorizeForService(REGISTRY(), APPLICATION());
70
+ _authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
71
+
72
+ // functions = _authorizeForService(REGISTRY(), POOL());
73
+ // _authorize(functions, IRegistryService.registerPool.selector, "registerPool");
74
+
75
+ functions = _authorizeForService(REGISTRY(), BUNDLE());
76
+ _authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
77
+
78
+ functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
79
+ // _authorize(functions, IRegistryService.registerDistribution.selector, "registerDistribution");
80
+ _authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
81
+
82
+ functions = _authorizeForService(REGISTRY(), COMPONENT());
83
+ _authorize(functions, IRegistryService.registerComponent.selector, "registerComponent");
84
+
85
+ functions = _authorizeForService(REGISTRY(), INSTANCE());
86
+ _authorize(functions, IRegistryService.registerInstance.selector, "registerInstance");
87
+
88
+ functions = _authorizeForService(REGISTRY(), STAKING());
89
+ _authorize(functions, IRegistryService.registerStake.selector, "registerStake");
90
+
91
+ // functions = _authorizeForService(REGISTRY(), PRODUCT());
92
+ // _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
93
+ }
94
+
95
+
96
+ /// @dev staking service authorization.
97
+ /// authorized functions MUST be implemented with a restricted modifier
98
+ function _setupStakingServiceAuthorization()
99
+ internal
100
+ {
101
+ IAccess.FunctionInfo[] storage functions;
102
+
103
+ functions = _authorizeForService(STAKING(), INSTANCE());
104
+ _authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
105
+ _authorize(functions, IStakingService.setInstanceLockingPeriod.selector, "setInstanceLockingPeriod");
106
+ _authorize(functions, IStakingService.setInstanceRewardRate.selector, "setInstanceRewardRate");
107
+ _authorize(functions, IStakingService.refillInstanceRewardReserves.selector, "refillInstanceRewardReserves");
108
+ _authorize(functions, IStakingService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
109
+
110
+ functions = _authorizeForService(STAKING(), ALL());
111
+ _authorize(functions, IStakingService.create.selector, "create");
112
+ _authorize(functions, IStakingService.stake.selector, "stake");
113
+ _authorize(functions, IStakingService.restakeToNewTarget.selector, "restakeToNewTarget");
114
+ _authorize(functions, IStakingService.updateRewards.selector, "updateRewards");
115
+ _authorize(functions, IStakingService.claimRewards.selector, "claimRewards");
116
+ _authorize(functions, IStakingService.unstake.selector, "unstake");
117
+ }
118
+
119
+
120
+ /// @dev Instance service function authorization.
121
+ function _setupInstanceServiceAuthorization()
122
+ internal
123
+ {
124
+ IAccess.FunctionInfo[] storage functions;
125
+
126
+ functions = _authorizeForService(INSTANCE(), COMPONENT());
127
+ _authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
128
+ }
129
+
130
+
131
+ /// @dev Component service function authorization.
132
+ function _setupComponentServiceAuthorization()
133
+ internal
134
+ {
135
+ // authz.authorizations = new DomainAuthorization[](4);
136
+
137
+ // authz.authorizations[0].domain = POLICY();
138
+ // _functions = new IAccessAdmin.Function[](1);
139
+ // __authorize(ComponentService.increaseProductFees.selector, "increaseProductFees"));
140
+ // authz.authorizations[0].functions = _functions;
141
+
142
+ // authz.authorizations[1].domain = DISTRIBUTION();
143
+ // _functions = new IAccessAdmin.Function[](1);
144
+ // __authorize(ComponentService.increaseDistributionBalance.selector, "increaseDistributionBalance"));
145
+ // authz.authorizations[1].functions = _functions;
146
+
147
+ // authz.authorizations[2].domain = POOL();
148
+ // _functions = new IAccessAdmin.Function[](1);
149
+ // __authorize(ComponentService.increasePoolBalance.selector, "increasePoolBalance"));
150
+ // authz.authorizations[2].functions = _functions;
151
+
152
+ // authz.authorizations[3].domain = BUNDLE();
153
+ // _functions = new IAccessAdmin.Function[](1);
154
+ // __authorize(ComponentService.increaseBundleBalance.selector, "increaseBundleBalance"));
155
+ // authz.authorizations[3].functions = _functions;
156
+ }
157
+
158
+ /// @dev Distribution service function authorization.
159
+ function _setupDistributionServiceAuthorization()
160
+ internal
161
+ {
162
+ IAccess.FunctionInfo[] storage functions;
163
+
164
+ functions = _authorizeForService(DISTRIBUTION(), POLICY());
165
+ _authorize(functions, IDistributionService.processSale.selector, "processSale");
166
+ }
167
+
168
+
169
+ /// @dev Pool service function authorization.
170
+ function _setupPoolServiceAuthorization()
171
+ internal
172
+ {
173
+ IAccess.FunctionInfo[] storage functions;
174
+
175
+ functions = _authorizeForService(POOL(), POLICY());
176
+ _authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
177
+ _authorize(functions, IPoolService.releaseCollateral.selector, "releaseCollateral");
178
+ _authorize(functions, IPoolService.reduceCollateral.selector, "reduceCollateral");
179
+ _authorize(functions, IPoolService.processSale.selector, "processSale");
180
+
181
+ functions = _authorizeForService(POOL(), CLAIM());
182
+ _authorize(functions, IPoolService.reduceCollateral.selector, "reduceCollateral");
183
+ }
184
+
185
+
186
+ /// @dev Instance service function authorization.
187
+ function _setupBundleServiceAuthorization()
188
+ internal
189
+ {
190
+ IAccess.FunctionInfo[] storage functions;
191
+
192
+ functions = _authorizeForService(BUNDLE(), POOL());
193
+ _authorize(functions, IBundleService.create.selector, "create");
194
+ _authorize(functions, IBundleService.close.selector, "close");
195
+ _authorize(functions, IBundleService.lockCollateral.selector, "lockCollateral");
196
+ _authorize(functions, IBundleService.releaseCollateral.selector, "releaseCollateral");
197
+ _authorize(functions, IBundleService.unlinkPolicy.selector, "unlinkPolicy");
198
+ }
199
+ }
200
+
@@ -12,7 +12,7 @@ import {IRegisterable} from "../shared/IRegisterable.sol";
12
12
 
13
13
  import {IRegistry} from "./IRegistry.sol";
14
14
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
15
- import {ReleaseManager} from "./ReleaseManager.sol";
15
+ import {ReleaseRegistry} from "./ReleaseRegistry.sol";
16
16
  import {RegistryAdmin} from "./RegistryAdmin.sol";
17
17
 
18
18
 
@@ -49,7 +49,7 @@ contract TokenRegistry is
49
49
  TokenInfo [] internal _token;
50
50
 
51
51
  IRegistry internal _registry;
52
- ReleaseManager internal _releaseManager;
52
+ ReleaseRegistry internal _releaseRegistry;
53
53
  IERC20Metadata internal _dipToken;
54
54
 
55
55
  /// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
@@ -60,16 +60,15 @@ contract TokenRegistry is
60
60
  _;
61
61
  }
62
62
 
63
- constructor(IRegistry registry)
63
+ constructor(IRegistry registry, IERC20Metadata dipToken)
64
64
  AccessManaged(msg.sender)
65
65
  {
66
66
  // set authority
67
67
  address authority = RegistryAdmin(registry.getRegistryAdminAddress()).authority();
68
68
  setAuthority(authority);
69
69
 
70
- // set dip token
71
- _registry = IRegistry(registry);
72
- _dipToken = IERC20Metadata(_registry.getDipTokenAddress());
70
+ _registry = registry;
71
+ _dipToken = dipToken;
73
72
 
74
73
  // register dip token
75
74
  uint256 chainId = block.chainid;
@@ -80,52 +79,6 @@ contract TokenRegistry is
80
79
  _dipToken.symbol());
81
80
  }
82
81
 
83
- // TODO cleanup
84
- // function initialize(
85
- // address initialOwner
86
- // )
87
- // public
88
- // initializer()
89
- // {
90
- // initializeNftOwnable(initialOwner, _registryAddress);
91
-
92
- // // initialize release manager
93
- // _releaseManager = ReleaseManager(msg.sender);
94
-
95
-
96
- // // register dip token
97
- // uint256 chainId = block.chainid;
98
- // _registerToken(
99
- // chainId,
100
- // address(_dipToken),
101
- // _dipToken.decimals(),
102
- // _dipToken.symbol());
103
- // }
104
-
105
-
106
- // /// @dev link token registry ownership to nft owner of registry service and register dip token.
107
- // function linkToRegistryService()
108
- // external
109
- // {
110
- // // link token registry ownership to registry service
111
- // address registryService = getRegistry().getServiceAddress(
112
- // REGISTRY(),
113
- // _releaseManager.getInitialVersion());
114
-
115
- // _linkToNftOwnable(registryService);
116
-
117
- // // activate dip for initial gif version
118
- // // as token registry is created in constructor of release manager
119
- // // release manager can not yet be called in constructor of token registry
120
- // uint256 chainId = block.chainid;
121
- // address dipToken = address(_dipToken);
122
- // VersionPart majorVersion = _releaseManager.getInitialVersion();
123
- // bool active = true;
124
- // _active[chainId][dipToken][majorVersion] = active;
125
-
126
- // emit LogTokenRegistryTokenStateSet(chainId, dipToken, majorVersion, active);
127
- // }
128
-
129
82
 
130
83
  /// @dev register an onchain token.
131
84
  /// this function verifies that the provided token address is a contract that implements
@@ -268,6 +221,10 @@ contract TokenRegistry is
268
221
  return _active[chainId][token][majorVersion];
269
222
  }
270
223
 
224
+ function getDipTokenAddress() external view returns (address) {
225
+ return address(_dipToken);
226
+ }
227
+
271
228
  //--- IRegistryLinked --------------------------------------------------//
272
229
 
273
230
  /// @dev returns the dip token for this chain
@@ -6,21 +6,14 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
6
6
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
7
7
  import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
8
8
 
9
+ import {Amount} from "../type/Amount.sol";
9
10
  import {IComponent} from "./IComponent.sol";
10
11
  import {IComponents} from "../instance/module/IComponents.sol";
11
- import {IInstanceService} from "../instance/IInstanceService.sol";
12
- import {IInstance} from "../instance/IInstance.sol";
13
- import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
14
- import {InstanceReader} from "../instance/InstanceReader.sol";
15
- import {IRegistry} from "../registry/IRegistry.sol";
16
12
  import {NftId, NftIdLib} from "../type/NftId.sol";
17
- import {ObjectType, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
18
- import {VersionPart} from "../type/Version.sol";
13
+ import {ObjectType} from "../type/ObjectType.sol";
19
14
  import {Registerable} from "../shared/Registerable.sol";
20
- import {RoleId, RoleIdLib} from "../type/RoleId.sol";
21
- import {IAccess} from "../instance/module/IAccess.sol";
22
15
  import {TokenHandler} from "../shared/TokenHandler.sol";
23
- import {VersionPart} from "../type/Version.sol";
16
+ import {VersionPartLib} from "../type/Version.sol";
24
17
 
25
18
  abstract contract Component is
26
19
  AccessManagedUpgradeable,
@@ -95,7 +88,7 @@ abstract contract Component is
95
88
  }
96
89
 
97
90
 
98
- function approveTokenHandler(uint256 spendingLimitAmount)
91
+ function approveTokenHandler(Amount spendingLimitAmount)
99
92
  external
100
93
  virtual
101
94
  onlyOwner
@@ -103,7 +96,7 @@ abstract contract Component is
103
96
  approveTokenHandler(address(getToken()), spendingLimitAmount);
104
97
  }
105
98
 
106
- function approveTokenHandler(address token, uint256 spendingLimitAmount)
99
+ function approveTokenHandler(address token, Amount spendingLimitAmount)
107
100
  public
108
101
  virtual
109
102
  onlyOwner
@@ -114,7 +107,7 @@ abstract contract Component is
114
107
 
115
108
  IERC20Metadata(token).approve(
116
109
  address(getTokenHandler()),
117
- spendingLimitAmount);
110
+ spendingLimitAmount.toInt());
118
111
 
119
112
  emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount);
120
113
  }
@@ -259,6 +252,7 @@ abstract contract Component is
259
252
 
260
253
  }
261
254
 
255
+
262
256
  /// @dev for component contracts that hold its own component information
263
257
  /// this function creates and sets a token hanlder for the components tokens
264
258
  function _createAndSetTokenHandler()
@@ -268,6 +262,7 @@ abstract contract Component is
268
262
  $._tokenHandler = new TokenHandler(address($._token));
269
263
  }
270
264
 
265
+
271
266
  /// @dev depending on the source of the component information this function needs to be overwritten.
272
267
  /// eg for instance linked components that externally store this information with the instance store contract
273
268
  function _getComponentInfo() internal virtual view returns (IComponents.ComponentInfo memory info) {
@@ -10,8 +10,8 @@ import {IRegistryService} from "../registry/IRegistryService.sol";
10
10
  import {IInstance} from "../instance/IInstance.sol";
11
11
  import {IAccess} from "../instance/module/IAccess.sol";
12
12
  import {NftId} from "../type/NftId.sol";
13
- import {ObjectType, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, POOL, PRODUCT} from "../type/ObjectType.sol";
14
- import {RoleId, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, POLICY_SERVICE_ROLE, PRODUCT_SERVICE_ROLE} from "../type/RoleId.sol";
13
+ import {ObjectType, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
14
+ import {RoleId, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
15
15
  import {KEEP_STATE} from "../type/StateId.sol";
16
16
  import {IComponents} from "../instance/module/IComponents.sol";
17
17
  import {IComponentService} from "./IComponentService.sol";
@@ -64,11 +64,6 @@ contract ComponentService is
64
64
  registerInterface(type(IComponentService).interfaceId);
65
65
  }
66
66
 
67
-
68
- function getDomain() public pure virtual override returns(ObjectType) {
69
- return COMPONENT();
70
- }
71
-
72
67
  //-------- component ----------------------------------------------------//
73
68
 
74
69
  function setWallet(address newWallet) external virtual {
@@ -107,12 +102,6 @@ contract ComponentService is
107
102
  virtual
108
103
  {
109
104
  address contractAddress = msg.sender;
110
- RoleId[] memory roles = new RoleId[](1);
111
- bytes4[][] memory selectors = new bytes4[][](1);
112
-
113
- // authorizaion for distribution owner
114
- roles[0] = PRODUCT_OWNER_ROLE();
115
- selectors[0] = _createSelectors(IProductComponent.setFees.selector);
116
105
 
117
106
  // register/create component setup
118
107
  (
@@ -122,9 +111,7 @@ contract ComponentService is
122
111
  ) = _register(
123
112
  contractAddress,
124
113
  PRODUCT(),
125
- PRODUCT_OWNER_ROLE(),
126
- roles,
127
- selectors);
114
+ PRODUCT_OWNER_ROLE());
128
115
 
129
116
  // create product info
130
117
  IComponents.ProductInfo memory productInfo = IProductComponent(contractAddress).getInitialProductInfo();
@@ -198,24 +185,12 @@ contract ComponentService is
198
185
  virtual
199
186
  {
200
187
  address contractAddress = msg.sender;
201
- RoleId[] memory roles = new RoleId[](2);
202
- bytes4[][] memory selectors = new bytes4[][](2);
203
-
204
- // authorizaion for distribution owner
205
- roles[0] = DISTRIBUTION_OWNER_ROLE();
206
- selectors[0] = _createSelectors(IDistributionComponent.setFees.selector);
207
-
208
- // authorizaion for product service
209
- roles[1] = PRODUCT_SERVICE_ROLE();
210
- selectors[1] = _createSelectors(IDistributionComponent.processRenewal.selector);
211
188
 
212
189
  // register/create component info
213
190
  _register(
214
191
  contractAddress,
215
192
  DISTRIBUTION(),
216
- DISTRIBUTION_OWNER_ROLE(),
217
- roles,
218
- selectors);
193
+ DISTRIBUTION_OWNER_ROLE());
219
194
  }
220
195
 
221
196
 
@@ -280,24 +255,32 @@ contract ComponentService is
280
255
  _changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
281
256
  }
282
257
 
283
- //-------- pool ---------------------------------------------------------//
258
+ //-------- oracle -------------------------------------------------------//
284
259
 
285
- /// @dev registers the sending component as a distribution component
286
- function registerPool()
260
+ function registerOracle()
287
261
  external
288
262
  virtual
289
263
  {
290
264
  address contractAddress = msg.sender;
291
- RoleId[] memory roles = new RoleId[](2);
292
- bytes4[][] memory selectors = new bytes4[][](2);
293
265
 
294
- // authorizaion for distribution owner
295
- roles[0] = POOL_OWNER_ROLE();
296
- selectors[0] = _createSelectors(IPoolComponent.setFees.selector);
266
+ // register/create component setup
267
+ (
268
+ , // instance reader
269
+ InstanceStore instanceStore,
270
+ NftId componentNftId
271
+ ) = _register(
272
+ contractAddress,
273
+ ORACLE(),
274
+ ORACLE_OWNER_ROLE());
275
+ }
297
276
 
298
- // authorizaion for product service
299
- roles[1] = POLICY_SERVICE_ROLE();
300
- selectors[1] = _createSelectors(IPoolComponent.verifyApplication.selector);
277
+ //-------- pool ---------------------------------------------------------//
278
+
279
+ function registerPool()
280
+ external
281
+ virtual
282
+ {
283
+ address contractAddress = msg.sender;
301
284
 
302
285
  // register/create component setup
303
286
  (
@@ -307,14 +290,13 @@ contract ComponentService is
307
290
  ) = _register(
308
291
  contractAddress,
309
292
  POOL(),
310
- POOL_OWNER_ROLE(),
311
- roles,
312
- selectors);
293
+ POOL_OWNER_ROLE());
313
294
 
314
295
  // create info
315
296
  instanceStore.createPool(
316
297
  componentNftId,
317
- IPoolComponent(contractAddress).getInitialPoolInfo());
298
+ IPoolComponent(
299
+ contractAddress).getInitialPoolInfo());
318
300
  }
319
301
 
320
302
 
@@ -444,9 +426,7 @@ contract ComponentService is
444
426
  function _register(
445
427
  address componentAddress, // address of component to register
446
428
  ObjectType requiredType, // required type for component for registration
447
- RoleId requiredRole, // role required for comonent owner for registration
448
- RoleId[] memory roles, // roles with write access to component
449
- bytes4[][] memory selectors // authorized functions per role with write access
429
+ RoleId requiredRole // role required for comonent owner for registration
450
430
  )
451
431
  internal
452
432
  virtual
@@ -473,21 +453,23 @@ contract ComponentService is
473
453
 
474
454
  component.linkToRegisteredNftId();
475
455
 
456
+ // setup initial component authorization
457
+ _instanceService.initializeAuthorization(
458
+ instance.getNftId(),
459
+ component);
460
+
476
461
  // save amended component info with instance
477
462
  instanceReader = instance.getInstanceReader();
478
463
  instanceStore = instance.getInstanceStore();
479
464
 
480
465
  IComponents.ComponentInfo memory componentInfo = component.getComponentInfo();
481
466
  componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
482
- instanceStore.createComponent(component.getNftId(), componentInfo);
483
-
484
- // configure instance authorization
485
- _instanceService.createComponentTarget(
486
- instance.getNftId(),
487
- componentAddress,
488
- component.getName(),
489
- selectors,
490
- roles);
467
+
468
+ instanceStore.createComponent(
469
+ component.getNftId(),
470
+ componentInfo);
471
+
472
+ // TODO add logging
491
473
  }
492
474
 
493
475
 
@@ -526,7 +508,7 @@ contract ComponentService is
526
508
  }
527
509
 
528
510
 
529
- function _createSelectors(bytes4 selector) internal view returns (bytes4[] memory selectors) {
511
+ function _createSelectors(bytes4 selector) internal pure returns (bytes4[] memory selectors) {
530
512
  selectors = new bytes4[](1);
531
513
  selectors[0] = selector;
532
514
  }
@@ -560,7 +542,7 @@ contract ComponentService is
560
542
  RoleId requiredRole
561
543
  )
562
544
  internal
563
- // view
545
+ view
564
546
  returns (
565
547
  IInstance instance,
566
548
  IInstanceLinkedComponent component,
@@ -588,9 +570,12 @@ contract ComponentService is
588
570
  instance = _getInstance(info.parentNftId);
589
571
  owner = info.initialOwner;
590
572
 
591
- (bool hasRole,) = instance.getInstanceAccessManager().hasRole(requiredRole.toInt(), owner);
592
- if(!hasRole) {
573
+ if(!instance.getInstanceAdmin().hasRole(owner, requiredRole)) {
593
574
  revert ErrorComponentServiceExpectedRoleMissing(info.parentNftId, requiredRole, owner);
594
575
  }
595
576
  }
577
+
578
+ function _getDomain() internal pure virtual override returns(ObjectType) {
579
+ return COMPONENT();
580
+ }
596
581
  }
@@ -1,9 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "./IVersionable.sol";
5
- import {ProxyManager} from "./ProxyManager.sol";
6
4
  import {ComponentService} from "./ComponentService.sol";
5
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
6
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
7
 
8
8
  contract ComponentServiceManager is ProxyManager {
9
9
 
@@ -33,12 +33,10 @@ abstract contract ComponentVerifyingService is
33
33
  )
34
34
  {
35
35
  componentNftId = getRegistry().getNftId(msg.sender);
36
- (componentInfo, instance) = _getAndVerifyComponentInfo(componentNftId, expectedType);
37
-
38
- // ensure component is not locked
39
- if (instance.getInstanceAccessManager().isTargetClosed(componentInfo.objectAddress)) {
40
- revert ErrorComponentVerifyingServiceComponentIsLocked(componentNftId);
41
- }
36
+ (componentInfo, instance) = _getAndVerifyComponentInfo(
37
+ componentNftId,
38
+ expectedType,
39
+ true); // only active
42
40
  }
43
41
 
44
42
 
@@ -48,7 +46,8 @@ abstract contract ComponentVerifyingService is
48
46
  /// - the component has the wrong object type
49
47
  function _getAndVerifyComponentInfo(
50
48
  NftId componentNftId,
51
- ObjectType expectedType // assume always of `component` type
49
+ ObjectType expectedType, // assume always of `component` type
50
+ bool onlyActive
52
51
  )
53
52
  internal
54
53
  virtual
@@ -85,6 +84,13 @@ abstract contract ComponentVerifyingService is
85
84
  }
86
85
 
87
86
  instance = _getInstance(info.parentNftId);
87
+
88
+ // ensure component is not locked
89
+ if (onlyActive) {
90
+ if (instance.getInstanceAdmin().isTargetLocked(info.objectAddress)) {
91
+ revert ErrorComponentVerifyingServiceComponentIsLocked(componentNftId);
92
+ }
93
+ }
88
94
  }
89
95
 
90
96
 
@@ -4,14 +4,10 @@ pragma solidity ^0.8.20;
4
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
6
 
7
+ import {Amount} from "../type/Amount.sol";
7
8
  import {IComponents} from "../instance/module/IComponents.sol";
8
- import {IInstance} from "../instance/IInstance.sol";
9
- import {IInstanceService} from "../instance/IInstanceService.sol";
10
- import {IProductService} from "../product/IProductService.sol";
11
9
  import {IRegisterable} from "../shared/IRegisterable.sol";
12
10
  import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
13
- import {NftId} from "../type/NftId.sol";
14
- import {ObjectType} from "../type/ObjectType.sol";
15
11
  import {TokenHandler} from "../shared/TokenHandler.sol";
16
12
 
17
13
  /// @dev component base class
@@ -32,12 +28,12 @@ interface IComponent is
32
28
 
33
29
  event LogComponentWalletAddressChanged(address oldWallet, address newWallet);
34
30
  event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
35
- event LogComponentTokenHandlerApproved(address token, uint256 limit);
31
+ event LogComponentTokenHandlerApproved(address token, Amount limit);
36
32
 
37
33
  /// @dev approves token hanlder to spend up to the specified amount of tokens
38
34
  /// reverts if component wallet is not component itself
39
35
  /// only component owner (nft holder) is authorizes to call this function
40
- function approveTokenHandler(uint256 spendingLimitAmount) external;
36
+ function approveTokenHandler(Amount spendingLimitAmount) external;
41
37
 
42
38
  /// @dev sets the wallet address for the component
43
39
  /// if the current wallet has tokens, these will be transferred