@etherisc/gif-next 0.0.2-efdb520-159 → 0.0.2-efef0ea-320
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 +58 -11
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +405 -0
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +340 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +131 -0
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +109 -18
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +194 -3
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +160 -21
- 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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +697 -671
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +928 -744
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{InstanceBase.sol/InstanceBase.json → base/ComponentServiceBase.sol/ComponentServiceBase.json} +107 -33
- 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 +4 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +560 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/{module/lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/instance/{service → base}/IService.sol/IService.json +63 -22
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +463 -0
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +710 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{module/product/ProductModule.sol/ProductModule.json → base/ModuleBase.sol/ModuleBase.json} +2 -2
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{service → base}/ServiceBase.sol/ServiceBase.json +93 -6
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +71 -50
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +71 -50
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +22 -93
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +22 -93
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.json +10 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +10 -0
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +61 -38
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +61 -38
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -5
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -5
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{product/IProductModule.sol/IProductModule.json → risk/IRisk.sol/IRisk.json} +2 -2
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +113 -0
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +131 -0
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +209 -236
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +209 -236
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +141 -42
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +507 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +62 -21
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/{ComponentServiceBase.sol/ComponentServiceBase.json → IDistributionService.sol/IDistributionService.json} +96 -30
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +127 -22
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +215 -21
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +177 -46
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +322 -62
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
- package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.json +724 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +58 -17
- package/artifacts/contracts/shared/Proxy.sol/ProxyDeployer.dbg.json +4 -0
- package/artifacts/contracts/shared/Proxy.sol/ProxyDeployer.json +248 -0
- package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +4 -0
- package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.json +129 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +92 -5
- package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.dbg.json +4 -0
- package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.json +228 -0
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +405 -0
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +28 -4
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +194 -3
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +209 -27
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +2 -2
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +38 -4
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +102 -43
- 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/TestVersion.sol/TestVersion.json +14 -18
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +102 -39
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
- package/artifacts/contracts/test/Usdc.sol/USDC.json +338 -0
- 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/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +257 -0
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +111 -0
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +65 -4
- 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/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +30 -0
- 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/UFixedMathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +34 -8
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +101 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
- package/contracts/components/BaseComponent.sol +7 -2
- package/contracts/components/Distribution.sol +132 -0
- package/contracts/components/IDistributionComponent.sol +47 -0
- package/contracts/components/IPoolComponent.sol +14 -0
- package/contracts/components/IProductComponent.sol +24 -5
- package/contracts/components/Pool.sol +64 -3
- package/contracts/components/Product.sol +123 -13
- package/contracts/instance/IInstance.sol +16 -13
- package/contracts/instance/Instance.sol +22 -10
- package/contracts/instance/{service → base}/ComponentServiceBase.sol +1 -0
- package/contracts/instance/base/IInstanceBase.sol +22 -0
- package/contracts/instance/base/IKeyValueStore.sol +50 -0
- package/contracts/instance/base/ILifecycle.sol +30 -0
- package/contracts/instance/{InstanceBase.sol → base/InstanceBase.sol} +34 -17
- package/contracts/instance/base/KeyValueStore.sol +161 -0
- package/contracts/instance/{module/lifecycle/LifecycleModule.sol → base/Lifecycle.sol} +50 -39
- package/contracts/instance/base/ModuleBase.sol +57 -0
- package/contracts/instance/{service → base}/ServiceBase.sol +1 -3
- package/contracts/instance/module/access/Access.sol +6 -6
- package/contracts/instance/module/bundle/BundleModule.sol +24 -118
- package/contracts/instance/module/bundle/IBundle.sol +9 -9
- package/contracts/instance/module/component/ComponentModule.sol +27 -61
- package/contracts/instance/module/component/IComponent.sol +5 -30
- package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
- package/contracts/instance/module/distribution/IDistribution.sol +10 -0
- package/contracts/instance/module/policy/IPolicy.sol +12 -9
- package/contracts/instance/module/policy/PolicyModule.sol +33 -26
- package/contracts/instance/module/pool/IPoolModule.sol +0 -1
- package/contracts/instance/module/pool/PoolModule.sol +12 -9
- package/contracts/instance/module/risk/IRisk.sol +26 -0
- package/contracts/instance/module/risk/RiskModule.sol +62 -0
- package/contracts/instance/module/treasury/ITreasury.sol +30 -52
- package/contracts/instance/module/treasury/TreasuryModule.sol +74 -84
- package/contracts/instance/service/ComponentOwnerService.sol +33 -50
- package/contracts/instance/service/DistributionService.sol +59 -0
- package/contracts/instance/service/IComponentOwnerService.sol +1 -1
- package/contracts/instance/service/IDistributionService.sol +12 -0
- package/contracts/instance/service/IPoolService.sol +8 -1
- package/contracts/instance/service/IProductService.sol +56 -7
- package/contracts/instance/service/PoolService.sol +64 -13
- package/contracts/instance/service/ProductService.sol +234 -83
- package/contracts/registry/Registry.sol +4 -4
- package/contracts/registry/RegistryUpgradeable.sol +488 -0
- package/contracts/shared/IVersionable.sol +19 -6
- package/contracts/shared/Proxy.sol +94 -0
- package/contracts/shared/Versionable.sol +16 -9
- package/contracts/shared/VersionableUpgradeable.sol +136 -0
- package/contracts/test/TestDistribution.sol +21 -0
- package/contracts/test/TestFee.sol +3 -3
- package/contracts/test/TestPool.sol +6 -3
- package/contracts/test/TestProduct.sol +36 -8
- package/contracts/test/TestRoleId.sol +2 -2
- package/contracts/test/TestService.sol +3 -6
- package/contracts/test/TestVersion.sol +4 -7
- package/contracts/test/TestVersionable.sol +2 -5
- package/contracts/test/Usdc.sol +26 -0
- package/contracts/types/Fee.sol +44 -20
- package/contracts/types/Key32.sol +45 -0
- package/contracts/types/NftId.sol +16 -1
- package/contracts/types/ObjectType.sol +24 -8
- package/contracts/types/ReferralId.sol +48 -0
- package/contracts/types/RiskId.sol +43 -0
- package/contracts/types/RoleId.sol +12 -10
- package/contracts/types/StateId.sol +7 -1
- package/contracts/types/UFixed.sol +19 -16
- package/contracts/types/Version.sol +37 -25
- package/package.json +1 -1
- package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.json +0 -50
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
- package/artifacts/contracts/instance/module/product/IProductModule.sol/IProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/product/ProductModule.sol/ProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IService.sol/IService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- package/contracts/instance/IServiceLinked.sol +0 -12
- package/contracts/instance/module/lifecycle/ILifecycle.sol +0 -47
- package/contracts/instance/module/product/IProductModule.sol +0 -6
- package/contracts/instance/module/product/ProductModule.sol +0 -8
- /package/contracts/instance/{service → base}/IService.sol +0 -0
@@ -8,18 +8,22 @@ import {IPolicy, IPolicyModule} from "../../module/policy/IPolicy.sol";
|
|
8
8
|
import {ITreasuryModule} from "../../module/treasury/ITreasury.sol";
|
9
9
|
|
10
10
|
import {NftId} from "../../../types/NftId.sol";
|
11
|
+
import {POOL} from "../../../types/ObjectType.sol";
|
11
12
|
import {LibNftIdSet} from "../../../types/NftIdSet.sol";
|
12
13
|
import {StateId, APPLIED} from "../../../types/StateId.sol";
|
13
14
|
import {UFixed} from "../../../types/UFixed.sol";
|
14
15
|
|
16
|
+
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
15
17
|
import {IPoolModule} from "./IPoolModule.sol";
|
18
|
+
import {ModuleBase} from "../../base/ModuleBase.sol";
|
16
19
|
|
17
20
|
abstract contract PoolModule is
|
21
|
+
ModuleBase,
|
18
22
|
IPoolModule
|
19
23
|
{
|
20
24
|
using LibNftIdSet for LibNftIdSet.Set;
|
21
25
|
|
22
|
-
mapping(NftId poolNftId => PoolInfo info) private _poolInfo;
|
26
|
+
// mapping(NftId poolNftId => PoolInfo info) private _poolInfo;
|
23
27
|
mapping(NftId poolNftId => LibNftIdSet.Set bundles) private _bundlesForPool;
|
24
28
|
|
25
29
|
modifier poolServiceCallingPool() {
|
@@ -30,6 +34,10 @@ abstract contract PoolModule is
|
|
30
34
|
_;
|
31
35
|
}
|
32
36
|
|
37
|
+
function initializePoolModule(IKeyValueStore keyValueStore) internal {
|
38
|
+
_initialize(keyValueStore);
|
39
|
+
}
|
40
|
+
|
33
41
|
function registerPool(
|
34
42
|
NftId nftId,
|
35
43
|
bool isVerifying,
|
@@ -38,17 +46,12 @@ abstract contract PoolModule is
|
|
38
46
|
public
|
39
47
|
override
|
40
48
|
{
|
41
|
-
|
42
|
-
_poolInfo[nftId].nftId.eqz(),
|
43
|
-
"ERROR:PL-010:ALREADY_CREATED");
|
44
|
-
|
45
|
-
_poolInfo[nftId] = PoolInfo(
|
46
|
-
nftId,
|
49
|
+
PoolInfo memory info = PoolInfo(
|
47
50
|
isVerifying,
|
48
51
|
collateralizationRate
|
49
52
|
);
|
50
53
|
|
51
|
-
|
54
|
+
_create(POOL(), nftId, abi.encode(info));
|
52
55
|
}
|
53
56
|
|
54
57
|
function addBundleToPool(
|
@@ -71,7 +74,7 @@ abstract contract PoolModule is
|
|
71
74
|
function getPoolInfo(
|
72
75
|
NftId nftId
|
73
76
|
) external view override returns (PoolInfo memory info) {
|
74
|
-
|
77
|
+
return abi.decode(_getData(POOL(), nftId), (PoolInfo));
|
75
78
|
}
|
76
79
|
|
77
80
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {NftId} from "../../../types/NftId.sol";
|
5
|
+
import {RiskId} from "../../../types/RiskId.sol";
|
6
|
+
import {StateId} from "../../../types/StateId.sol";
|
7
|
+
|
8
|
+
interface IRisk {
|
9
|
+
struct RiskInfo {
|
10
|
+
NftId productNftId;
|
11
|
+
bytes data;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
interface IRiskModule is IRisk {
|
16
|
+
function createRisk(
|
17
|
+
RiskId riskId,
|
18
|
+
NftId productNftId,
|
19
|
+
bytes memory data
|
20
|
+
) external;
|
21
|
+
|
22
|
+
function setRiskInfo(RiskId riskId, RiskInfo memory info) external;
|
23
|
+
function updateRiskState(RiskId riskId, StateId state) external;
|
24
|
+
|
25
|
+
function getRiskInfo(RiskId riskId) external view returns (RiskInfo memory info);
|
26
|
+
}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {NftId} from "../../../types/NftId.sol";
|
5
|
+
import {RISK} from "../../../types/ObjectType.sol";
|
6
|
+
import {RiskId} from "../../../types/RiskId.sol";
|
7
|
+
import {StateId} from "../../../types/StateId.sol";
|
8
|
+
|
9
|
+
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
10
|
+
import {IRiskModule} from "./IRisk.sol";
|
11
|
+
import {ModuleBase} from "../../base/ModuleBase.sol";
|
12
|
+
|
13
|
+
contract RiskModule is
|
14
|
+
ModuleBase,
|
15
|
+
IRiskModule
|
16
|
+
{
|
17
|
+
function initializeRiskModule(IKeyValueStore keyValueStore) internal {
|
18
|
+
_initialize(keyValueStore);
|
19
|
+
}
|
20
|
+
|
21
|
+
function createRisk(
|
22
|
+
RiskId riskId,
|
23
|
+
NftId productNftId,
|
24
|
+
bytes memory data
|
25
|
+
) external override {
|
26
|
+
RiskInfo memory info = RiskInfo(
|
27
|
+
productNftId,
|
28
|
+
data
|
29
|
+
);
|
30
|
+
|
31
|
+
_create(RISK(), riskId.toKey32(), abi.encode(info));
|
32
|
+
}
|
33
|
+
|
34
|
+
function setRiskInfo(
|
35
|
+
RiskId riskId,
|
36
|
+
RiskInfo memory info
|
37
|
+
)
|
38
|
+
external
|
39
|
+
override
|
40
|
+
{
|
41
|
+
|
42
|
+
}
|
43
|
+
|
44
|
+
function updateRiskState(
|
45
|
+
RiskId riskId,
|
46
|
+
StateId state
|
47
|
+
)
|
48
|
+
external
|
49
|
+
override
|
50
|
+
{
|
51
|
+
|
52
|
+
}
|
53
|
+
|
54
|
+
function getRiskInfo(RiskId riskId)
|
55
|
+
external
|
56
|
+
view
|
57
|
+
override
|
58
|
+
returns (RiskInfo memory info)
|
59
|
+
{
|
60
|
+
|
61
|
+
}
|
62
|
+
}
|
@@ -2,6 +2,9 @@
|
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
import {IDistributionComponent} from "../../../components/IDistributionComponent.sol";
|
6
|
+
import {IPoolComponent} from "../../../components/IPoolComponent.sol";
|
7
|
+
import {IProductComponent} from "../../../components/IProductComponent.sol";
|
5
8
|
|
6
9
|
import {NftId} from "../../../types/NftId.sol";
|
7
10
|
import {UFixed} from "../../../types/UFixed.sol";
|
@@ -13,73 +16,48 @@ interface ITreasury {
|
|
13
16
|
// TODO add events
|
14
17
|
// TODO add errors
|
15
18
|
|
16
|
-
|
17
|
-
|
18
|
-
NftId distributorNftId;
|
19
|
+
// treasury info is linked to product nft id
|
20
|
+
struct TreasuryInfo {
|
19
21
|
NftId poolNftId;
|
22
|
+
NftId distributionNftId;
|
20
23
|
IERC20Metadata token;
|
21
|
-
|
22
|
-
|
23
|
-
Fee
|
24
|
-
Fee
|
25
|
-
|
26
|
-
|
27
|
-
struct DistributorSetup {
|
28
|
-
NftId distributorNftId;
|
29
|
-
address wallet;
|
30
|
-
Fee commissionFees;
|
31
|
-
}
|
32
|
-
|
33
|
-
struct PoolSetup {
|
34
|
-
NftId poolNftId;
|
35
|
-
address wallet;
|
36
|
-
Fee stakingFee;
|
37
|
-
Fee performanceFee;
|
24
|
+
Fee productFee; // product fee on net premium
|
25
|
+
Fee processingFee; // product fee on payout amounts
|
26
|
+
Fee poolFee; // pool fee on net premium
|
27
|
+
Fee stakingFee; // pool fee on staked capital from investor
|
28
|
+
Fee performanceFee; // pool fee on profits from capital investors
|
29
|
+
Fee distributionFee; // default distribution fee (no referral id)
|
38
30
|
}
|
39
31
|
}
|
40
32
|
|
41
33
|
interface ITreasuryModule is ITreasury {
|
42
34
|
|
43
|
-
function
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
IERC20Metadata token,
|
48
|
-
address wallet,
|
49
|
-
Fee memory policyFee,
|
50
|
-
Fee memory processingFee
|
35
|
+
function registerProductSetup(
|
36
|
+
IProductComponent product,
|
37
|
+
IPoolComponent pool,
|
38
|
+
IDistributionComponent distribution
|
51
39
|
) external;
|
52
40
|
|
53
|
-
function
|
41
|
+
function setTreasuryInfo(
|
54
42
|
NftId productNftId,
|
55
|
-
|
56
|
-
Fee memory processingFee
|
57
|
-
) external;
|
58
|
-
|
59
|
-
function registerPool(
|
60
|
-
NftId poolNftId,
|
61
|
-
address wallet,
|
62
|
-
Fee memory stakingFee,
|
63
|
-
Fee memory performanceFee
|
43
|
+
TreasuryInfo memory info
|
64
44
|
) external;
|
65
45
|
|
66
|
-
function
|
67
|
-
NftId poolNftId,
|
68
|
-
Fee memory stakingFee,
|
69
|
-
Fee memory performanceFee
|
70
|
-
) external;
|
71
|
-
|
72
|
-
function getTokenHandler(
|
46
|
+
function hasTreasuryInfo(
|
73
47
|
NftId productNftId
|
74
|
-
) external view returns (
|
48
|
+
) external view returns (bool hasInfo);
|
75
49
|
|
76
|
-
function
|
50
|
+
function getTreasuryInfo(
|
77
51
|
NftId productNftId
|
78
|
-
) external view returns (
|
52
|
+
) external view returns (TreasuryInfo memory info);
|
79
53
|
|
80
|
-
function
|
81
|
-
NftId
|
82
|
-
) external view returns (
|
54
|
+
function getProductNftId(
|
55
|
+
NftId componentNftId
|
56
|
+
) external view returns (NftId productNftId);
|
57
|
+
|
58
|
+
function getTokenHandler(
|
59
|
+
NftId componentNftId
|
60
|
+
) external view returns (TokenHandler tokenHandler);
|
83
61
|
|
84
62
|
function calculateFeeAmount(
|
85
63
|
uint256 amount,
|
@@ -91,7 +69,7 @@ interface ITreasuryModule is ITreasury {
|
|
91
69
|
uint256 fixedFee
|
92
70
|
) external pure returns (Fee memory fee);
|
93
71
|
|
94
|
-
function getZeroFee() external
|
72
|
+
function getZeroFee() external view returns (Fee memory fee);
|
95
73
|
|
96
74
|
function getUFixed(
|
97
75
|
uint256 a
|
@@ -2,134 +2,124 @@
|
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
import {IDistributionComponent} from "../../../components/IDistributionComponent.sol";
|
6
|
+
import {IPoolComponent} from "../../../components/IPoolComponent.sol";
|
7
|
+
import {IProductComponent} from "../../../components/IProductComponent.sol";
|
5
8
|
|
6
9
|
import {NftId} from "../../../types/NftId.sol";
|
7
|
-
import {
|
10
|
+
import {TREASURY} from "../../../types/ObjectType.sol";
|
11
|
+
import {Fee, FeeLib} from "../../../types/Fee.sol";
|
8
12
|
import {UFixed, UFixedMathLib} from "../../../types/UFixed.sol";
|
9
13
|
import {TokenHandler} from "./TokenHandler.sol";
|
14
|
+
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
10
15
|
import {ITreasuryModule} from "./ITreasury.sol";
|
16
|
+
import {ModuleBase} from "../../base/ModuleBase.sol";
|
17
|
+
|
18
|
+
abstract contract TreasuryModule is
|
19
|
+
ModuleBase,
|
20
|
+
ITreasuryModule
|
21
|
+
{
|
22
|
+
// relation of distributor and pool nft map to product nft
|
23
|
+
mapping(NftId componentNftId => NftId productNftId) internal _productNft;
|
24
|
+
// relation of component nft to token hanlder
|
25
|
+
mapping(NftId componentNftId => TokenHandler tokenHandler) internal _tokenHandler;
|
26
|
+
Fee internal _zeroFee;
|
27
|
+
|
28
|
+
|
29
|
+
function initializeTreasuryModule(IKeyValueStore keyValueStore) internal {
|
30
|
+
_initialize(keyValueStore);
|
31
|
+
_zeroFee = FeeLib.zeroFee();
|
32
|
+
}
|
11
33
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
mapping(NftId poolNftId => PoolSetup setup) private _poolSetup;
|
17
|
-
|
18
|
-
function registerProduct(
|
19
|
-
NftId productNftId,
|
20
|
-
NftId distributorNftId,
|
21
|
-
NftId poolNftId,
|
22
|
-
IERC20Metadata token,
|
23
|
-
address wallet,
|
24
|
-
Fee memory policyFee,
|
25
|
-
Fee memory processingFee
|
34
|
+
function registerProductSetup(
|
35
|
+
IProductComponent product,
|
36
|
+
IPoolComponent pool,
|
37
|
+
IDistributionComponent distribution
|
26
38
|
) external override // TODO add authz (only component module)
|
27
39
|
{
|
28
|
-
|
40
|
+
NftId productNftId = product.getNftId();
|
41
|
+
NftId poolNftId = pool.getNftId();
|
42
|
+
NftId distributionNftId = distribution.getNftId();
|
43
|
+
|
44
|
+
require(productNftId.gtz(), "ERROR:TRS-010:PRODUCT_UNDEFINED");
|
45
|
+
require(poolNftId.gtz(), "ERROR:TRS-011:POOL_UNDEFINED");
|
46
|
+
|
47
|
+
require(address(_tokenHandler[productNftId]) == address(0), "ERROR:TRS-012:TOKEN_HANDLER_ALREADY_REGISTERED");
|
48
|
+
require(_productNft[poolNftId].eqz(), "ERROR:TRS-013:POOL_ALREADY_LINKED");
|
49
|
+
require(_productNft[distributionNftId].eqz(), "ERROR:TRS-014:COMPENSATION_ALREADY_LINKED");
|
29
50
|
|
30
51
|
// deploy product specific handler contract
|
31
|
-
|
52
|
+
IERC20Metadata token = product.getToken();
|
53
|
+
_tokenHandler[productNftId] = new TokenHandler(productNftId, address(token));
|
54
|
+
_productNft[distributionNftId] = productNftId;
|
55
|
+
_productNft[poolNftId] = productNftId;
|
32
56
|
|
33
|
-
|
34
|
-
productNftId,
|
35
|
-
distributorNftId,
|
57
|
+
TreasuryInfo memory info = TreasuryInfo(
|
36
58
|
poolNftId,
|
59
|
+
distributionNftId,
|
37
60
|
token,
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
61
|
+
product.getProductFee(),
|
62
|
+
product.getProcessingFee(),
|
63
|
+
pool.getPoolFee(),
|
64
|
+
pool.getStakingFee(),
|
65
|
+
pool.getPerformanceFee(),
|
66
|
+
distribution.getDistributionFee()
|
42
67
|
);
|
43
68
|
|
44
|
-
|
69
|
+
_create(TREASURY(), productNftId, abi.encode(info));
|
45
70
|
}
|
46
71
|
|
47
|
-
function
|
72
|
+
function setTreasuryInfo(
|
48
73
|
NftId productNftId,
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
ProductSetup storage setup = _productSetup[productNftId];
|
56
|
-
setup.policyFee = policyFee;
|
57
|
-
setup.processingFee = processingFee;
|
58
|
-
|
59
|
-
// TODO add logging
|
60
|
-
}
|
61
|
-
|
62
|
-
function registerPool(
|
63
|
-
NftId poolNftId,
|
64
|
-
address wallet,
|
65
|
-
Fee memory stakingFee,
|
66
|
-
Fee memory performanceFee
|
67
|
-
) external override // TODO add authz (only component module)
|
74
|
+
TreasuryInfo memory info
|
75
|
+
)
|
76
|
+
external
|
77
|
+
// TODO add authz (only component module)
|
78
|
+
override
|
68
79
|
{
|
69
|
-
|
70
|
-
|
71
|
-
_poolSetup[poolNftId] = PoolSetup(
|
72
|
-
poolNftId,
|
73
|
-
wallet,
|
74
|
-
stakingFee,
|
75
|
-
performanceFee
|
76
|
-
);
|
77
|
-
|
78
|
-
// TODO add logging
|
80
|
+
_updateData(TREASURY(), productNftId, abi.encode(info));
|
79
81
|
}
|
80
82
|
|
81
|
-
function
|
82
|
-
NftId
|
83
|
-
|
84
|
-
|
85
|
-
) external override // TODO add authz (only component owner service)
|
86
|
-
{
|
87
|
-
// TODO add validation
|
88
|
-
|
89
|
-
PoolSetup storage setup = _poolSetup[poolNftId];
|
90
|
-
setup.stakingFee = stakingFee;
|
91
|
-
setup.performanceFee = performanceFee;
|
92
|
-
|
93
|
-
// TODO add logging
|
83
|
+
function getProductNftId(
|
84
|
+
NftId componentNftId
|
85
|
+
) external view returns (NftId productNftId) {
|
86
|
+
return _productNft[componentNftId];
|
94
87
|
}
|
95
88
|
|
96
89
|
function getTokenHandler(
|
97
|
-
NftId
|
90
|
+
NftId componentNftId
|
98
91
|
) external view override returns (TokenHandler tokenHandler) {
|
99
|
-
return
|
92
|
+
return _tokenHandler[componentNftId];
|
100
93
|
}
|
101
94
|
|
102
|
-
function
|
95
|
+
function hasTreasuryInfo(
|
103
96
|
NftId productNftId
|
104
|
-
)
|
105
|
-
return
|
97
|
+
) public view override returns (bool hasInfo) {
|
98
|
+
return _exists(TREASURY(), productNftId);
|
106
99
|
}
|
107
100
|
|
108
|
-
function
|
109
|
-
NftId
|
110
|
-
)
|
111
|
-
return
|
101
|
+
function getTreasuryInfo(
|
102
|
+
NftId productNftId
|
103
|
+
) public view override returns (TreasuryInfo memory info) {
|
104
|
+
return abi.decode(_getData(TREASURY(), productNftId), (TreasuryInfo));
|
112
105
|
}
|
113
106
|
|
114
107
|
function calculateFeeAmount(
|
115
108
|
uint256 amount,
|
116
109
|
Fee memory fee
|
117
110
|
) public pure override returns (uint256 feeAmount, uint256 netAmount) {
|
118
|
-
|
119
|
-
fee.fractionalFee;
|
120
|
-
feeAmount = fractionalAmount.toInt() + fee.fixedFee;
|
121
|
-
netAmount = amount - feeAmount;
|
111
|
+
return FeeLib.calculateFee(fee, amount);
|
122
112
|
}
|
123
113
|
|
124
114
|
function getFee(
|
125
115
|
UFixed fractionalFee,
|
126
116
|
uint256 fixedFee
|
127
117
|
) external pure override returns (Fee memory fee) {
|
128
|
-
return toFee(fractionalFee, fixedFee);
|
118
|
+
return FeeLib.toFee(fractionalFee, fixedFee);
|
129
119
|
}
|
130
120
|
|
131
|
-
function getZeroFee() external
|
132
|
-
return
|
121
|
+
function getZeroFee() external view override returns (Fee memory fee) {
|
122
|
+
return _zeroFee;
|
133
123
|
}
|
134
124
|
|
135
125
|
function getUFixed(
|
@@ -6,25 +6,27 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
|
|
6
6
|
import {IRegistry} from "../../registry/IRegistry.sol";
|
7
7
|
import {IInstance} from "../IInstance.sol";
|
8
8
|
|
9
|
-
import {LifecycleModule} from "../module/lifecycle/LifecycleModule.sol";
|
10
9
|
import {ITreasuryModule} from "../module/treasury/ITreasury.sol";
|
11
10
|
import {TreasuryModule} from "../module/treasury/TreasuryModule.sol";
|
12
11
|
import {IComponent, IComponentModule} from "../module/component/IComponent.sol";
|
13
12
|
import {IBaseComponent} from "../../components/IBaseComponent.sol";
|
14
13
|
import {IPoolComponent} from "../../components/IPoolComponent.sol";
|
15
|
-
|
14
|
+
import {IKeyValueStore} from "../../instance/base/IKeyValueStore.sol";
|
16
15
|
import {IVersionable} from "../../shared/IVersionable.sol";
|
17
16
|
import {Versionable} from "../../shared/Versionable.sol";
|
18
17
|
|
19
|
-
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../types/RoleId.sol";
|
20
|
-
import {ObjectType, PRODUCT, ORACLE, POOL} from "../../types/ObjectType.sol";
|
18
|
+
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../types/RoleId.sol";
|
19
|
+
import {ObjectType, COMPONENT, PRODUCT, ORACLE, POOL, DISTRIBUTION} from "../../types/ObjectType.sol";
|
21
20
|
import {StateId, ACTIVE, PAUSED} from "../../types/StateId.sol";
|
21
|
+
import {Key32} from "../../types/Key32.sol";
|
22
22
|
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
23
|
-
import {Fee
|
24
|
-
import {Version,
|
23
|
+
import {Fee} from "../../types/Fee.sol";
|
24
|
+
import {Version, VersionLib} from "../../types/Version.sol";
|
25
25
|
|
26
|
+
import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
|
27
|
+
import {IPoolComponent} from "../../components/IPoolComponent.sol";
|
26
28
|
import {IProductComponent} from "../../components/IProductComponent.sol";
|
27
|
-
import {ServiceBase} from "
|
29
|
+
import {ServiceBase} from "../base/ServiceBase.sol";
|
28
30
|
import {IComponentOwnerService} from "./IComponentOwnerService.sol";
|
29
31
|
|
30
32
|
contract ComponentOwnerService is
|
@@ -55,10 +57,7 @@ contract ComponentOwnerService is
|
|
55
57
|
virtual override (IVersionable, Versionable)
|
56
58
|
returns(Version)
|
57
59
|
{
|
58
|
-
return toVersion(
|
59
|
-
toVersionPart(3),
|
60
|
-
toVersionPart(0),
|
61
|
-
toVersionPart(0));
|
60
|
+
return VersionLib.toVersion(3,0,0);
|
62
61
|
}
|
63
62
|
|
64
63
|
function getName() external pure override returns(string memory name) {
|
@@ -74,6 +73,9 @@ contract ComponentOwnerService is
|
|
74
73
|
if (cType == POOL()) {
|
75
74
|
return POOL_OWNER_ROLE();
|
76
75
|
}
|
76
|
+
if (cType == DISTRIBUTION()) {
|
77
|
+
return DISTRIBUTION_OWNER_ROLE();
|
78
|
+
}
|
77
79
|
if (cType == ORACLE()) {
|
78
80
|
return ORACLE_OWNER_ROLE();
|
79
81
|
}
|
@@ -101,29 +103,25 @@ contract ComponentOwnerService is
|
|
101
103
|
|
102
104
|
instance.registerComponent(
|
103
105
|
nftId,
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
address wallet = component.getWallet();
|
106
|
+
token,
|
107
|
+
component.getWallet());
|
108
108
|
|
109
109
|
// component type specific registration actions
|
110
110
|
if (component.getType() == PRODUCT()) {
|
111
111
|
IProductComponent product = IProductComponent(address(component));
|
112
|
+
|
112
113
|
NftId poolNftId = product.getPoolNftId();
|
113
114
|
require(poolNftId.gtz(), "ERROR:CMP-005:POOL_UNKNOWN");
|
114
|
-
|
115
|
+
IPoolComponent pool = IPoolComponent(_registry.getObjectInfo(poolNftId).objectAddress);
|
116
|
+
|
117
|
+
NftId distributionNftId = product.getDistributionNftId();
|
118
|
+
IDistributionComponent distribution = IDistributionComponent(_registry.getObjectInfo(distributionNftId).objectAddress);
|
115
119
|
|
116
120
|
// register with tresury
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
distributorNftId,
|
122
|
-
poolNftId,
|
123
|
-
token,
|
124
|
-
wallet,
|
125
|
-
product.getPolicyFee(),
|
126
|
-
product.getProcessingFee()
|
121
|
+
instance.registerProductSetup(
|
122
|
+
product,
|
123
|
+
pool,
|
124
|
+
distribution
|
127
125
|
);
|
128
126
|
} else if (component.getType() == POOL()) {
|
129
127
|
IPoolComponent pool = IPoolComponent(address(component));
|
@@ -133,42 +131,27 @@ contract ComponentOwnerService is
|
|
133
131
|
nftId,
|
134
132
|
pool.isVerifying(),
|
135
133
|
pool.getCollateralizationLevel());
|
136
|
-
|
137
|
-
// register with tresury
|
138
|
-
instance.registerPool(
|
139
|
-
nftId,
|
140
|
-
wallet,
|
141
|
-
pool.getStakingFee(),
|
142
|
-
pool.getPerformanceFee());
|
143
134
|
}
|
144
|
-
// TODO add
|
135
|
+
// TODO add compensation
|
145
136
|
}
|
146
137
|
|
147
138
|
function lock(
|
148
139
|
IBaseComponent component
|
149
140
|
) external override onlyRegisteredComponent(component) {
|
141
|
+
// TODO use msg.sender to get component and get instance via registered parent nft id
|
150
142
|
IInstance instance = component.getInstance();
|
151
|
-
|
152
|
-
|
153
|
-
);
|
154
|
-
require(info.nftId.gtz(), "ERROR_COMPONENT_UNKNOWN");
|
155
|
-
|
156
|
-
info.state = PAUSED();
|
157
|
-
// setComponentInfo checks for valid state changes
|
158
|
-
instance.setComponentInfo(info);
|
143
|
+
NftId nftId = component.getNftId();
|
144
|
+
Key32 key = nftId.toKey32(COMPONENT());
|
145
|
+
instance.updateState(key, PAUSED());
|
159
146
|
}
|
160
147
|
|
161
148
|
function unlock(
|
162
149
|
IBaseComponent component
|
163
150
|
) external override onlyRegisteredComponent(component) {
|
151
|
+
// TODO use msg.sender to get component and get instance via registered parent nft id
|
164
152
|
IInstance instance = component.getInstance();
|
165
|
-
|
166
|
-
|
167
|
-
);
|
168
|
-
require(info.nftId.gtz(), "ERROR_COMPONENT_UNKNOWN");
|
169
|
-
|
170
|
-
info.state = ACTIVE();
|
171
|
-
// setComponentInfo checks for valid state changes
|
172
|
-
instance.setComponentInfo(info);
|
153
|
+
NftId nftId = component.getNftId();
|
154
|
+
Key32 key = nftId.toKey32(COMPONENT());
|
155
|
+
instance.updateState(key, ACTIVE());
|
173
156
|
}
|
174
157
|
}
|