@etherisc/gif-next 0.0.2-bc11089-132 → 0.0.2-bca28f1-935
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 +73 -1
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/Component.sol/Component.json +897 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +896 -235
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{BaseComponent.sol/BaseComponent.json → IComponent.sol/IComponent.json} +137 -86
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +798 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +662 -43
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +661 -5
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +603 -204
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +529 -122
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +1 -1
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +1 -1
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +1 -1
- 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/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- 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/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +38 -62
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +706 -56
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -19
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +560 -272
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +103 -176
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +61 -97
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +460 -191
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +187 -85
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -32
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → instance/base/ComponentService.sol/ComponentService.json} +321 -9
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- 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 +2 -2
- 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/IAccess.sol/IAccess.json +24 -13
- 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/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +1117 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +495 -100
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +172 -26
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +554 -62
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +197 -23
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/{base/ComponentServiceBase.sol/ComponentServiceBase.json → service/IApplicationService.sol/IApplicationService.json} +221 -104
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +181 -52
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +229 -19
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +152 -32
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +32 -19
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +32 -19
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +481 -87
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +203 -25
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +301 -62
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +169 -23
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +301 -62
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +169 -15
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +225 -133
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +185 -77
- 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 +238 -235
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +243 -129
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +181 -97
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +547 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +150 -29
- 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 +41 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +37 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +18 -5
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +69 -0
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +32 -19
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +156 -11
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +269 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +156 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +152 -11
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +105 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +178 -19
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- 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/shared/Versionable.sol/Versionable.json +2 -2
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +152 -11
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +196 -37
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -8
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- 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/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- 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/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
- 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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/contracts/components/Component.sol +236 -0
- package/contracts/components/Distribution.sol +209 -64
- package/contracts/components/IComponent.sol +50 -0
- package/contracts/components/IDistributionComponent.sol +59 -3
- package/contracts/components/IPoolComponent.sol +50 -29
- package/contracts/components/IProductComponent.sol +7 -3
- package/contracts/components/Pool.sol +135 -152
- package/contracts/components/Product.sol +103 -117
- package/contracts/instance/BundleManager.sol +7 -11
- package/contracts/instance/IInstance.sol +35 -11
- package/contracts/instance/IInstanceService.sol +23 -2
- package/contracts/instance/Instance.sol +67 -62
- package/contracts/instance/InstanceAccessManager.sol +31 -38
- package/contracts/instance/InstanceReader.sol +3 -25
- package/contracts/instance/InstanceService.sol +198 -56
- package/contracts/instance/InstanceServiceManager.sol +5 -8
- package/contracts/instance/ObjectManager.sol +7 -24
- package/contracts/instance/base/ComponentService.sol +134 -0
- package/contracts/instance/module/IAccess.sol +4 -5
- package/contracts/instance/module/ISetup.sol +5 -4
- package/contracts/instance/service/ApplicationService.sol +268 -0
- package/contracts/instance/service/BundleService.sol +52 -14
- package/contracts/instance/service/BundleServiceManager.sol +5 -8
- package/contracts/instance/service/DistributionService.sol +208 -49
- package/contracts/instance/service/DistributionServiceManager.sol +6 -9
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +12 -3
- package/contracts/instance/service/IDistributionService.sol +53 -0
- package/contracts/instance/service/IPolicyService.sol +17 -16
- package/contracts/instance/service/PolicyService.sol +148 -132
- package/contracts/instance/service/PoolService.sol +27 -42
- package/contracts/instance/service/PoolServiceManager.sol +5 -8
- package/contracts/instance/service/ProductService.sol +100 -40
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +37 -19
- package/contracts/registry/IRegistryService.sol +30 -13
- package/contracts/registry/Registry.sol +233 -217
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +81 -162
- package/contracts/registry/RegistryServiceManager.sol +18 -36
- package/contracts/registry/ReleaseManager.sol +331 -0
- package/contracts/registry/TokenRegistry.sol +11 -9
- package/contracts/shared/ERC165.sol +12 -11
- package/contracts/shared/INftOwnable.sol +12 -6
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +15 -0
- package/contracts/shared/IService.sol +2 -1
- package/contracts/shared/IVersionable.sol +2 -2
- package/contracts/shared/NftOwnable.sol +113 -57
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +6 -5
- package/contracts/shared/Registerable.sol +15 -24
- package/contracts/shared/RegistryLinked.sol +64 -0
- package/contracts/shared/Service.sol +18 -13
- package/contracts/shared/Versionable.sol +3 -2
- package/contracts/test/TestRegisterable.sol +1 -1
- package/contracts/test/TestService.sol +4 -3
- package/contracts/types/DistributorType.sol +2 -2
- package/contracts/types/ObjectType.sol +6 -2
- package/contracts/types/RoleId.sol +4 -5
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -384
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +0 -448
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/contracts/components/BaseComponent.sol +0 -148
- package/contracts/components/IBaseComponent.sol +0 -32
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
- package/contracts/instance/IInstanceBase.sol +0 -26
- package/contracts/instance/InstanceBase.sol +0 -41
- package/contracts/instance/base/ComponentServiceBase.sol +0 -72
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -1,26 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
|
-
|
6
|
-
import {BundleManager} from "./BundleManager.sol";
|
7
|
-
import {InstanceReader} from "./InstanceReader.sol";
|
8
|
-
|
9
|
-
import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
|
10
|
-
import {IDistributionService} from "./service/IDistributionService.sol";
|
11
|
-
import {IPoolService} from "./service/IPoolService.sol";
|
12
|
-
import {IProductService} from "./service/IProductService.sol";
|
13
|
-
import {IBundle} from "./module/IBundle.sol";
|
14
|
-
import {ISetup} from "./module/ISetup.sol";
|
15
|
-
import {NftId} from "../types/NftId.sol";
|
16
|
-
import {StateId} from "../types/StateId.sol";
|
17
|
-
import {RiskId} from "../types/RiskId.sol";
|
18
|
-
import {IRisk} from "./module/IRisk.sol";
|
19
|
-
import {IPolicy} from "./module/IPolicy.sol";
|
20
|
-
import {IKeyValueStore} from "./base/IKeyValueStore.sol";
|
21
|
-
|
22
|
-
|
23
|
-
interface IInstanceBase is IERC165, IKeyValueStore {
|
24
|
-
|
25
|
-
|
26
|
-
}
|
@@ -1,41 +0,0 @@
|
|
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 {ComponentOwnerService} from "./service/ComponentOwnerService.sol";
|
26
|
-
import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
|
27
|
-
import {IDistributionService} from "./service/IDistributionService.sol";
|
28
|
-
import {IPoolService} from "./service/IPoolService.sol";
|
29
|
-
import {IProductService} from "./service/IProductService.sol";
|
30
|
-
import {VersionPart} from "../types/Version.sol";
|
31
|
-
import {IInstanceBase} from "./IInstanceBase.sol";
|
32
|
-
|
33
|
-
contract InstanceBase is
|
34
|
-
IInstanceBase,
|
35
|
-
KeyValueStore,
|
36
|
-
ERC165,
|
37
|
-
Registerable
|
38
|
-
{
|
39
|
-
|
40
|
-
|
41
|
-
}
|
@@ -1,72 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRegistry} from "../../registry/IRegistry.sol";
|
5
|
-
import {IRegistryService} from "../../registry/IRegistryService.sol";
|
6
|
-
import {IInstance} from "../../instance/IInstance.sol";
|
7
|
-
import {ObjectType, INSTANCE, PRODUCT, POOL, DISTRIBUTION, ORACLE} from "../../types/ObjectType.sol";
|
8
|
-
import {NftId, NftIdLib} from "../../types/NftId.sol";
|
9
|
-
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../types/RoleId.sol";
|
10
|
-
|
11
|
-
import {BaseComponent} from "../../components/BaseComponent.sol";
|
12
|
-
import {Product} from "../../components/Product.sol";
|
13
|
-
import {INftOwnable} from "../../shared/INftOwnable.sol";
|
14
|
-
import {Service} from "../../shared/Service.sol";
|
15
|
-
import {InstanceService} from "../InstanceService.sol";
|
16
|
-
import {Version, VersionPart, VersionLib} from "../../types/Version.sol";
|
17
|
-
|
18
|
-
abstract contract ComponentServiceBase is Service {
|
19
|
-
|
20
|
-
error ExpectedRoleMissing(RoleId expected, address caller);
|
21
|
-
error ComponentTypeInvalid(ObjectType componentType);
|
22
|
-
|
23
|
-
|
24
|
-
/// @dev modifier to check if caller is a registered service
|
25
|
-
modifier onlyService() {
|
26
|
-
address caller = msg.sender;
|
27
|
-
require(getRegistry().isRegisteredService(caller), "ERROR_NOT_SERVICE");
|
28
|
-
_;
|
29
|
-
}
|
30
|
-
|
31
|
-
// view functions
|
32
|
-
|
33
|
-
function getRegistryService() public view virtual returns (IRegistryService) {
|
34
|
-
address service = getRegistry().getServiceAddress("RegistryService", getMajorVersion());
|
35
|
-
return IRegistryService(service);
|
36
|
-
}
|
37
|
-
|
38
|
-
function getInstanceService() public view returns (InstanceService) {
|
39
|
-
return InstanceService(getRegistry().getServiceAddress("InstanceService", getMajorVersion()));
|
40
|
-
}
|
41
|
-
|
42
|
-
// internal view functions
|
43
|
-
|
44
|
-
function _getInstance(IRegistry.ObjectInfo memory compObjInfo) internal view returns (IInstance) {
|
45
|
-
IRegistry registry = getRegistry();
|
46
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(compObjInfo.parentNftId);
|
47
|
-
return IInstance(instanceInfo.objectAddress);
|
48
|
-
}
|
49
|
-
|
50
|
-
function _getAndVerifyComponentInfoAndInstance(
|
51
|
-
//address component,
|
52
|
-
ObjectType expectedType
|
53
|
-
)
|
54
|
-
internal
|
55
|
-
view
|
56
|
-
returns(
|
57
|
-
IRegistry.ObjectInfo memory info,
|
58
|
-
IInstance instance
|
59
|
-
)
|
60
|
-
{
|
61
|
-
IRegistry registry = getRegistry();
|
62
|
-
//TODO redundant check -> just check type
|
63
|
-
//NftId componentNftId = registry.getNftId(component);
|
64
|
-
//require(componentNftId.gtz(), "ERROR_COMPONENT_UNKNOWN");
|
65
|
-
|
66
|
-
info = registry.getObjectInfo(msg.sender);
|
67
|
-
require(info.objectType == expectedType, "OBJECT_TYPE_INVALID");
|
68
|
-
|
69
|
-
address instanceAddress = registry.getObjectInfo(info.parentNftId).objectAddress;
|
70
|
-
instance = IInstance(instanceAddress);
|
71
|
-
}
|
72
|
-
}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {Key32} from "../../types/Key32.sol";
|
5
|
-
import {StateId} from "../../types/StateId.sol";
|
6
|
-
|
7
|
-
import {IKeyValueStore} from "./IKeyValueStore.sol";
|
8
|
-
|
9
|
-
import {IComponentOwnerService} from "../service/IComponentOwnerService.sol";
|
10
|
-
import {IDistributionService} from "../service/IDistributionService.sol";
|
11
|
-
import {IProductService} from "../service/IProductService.sol";
|
12
|
-
import {IPoolService} from "../service/IPoolService.sol";
|
13
|
-
|
14
|
-
interface IInstanceBase {
|
15
|
-
function getKeyValueStore() external view returns (IKeyValueStore keyValueStore);
|
16
|
-
function updateState(Key32 key, StateId state) external;
|
17
|
-
function getState(Key32 key) external view returns (StateId state);
|
18
|
-
|
19
|
-
function getComponentOwnerService() external view returns(IComponentOwnerService);
|
20
|
-
function getDistributionService() external view returns(IDistributionService);
|
21
|
-
function getProductService() external view returns(IProductService service);
|
22
|
-
function getPoolService() external view returns(IPoolService service);
|
23
|
-
}
|
@@ -1,317 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
|
-
import {IRegistry} from "../../registry/IRegistry.sol";
|
7
|
-
import {IInstance} from "../IInstance.sol";
|
8
|
-
|
9
|
-
import {ITreasury} from "../module/ITreasury.sol";
|
10
|
-
// import {TreasuryModule} from "../module/TreasuryModule.sol";
|
11
|
-
import {ISetup} from "../module/ISetup.sol";
|
12
|
-
import {IBaseComponent} from "../../components/IBaseComponent.sol";
|
13
|
-
import {IPoolComponent} from "../../components/IPoolComponent.sol";
|
14
|
-
import {IKeyValueStore} from "../../instance/base/IKeyValueStore.sol";
|
15
|
-
import {IVersionable} from "../../shared/IVersionable.sol";
|
16
|
-
import {Versionable} from "../../shared/Versionable.sol";
|
17
|
-
|
18
|
-
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../types/RoleId.sol";
|
19
|
-
import {ObjectType, TOKEN, COMPONENT, PRODUCT, ORACLE, POOL, DISTRIBUTION} from "../../types/ObjectType.sol";
|
20
|
-
import {StateId, ACTIVE, PAUSED} from "../../types/StateId.sol";
|
21
|
-
import {Key32} from "../../types/Key32.sol";
|
22
|
-
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
23
|
-
import {Fee} from "../../types/Fee.sol";
|
24
|
-
import {Version, VersionLib} from "../../types/Version.sol";
|
25
|
-
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
26
|
-
|
27
|
-
import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
|
28
|
-
import {IPoolComponent} from "../../components/IPoolComponent.sol";
|
29
|
-
import {IProductComponent} from "../../components/IProductComponent.sol";
|
30
|
-
import {IService} from "../../shared/IService.sol";
|
31
|
-
import {IComponentOwnerService} from "./IComponentOwnerService.sol";
|
32
|
-
import {Service} from "../../shared/Service.sol";
|
33
|
-
// import {IPool, IPoolModule} from "../module/IPoolModule.sol";
|
34
|
-
|
35
|
-
import {IRegistryService} from "../../registry/IRegistryService.sol";
|
36
|
-
|
37
|
-
contract ComponentOwnerService is
|
38
|
-
Service,
|
39
|
-
IComponentOwnerService
|
40
|
-
{
|
41
|
-
using NftIdLib for NftId;
|
42
|
-
|
43
|
-
error MissingTypeRole();
|
44
|
-
error WalletIsZero();
|
45
|
-
error InvalidToken();
|
46
|
-
error InvalidPool();
|
47
|
-
error InvalidDistribution();
|
48
|
-
error InvalidPoolsInstance();
|
49
|
-
error InvalidDistributionsInstance();
|
50
|
-
|
51
|
-
error CollateralizationLevelIsZero();
|
52
|
-
|
53
|
-
string public constant NAME = "ComponentOwnerService";
|
54
|
-
|
55
|
-
modifier onlyRegisteredComponent(IBaseComponent component) {
|
56
|
-
NftId nftId = getRegistry().getNftId(address(component));
|
57
|
-
require(nftId.gtz(), "ERROR:COS-001:COMPONENT_UNKNOWN");
|
58
|
-
_;
|
59
|
-
}
|
60
|
-
|
61
|
-
constructor(
|
62
|
-
address registry,
|
63
|
-
NftId registryNftId,
|
64
|
-
address initialOwner
|
65
|
-
)
|
66
|
-
{
|
67
|
-
_initializeService(registry, initialOwner);
|
68
|
-
_registerInterface(type(IComponentOwnerService).interfaceId);
|
69
|
-
}
|
70
|
-
|
71
|
-
function getName() public pure override(IService, Service) returns(string memory name) {
|
72
|
-
return NAME;
|
73
|
-
}
|
74
|
-
|
75
|
-
function getRoleForType(
|
76
|
-
ObjectType cType
|
77
|
-
) public pure override returns (RoleId role) {
|
78
|
-
if (cType == PRODUCT()) {
|
79
|
-
return PRODUCT_OWNER_ROLE();
|
80
|
-
}
|
81
|
-
if (cType == POOL()) {
|
82
|
-
return POOL_OWNER_ROLE();
|
83
|
-
}
|
84
|
-
if (cType == DISTRIBUTION()) {
|
85
|
-
return DISTRIBUTION_OWNER_ROLE();
|
86
|
-
}
|
87
|
-
if (cType == ORACLE()) {
|
88
|
-
return ORACLE_OWNER_ROLE();
|
89
|
-
}
|
90
|
-
}
|
91
|
-
|
92
|
-
function getRegistryService() public view virtual returns (IRegistryService) {
|
93
|
-
address service = getRegistry().getServiceAddress("RegistryService", getMajorVersion());
|
94
|
-
return IRegistryService(service);
|
95
|
-
}
|
96
|
-
|
97
|
-
function registerProduct(
|
98
|
-
IBaseComponent product
|
99
|
-
) external returns (NftId nftId) {
|
100
|
-
|
101
|
-
// TODO some info parameters from component and from register may differ -> getObjectInfo() after registration?
|
102
|
-
(
|
103
|
-
IRegistry.ObjectInfo memory info,
|
104
|
-
bytes memory data
|
105
|
-
) = getRegistryService().registerProduct(
|
106
|
-
product,
|
107
|
-
msg.sender);
|
108
|
-
|
109
|
-
NftId instanceNftId = info.parentNftId;
|
110
|
-
address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
|
111
|
-
IInstance instance = IInstance(instanceAddress);
|
112
|
-
|
113
|
-
RoleId typeRole = getRoleForType(PRODUCT());
|
114
|
-
// TODO refactor to use access manager infra
|
115
|
-
// if(instance.hasRole(typeRole, msg.sender) == false) {
|
116
|
-
// revert MissingTypeRole();
|
117
|
-
// }
|
118
|
-
|
119
|
-
_registerProduct(
|
120
|
-
info.nftId,
|
121
|
-
instanceNftId,
|
122
|
-
instance,
|
123
|
-
data
|
124
|
-
);
|
125
|
-
}
|
126
|
-
|
127
|
-
function registerPool(
|
128
|
-
IBaseComponent pool
|
129
|
-
) external returns (NftId nftId) {
|
130
|
-
|
131
|
-
// TODO some info parameters from component and from register may differ -> getObjectInfo() after registration?
|
132
|
-
(
|
133
|
-
IRegistry.ObjectInfo memory info,
|
134
|
-
bytes memory data
|
135
|
-
) = getRegistryService().registerPool(
|
136
|
-
pool,
|
137
|
-
msg.sender);
|
138
|
-
|
139
|
-
NftId instanceNftId = info.parentNftId;
|
140
|
-
address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
|
141
|
-
IInstance instance = IInstance(instanceAddress);
|
142
|
-
|
143
|
-
RoleId typeRole = getRoleForType(POOL());
|
144
|
-
// TODO refactor to use access manager infra
|
145
|
-
// if(instance.hasRole(typeRole, msg.sender) == false) {
|
146
|
-
// revert MissingTypeRole();
|
147
|
-
// }
|
148
|
-
|
149
|
-
_registerPool(
|
150
|
-
info.nftId,
|
151
|
-
instanceNftId,
|
152
|
-
instance,
|
153
|
-
data
|
154
|
-
);
|
155
|
-
}
|
156
|
-
|
157
|
-
function registerDistribution(
|
158
|
-
IBaseComponent distribution
|
159
|
-
) external returns (NftId nftId) {
|
160
|
-
|
161
|
-
// TODO some info parameters from component and from register may differ -> getObjectInfo() after registration?
|
162
|
-
(
|
163
|
-
IRegistry.ObjectInfo memory info,
|
164
|
-
bytes memory data
|
165
|
-
) = getRegistryService().registerDistribution(
|
166
|
-
distribution,
|
167
|
-
msg.sender);
|
168
|
-
|
169
|
-
NftId instanceNftId = info.parentNftId;
|
170
|
-
address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
|
171
|
-
IInstance instance = IInstance(instanceAddress);
|
172
|
-
|
173
|
-
RoleId typeRole = getRoleForType(DISTRIBUTION());
|
174
|
-
// TODO refactor to use access manager infra
|
175
|
-
// if(instance.hasRole(typeRole, msg.sender) == false) {
|
176
|
-
// revert MissingTypeRole();
|
177
|
-
// }
|
178
|
-
}
|
179
|
-
|
180
|
-
function lock(
|
181
|
-
IBaseComponent component
|
182
|
-
) external override onlyRegisteredComponent(component) {
|
183
|
-
// TODO use msg.sender to get component and get instance via registered parent nft id
|
184
|
-
IInstance instance = component.getInstance();
|
185
|
-
NftId nftId = component.getNftId();
|
186
|
-
Key32 key = nftId.toKey32(COMPONENT());
|
187
|
-
// instance.updateState(key, PAUSED());
|
188
|
-
}
|
189
|
-
|
190
|
-
function unlock(
|
191
|
-
IBaseComponent component
|
192
|
-
) external override onlyRegisteredComponent(component) {
|
193
|
-
// TODO use msg.sender to get component and get instance via registered parent nft id
|
194
|
-
IInstance instance = component.getInstance();
|
195
|
-
NftId nftId = component.getNftId();
|
196
|
-
Key32 key = nftId.toKey32(COMPONENT());
|
197
|
-
// instance.updateState(key, ACTIVE());
|
198
|
-
}
|
199
|
-
|
200
|
-
// Internals
|
201
|
-
|
202
|
-
function _registerProduct(
|
203
|
-
NftId nftId,
|
204
|
-
NftId instanceNftId,
|
205
|
-
IInstance instance,
|
206
|
-
bytes memory data
|
207
|
-
)
|
208
|
-
internal
|
209
|
-
{
|
210
|
-
// TODO change treasury info to product setup info
|
211
|
-
(ISetup.ProductSetupInfo memory info) = abi.decode(data, (ISetup.ProductSetupInfo));
|
212
|
-
// (
|
213
|
-
// ITreasury.TreasuryInfo memory info,
|
214
|
-
// address wallet
|
215
|
-
// ) = abi.decode(data, (ITreasury.TreasuryInfo, address));
|
216
|
-
|
217
|
-
// IRegistry _registry = getRegistry();
|
218
|
-
|
219
|
-
// if(wallet == address(0)) {
|
220
|
-
// revert WalletIsZero();
|
221
|
-
// }
|
222
|
-
|
223
|
-
// IRegistry.ObjectInfo memory tokenInfo = _registry.getObjectInfo(address(info.token));
|
224
|
-
|
225
|
-
// if(tokenInfo.objectType != TOKEN()) {
|
226
|
-
// revert InvalidToken();
|
227
|
-
// }
|
228
|
-
|
229
|
-
// IRegistry.ObjectInfo memory poolInfo = _registry.getObjectInfo(info.poolNftId);
|
230
|
-
|
231
|
-
// if(poolInfo.objectType != POOL()) {
|
232
|
-
// revert InvalidPool();
|
233
|
-
// }
|
234
|
-
|
235
|
-
// if(poolInfo.parentNftId != instanceNftId) {
|
236
|
-
// revert InvalidPoolsInstance();
|
237
|
-
// }
|
238
|
-
// // TODO pool have the same token
|
239
|
-
// //ITreasury.PoolSetup memory poolSetup = instance.getPoolSetup(info.poolNftId);
|
240
|
-
// //require(tokenInfo.objectAddress == address(poolSetup.token), "ERROR:COS-018:PRODUCT_POOL_TOKEN_MISMATCH");
|
241
|
-
// // TODO pool is not linked
|
242
|
-
|
243
|
-
// IRegistry.ObjectInfo memory distributionInfo = _registry.getObjectInfo(info.distributionNftId);
|
244
|
-
|
245
|
-
// if(distributionInfo.objectType != DISTRIBUTION()) {
|
246
|
-
// revert InvalidDistribution();
|
247
|
-
// }
|
248
|
-
|
249
|
-
// if(distributionInfo.parentNftId != instanceNftId) {
|
250
|
-
// revert InvalidDistributionsInstance();
|
251
|
-
// }
|
252
|
-
// // TODO distribution have the same token
|
253
|
-
// // TODO distribution is not linked
|
254
|
-
|
255
|
-
// // component module
|
256
|
-
// instance.registerComponent(
|
257
|
-
// nftId,
|
258
|
-
// info.token,
|
259
|
-
// wallet // TODO move wallet into TreasuryInfo?
|
260
|
-
// );
|
261
|
-
|
262
|
-
// treasury module
|
263
|
-
instance.createProductSetup(
|
264
|
-
nftId,
|
265
|
-
info
|
266
|
-
);
|
267
|
-
}
|
268
|
-
|
269
|
-
function _registerPool(
|
270
|
-
NftId nftId,
|
271
|
-
NftId instanceNftId,
|
272
|
-
IInstance instance,
|
273
|
-
bytes memory data
|
274
|
-
)
|
275
|
-
internal
|
276
|
-
{
|
277
|
-
(
|
278
|
-
ISetup.PoolSetupInfo memory info,
|
279
|
-
address wallet,
|
280
|
-
IERC20Metadata token,
|
281
|
-
/*poolFee*/,
|
282
|
-
/*stakingFee*/,
|
283
|
-
/*performanceFee*/
|
284
|
-
) = abi.decode(data, (ISetup.PoolSetupInfo, address, IERC20Metadata, Fee, Fee, Fee));
|
285
|
-
|
286
|
-
IRegistry _registry = getRegistry();
|
287
|
-
|
288
|
-
if(wallet == address(0)) {
|
289
|
-
revert WalletIsZero();
|
290
|
-
}
|
291
|
-
|
292
|
-
ObjectType tokenType = _registry.getObjectInfo(address(token)).objectType;
|
293
|
-
|
294
|
-
if(tokenType != TOKEN()) {
|
295
|
-
revert InvalidToken();
|
296
|
-
}
|
297
|
-
|
298
|
-
if(UFixedLib.eqz(info.collateralizationLevel)) {
|
299
|
-
revert CollateralizationLevelIsZero();
|
300
|
-
}
|
301
|
-
|
302
|
-
// TODO add more validations
|
303
|
-
|
304
|
-
// // component module
|
305
|
-
// instance.registerComponent(
|
306
|
-
// nftId,
|
307
|
-
// token,
|
308
|
-
// wallet
|
309
|
-
// );
|
310
|
-
|
311
|
-
// pool module
|
312
|
-
instance.createPoolSetup(
|
313
|
-
nftId,
|
314
|
-
info
|
315
|
-
);
|
316
|
-
}
|
317
|
-
}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {NftId} from "../../types/NftId.sol";
|
5
|
-
import {ObjectType} from "../../types/ObjectType.sol";
|
6
|
-
import {RoleId} from "../../types/RoleId.sol";
|
7
|
-
import {IBaseComponent} from "../../components/IBaseComponent.sol";
|
8
|
-
import {IService} from "../../shared/IService.sol";
|
9
|
-
|
10
|
-
// TODO rename to registry service
|
11
|
-
interface IComponentOwnerService is IService {
|
12
|
-
|
13
|
-
// TODO move to product/pool services
|
14
|
-
function lock(IBaseComponent component) external;
|
15
|
-
|
16
|
-
// TODO move to product/pool services
|
17
|
-
function unlock(IBaseComponent component) external;
|
18
|
-
|
19
|
-
function getRoleForType(ObjectType cType) external pure returns (RoleId role);
|
20
|
-
}
|
@@ -1,16 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {Registerable} from "./Registerable.sol";
|
5
|
-
import {Versionable} from "./Versionable.sol";
|
6
|
-
|
7
|
-
/// @dev base contract for upgradable objects like services and upgradable components
|
8
|
-
/// deriving contracs need to call _initializeRegisterable
|
9
|
-
/// TODO internalizes versionable here, a non-registerable versionalbe might itself have some value but is outside the scope of the gif
|
10
|
-
/// after this merge versionable will no longer exist on its own in gif
|
11
|
-
/// only registerable and upgradable (which is a registerable too) will remain
|
12
|
-
abstract contract RegisterableUpgradable is
|
13
|
-
Registerable,
|
14
|
-
Versionable
|
15
|
-
{
|
16
|
-
}
|