@etherisc/gif-next 0.0.2-e59218b-293 → 0.0.2-e5a2253-213

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 (244) hide show
  1. package/README.md +63 -1
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +166 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +153 -85
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +128 -0
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +28 -2
  11. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +5 -5
  13. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  14. package/artifacts/contracts/components/Pool.sol/Pool.json +185 -114
  15. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  16. package/artifacts/contracts/components/Product.sol/Product.json +160 -98
  17. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  36. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  37. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  38. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  39. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  40. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +788 -0
  41. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  42. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → Cloneable.sol/Cloneable.json} +86 -2
  43. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  44. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +138 -2
  45. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  46. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
  47. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  48. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +104 -14
  49. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  50. package/artifacts/contracts/instance/Instance.sol/Instance.json +107 -660
  51. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  52. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +244 -114
  53. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  54. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +763 -0
  55. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  56. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +38 -28
  57. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  58. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +183 -151
  59. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -74
  61. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  62. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +285 -0
  63. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  64. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +114 -32
  65. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  66. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -13
  67. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  68. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  70. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +59 -16
  73. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  74. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  76. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  78. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  79. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  80. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1121 -0
  81. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  82. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +436 -0
  83. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  84. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +141 -66
  85. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +14 -34
  87. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  88. package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IBundleService.sol/IBundleService.json} +295 -41
  89. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +13 -13
  91. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  92. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +771 -0
  93. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  94. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +15 -164
  95. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +17 -241
  97. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  98. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1246 -0
  99. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  100. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +492 -0
  101. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +140 -241
  103. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +14 -38
  105. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +129 -401
  107. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +14 -78
  109. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  111. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +132 -133
  113. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +94 -65
  115. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  116. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  117. package/artifacts/contracts/registry/Registry.sol/Registry.json +145 -227
  118. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  119. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  120. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  121. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +30 -128
  122. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +38 -104
  124. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  125. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +530 -0
  126. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  127. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
  128. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  129. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  130. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  131. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  132. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  133. package/artifacts/contracts/shared/IService.sol/IService.json +13 -13
  134. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  135. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  136. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  137. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  138. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
  139. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  140. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  141. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +1 -1
  142. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  143. package/artifacts/contracts/shared/Service.sol/Service.json +13 -13
  144. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  145. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  146. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  147. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  148. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  149. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +2 -2
  150. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  151. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  152. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  153. package/artifacts/contracts/test/TestService.sol/TestService.json +31 -31
  154. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  156. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  157. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  158. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  159. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  160. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  161. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  162. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  163. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  164. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  165. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  166. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  167. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  168. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  169. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  170. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  172. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  173. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  174. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  175. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  177. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  178. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  179. package/contracts/components/BaseComponent.sol +91 -14
  180. package/contracts/components/Distribution.sol +2 -11
  181. package/contracts/components/IBaseComponent.sol +11 -1
  182. package/contracts/components/IPoolComponent.sol +5 -1
  183. package/contracts/components/IProductComponent.sol +2 -2
  184. package/contracts/components/Pool.sol +38 -26
  185. package/contracts/components/Product.sol +28 -21
  186. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
  187. package/contracts/instance/BundleManager.sol +129 -0
  188. package/contracts/instance/Cloneable.sol +46 -0
  189. package/contracts/instance/IInstance.sol +9 -3
  190. package/contracts/instance/IInstanceBase.sol +25 -0
  191. package/contracts/instance/IInstanceService.sol +13 -3
  192. package/contracts/instance/Instance.sol +43 -224
  193. package/contracts/instance/InstanceAccessManager.sol +93 -78
  194. package/contracts/instance/InstanceBase.sol +39 -0
  195. package/contracts/instance/InstanceService.sol +247 -100
  196. package/contracts/instance/InstanceServiceManager.sol +5 -8
  197. package/contracts/instance/ObjectManager.sol +101 -0
  198. package/contracts/instance/base/ComponentServiceBase.sol +85 -81
  199. package/contracts/instance/base/IInstanceBase.sol +0 -2
  200. package/contracts/instance/module/IAccess.sol +27 -17
  201. package/contracts/instance/module/ISetup.sol +2 -1
  202. package/contracts/instance/service/BundleService.sol +294 -0
  203. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  204. package/contracts/instance/service/DistributionService.sol +48 -21
  205. package/contracts/instance/service/DistributionServiceManager.sol +6 -9
  206. package/contracts/instance/service/IBundleService.sol +44 -0
  207. package/contracts/instance/service/IPolicyService.sol +94 -0
  208. package/contracts/instance/service/IPoolService.sol +4 -25
  209. package/contracts/instance/service/IProductService.sol +2 -72
  210. package/contracts/instance/service/PolicyService.sol +539 -0
  211. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  212. package/contracts/instance/service/PoolService.sol +65 -124
  213. package/contracts/instance/service/PoolServiceManager.sol +5 -8
  214. package/contracts/instance/service/ProductService.sol +96 -454
  215. package/contracts/registry/ChainNft.sol +1 -1
  216. package/contracts/registry/IRegistry.sol +26 -16
  217. package/contracts/registry/IRegistryService.sol +13 -5
  218. package/contracts/registry/Registry.sol +149 -201
  219. package/contracts/registry/RegistryAccessManager.sol +210 -0
  220. package/contracts/registry/RegistryService.sol +50 -88
  221. package/contracts/registry/RegistryServiceManager.sol +18 -36
  222. package/contracts/registry/ReleaseManager.sol +342 -0
  223. package/contracts/registry/TokenRegistry.sol +5 -6
  224. package/contracts/shared/IRegisterable.sol +0 -2
  225. package/contracts/shared/IService.sol +2 -1
  226. package/contracts/shared/ProxyManager.sol +1 -1
  227. package/contracts/shared/Service.sol +10 -7
  228. package/contracts/test/TestService.sol +3 -2
  229. package/contracts/types/NftIdSet.sol +26 -24
  230. package/contracts/types/RoleId.sol +10 -10
  231. package/package.json +1 -1
  232. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  233. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  234. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  235. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  236. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  237. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  238. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  239. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  240. package/contracts/instance/AccessManagedSimple.sol +0 -115
  241. package/contracts/instance/AccessManagerSimple.sol +0 -692
  242. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  243. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  244. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
@@ -3,93 +3,53 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
5
5
  import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
6
7
 
7
- import {AccessManagedSimple} from "./AccessManagedSimple.sol";
8
- import {AccessManagerSimple} from "./AccessManagerSimple.sol";
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";
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
- AccessManagedSimple
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
- AccessManagerSimple internal _accessManager;
35
+ AccessManagerUpgradeableInitializeable internal _accessManager;
80
36
 
81
- constructor(address accessManager)
37
+ function __InstanceAccessManager_initialize(address initialAdmin) external initializer
82
38
  {
83
- _accessManager = AccessManagerSimple(accessManager);
84
- initializeAccessManagedSimple(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
  }
@@ -0,0 +1,39 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
5
+ import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
+
7
+ import {IAccess} from "./module/IAccess.sol";
8
+ import {IBundle} from "./module/IBundle.sol";
9
+ import {IPolicy} from "./module/IPolicy.sol";
10
+ import {IRisk} from "./module/IRisk.sol";
11
+ import {ISetup} from "./module/ISetup.sol";
12
+ import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
13
+ import {KeyValueStore} from "./base/KeyValueStore.sol";
14
+ import {IInstance} from "./IInstance.sol";
15
+ import {InstanceReader} from "./InstanceReader.sol";
16
+ import {BundleManager} from "./BundleManager.sol";
17
+ import {NftId} from "../types/NftId.sol";
18
+ import {NumberId} from "../types/NumberId.sol";
19
+ import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET} from "../types/ObjectType.sol";
20
+ import {RiskId, RiskIdLib} from "../types/RiskId.sol";
21
+ import {RoleId, RoleIdLib} from "../types/RoleId.sol";
22
+ import {StateId, ACTIVE} from "../types/StateId.sol";
23
+ import {ERC165} from "../shared/ERC165.sol";
24
+ import {Registerable} from "../shared/Registerable.sol";
25
+ import {IDistributionService} from "./service/IDistributionService.sol";
26
+ import {IPoolService} from "./service/IPoolService.sol";
27
+ import {IProductService} from "./service/IProductService.sol";
28
+ import {VersionPart} from "../types/Version.sol";
29
+ import {IInstanceBase} from "./IInstanceBase.sol";
30
+
31
+ contract InstanceBase is
32
+ IInstanceBase,
33
+ KeyValueStore,
34
+ ERC165,
35
+ Registerable
36
+ {
37
+
38
+
39
+ }