@etherisc/gif-next 0.0.2-e2d8c7d-942 → 0.0.2-e38b7e6-931

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 (224) hide show
  1. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +40 -0
  3. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.json +42 -100
  5. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +40 -0
  7. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  8. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  10. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +5 -5
  11. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  12. package/artifacts/contracts/components/Pool.sol/Pool.json +42 -128
  13. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  14. package/artifacts/contracts/components/Product.sol/Product.json +47 -116
  15. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +1 -1
  16. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +1 -1
  17. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  35. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +1 -1
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
  38. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  40. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +90 -13
  41. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  42. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  43. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +88 -14
  44. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  45. package/artifacts/contracts/instance/Instance.sol/Instance.json +56 -616
  46. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  47. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +221 -114
  48. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +2 -2
  50. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2 -2
  52. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +126 -242
  54. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -126
  56. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  57. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +2 -2
  58. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +114 -13
  60. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  61. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -13
  62. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  63. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  64. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  65. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +59 -16
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.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/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  74. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +235 -37
  76. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  77. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +20 -24
  78. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +145 -38
  80. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  81. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +17 -21
  82. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +64 -13
  84. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +13 -13
  86. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +120 -13
  88. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  89. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +13 -13
  90. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  91. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +13 -13
  92. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +326 -64
  94. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +51 -23
  96. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +145 -38
  98. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +17 -21
  100. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  101. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +151 -44
  102. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  103. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +17 -13
  104. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  105. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  106. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  107. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +132 -133
  108. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  109. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +94 -65
  110. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  111. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/Registry.sol/Registry.json +145 -227
  113. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  114. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  116. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +30 -128
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +38 -104
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  120. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +530 -0
  121. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
  123. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  124. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  125. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  126. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  127. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  128. package/artifacts/contracts/shared/IService.sol/IService.json +13 -13
  129. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  130. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  131. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  132. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  133. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
  134. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  135. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  136. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +1 -1
  137. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  138. package/artifacts/contracts/shared/Service.sol/Service.json +13 -13
  139. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  140. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  141. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  142. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  143. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  144. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +2 -2
  145. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  146. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  147. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  148. package/artifacts/contracts/test/TestService.sol/TestService.json +31 -31
  149. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  150. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  151. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  152. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  153. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  154. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  155. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  156. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  157. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  158. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  159. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  160. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  161. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  162. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  163. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  164. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  165. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  166. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  167. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  168. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  169. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  170. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  172. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  173. package/contracts/components/BaseComponent.sol +48 -12
  174. package/contracts/components/Distribution.sol +2 -11
  175. package/contracts/components/IBaseComponent.sol +5 -1
  176. package/contracts/components/IProductComponent.sol +2 -2
  177. package/contracts/components/Pool.sol +5 -18
  178. package/contracts/components/Product.sol +19 -16
  179. package/contracts/instance/IInstance.sol +3 -3
  180. package/contracts/instance/IInstanceBase.sol +0 -1
  181. package/contracts/instance/IInstanceService.sol +9 -3
  182. package/contracts/instance/Instance.sol +12 -214
  183. package/contracts/instance/InstanceAccessManager.sol +92 -77
  184. package/contracts/instance/InstanceBase.sol +0 -2
  185. package/contracts/instance/InstanceService.sol +118 -72
  186. package/contracts/instance/InstanceServiceManager.sol +5 -8
  187. package/contracts/instance/base/ComponentServiceBase.sol +78 -12
  188. package/contracts/instance/base/IInstanceBase.sol +0 -2
  189. package/contracts/instance/module/IAccess.sol +27 -17
  190. package/contracts/instance/service/BundleService.sol +39 -5
  191. package/contracts/instance/service/BundleServiceManager.sol +5 -8
  192. package/contracts/instance/service/DistributionService.sol +33 -36
  193. package/contracts/instance/service/DistributionServiceManager.sol +6 -9
  194. package/contracts/instance/service/IBundleService.sol +5 -6
  195. package/contracts/instance/service/IPolicyService.sol +7 -0
  196. package/contracts/instance/service/PolicyService.sol +65 -34
  197. package/contracts/instance/service/PoolService.sol +46 -28
  198. package/contracts/instance/service/PoolServiceManager.sol +5 -8
  199. package/contracts/instance/service/ProductService.sol +66 -30
  200. package/contracts/registry/ChainNft.sol +1 -1
  201. package/contracts/registry/IRegistry.sol +26 -16
  202. package/contracts/registry/IRegistryService.sol +13 -5
  203. package/contracts/registry/Registry.sol +149 -201
  204. package/contracts/registry/RegistryAccessManager.sol +210 -0
  205. package/contracts/registry/RegistryService.sol +50 -88
  206. package/contracts/registry/RegistryServiceManager.sol +18 -36
  207. package/contracts/registry/ReleaseManager.sol +342 -0
  208. package/contracts/registry/TokenRegistry.sol +5 -6
  209. package/contracts/shared/IRegisterable.sol +0 -2
  210. package/contracts/shared/IService.sol +2 -1
  211. package/contracts/shared/ProxyManager.sol +1 -1
  212. package/contracts/shared/Service.sol +10 -7
  213. package/contracts/test/TestService.sol +3 -2
  214. package/contracts/types/RoleId.sol +10 -12
  215. package/package.json +1 -1
  216. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  217. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  218. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  219. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  220. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  221. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
  222. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  223. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  224. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
@@ -5,7 +5,6 @@ import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet
5
5
  import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
6
  import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
7
7
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
8
- import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
9
8
 
10
9
  import {IAccess} from "./module/IAccess.sol";
11
10
  import {IBundle} from "./module/IBundle.sol";
@@ -16,17 +15,13 @@ import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
16
15
  import {KeyValueStore} from "./base/KeyValueStore.sol";
17
16
  import {IInstance} from "./IInstance.sol";
18
17
  import {InstanceReader} from "./InstanceReader.sol";
18
+ import {InstanceAccessManager} from "./InstanceAccessManager.sol";
19
19
  import {BundleManager} from "./BundleManager.sol";
20
20
  import {NftId} from "../types/NftId.sol";
21
21
  import {NumberId} from "../types/NumberId.sol";
22
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET} from "../types/ObjectType.sol";
23
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
24
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
25
- import {StateId, ACTIVE} from "../types/StateId.sol";
26
- import {ERC165} from "../shared/ERC165.sol";
27
- import {Registerable} from "../shared/Registerable.sol";
28
- import {ComponentOwnerService} from "./service/ComponentOwnerService.sol";
29
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
22
+ import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT} from "../types/ObjectType.sol";
23
+ import {RiskId} from "../types/RiskId.sol";
24
+ import {StateId} from "../types/StateId.sol";
30
25
  import {IDistributionService} from "./service/IDistributionService.sol";
31
26
  import {IPoolService} from "./service/IPoolService.sol";
32
27
  import {IProductService} from "./service/IProductService.sol";
@@ -50,13 +45,7 @@ contract Instance is
50
45
 
51
46
  bool private _initialized;
52
47
 
53
- mapping(ShortString name => RoleId roleId) internal _role;
54
- mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
55
- RoleId [] internal _roles;
56
-
57
- mapping(ShortString name => address target) internal _target;
58
-
59
- AccessManagerUpgradeable internal _accessManager;
48
+ InstanceAccessManager internal _accessManager;
60
49
  InstanceReader internal _instanceReader;
61
50
  BundleManager internal _bundleManager;
62
51
 
@@ -68,136 +57,14 @@ contract Instance is
68
57
 
69
58
  __AccessManaged_init(accessManagerAddress);
70
59
 
71
- _accessManager = AccessManagerUpgradeable(accessManagerAddress);
72
- _createRole(RoleIdLib.toRoleId(ADMIN_ROLE), "AdminRole", false, false);
73
- _createRole(RoleIdLib.toRoleId(PUBLIC_ROLE), "PublicRole", false, false);
74
-
60
+ _accessManager = InstanceAccessManager(accessManagerAddress);
61
+
75
62
  _initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
76
63
 
77
64
  _registerInterface(type(IInstance).interfaceId);
78
65
  _initialized = true;
79
66
  }
80
67
 
81
- //--- Role ------------------------------------------------------//
82
- function createStandardRole(RoleId roleId, string memory name) external restricted() {
83
- _createRole(roleId, name, false, true);
84
- }
85
-
86
- function createCustomRole(RoleId roleId, string memory name) external restricted() {
87
- _createRole(roleId, name, true, true);
88
- }
89
-
90
- function updateRole(RoleId roleId, string memory name, StateId newState) external restricted() {
91
- (bool isCustom,) = _validateRoleParameters(roleId, name, false);
92
- IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
93
- update(toRoleKey32(roleId), abi.encode(role), newState);
94
- }
95
-
96
- function updateRoleState(RoleId roleId, StateId newState) external restricted() {
97
- updateState(toRoleKey32(roleId), newState);
98
- }
99
-
100
- function grantRole(RoleId roleId, address member) external restricted() returns (bool granted) {
101
- Key32 roleKey = toRoleKey32(roleId);
102
-
103
- if (!exists(roleKey)) {
104
- revert IAccess.ErrorGrantNonexstentRole(roleId);
105
- }
106
-
107
- if (getState(roleKey) != ACTIVE()) {
108
- revert IAccess.ErrorRoleIdNotActive(roleId);
109
- }
110
-
111
- if (!EnumerableSet.contains(_roleMembers[roleId], member)) {
112
- _accessManager.grantRole(roleId.toInt(), member, EXECUTION_DELAY);
113
- EnumerableSet.add(_roleMembers[roleId], member);
114
- return true;
115
- }
116
-
117
- return false;
118
- }
119
-
120
- function revokeRole(RoleId roleId, address member) external restricted() returns (bool revoked) {
121
- Key32 roleKey = toRoleKey32(roleId);
122
-
123
- if (!exists(roleKey)) {
124
- revert IAccess.ErrorRevokeNonexstentRole(roleId);
125
- }
126
-
127
- if (EnumerableSet.contains(_roleMembers[roleId], member)) {
128
- _accessManager.revokeRole(roleId.toInt(), member);
129
- EnumerableSet.remove(_roleMembers[roleId], member);
130
- return true;
131
- }
132
-
133
- return false;
134
- }
135
-
136
- /// @dev not restricted function by intention
137
- /// the restriction to role members is already enforced by the call to the access manger
138
- function renounceRole(RoleId roleId) external returns (bool revoked) {
139
- address member = msg.sender;
140
- Key32 roleKey = toRoleKey32(roleId);
141
-
142
- if (!exists(roleKey)) {
143
- revert IAccess.ErrorRenounceNonexstentRole(roleId);
144
- }
145
-
146
- if (EnumerableSet.contains(_roleMembers[roleId], member)) {
147
- _accessManager.renounceRole(roleId.toInt(), member);
148
- EnumerableSet.remove(_roleMembers[roleId], member);
149
- return true;
150
- }
151
-
152
- return false;
153
- }
154
-
155
- function roles() external view returns (uint256 numberOfRoles) {
156
- return _roles.length;
157
- }
158
-
159
- function getRoleId(uint256 idx) external view returns (RoleId roleId) {
160
- return _roles[idx];
161
- }
162
-
163
- function getRole(RoleId roleId) external view returns (IAccess.RoleInfo memory role) {
164
- return abi.decode(getData(roleId.toKey32()), (IAccess.RoleInfo));
165
- }
166
-
167
- function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
168
- return EnumerableSet.length(_roleMembers[roleId]);
169
- }
170
-
171
- function getRoleMember(RoleId roleId, uint256 idx) external view returns (address roleMember) {
172
- return EnumerableSet.at(_roleMembers[roleId], idx);
173
- }
174
-
175
- function _createRole(RoleId roleId, string memory name, bool isCustom, bool validateParameters) internal {
176
- if (validateParameters) {
177
- _validateRoleParameters(roleId, name, isCustom);
178
- }
179
-
180
- IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
181
- _role[role.name] = roleId;
182
- _roles.push(roleId);
183
-
184
- create(toRoleKey32(roleId), abi.encode(role));
185
- }
186
-
187
- //--- Target ------------------------------------------------------//
188
- function createTarget(address target, IAccess.TargetInfo memory targetInfo) external restricted() {
189
- _validateTargetParameters(target, targetInfo);
190
- create(toTargetKey32(target), abi.encode(targetInfo));
191
- }
192
-
193
- function setTargetClosed(address target, bool closed) external restricted() {
194
- if (!exists(toTargetKey32(target))) {
195
- revert IAccess.ErrorTargetDoesNotExist(target);
196
- }
197
-
198
- _accessManager.setTargetClosed(target, closed);
199
- }
200
-
201
68
  //--- ProductSetup ------------------------------------------------------//
202
69
  function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
203
70
  create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
@@ -342,71 +209,6 @@ contract Instance is
342
209
  }
343
210
 
344
211
  //--- internal view/pure functions --------------------------------------//
345
- function _toRole(RoleId roleId, string memory name, bool isCustom)
346
- internal
347
- pure
348
- returns (IAccess.RoleInfo memory role)
349
- {
350
- return IAccess.RoleInfo(
351
- ShortStrings.toShortString(name),
352
- isCustom);
353
- }
354
-
355
- function _validateRoleParameters(
356
- RoleId roleId,
357
- string memory name,
358
- bool isCustom
359
- )
360
- internal
361
- view
362
- returns (
363
- bool roleExists,
364
- bool roleIsCustom
365
- )
366
- {
367
- Key32 roleKey = toRoleKey32(roleId);
368
- roleExists = exists(roleKey);
369
- if (roleExists) {
370
- roleIsCustom = abi.decode(getData(roleKey), (IAccess.RoleInfo)).isCustom;
371
- } else {
372
- roleIsCustom = isCustom;
373
- }
374
-
375
- // check role id
376
- uint64 roleIdInt = RoleId.unwrap(roleId);
377
- if(roleIdInt == ADMIN_ROLE || roleIdInt == PUBLIC_ROLE) {
378
- revert IAccess.ErrorRoleIdInvalid(roleId);
379
- }
380
-
381
- if (roleIsCustom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
382
- revert IAccess.ErrorRoleIdTooSmall(roleId);
383
- } else if (roleIsCustom && roleIdInt >= CUSTOM_ROLE_ID_MIN) {
384
- revert IAccess.ErrorRoleIdTooBig(roleId);
385
- }
386
-
387
- // role name checks
388
- ShortString nameShort = ShortStrings.toShortString(name);
389
- if (ShortStrings.byteLength(nameShort) == 0) {
390
- revert IAccess.ErrorRoleNameEmpty(roleId);
391
- }
392
-
393
- if (_role[nameShort] != RoleIdLib.zero() && _role[nameShort] != roleId) {
394
- revert IAccess.ErrorRoleNameNotUnique(_role[nameShort], nameShort);
395
- }
396
- }
397
-
398
- function _validateTargetParameters(address target, IAccess.TargetInfo memory targetInfo) internal view {
399
-
400
- }
401
-
402
- function toRoleKey32(RoleId roleId) public pure returns (Key32) {
403
- return roleId.toKey32();
404
- }
405
-
406
- function toTargetKey32(address target) public pure returns (Key32) {
407
- return Key32Lib.toKey32(TARGET(), KeyId.wrap(bytes20(target)));
408
- }
409
-
410
212
  function _toNftKey32(NftId nftId, ObjectType objectType) internal pure returns (Key32) {
411
213
  return nftId.toKey32(objectType);
412
214
  }
@@ -419,28 +221,24 @@ contract Instance is
419
221
  return policyNftId.toKey32(POLICY());
420
222
  }
421
223
 
422
- function getComponentOwnerService() external view returns (IComponentOwnerService) {
423
- return ComponentOwnerService(_registry.getServiceAddress("ComponentOwnerService", VersionPart.wrap(3)));
424
- }
425
-
426
224
  function getDistributionService() external view returns (IDistributionService) {
427
- return IDistributionService(_registry.getServiceAddress("DistributionService", VersionPart.wrap(3)));
225
+ return IDistributionService(_registry.getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
428
226
  }
429
227
 
430
228
  function getProductService() external view returns (IProductService) {
431
- return IProductService(_registry.getServiceAddress("ProductService", VersionPart.wrap(3)));
229
+ return IProductService(_registry.getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
432
230
  }
433
231
 
434
232
  function getPoolService() external view returns (IPoolService) {
435
- return IPoolService(_registry.getServiceAddress("PoolService", VersionPart.wrap(3)));
233
+ return IPoolService(_registry.getServiceAddress(POOL(), VersionPart.wrap(3)));
436
234
  }
437
235
 
438
236
  function getPolicyService() external view returns (IPolicyService) {
439
- return IPolicyService(_registry.getServiceAddress("PolicyService", VersionPart.wrap(3)));
237
+ return IPolicyService(_registry.getServiceAddress(POLICY(), VersionPart.wrap(3)));
440
238
  }
441
239
 
442
240
  function getBundleService() external view returns (IBundleService) {
443
- return IBundleService(_registry.getServiceAddress("BundleService", VersionPart.wrap(3)));
241
+ return IBundleService(_registry.getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
444
242
  }
445
243
 
446
244
  function setInstanceReader(InstanceReader instanceReader) external restricted() {
@@ -4,92 +4,52 @@ pragma solidity ^0.8.20;
4
4
  import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
5
5
  import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
6
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
7
- import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
8
-
9
- import {IBundle} from "./module/IBundle.sol";
10
- import {IPolicy} from "./module/IPolicy.sol";
11
- import {IRisk} from "./module/IRisk.sol";
12
- import {ISetup} from "./module/ISetup.sol";
13
- import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
14
- import {KeyValueStore} from "./base/KeyValueStore.sol";
15
- import {NftId} from "../types/NftId.sol";
16
- import {NumberId} from "../types/NumberId.sol";
17
- import {ObjectType, BUNDLE, DISTRIBUTION, POLICY, POOL, ROLE, PRODUCT, TARGET} from "../types/ObjectType.sol";
18
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
19
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
20
- import {StateId, ACTIVE} from "../types/StateId.sol";
21
- import {Timestamp, TimestampLib} from "../types/Timestamp.sol";
7
+
8
+ import {AccessManagerUpgradeableInitializeable} from "../../contracts/instance/AccessManagerUpgradeableInitializeable.sol";
9
+ import {RoleId, RoleIdLib } from "../types/RoleId.sol";
10
+ import {TimestampLib} from "../types/Timestamp.sol";
11
+ import {IAccess} from "./module/IAccess.sol";
22
12
 
23
13
  contract InstanceAccessManager is
24
14
  AccessManagedUpgradeable
25
15
  {
16
+ using RoleIdLib for RoleId;
17
+
26
18
  string public constant ADMIN_ROLE_NAME = "AdminRole";
27
19
  string public constant PUBLIC_ROLE_NAME = "PublicRole";
28
20
 
29
21
  uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
30
22
  uint32 public constant EXECUTION_DELAY = 0;
31
23
 
32
- struct RoleInfo {
33
- ShortString name;
34
- bool isCustom;
35
- bool isLocked;
36
- Timestamp createdAt;
37
- Timestamp updatedAt;
38
- }
39
-
40
- struct TargetInfo {
41
- ShortString name;
42
- bool isCustom;
43
- bool isLocked;
44
- Timestamp createdAt;
45
- Timestamp updatedAt;
46
- }
47
-
48
- error ErrorRoleIdInvalid(RoleId roleId);
49
- error ErrorRoleIdTooBig(RoleId roleId);
50
- error ErrorRoleIdTooSmall(RoleId roleId);
51
- error ErrorRoleIdAlreadyExists(RoleId roleId, ShortString name);
52
- error ErrorRoleIdNotActive(RoleId roleId);
53
- error ErrorRoleNameEmpty(RoleId roleId);
54
- error ErrorRoleNameNotUnique(RoleId roleId, ShortString name);
55
- error ErrorRoleInvalidUpdate(RoleId roleId, bool isCustom);
56
- error ErrorRoleIsCustomIsImmutable(RoleId roleId, bool isCustom, bool isCustomExisting);
57
- error ErrorSetLockedForNonexstentRole(RoleId roleId);
58
- error ErrorGrantNonexstentRole(RoleId roleId);
59
- error ErrorRevokeNonexstentRole(RoleId roleId);
60
- error ErrorRenounceNonexstentRole(RoleId roleId);
61
-
62
- error ErrorTargetAddressZero();
63
- error ErrorTargetAlreadyExists(address target, ShortString name);
64
- error ErrorTargetNameEmpty(address target);
65
- error ErrorTargetNameExists(address target, address existingTarget, ShortString name);
66
- error ErrorSetLockedForNonexstentTarget(address target);
67
-
68
24
  // role specific state
69
- mapping(RoleId roleId => RoleInfo info) internal _role;
25
+ mapping(RoleId roleId => IAccess.RoleInfo info) internal _role;
70
26
  mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
71
27
  mapping(ShortString name => RoleId roleId) internal _roleForName;
72
28
  RoleId [] internal _roles;
73
29
 
74
30
  // target specific state
75
- mapping(address target => TargetInfo info) internal _target;
31
+ mapping(address target => IAccess.TargetInfo info) internal _target;
76
32
  mapping(ShortString name => address target) internal _targetForName;
77
33
  address [] internal _targets;
78
34
 
79
- AccessManagerUpgradeable internal _accessManager;
35
+ AccessManagerUpgradeableInitializeable internal _accessManager;
80
36
 
81
- constructor(address accessManager)
37
+ function __InstanceAccessManager_initialize(address initialAdmin) external initializer
82
38
  {
83
- _accessManager = AccessManagerUpgradeable(accessManager);
84
- __AccessManaged_init(accessManager);
39
+ // if size of the contract gets too large, this can be externalized which will reduce the contract size considerably
40
+ _accessManager = new AccessManagerUpgradeableInitializeable();
41
+ // this service required adin rights to access manager to be able to grant/revoke roles
42
+ _accessManager.__AccessManagerUpgradeableInitializeable_init(address(this));
43
+ _accessManager.grantRole(_accessManager.ADMIN_ROLE(), initialAdmin, 0);
44
+
45
+ __AccessManaged_init(address(_accessManager));
85
46
 
86
47
  _createRole(RoleIdLib.toRoleId(_accessManager.ADMIN_ROLE()), ADMIN_ROLE_NAME, false, false);
87
48
  _createRole(RoleIdLib.toRoleId(_accessManager.PUBLIC_ROLE()), PUBLIC_ROLE_NAME, false, false);
88
49
  }
89
50
 
90
51
  //--- Role ------------------------------------------------------//
91
-
92
- function createDefaultRole(RoleId roleId, string memory name) external restricted() {
52
+ function createGifRole(RoleId roleId, string memory name) external restricted() {
93
53
  _createRole(roleId, name, false, true);
94
54
  }
95
55
 
@@ -99,7 +59,7 @@ contract InstanceAccessManager is
99
59
 
100
60
  function setRoleLocked(RoleId roleId, bool locked) external restricted() {
101
61
  if (!roleExists(roleId)) {
102
- revert ErrorSetLockedForNonexstentRole(roleId);
62
+ revert IAccess.ErrorIAccessSetLockedForNonexstentRole(roleId);
103
63
  }
104
64
 
105
65
  _role[roleId].isLocked = locked;
@@ -112,11 +72,11 @@ contract InstanceAccessManager is
112
72
 
113
73
  function grantRole(RoleId roleId, address member) external restricted() returns (bool granted) {
114
74
  if (!roleExists(roleId)) {
115
- revert ErrorGrantNonexstentRole(roleId);
75
+ revert IAccess.ErrorIAccessGrantNonexstentRole(roleId);
116
76
  }
117
77
 
118
78
  if (_role[roleId].isLocked) {
119
- revert ErrorRoleIdNotActive(roleId);
79
+ revert IAccess.ErrorIAccessRoleIdNotActive(roleId);
120
80
  }
121
81
 
122
82
  if (!EnumerableSet.contains(_roleMembers[roleId], member)) {
@@ -130,7 +90,7 @@ contract InstanceAccessManager is
130
90
 
131
91
  function revokeRole(RoleId roleId, address member) external restricted() returns (bool revoked) {
132
92
  if (!roleExists(roleId)) {
133
- revert ErrorRevokeNonexstentRole(roleId);
93
+ revert IAccess.ErrorIAccessRevokeNonexstentRole(roleId);
134
94
  }
135
95
 
136
96
  if (EnumerableSet.contains(_roleMembers[roleId], member)) {
@@ -148,7 +108,7 @@ contract InstanceAccessManager is
148
108
  address member = msg.sender;
149
109
 
150
110
  if (!roleExists(roleId)) {
151
- revert ErrorRenounceNonexstentRole(roleId);
111
+ revert IAccess.ErrorIAccessRenounceNonexstentRole(roleId);
152
112
  }
153
113
 
154
114
  if (EnumerableSet.contains(_roleMembers[roleId], member)) {
@@ -173,7 +133,7 @@ contract InstanceAccessManager is
173
133
  return _roleForName[ShortStrings.toShortString(name)];
174
134
  }
175
135
 
176
- function getRole(RoleId roleId) external view returns (RoleInfo memory role) {
136
+ function getRole(RoleId roleId) external view returns (IAccess.RoleInfo memory role) {
177
137
  return _role[roleId];
178
138
  }
179
139
 
@@ -190,13 +150,19 @@ contract InstanceAccessManager is
190
150
  }
191
151
 
192
152
  //--- Target ------------------------------------------------------//
153
+ function createGifTarget(address target, string memory name) external restricted() {
154
+ _createTarget(target, name, false, true);
155
+ }
156
+
193
157
  function createTarget(address target, string memory name) external restricted() {
194
158
  _createTarget(target, name, true, true);
195
159
  }
196
160
 
197
- function setTargetLocked(address target, bool locked) external restricted() {
198
- if (!targetExists(target)) {
199
- revert ErrorSetLockedForNonexstentTarget(target);
161
+ function setTargetLocked(string memory targetName, bool locked) external restricted() {
162
+ address target = _targetForName[ShortStrings.toShortString(targetName)];
163
+
164
+ if (target == address(0)) {
165
+ revert IAccess.ErrorIAccessSetLockedForNonexstentTarget(target);
200
166
  }
201
167
 
202
168
  _target[target].isLocked = locked;
@@ -214,7 +180,7 @@ contract InstanceAccessManager is
214
180
  _validateRoleParameters(roleId, name, isCustom);
215
181
  }
216
182
 
217
- RoleInfo memory role = RoleInfo(
183
+ IAccess.RoleInfo memory role = IAccess.RoleInfo(
218
184
  ShortStrings.toShortString(name),
219
185
  isCustom,
220
186
  false, // role un-locked,
@@ -233,35 +199,35 @@ contract InstanceAccessManager is
233
199
  )
234
200
  internal
235
201
  view
236
- returns (RoleInfo memory existingRole)
202
+ returns (IAccess.RoleInfo memory existingRole)
237
203
  {
238
204
  // check role id
239
205
  uint64 roleIdInt = RoleId.unwrap(roleId);
240
206
  if(roleIdInt == _accessManager.ADMIN_ROLE() || roleIdInt == _accessManager.PUBLIC_ROLE()) {
241
- revert ErrorRoleIdInvalid(roleId);
207
+ revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
242
208
  }
243
209
 
244
210
  // prevent changing isCustom for existing roles
245
211
  existingRole = _role[roleId];
246
212
 
247
213
  if (existingRole.createdAt.gtz() && isCustom != existingRole.isCustom) {
248
- revert ErrorRoleIsCustomIsImmutable(roleId, isCustom, existingRole.isCustom);
214
+ revert IAccess.ErrorIAccessRoleIsCustomIsImmutable(roleId, isCustom, existingRole.isCustom);
249
215
  }
250
216
 
251
217
  if (isCustom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
252
- revert ErrorRoleIdTooSmall(roleId);
218
+ revert IAccess.ErrorIAccessRoleIdTooSmall(roleId);
253
219
  } else if (!isCustom && roleIdInt >= CUSTOM_ROLE_ID_MIN) {
254
- revert ErrorRoleIdTooBig(roleId);
220
+ revert IAccess.ErrorIAccessRoleIdTooBig(roleId);
255
221
  }
256
222
 
257
223
  // role name checks
258
224
  ShortString nameShort = ShortStrings.toShortString(name);
259
225
  if (ShortStrings.byteLength(nameShort) == 0) {
260
- revert ErrorRoleNameEmpty(roleId);
226
+ revert IAccess.ErrorIAccessRoleNameEmpty(roleId);
261
227
  }
262
228
 
263
229
  if (_roleForName[nameShort] != RoleIdLib.zero() && _roleForName[nameShort] != roleId) {
264
- revert ErrorRoleNameNotUnique(_roleForName[nameShort], nameShort);
230
+ revert IAccess.ErrorIAccessRoleNameNotUnique(_roleForName[nameShort], nameShort);
265
231
  }
266
232
  }
267
233
 
@@ -270,7 +236,14 @@ contract InstanceAccessManager is
270
236
  _validateTargetParameters(target, name, isCustom);
271
237
  }
272
238
 
273
- TargetInfo memory info = TargetInfo(
239
+ if (_target[target].createdAt.gtz()) {
240
+ revert IAccess.ErrorIAccessTargetAlreadyExists(target, _target[target].name);
241
+ }
242
+ if (_targetForName[ShortStrings.toShortString(name)] != address(0)) {
243
+ revert IAccess.ErrorIAccessTargetNameExists(target, _targetForName[ShortStrings.toShortString(name)], ShortStrings.toShortString(name));
244
+ }
245
+
246
+ IAccess.TargetInfo memory info = IAccess.TargetInfo(
274
247
  ShortStrings.toShortString(name),
275
248
  isCustom,
276
249
  _accessManager.isTargetClosed(target), // sync with state in access manager
@@ -283,6 +256,48 @@ contract InstanceAccessManager is
283
256
  }
284
257
 
285
258
  function _validateTargetParameters(address target, string memory name, bool isCustom) internal view {
259
+ // TODO: implement
260
+ }
261
+
262
+ function setTargetFunctionRole(
263
+ address target,
264
+ bytes4[] calldata selectors,
265
+ uint64 roleId
266
+ ) public virtual restricted() {
267
+ _accessManager.setTargetFunctionRole(target, selectors, roleId);
268
+ }
269
+
270
+ function setTargetFunctionRole(
271
+ string memory targetName,
272
+ bytes4[] calldata selectors,
273
+ RoleId roleId
274
+ ) public virtual restricted() {
275
+ address target = _targetForName[ShortStrings.toShortString(targetName)];
276
+ uint64 roleIdInt = RoleId.unwrap(roleId);
277
+ _accessManager.setTargetFunctionRole(target, selectors, roleIdInt);
278
+ }
279
+
280
+ function getAccessManager() public restricted() returns (AccessManagerUpgradeableInitializeable) {
281
+ return _accessManager;
282
+ }
283
+
284
+ function setTargetClosed(string memory targetName, bool closed) public restricted() {
285
+ address target = _targetForName[ShortStrings.toShortString(targetName)];
286
+ if (target == address(0)) {
287
+ revert IAccess.ErrorIAccessTargetAddressZero();
288
+ }
289
+ _accessManager.setTargetClosed(target, closed);
290
+ }
291
+
292
+ function isTargetLocked(address target) public view returns (bool locked) {
293
+ return _accessManager.isTargetClosed(target);
294
+ }
286
295
 
296
+ function canCall(
297
+ address caller,
298
+ address target,
299
+ bytes4 selector
300
+ ) public view virtual returns (bool immediate, uint32 delay) {
301
+ return _accessManager.canCall(caller, target, selector);
287
302
  }
288
303
  }
@@ -22,8 +22,6 @@ import {RoleId, RoleIdLib} from "../types/RoleId.sol";
22
22
  import {StateId, ACTIVE} from "../types/StateId.sol";
23
23
  import {ERC165} from "../shared/ERC165.sol";
24
24
  import {Registerable} from "../shared/Registerable.sol";
25
- import {ComponentOwnerService} from "./service/ComponentOwnerService.sol";
26
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
27
25
  import {IDistributionService} from "./service/IDistributionService.sol";
28
26
  import {IPoolService} from "./service/IPoolService.sol";
29
27
  import {IProductService} from "./service/IProductService.sol";