@etherisc/gif-next 0.0.2-7d65090-351 → 0.0.2-7dc3cd3-858

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 (339) hide show
  1. package/README.md +18 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
  4. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  12. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
  16. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1385 -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 +171 -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 +17 -242
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +90 -74
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +30 -30
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -16
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -39
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1 -14
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +22 -39
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +30 -91
  44. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1616 -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 +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -76
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +56 -121
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +18 -42
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +73 -79
  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/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  61. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  62. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -9
  63. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  64. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  69. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  70. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  71. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  72. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  73. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  74. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  76. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
  78. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
  81. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +4 -4
  83. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +3 -3
  85. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  86. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  87. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  88. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  89. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  90. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
  91. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  92. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +2 -2
  93. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  94. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  95. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
  96. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  97. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  98. package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
  99. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  100. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
  101. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
  103. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  104. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +4 -4
  105. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  106. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +3 -3
  107. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  108. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  109. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  111. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  112. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
  113. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  114. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +2 -2
  115. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  116. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  117. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  118. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  119. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  120. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
  121. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  122. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  123. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +10 -10
  124. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +6 -6
  126. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  127. package/artifacts/contracts/product/PricingService.sol/PricingService.json +40 -40
  128. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +21 -21
  130. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  131. package/artifacts/contracts/product/Product.sol/Product.json +13 -153
  132. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  133. package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
  134. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  135. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
  136. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  137. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  138. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -44
  139. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  140. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  141. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  142. package/artifacts/contracts/registry/Registry.sol/Registry.json +18 -62
  143. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  144. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +228 -388
  145. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  146. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  147. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
  149. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +48 -126
  151. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  152. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
  153. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  154. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  155. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  156. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  157. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +56 -80
  158. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +29 -41
  160. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  161. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  162. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  163. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  164. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  165. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
  166. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  170. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  174. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  175. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  176. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
  177. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  178. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +2 -2
  179. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  180. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +2 -2
  181. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
  182. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +2 -2
  183. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  184. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  185. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  186. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  187. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  188. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
  189. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  190. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  191. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  192. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  193. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  194. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  195. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  196. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  198. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  199. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  200. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  201. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  202. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  203. package/artifacts/contracts/staking/Staking.sol/Staking.json +2 -2
  204. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  205. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +2 -2
  206. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  207. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  208. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  209. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
  210. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
  212. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  213. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
  214. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  215. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  216. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  217. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  218. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -2
  219. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  220. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  221. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  222. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  223. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  224. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  225. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  226. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  227. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  228. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  229. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  230. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  231. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  232. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  233. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  234. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  236. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  238. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  239. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  240. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  241. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  242. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  244. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  252. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  254. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  256. package/contracts/{shared → authorization}/AccessAdmin.sol +131 -297
  257. package/contracts/authorization/Authorization.sol +218 -0
  258. package/contracts/authorization/IAccess.sol +48 -0
  259. package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
  260. package/contracts/authorization/IAuthorization.sol +54 -0
  261. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  262. package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
  263. package/contracts/authorization/InstanceAdmin.sol +108 -0
  264. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  265. package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
  266. package/contracts/distribution/BasicDistribution.sol +149 -0
  267. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  268. package/contracts/distribution/Distribution.sol +126 -104
  269. package/contracts/distribution/DistributionService.sol +10 -5
  270. package/contracts/distribution/IDistributionComponent.sol +17 -35
  271. package/contracts/distribution/IDistributionService.sol +5 -1
  272. package/contracts/instance/IInstance.sol +5 -6
  273. package/contracts/instance/IInstanceService.sol +6 -12
  274. package/contracts/instance/Instance.sol +61 -70
  275. package/contracts/instance/InstanceAdminNew.sol +261 -0
  276. package/contracts/instance/InstanceAuthorizationV3.sol +209 -0
  277. package/contracts/instance/InstanceReader.sol +22 -9
  278. package/contracts/instance/InstanceService.sol +58 -67
  279. package/contracts/instance/InstanceStore.sol +5 -1
  280. package/contracts/instance/base/ObjectManager.sol +7 -8
  281. package/contracts/oracle/BasicOracle.sol +48 -0
  282. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  283. package/contracts/oracle/IOracle.sol +16 -0
  284. package/contracts/oracle/Oracle.sol +61 -49
  285. package/contracts/pool/BasicPool.sol +164 -0
  286. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  287. package/contracts/pool/IPoolComponent.sol +0 -60
  288. package/contracts/pool/Pool.sol +143 -131
  289. package/contracts/pool/PoolService.sol +1 -1
  290. package/contracts/product/BasicProduct.sol +82 -0
  291. package/contracts/product/BasicProductAuthorization.sol +40 -0
  292. package/contracts/product/IProductComponent.sol +6 -9
  293. package/contracts/product/Product.sol +103 -88
  294. package/contracts/registry/IRegistry.sol +5 -8
  295. package/contracts/registry/Registry.sol +1 -5
  296. package/contracts/registry/RegistryAdmin.sol +101 -71
  297. package/contracts/registry/ReleaseManager.sol +32 -41
  298. package/contracts/registry/ServiceAuthorizationV3.sol +9 -9
  299. package/contracts/shared/ComponentService.sol +18 -56
  300. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  301. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  302. package/contracts/shared/InstanceLinkedComponent.sol +26 -19
  303. package/contracts/type/ObjectType.sol +34 -0
  304. package/contracts/type/RoleId.sol +55 -82
  305. package/contracts/type/UFixed.sol +6 -0
  306. package/package.json +4 -1
  307. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
  308. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +0 -708
  309. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  310. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  311. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  312. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  313. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
  314. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  315. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  316. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  317. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  318. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  319. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  320. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  321. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  322. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  323. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  324. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  325. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  326. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  327. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  328. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  329. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  330. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  331. package/contracts/instance/InstanceAdmin.sol +0 -331
  332. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  333. package/contracts/shared/AccessManagerCustom.sol +0 -741
  334. package/contracts/shared/AccessManagerExtended.sol +0 -481
  335. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  336. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  337. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  338. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  339. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
@@ -1,11 +1,11 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessAdmin} from "../shared/AccessAdmin.sol";
5
- import {IAccessAdmin} from "../shared/IAccessAdmin.sol";
4
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
+ import {IAccess} from "../authorization/IAccess.sol";
6
6
  import {IRegistry} from "./IRegistry.sol";
7
7
  import {IService} from "../shared/IService.sol";
8
- import {IServiceAuthorization} from "./IServiceAuthorization.sol";
8
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
9
9
  import {IStaking} from "../staking/IStaking.sol";
10
10
  import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
11
11
  import {ReleaseManager} from "./ReleaseManager.sol";
@@ -38,13 +38,17 @@ contract RegistryAdmin is
38
38
 
39
39
  string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
40
40
  string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
41
- string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
42
41
  string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
42
+ string public constant RELEASE_MANAGER_ROLE_NAME = "ReleaseManagerRole";
43
+ string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
44
+ string public constant STAKING_ROLE_NAME = "StakingRole";
43
45
 
44
- string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManagerTarget";
45
- string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistryTarget";
46
- string public constant STAKING_TARGET_NAME = "StakingTarget";
47
- string public constant STAKING_STORE_TARGET_NAME = "StakingStoreTarget";
46
+ string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
47
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
48
+ string public constant STAKING_TARGET_NAME = "Staking";
49
+ string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
50
+
51
+ uint8 public constant MAX_NUM_RELEASES = 99;
48
52
 
49
53
  mapping(address service => VersionPart majorVersion) private _ServiceRelease;
50
54
 
@@ -74,7 +78,7 @@ contract RegistryAdmin is
74
78
  IStaking(_staking).getStakingStore());
75
79
 
76
80
  // at this moment all registry contracts are deployed and fully intialized
77
- _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME);
81
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
78
82
 
79
83
  _setupGifAdminRole(gifAdmin);
80
84
  _setupGifManagerRole(gifManager);
@@ -112,50 +116,39 @@ contract RegistryAdmin is
112
116
  function _createServiceTargetAndRole(IService service)
113
117
  private
114
118
  {
115
- ObjectType domain = service.getDomain();
116
- string memory baseName = ObjectTypeLib.toName(domain);
119
+ ObjectType serviceDomain = service.getDomain();
120
+ string memory baseName = ObjectTypeLib.toName(serviceDomain);
117
121
  VersionPart version = service.getVersion().toMajorPart();
118
122
  uint256 versionInt = version.toInt();
119
- string memory versionName = "_v0";
120
- string memory versionNumber = ObjectTypeLib.toString(versionInt);
121
-
122
- if (versionInt >= 10) {
123
- versionName = "_v";
124
- }
125
123
 
126
124
  // create service target
127
- string memory serviceTargetName = string(
128
- abi.encodePacked(
129
- baseName,
130
- "Service",
131
- versionName,
132
- versionNumber));
125
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
126
+ baseName, "Service", versionInt);
133
127
 
134
128
  _createTarget(
135
129
  address(service),
136
- serviceTargetName);
130
+ serviceTargetName,
131
+ true,
132
+ false);
137
133
 
138
134
  // create service role
139
- string memory serviceRoleName = string(
140
- abi.encodePacked(
141
- baseName,
142
- "ServiceRole",
143
- versionName,
144
- versionNumber));
145
-
146
- RoleId roleId = RoleIdLib.roleForTypeAndVersion(
147
- domain,
135
+ RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
136
+ serviceDomain,
148
137
  version);
149
138
 
150
139
  _createRole(
151
- roleId,
152
- ADMIN_ROLE(),
153
- serviceRoleName,
154
- 1, // service roles must only be given to this unique service
155
- true); // it must not be possible to remove this role once granted
140
+ serviceRoleId,
141
+ toRole({
142
+ adminRoleId: ADMIN_ROLE(),
143
+ roleType: RoleType.Contract,
144
+ maxMemberCount: 1,
145
+ name: ObjectTypeLib.toVersionedName(
146
+ baseName,
147
+ "ServiceRole",
148
+ versionInt)}));
156
149
 
157
150
  _grantRoleToAccount(
158
- roleId,
151
+ serviceRoleId,
159
152
  address(service));
160
153
  }
161
154
 
@@ -186,7 +179,7 @@ contract RegistryAdmin is
186
179
  }
187
180
 
188
181
  // get authorized functions for authorized domain
189
- IAccessAdmin.Function[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
182
+ IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
190
183
  serviceDomain,
191
184
  authorizedDomain);
192
185
 
@@ -218,27 +211,38 @@ contract RegistryAdmin is
218
211
  //--- private functions -------------------------------------------------//
219
212
 
220
213
  function _setupGifAdminRole(address gifAdmin) private {
221
- // TODO decide on max member count
222
- _createRole(GIF_ADMIN_ROLE(), getAdminRole(), GIF_ADMIN_ROLE_NAME, 2, false);
223
- _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
214
+
215
+ _createRole(
216
+ GIF_ADMIN_ROLE(),
217
+ toRole({
218
+ adminRoleId: ADMIN_ROLE(),
219
+ roleType: RoleType.Gif,
220
+ maxMemberCount: 2, // TODO decide on max member count
221
+ name: GIF_ADMIN_ROLE_NAME}));
224
222
 
225
223
  // for ReleaseManager
226
- Function[] memory functions;
227
- functions = new Function[](2);
224
+ FunctionInfo[] memory functions;
225
+ functions = new FunctionInfo[](2);
228
226
  functions[0] = toFunction(ReleaseManager.createNextRelease.selector, "createNextRelease");
229
227
  functions[1] = toFunction(ReleaseManager.activateNextRelease.selector, "activateNextRelease");
230
228
  _authorizeTargetFunctions(_releaseManager, GIF_ADMIN_ROLE(), functions);
231
229
 
232
- // for Staking
230
+ _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
233
231
  }
234
232
 
235
233
  function _setupGifManagerRole(address gifManager) private {
236
- _createRole(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE(), GIF_MANAGER_ROLE_NAME, 1, false);
237
- _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
234
+
235
+ _createRole(
236
+ GIF_MANAGER_ROLE(),
237
+ toRole({
238
+ adminRoleId: ADMIN_ROLE(),
239
+ roleType: RoleType.Gif,
240
+ maxMemberCount: 1,
241
+ name: GIF_MANAGER_ROLE_NAME}));
238
242
 
239
243
  // for TokenRegistry
240
- Function[] memory functions;
241
- functions = new Function[](5);
244
+ FunctionInfo[] memory functions;
245
+ functions = new FunctionInfo[](5);
242
246
  functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
243
247
  functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
244
248
  functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
@@ -248,41 +252,54 @@ contract RegistryAdmin is
248
252
  _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
249
253
 
250
254
  // for ReleaseManager
251
- functions = new Function[](2);
255
+ functions = new FunctionInfo[](2);
252
256
  functions[0] = toFunction(ReleaseManager.prepareNextRelease.selector, "prepareNextRelease");
253
257
  functions[1] = toFunction(ReleaseManager.registerService.selector, "registerService");
254
258
  _authorizeTargetFunctions(_releaseManager, GIF_MANAGER_ROLE(), functions);
255
259
 
256
- // for Staking
260
+ _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
257
261
  }
258
262
 
259
263
 
260
264
  function _setupReleaseManager() private {
261
- _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME);
262
265
 
263
- RoleId releaseManagerRoleId = RoleIdLib.roleForType(RELEASE());
264
- _createRole(releaseManagerRoleId, ADMIN_ROLE(), RELEASE_MANAGER_TARGET_NAME, 1, true);
265
- _grantRoleToAccount(releaseManagerRoleId, _releaseManager);
266
+ _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME, true, false);
266
267
 
267
- Function[] memory functions;
268
- functions = new Function[](2);
268
+ RoleId releaseManagerRoleId = RoleIdLib.roleForType(RELEASE());
269
+ _createRole(
270
+ releaseManagerRoleId,
271
+ toRole({
272
+ adminRoleId: ADMIN_ROLE(),
273
+ roleType: RoleType.Contract,
274
+ maxMemberCount: 1,
275
+ name: RELEASE_MANAGER_ROLE_NAME}));
276
+
277
+ FunctionInfo[] memory functions;
278
+ functions = new FunctionInfo[](2);
269
279
  functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
270
280
  functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
271
281
  _authorizeTargetFunctions(address(this), releaseManagerRoleId, functions);
282
+
283
+ _grantRoleToAccount(releaseManagerRoleId, _releaseManager);
272
284
  }
273
285
 
274
286
 
275
287
  function _setupStaking() private {
276
- _createTarget(_staking, STAKING_TARGET_NAME);
277
- _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME);
278
-
288
+ _createTarget(_staking, STAKING_TARGET_NAME, true, false);
289
+ _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
279
290
 
280
291
  // staking function authorization for staking service
281
292
  RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
282
- _createRole(stakingServiceRoleId, ADMIN_ROLE(), STAKING_SERVICE_ROLE_NAME, 1, true);
283
-
284
- Function[] memory functions;
285
- functions = new Function[](13);
293
+ _createRole(
294
+ stakingServiceRoleId,
295
+ toRole({
296
+ adminRoleId: ADMIN_ROLE(),
297
+ roleType: RoleType.Contract,
298
+ maxMemberCount: MAX_NUM_RELEASES,
299
+ name: STAKING_SERVICE_ROLE_NAME}));
300
+
301
+ FunctionInfo[] memory functions;
302
+ functions = new FunctionInfo[](13);
286
303
  functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
287
304
  functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
288
305
  functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
@@ -300,20 +317,31 @@ contract RegistryAdmin is
300
317
 
301
318
  // staking function authorization for pool service
302
319
  RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
303
- _createRole(poolServiceRoleId, ADMIN_ROLE(), POOL_SERVICE_ROLE_NAME, 1, true);
320
+ _createRole(
321
+ poolServiceRoleId,
322
+ toRole({
323
+ adminRoleId: ADMIN_ROLE(),
324
+ roleType: RoleType.Contract,
325
+ maxMemberCount: MAX_NUM_RELEASES,
326
+ name: POOL_SERVICE_ROLE_NAME}));
304
327
 
305
328
  // staking function authorizations
306
- functions = new Function[](2);
329
+ functions = new FunctionInfo[](2);
307
330
  functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
308
331
  functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
309
332
  _authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
310
333
 
311
334
  // staking store function authorizations
312
335
  RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
313
- _createRole(stakingRoleId, ADMIN_ROLE(), STAKING_TARGET_NAME, 1, true);
314
- _grantRoleToAccount(stakingRoleId, _staking);
315
-
316
- functions = new Function[](14);
336
+ _createRole(
337
+ stakingRoleId,
338
+ toRole({
339
+ adminRoleId: ADMIN_ROLE(),
340
+ roleType: RoleType.Contract,
341
+ maxMemberCount: 1,
342
+ name: STAKING_ROLE_NAME}));
343
+
344
+ functions = new FunctionInfo[](14);
317
345
  functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
318
346
  functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
319
347
  functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
@@ -329,5 +357,7 @@ contract RegistryAdmin is
329
357
  functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
330
358
  functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
331
359
  _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
360
+
361
+ _grantRoleToAccount(stakingRoleId, _staking);
332
362
  }
333
363
  }
@@ -18,7 +18,6 @@ import {StateId, INITIAL, SCHEDULED, DEPLOYING, ACTIVE} from "../type/StateId.so
18
18
  import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
19
19
 
20
20
  import {IService} from "../shared/IService.sol";
21
- import {AccessManagerExtendedWithDisableInitializeable} from "../shared/AccessManagerExtendedWithDisableInitializeable.sol";
22
21
  import {ILifecycle} from "../shared/ILifecycle.sol";
23
22
  import {INftOwnable} from "../shared/INftOwnable.sol";
24
23
  import {IRegisterable} from "../shared/IRegisterable.sol";
@@ -26,13 +25,14 @@ import {IRegisterable} from "../shared/IRegisterable.sol";
26
25
  import {IRegistry} from "./IRegistry.sol";
27
26
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
28
27
  import {IRegistryService} from "./IRegistryService.sol";
29
- import {IServiceAuthorization} from "./IServiceAuthorization.sol";
30
- import {IAccessAdmin} from "../shared/IAccessAdmin.sol";
28
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
29
+ import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
31
30
  import {RegistryAdmin} from "./RegistryAdmin.sol";
32
31
  import {Registry} from "./Registry.sol";
33
32
  import {TokenRegistry} from "./TokenRegistry.sol";
34
33
 
35
-
34
+ // TODO rename to something that does not end with 'Manager'
35
+ // everywhere else *Manager points to an upgradeable contract
36
36
  contract ReleaseManager is
37
37
  AccessManaged,
38
38
  ILifecycle,
@@ -92,17 +92,19 @@ contract ReleaseManager is
92
92
  Seconds public constant MIN_DISABLE_DELAY = Seconds.wrap(60 * 24 * 365); // 1 year
93
93
 
94
94
  RegistryAdmin public immutable _admin;
95
- address public immutable _releaseAccessManagerCodeAddress;
96
95
  Registry public immutable _registry;
97
96
  IRegisterable private _staking;
98
97
  address private _stakingOwner;
99
98
 
100
- // TODO remove once it's clear that release authority will always be registry authority
101
- mapping(VersionPart version => address authority) internal _releaseAccessManager;
102
99
  mapping(VersionPart version => IRegistry.ReleaseInfo info) internal _releaseInfo;
100
+ mapping(VersionPart version => IServiceAuthorization authz) internal _serviceAuthorization;
101
+
102
+ // TODO check where/why this is used
103
103
  mapping(address registryService => VersionPart version) _releaseVersionByAddress;
104
104
 
105
- mapping(VersionPart version => IServiceAuthorization authz) internal _serviceAuthorization;
105
+ // TODO remove once it's clear that release authority will always be registry authority
106
+ mapping(VersionPart version => address authority) internal _releaseAccessManager;
107
+
106
108
 
107
109
  VersionPart immutable internal _initial;// first active version
108
110
  VersionPart internal _latest; // latest active version
@@ -128,11 +130,6 @@ contract ReleaseManager is
128
130
  _initial = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION);
129
131
  _next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
130
132
  _state = getInitialState(RELEASE());
131
-
132
- AccessManagerExtendedWithDisableInitializeable masterReleaseAccessManager = new AccessManagerExtendedWithDisableInitializeable();
133
- masterReleaseAccessManager.initialize(_registry.NFT_LOCK_ADDRESS(), VersionLib.toVersionPart(0));
134
- //masterReleaseAccessManager.disable();
135
- _releaseAccessManagerCodeAddress = address(masterReleaseAccessManager);
136
133
  }
137
134
 
138
135
  /// @dev skips previous release if was not activated
@@ -166,35 +163,36 @@ contract ReleaseManager is
166
163
  bytes32 releaseSalt
167
164
  )
168
165
  {
169
- // TODO Any call to serviceAuthorization contract must be treated as a call to an external malicious contract
170
- // How can wrong authorizations tamper the core, releases or instances?
171
- (
172
- VersionPart releaseVersion,
173
- uint serviceDomainsCount
174
- ) = serviceAuthorization.getRelease();
166
+ // verify release manager is in proper state to start deploying a next release
167
+ if (!isValidTransition(RELEASE(), _state, DEPLOYING())) {
168
+ revert ErrorReleaseManagerReleasePreparationDisallowed(_state);
169
+ }
170
+
171
+ // verify prepareNextRelease is only called once per release
172
+ if(_servicesToRegister > 0) {
173
+ revert ErrorReleaseManagerReleaseAlreadyPrepared(version);
174
+ }
175
175
 
176
176
  // verify authorizaion contract release matches with expected version
177
+ VersionPart releaseVersion = serviceAuthorization.getRelease();
177
178
  if (releaseVersion != _next) {
178
179
  revert ErrorReleaseManagerVersionMismatch(_next, releaseVersion);
179
180
  }
180
181
 
181
182
  // sanity check to ensure service domain list is not empty
183
+ uint256 serviceDomainsCount = serviceAuthorization.getServiceDomains().length;
182
184
  if (serviceDomainsCount == 0) {
183
185
  revert ErrorReleaseManagerNoDomains(_next);
184
186
  }
185
187
 
186
- // verify release manager is in proper state to start deploying a next release
187
- if (!isValidTransition(RELEASE(), _state, DEPLOYING())) {
188
- revert ErrorReleaseManagerReleasePreparationDisallowed(_state);
189
- }
190
-
191
- // verify prepareNextRelease is only called once per release
192
- if(_servicesToRegister > 0) {
193
- revert ErrorReleaseManagerReleaseAlreadyPrepared(version);
194
- }
188
+ _state = DEPLOYING();
189
+ _servicesToRegister = serviceDomainsCount;
195
190
 
196
191
  // store release specific service authorization
192
+ authority = _admin.authority();
197
193
  _serviceAuthorization[_next] = serviceAuthorization;
194
+ // TODO refactor: authority no longer release specific
195
+ _releaseAccessManager[_next] = authority;
198
196
 
199
197
  // ensures unique salt
200
198
  releaseSalt = keccak256(
@@ -202,13 +200,6 @@ contract ReleaseManager is
202
200
  bytes32(version.toInt()),
203
201
  salt));
204
202
 
205
- authority = _admin.authority();
206
-
207
- _releaseAccessManager[_next] = authority;
208
- _servicesToRegister = serviceDomainsCount;
209
-
210
- _state = DEPLOYING();
211
-
212
203
  emit LogReleaseCreation(version, releaseSalt, authority);
213
204
  }
214
205
 
@@ -238,9 +229,6 @@ contract ReleaseManager is
238
229
  revert ErrorReleaseManagerServiceDomainMismatch(expectedDomain, service.getDomain());
239
230
  }
240
231
 
241
- // checked in registry
242
- _releaseInfo[version].domains.push(domain);
243
-
244
232
  // register service with registry
245
233
  nftId = _registry.registerService(info, version, domain);
246
234
  _registeredServices++;
@@ -383,9 +371,12 @@ contract ReleaseManager is
383
371
  return _servicesToRegister - _registeredServices;
384
372
  }
385
373
 
386
- // TODO cleanup
387
- function getReleaseAccessManager(VersionPart version) external view returns(AccessManagerExtendedWithDisableInitializeable) {
388
- // return _releaseAccessManager[version];
374
+ function getServiceAuthorization(VersionPart version)
375
+ external
376
+ view
377
+ returns (IServiceAuthorization serviceAuthorization)
378
+ {
379
+ return _serviceAuthorization[version];
389
380
  }
390
381
 
391
382
  // TODO token registry knows nothing about adfmin, only registry
@@ -6,7 +6,7 @@ import {
6
6
  } from "../../contracts/type/ObjectType.sol";
7
7
 
8
8
  import {ComponentService} from "../shared/ComponentService.sol";
9
- import {IAccessAdmin} from "../shared/IAccessAdmin.sol";
9
+ import {IAccess} from "../authorization/IAccess.sol";
10
10
  import {IBundleService} from "../pool/IBundleService.sol";
11
11
  import {IDistributionService} from "../distribution/IDistributionService.sol";
12
12
  import {InstanceService} from "../instance/InstanceService.sol";
@@ -14,7 +14,7 @@ import {IInstanceService} from "../instance/IInstanceService.sol";
14
14
  import {IPoolService} from "../pool/IPoolService.sol";
15
15
  import {IStakingService} from "../staking/IStakingService.sol";
16
16
  import {IRegistryService} from "./IRegistryService.sol";
17
- import {ServiceAuthorization} from "./ServiceAuthorization.sol";
17
+ import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
18
18
 
19
19
 
20
20
  contract ServiceAuthorizationV3
@@ -64,7 +64,7 @@ contract ServiceAuthorizationV3
64
64
  function _setupIRegistryServiceAuthorization()
65
65
  internal
66
66
  {
67
- IAccessAdmin.Function[] storage functions;
67
+ IAccess.FunctionInfo[] storage functions;
68
68
 
69
69
  functions = _authorizeForService(REGISTRY(), APPLICATION());
70
70
  _authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
@@ -98,7 +98,7 @@ contract ServiceAuthorizationV3
98
98
  function _setupStakingServiceAuthorization()
99
99
  internal
100
100
  {
101
- IAccessAdmin.Function[] storage functions;
101
+ IAccess.FunctionInfo[] storage functions;
102
102
 
103
103
  functions = _authorizeForService(STAKING(), INSTANCE());
104
104
  _authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
@@ -121,10 +121,10 @@ contract ServiceAuthorizationV3
121
121
  function _setupInstanceServiceAuthorization()
122
122
  internal
123
123
  {
124
- IAccessAdmin.Function[] storage functions;
124
+ IAccess.FunctionInfo[] storage functions;
125
125
 
126
126
  functions = _authorizeForService(INSTANCE(), COMPONENT());
127
- _authorize(functions, IInstanceService.createComponentTarget.selector, "createComponentTarget");
127
+ _authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
128
128
  }
129
129
 
130
130
 
@@ -159,7 +159,7 @@ contract ServiceAuthorizationV3
159
159
  function _setupDistributionServiceAuthorization()
160
160
  internal
161
161
  {
162
- IAccessAdmin.Function[] storage functions;
162
+ IAccess.FunctionInfo[] storage functions;
163
163
 
164
164
  functions = _authorizeForService(DISTRIBUTION(), POLICY());
165
165
  _authorize(functions, IDistributionService.processSale.selector, "processSale");
@@ -170,7 +170,7 @@ contract ServiceAuthorizationV3
170
170
  function _setupPoolServiceAuthorization()
171
171
  internal
172
172
  {
173
- IAccessAdmin.Function[] storage functions;
173
+ IAccess.FunctionInfo[] storage functions;
174
174
 
175
175
  functions = _authorizeForService(POOL(), POLICY());
176
176
  _authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
@@ -187,7 +187,7 @@ contract ServiceAuthorizationV3
187
187
  function _setupBundleServiceAuthorization()
188
188
  internal
189
189
  {
190
- IAccessAdmin.Function[] storage functions;
190
+ IAccess.FunctionInfo[] storage functions;
191
191
 
192
192
  functions = _authorizeForService(BUNDLE(), POOL());
193
193
  _authorize(functions, IBundleService.create.selector, "create");