@etherisc/gif-next 0.0.2-a6f9f86-582 → 0.0.2-a6faeb6-912
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.
- package/README.md +171 -2
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +4 -0
- package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → components/BaseComponent.sol/BaseComponent.json} +241 -245
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +744 -0
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +127 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +152 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +275 -0
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +157 -0
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/components/Pool.sol/Pool.json +939 -0
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/components/Product.sol/Product.json +855 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +788 -0
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → Cloneable.sol/Cloneable.json} +86 -2
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1698 -0
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +496 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +553 -530
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +57 -34
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +763 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1422 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +937 -31
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +532 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +285 -0
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +540 -0
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +113 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +0 -77
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +10 -244
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +827 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +716 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +444 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +466 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +446 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +728 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +760 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +1049 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +464 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +1147 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +488 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +47 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +197 -116
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +217 -15
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +167 -172
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +324 -44
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +77 -36
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +410 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +6 -6
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +442 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +4 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +6 -6
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +111 -5
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +17 -17
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +2 -2
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/test/Usdc.sol/USDC.json +91 -53
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +4 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/{UFixedMathLib.json → UFixedLib.json} +3 -3
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
- package/contracts/components/BaseComponent.sol +132 -0
- package/contracts/components/Distribution.sol +163 -0
- package/contracts/components/IBaseComponent.sol +14 -2
- package/contracts/components/IDistributionComponent.sol +44 -0
- package/contracts/components/IPoolComponent.sol +66 -0
- package/contracts/components/IProductComponent.sol +35 -0
- package/contracts/components/Pool.sol +267 -0
- package/contracts/components/Product.sol +289 -0
- package/contracts/experiment/cloning/Cloner.sol +47 -0
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
- package/contracts/instance/BundleManager.sol +129 -0
- package/contracts/instance/Cloneable.sol +46 -0
- package/contracts/instance/IAccessManagerSimple.sol +1 -1
- package/contracts/instance/IInstance.sol +56 -0
- package/contracts/instance/IInstanceBase.sol +26 -0
- package/contracts/instance/IInstanceService.sol +34 -0
- package/contracts/instance/Instance.sol +84 -20
- package/contracts/instance/InstanceAccessManager.sol +8 -8
- package/contracts/instance/InstanceBase.sol +41 -0
- package/contracts/instance/InstanceReader.sol +315 -0
- package/contracts/instance/InstanceService.sol +230 -22
- package/contracts/instance/InstanceServiceManager.sol +57 -0
- package/contracts/instance/ObjectManager.sol +101 -0
- package/contracts/instance/base/ComponentServiceBase.sol +134 -0
- package/contracts/instance/base/IInstanceBase.sol +23 -0
- package/contracts/instance/base/IKeyValueStore.sol +5 -4
- package/contracts/instance/base/KeyValueStore.sol +4 -20
- package/contracts/instance/module/IAccess.sol +2 -2
- package/contracts/instance/module/IBundle.sol +1 -0
- package/contracts/instance/module/ISetup.sol +6 -1
- package/contracts/instance/module/ITreasury.sol +1 -1
- package/contracts/instance/service/ComponentOwnerService.sol +317 -0
- package/contracts/instance/service/DistributionService.sol +88 -0
- package/contracts/instance/service/DistributionServiceManager.sol +54 -0
- package/contracts/instance/service/IComponentOwnerService.sol +20 -0
- package/contracts/instance/service/IDistributionService.sol +12 -0
- package/contracts/instance/service/IPoolService.sol +51 -0
- package/contracts/instance/service/IProductService.sol +110 -0
- package/contracts/instance/service/PoolService.sol +287 -0
- package/contracts/instance/service/PoolServiceManager.sol +54 -0
- package/contracts/instance/service/ProductService.sol +570 -0
- package/contracts/instance/service/ProductServiceManager.sol +54 -0
- package/contracts/registry/ChainNft.sol +40 -25
- package/contracts/registry/IRegistry.sol +30 -22
- package/contracts/registry/IRegistryService.sol +36 -15
- package/contracts/registry/Registry.sol +133 -176
- package/contracts/registry/RegistryService.sol +159 -170
- package/contracts/registry/RegistryServiceManager.sol +39 -2
- package/contracts/registry/TokenRegistry.sol +111 -0
- package/contracts/shared/ERC165.sol +7 -3
- package/contracts/shared/IRegisterable.sol +1 -1
- package/contracts/{instance/base → shared}/IService.sol +3 -3
- package/contracts/shared/NftOwnable.sol +2 -4
- package/contracts/shared/ProxyManager.sol +3 -3
- package/contracts/shared/Registerable.sol +3 -2
- package/contracts/shared/RegisterableUpgradable.sol +16 -0
- package/contracts/shared/Service.sol +55 -0
- package/contracts/shared/TokenHandler.sol +2 -2
- package/contracts/shared/UpgradableProxyWithAdmin.sol +2 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/test/TestFee.sol +2 -2
- package/contracts/test/TestRoleId.sol +6 -6
- package/contracts/test/TestService.sol +3 -5
- package/contracts/types/Fee.sol +3 -3
- package/contracts/types/NftIdSet.sol +26 -24
- package/contracts/types/RoleId.sol +19 -4
- package/contracts/types/StateId.sol +4 -0
- package/contracts/types/UFixed.sol +128 -12
- package/contracts/types/Version.sol +4 -1
- package/package.json +4 -3
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1119
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/contracts/instance/AccessManagedSimple.sol +0 -114
- package/contracts/instance/AccessManagerSimple.sol +0 -682
- package/contracts/instance/base/ServiceBase.sol +0 -44
- package/contracts/registry/IChainNft.sol +0 -22
@@ -1,239 +1,212 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
5
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
6
|
|
6
|
-
import {IRegistry} from "
|
7
|
-
|
7
|
+
import {IRegistry} from "./IRegistry.sol";
|
8
|
+
import {IInstance} from "../instance/IInstance.sol";
|
8
9
|
|
9
10
|
import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
|
10
|
-
// import {IComponent, IComponentModule} from "../../contracts/instance/module/component/IComponent.sol";
|
11
|
-
// import {IPool} from "../../contracts/instance/module/pool/IPoolModule.sol";
|
12
11
|
import {IBaseComponent} from "../../contracts/components/IBaseComponent.sol";
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
|
13
|
+
import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
|
14
|
+
import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
|
16
15
|
|
17
16
|
import {IVersionable} from "../../contracts/shared/IVersionable.sol";
|
18
17
|
import {Versionable} from "../../contracts/shared/Versionable.sol";
|
19
18
|
import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
|
20
19
|
|
21
|
-
import {RoleId} from "../../contracts/types/RoleId.sol";
|
22
|
-
import {ObjectType, REGISTRY,
|
20
|
+
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
|
21
|
+
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, POLICY, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
|
23
22
|
import {StateId, ACTIVE, PAUSED} from "../../contracts/types/StateId.sol";
|
24
23
|
import {NftId, NftIdLib, zeroNftId} from "../../contracts/types/NftId.sol";
|
25
24
|
import {Fee, FeeLib} from "../../contracts/types/Fee.sol";
|
26
25
|
import {Version, VersionPart, VersionLib} from "../../contracts/types/Version.sol";
|
27
26
|
|
28
|
-
import {
|
29
|
-
import {IService} from "
|
27
|
+
import {Service} from "../shared/Service.sol";
|
28
|
+
import {IService} from "../shared/IService.sol";
|
30
29
|
import {IRegistryService} from "./IRegistryService.sol";
|
31
|
-
import {Registry} from "
|
30
|
+
import {Registry} from "./Registry.sol";
|
32
31
|
|
33
32
|
contract RegistryService is
|
34
|
-
|
33
|
+
AccessManagedUpgradeable,
|
34
|
+
Service,
|
35
35
|
IRegistryService
|
36
36
|
{
|
37
37
|
using NftIdLib for NftId;
|
38
38
|
|
39
|
-
error NotRegistryOwner();
|
40
|
-
error MissingAllowance();
|
41
|
-
|
42
|
-
error NotToken();
|
43
|
-
error NotService();
|
44
|
-
error NotComponent();
|
45
|
-
error NotInstance();
|
46
|
-
|
47
|
-
error InvalidAddress(address registerableAddress);
|
48
|
-
error InvalidInitialOwner(address initialOwner);
|
49
|
-
error SelfRegistration();
|
50
|
-
error InvalidType(ObjectType objectType);
|
51
39
|
|
40
|
+
// Initial value for constant variable has to be compile-time constant
|
41
|
+
// TODO define types as constants?
|
42
|
+
//ObjectType public constant SERVICE_TYPE = REGISTRY();
|
52
43
|
string public constant NAME = "RegistryService";
|
53
44
|
|
54
45
|
// TODO update to real hash when registry is stable
|
55
46
|
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
56
47
|
|
57
|
-
address constant
|
48
|
+
address public constant NFT_LOCK_ADDRESS = address(0x1);
|
58
49
|
|
59
50
|
/// @dev
|
60
51
|
// msg.sender - ONLY registry owner
|
61
|
-
// CAN register ANY non IRegisterable address
|
62
|
-
// CAN register ONLY valid object-parent types combinations for TOKEN
|
63
52
|
// CAN NOT register itself
|
64
|
-
// IMPORTANT: MUST NOT call untrusted contract inbetween calls to registry/instance (trusted contracts)
|
65
|
-
// motivation: registry/instance state may change during external call
|
66
|
-
// TODO it may be usefull to have transferable token nft in order to delist token, make it invalid for new beginings
|
67
|
-
// TODO: MUST prohibit registration of precompiles addresses
|
68
|
-
function registerToken(address tokenAddress)
|
69
|
-
external
|
70
|
-
returns(NftId nftId)
|
71
|
-
{
|
72
|
-
IRegisterable registerable = IRegisterable(tokenAddress);
|
73
|
-
bool isRegisterable;
|
74
|
-
|
75
|
-
// registryOwner can not register IRegisterable as TOKEN
|
76
|
-
try registerable.supportsInterface(type(IRegisterable).interfaceId) returns(bool result) {
|
77
|
-
isRegisterable = result;
|
78
|
-
} catch {
|
79
|
-
isRegisterable = false;
|
80
|
-
}
|
81
|
-
|
82
|
-
if(isRegisterable) {
|
83
|
-
revert NotToken();
|
84
|
-
}
|
85
|
-
|
86
|
-
NftId registryNftId = _registry.getNftId(address(_registry));
|
87
|
-
if(msg.sender != _registry.ownerOf(registryNftId)) {
|
88
|
-
revert NotRegistryOwner();
|
89
|
-
}
|
90
|
-
|
91
|
-
IRegistry.ObjectInfo memory info = IRegistry.ObjectInfo(
|
92
|
-
zeroNftId(), // any value
|
93
|
-
registryNftId, // parent nft id
|
94
|
-
TOKEN(),
|
95
|
-
false, // isInterceptor
|
96
|
-
tokenAddress,
|
97
|
-
NFT_LOCK_ADDRESS,
|
98
|
-
"" // any value
|
99
|
-
);
|
100
|
-
|
101
|
-
nftId = _registry.register(info);
|
102
|
-
}
|
103
|
-
|
104
|
-
/// @dev
|
105
|
-
// msg.sender - ONLY registry owner
|
106
53
|
// CAN register ONLY valid object-parent types combinations for SERVICE
|
107
54
|
// CAN register ONLY IRegisterable address he owns
|
108
|
-
// CAN NOT register itself
|
109
55
|
// IMPORTANT: MUST NOT check owner before calling external contract
|
110
56
|
function registerService(IService service)
|
111
57
|
external
|
58
|
+
restricted
|
112
59
|
returns(
|
113
60
|
IRegistry.ObjectInfo memory info,
|
114
61
|
bytes memory data
|
115
62
|
)
|
116
63
|
{
|
117
|
-
|
64
|
+
|
65
|
+
// CAN revert if no ERC165 support -> will revert with empty message
|
66
|
+
if(!service.supportsInterface(type(IService).interfaceId)) {
|
118
67
|
revert NotService();
|
119
|
-
}
|
68
|
+
}
|
120
69
|
|
121
70
|
(
|
122
71
|
info,
|
123
72
|
data
|
124
73
|
) = _getAndVerifyContractInfo(service, SERVICE(), msg.sender);
|
125
74
|
|
126
|
-
NftId registryNftId = _registry.getNftId(address(_registry));
|
127
|
-
if(msg.sender != _registry.ownerOf(registryNftId)) {
|
128
|
-
revert NotRegistryOwner();
|
129
|
-
}
|
130
|
-
|
131
|
-
info.initialOwner = NFT_LOCK_ADDRESS;//registry.getLockAddress();
|
132
75
|
info.nftId = _registry.register(info);
|
133
76
|
service.linkToRegisteredNftId();
|
77
|
+
return (info, data);
|
78
|
+
}
|
134
79
|
|
135
|
-
|
136
|
-
|
80
|
+
function registerInstance(IRegisterable instance)
|
81
|
+
external
|
82
|
+
returns(
|
83
|
+
IRegistry.ObjectInfo memory info,
|
84
|
+
bytes memory data
|
85
|
+
)
|
86
|
+
{
|
87
|
+
if(!instance.supportsInterface(type(IInstance).interfaceId)) {
|
88
|
+
revert NotInstance();
|
89
|
+
}
|
90
|
+
|
91
|
+
(
|
92
|
+
info,
|
137
93
|
data
|
138
|
-
);
|
94
|
+
) = _getAndVerifyContractInfo(instance, INSTANCE(), msg.sender);
|
95
|
+
|
96
|
+
info.nftId = _registry.register(info);
|
97
|
+
instance.linkToRegisteredNftId(); // asume safe
|
98
|
+
|
99
|
+
return (info, data);
|
139
100
|
}
|
140
101
|
|
141
|
-
|
142
|
-
//function registerComponent(IBaseComponent component, ObjectType componentType)
|
143
|
-
function registerComponent(IBaseComponent component, ObjectType componentType, address owner)
|
102
|
+
function registerProduct(IBaseComponent product, address owner)
|
144
103
|
external
|
104
|
+
restricted
|
145
105
|
returns(
|
146
106
|
IRegistry.ObjectInfo memory info,
|
147
107
|
bytes memory data
|
148
108
|
)
|
149
109
|
{
|
150
|
-
if
|
151
|
-
|
110
|
+
// CAN revert if no ERC165 support -> will revert with empty message
|
111
|
+
if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
112
|
+
revert NotProduct();
|
152
113
|
}
|
153
114
|
|
154
115
|
(
|
155
116
|
info,
|
156
117
|
data
|
157
|
-
) = _getAndVerifyContractInfo(
|
118
|
+
) = _getAndVerifyContractInfo(product, PRODUCT(), owner);
|
158
119
|
|
159
|
-
|
120
|
+
info.nftId = _registry.register(info);
|
121
|
+
// TODO unsafe, let component or its owner derive nftId latter, when state assumptions and modifications of GIF contracts are finished
|
122
|
+
product.linkToRegisteredNftId();
|
160
123
|
|
161
|
-
|
162
|
-
|
163
|
-
}
|
124
|
+
return (info, data);
|
125
|
+
}
|
164
126
|
|
165
|
-
|
166
|
-
|
127
|
+
function registerPool(IBaseComponent pool, address owner)
|
128
|
+
external
|
129
|
+
restricted
|
130
|
+
returns(
|
131
|
+
IRegistry.ObjectInfo memory info,
|
132
|
+
bytes memory data
|
133
|
+
)
|
134
|
+
{
|
135
|
+
if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
|
136
|
+
revert NotPool();
|
137
|
+
}
|
167
138
|
|
168
|
-
|
169
|
-
info,
|
139
|
+
(
|
140
|
+
info,
|
170
141
|
data
|
171
|
-
);
|
142
|
+
) = _getAndVerifyContractInfo(pool, POOL(), owner);
|
143
|
+
|
144
|
+
info.nftId = _registry.register(info);
|
145
|
+
pool.linkToRegisteredNftId();
|
146
|
+
|
147
|
+
return (info, data);
|
172
148
|
}
|
173
149
|
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
external
|
150
|
+
function registerDistribution(IBaseComponent distribution, address owner)
|
151
|
+
external
|
152
|
+
restricted
|
178
153
|
returns(
|
179
154
|
IRegistry.ObjectInfo memory info,
|
180
155
|
bytes memory data
|
181
156
|
)
|
182
157
|
{
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
// return (
|
197
|
-
// info,
|
198
|
-
// data
|
199
|
-
// );
|
158
|
+
if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
|
159
|
+
revert NotDistribution();
|
160
|
+
}
|
161
|
+
|
162
|
+
(
|
163
|
+
info,
|
164
|
+
data
|
165
|
+
) = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
|
166
|
+
|
167
|
+
info.nftId = _registry.register(info);
|
168
|
+
distribution.linkToRegisteredNftId();
|
169
|
+
|
170
|
+
return (info, data);
|
200
171
|
}
|
201
172
|
|
202
173
|
function registerPolicy(IRegistry.ObjectInfo memory info)
|
203
|
-
external
|
174
|
+
external
|
175
|
+
restricted
|
204
176
|
returns(NftId nftId)
|
205
177
|
{
|
206
|
-
NftId senderNftId = _registry.getNftId(msg.sender);
|
207
|
-
|
208
|
-
if(_registry.allowance(senderNftId, POLICY()) == false) {
|
209
|
-
revert MissingAllowance();
|
210
|
-
}
|
211
|
-
|
212
178
|
_verifyObjectInfo(info, POLICY());
|
213
179
|
|
214
180
|
nftId = _registry.register(info);
|
215
181
|
}
|
216
182
|
|
217
183
|
function registerBundle(IRegistry.ObjectInfo memory info)
|
218
|
-
external
|
184
|
+
external
|
185
|
+
restricted
|
219
186
|
returns(NftId nftId)
|
220
187
|
{
|
221
|
-
NftId senderNftId = _registry.getNftId(msg.sender);
|
222
|
-
|
223
|
-
if(_registry.allowance(senderNftId, BUNDLE()) == false) {
|
224
|
-
revert MissingAllowance();
|
225
|
-
}
|
226
|
-
|
227
188
|
_verifyObjectInfo(info, BUNDLE());
|
228
189
|
|
229
190
|
nftId = _registry.register(info);
|
230
191
|
}
|
231
192
|
|
193
|
+
function registerStake(IRegistry.ObjectInfo memory info)
|
194
|
+
external
|
195
|
+
restricted
|
196
|
+
returns(NftId nftId)
|
197
|
+
{
|
198
|
+
_verifyObjectInfo(info, STAKE());
|
199
|
+
|
200
|
+
nftId = _registry.register(info);
|
201
|
+
}
|
232
202
|
|
233
203
|
// From IService
|
234
|
-
function getName() public pure override(IService,
|
204
|
+
function getName() public pure override(IService, Service) returns(string memory) {
|
235
205
|
return NAME;
|
236
206
|
}
|
207
|
+
//function getType() public pure override(IService, ServiceBase) returns(ObjectType serviceType) {
|
208
|
+
// return SERVICE_TYPE;
|
209
|
+
//}
|
237
210
|
|
238
211
|
|
239
212
|
// from Versionable
|
@@ -245,12 +218,19 @@ contract RegistryService is
|
|
245
218
|
// registry is getting instantiated and locked to registry service address forever
|
246
219
|
function _initialize(
|
247
220
|
address owner,
|
248
|
-
bytes memory
|
221
|
+
bytes memory data
|
249
222
|
)
|
250
223
|
internal
|
251
224
|
initializer
|
252
225
|
virtual override
|
253
226
|
{
|
227
|
+
(
|
228
|
+
address initialAuthority,
|
229
|
+
bytes memory registryByteCodeWithInitCode
|
230
|
+
) = abi.decode(data, (address, bytes));
|
231
|
+
|
232
|
+
__AccessManaged_init(initialAuthority);
|
233
|
+
|
254
234
|
bytes memory encodedConstructorArguments = abi.encode(
|
255
235
|
owner,
|
256
236
|
getMajorVersion());
|
@@ -259,26 +239,27 @@ contract RegistryService is
|
|
259
239
|
registryByteCodeWithInitCode,
|
260
240
|
encodedConstructorArguments);
|
261
241
|
|
262
|
-
|
242
|
+
IRegistry registry = IRegistry(ContractDeployerLib.deploy(
|
263
243
|
registryCreationCode,
|
264
|
-
REGISTRY_CREATION_CODE_HASH);
|
244
|
+
REGISTRY_CREATION_CODE_HASH));
|
265
245
|
|
266
|
-
|
267
|
-
NftId registryNftId = registry.getNftId(registryAddress);
|
246
|
+
NftId registryNftId = registry.getNftId(address(registry));
|
268
247
|
|
269
|
-
|
270
|
-
linkToRegisteredNftId();
|
248
|
+
_initializeService(address(registry), owner);
|
271
249
|
|
250
|
+
// TODO why do registry service proxy need to keep its nftId??? -> no registryServiceNftId checks in implementation
|
251
|
+
// if they are -> use registry address to obtain owner of registry service nft (works the same with any registerable and(or) implementation)
|
252
|
+
linkToRegisteredNftId();
|
272
253
|
_registerInterface(type(IRegistryService).interfaceId);
|
273
254
|
}
|
274
255
|
|
275
|
-
// parent check done in registry because of approve()
|
276
256
|
function _getAndVerifyContractInfo(
|
277
257
|
IRegisterable registerable,
|
278
|
-
ObjectType
|
279
|
-
address
|
258
|
+
ObjectType expectedType, // assume can be valid only
|
259
|
+
address expectedOwner // assume can be 0
|
280
260
|
)
|
281
261
|
internal
|
262
|
+
view
|
282
263
|
returns(
|
283
264
|
IRegistry.ObjectInfo memory info,
|
284
265
|
bytes memory data
|
@@ -288,23 +269,33 @@ contract RegistryService is
|
|
288
269
|
info,
|
289
270
|
data
|
290
271
|
) = registerable.getInitialInfo();
|
272
|
+
info.objectAddress = address(registerable);
|
291
273
|
|
292
|
-
if(info.
|
293
|
-
revert
|
274
|
+
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
275
|
+
revert UnexpectedRegisterableType(expectedType, info.objectType);
|
294
276
|
}
|
295
277
|
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
278
|
+
address owner = info.initialOwner;
|
279
|
+
|
280
|
+
// solhint-disable-next-line
|
281
|
+
if(expectedType == INSTANCE()) {
|
282
|
+
// any address may create a new instance via instance service
|
283
|
+
} else {
|
284
|
+
if(owner != expectedOwner) { // registerable owner protection
|
285
|
+
revert NotRegisterableOwner(expectedOwner);
|
286
|
+
}
|
300
287
|
}
|
301
288
|
|
302
|
-
if(
|
289
|
+
if(owner == address(registerable)) {
|
303
290
|
revert SelfRegistration();
|
304
291
|
}
|
292
|
+
|
293
|
+
if(owner == address(0)) {
|
294
|
+
revert RegisterableOwnerIsZero();
|
295
|
+
}
|
305
296
|
|
306
|
-
if(
|
307
|
-
revert
|
297
|
+
if(getRegistry().isRegistered(owner)) {
|
298
|
+
revert RegisterableOwnerIsRegistered();
|
308
299
|
}
|
309
300
|
|
310
301
|
/*NftId parentNftId = info.parentNftId;
|
@@ -320,25 +311,28 @@ contract RegistryService is
|
|
320
311
|
);
|
321
312
|
}
|
322
313
|
|
323
|
-
// parent checks done in registry because of approve()
|
324
314
|
function _verifyObjectInfo(
|
325
315
|
IRegistry.ObjectInfo memory info,
|
326
|
-
ObjectType
|
316
|
+
ObjectType expectedType
|
327
317
|
)
|
328
318
|
internal
|
329
319
|
view
|
330
320
|
{
|
331
|
-
|
332
|
-
|
321
|
+
// enforce instead of check
|
322
|
+
info.objectAddress = address(0);
|
323
|
+
|
324
|
+
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
325
|
+
revert UnexpectedRegisterableType(expectedType, info.objectType);
|
333
326
|
}
|
334
327
|
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
328
|
+
address owner = info.initialOwner;
|
329
|
+
|
330
|
+
if(owner == address(0)) {
|
331
|
+
revert RegisterableOwnerIsZero();
|
332
|
+
}
|
333
|
+
|
334
|
+
if(getRegistry().isRegistered(owner)) {
|
335
|
+
revert RegisterableOwnerIsRegistered();
|
342
336
|
}
|
343
337
|
|
344
338
|
// can catch all 3 if check that initialOwner is not registered
|
@@ -354,11 +348,6 @@ contract RegistryService is
|
|
354
348
|
revert InitialOwnerIsRegistry();
|
355
349
|
}*/
|
356
350
|
|
357
|
-
|
358
|
-
if(info.objectType != objectType) {
|
359
|
-
revert InvalidType(info.objectType);
|
360
|
-
}
|
361
|
-
|
362
351
|
/*NftId parentNftId = info.parentNftId;
|
363
352
|
IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
|
364
353
|
|
@@ -366,4 +355,4 @@ contract RegistryService is
|
|
366
355
|
revert InvalidParent(parentNftId);
|
367
356
|
}*/
|
368
357
|
}
|
369
|
-
}
|
358
|
+
}
|
@@ -1,25 +1,39 @@
|
|
1
1
|
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
5
|
+
|
6
|
+
import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
|
7
|
+
|
4
8
|
import {Registry} from "./Registry.sol";
|
5
9
|
import {IVersionable} from "../shared/IVersionable.sol";
|
6
10
|
import {ProxyManager} from "../shared/ProxyManager.sol";
|
7
11
|
import {RegistryService} from "./RegistryService.sol";
|
12
|
+
import {TokenRegistry} from "./TokenRegistry.sol";
|
8
13
|
|
9
14
|
|
10
15
|
contract RegistryServiceManager is
|
11
16
|
ProxyManager
|
12
17
|
{
|
13
|
-
|
18
|
+
bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
|
19
|
+
|
20
|
+
AccessManager private _accessManager;
|
21
|
+
RegistryService private _registryService;
|
22
|
+
TokenRegistry private _tokenRegistry;
|
14
23
|
|
15
24
|
/// @dev initializes proxy manager with registry service implementation and deploys registry
|
16
25
|
constructor(
|
26
|
+
address accessManager
|
17
27
|
)
|
18
28
|
ProxyManager()
|
19
29
|
{
|
30
|
+
_accessManager = AccessManager(accessManager);
|
31
|
+
|
32
|
+
bytes memory initializationData = abi.encode(accessManager, type(Registry).creationCode);
|
33
|
+
|
20
34
|
IVersionable versionable = deploy(
|
21
35
|
address(new RegistryService()),
|
22
|
-
|
36
|
+
initializationData);
|
23
37
|
|
24
38
|
_registryService = RegistryService(address(versionable));
|
25
39
|
|
@@ -28,11 +42,26 @@ contract RegistryServiceManager is
|
|
28
42
|
address(_registryService.getRegistry()),
|
29
43
|
address(_registryService));
|
30
44
|
|
45
|
+
// deploy token registry
|
46
|
+
|
47
|
+
// _tokenRegistry = new TokenRegistry(
|
48
|
+
// address(_registryService.getRegistry()),
|
49
|
+
// address(_registryService));
|
50
|
+
|
31
51
|
// implies that after this constructor call only upgrade functionality is available
|
32
52
|
_isDeployed = true;
|
33
53
|
}
|
34
54
|
|
35
55
|
//--- view functions ----------------------------------------------------//
|
56
|
+
|
57
|
+
function getAccessManager()
|
58
|
+
external
|
59
|
+
view
|
60
|
+
returns (AccessManager)
|
61
|
+
{
|
62
|
+
return _accessManager;
|
63
|
+
}
|
64
|
+
|
36
65
|
function getRegistryService()
|
37
66
|
external
|
38
67
|
view
|
@@ -40,4 +69,12 @@ contract RegistryServiceManager is
|
|
40
69
|
{
|
41
70
|
return _registryService;
|
42
71
|
}
|
72
|
+
|
73
|
+
function getTokenRegistry()
|
74
|
+
external
|
75
|
+
view
|
76
|
+
returns (TokenRegistry)
|
77
|
+
{
|
78
|
+
return _tokenRegistry;
|
79
|
+
}
|
43
80
|
}
|