@etherisc/gif-next 0.0.2-fb8d07b-779 → 0.0.2-fbe22f0-239
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 +136 -2
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/Component.sol/Component.json +858 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +588 -92
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → components/IComponent.sol/IComponent.json} +208 -143
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +543 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +663 -31
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +648 -5
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +818 -273
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +657 -181
- 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 +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +764 -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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1371 -129
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +132 -21
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +293 -656
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +211 -144
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +89 -91
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +395 -122
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +149 -57
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +261 -0
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +243 -55
- 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 +59 -16
- 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 +1091 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1292 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +560 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +272 -91
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +140 -40
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IApplicationService.sol/IApplicationService.json} +217 -58
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +785 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +20 -20
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +771 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +22 -84
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +32 -247
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1352 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +616 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +256 -180
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +140 -52
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +981 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +548 -0
- 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 +208 -224
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +228 -95
- 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 +222 -330
- 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 +197 -109
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +162 -112
- 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 +124 -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 +24 -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 +5 -5
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +20 -20
- 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 +130 -11
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +172 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +130 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -11
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +153 -20
- 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 +126 -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 +171 -38
- 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 +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/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 +230 -0
- package/contracts/components/Distribution.sol +53 -57
- package/contracts/components/IComponent.sol +50 -0
- package/contracts/components/IDistributionComponent.sol +5 -2
- package/contracts/components/IPoolComponent.sol +54 -29
- package/contracts/components/IProductComponent.sol +7 -3
- package/contracts/components/Pool.sol +153 -142
- package/contracts/components/Product.sol +109 -128
- package/contracts/instance/BundleManager.sol +125 -0
- package/contracts/instance/Cloneable.sol +46 -0
- package/contracts/instance/IInstance.sol +41 -8
- package/contracts/instance/IInstanceService.sol +15 -4
- package/contracts/instance/Instance.sol +65 -240
- package/contracts/instance/InstanceAccessManager.sol +87 -78
- package/contracts/instance/InstanceReader.sol +12 -25
- package/contracts/instance/InstanceService.sol +347 -95
- package/contracts/instance/InstanceServiceManager.sol +10 -12
- package/contracts/instance/ObjectManager.sol +84 -0
- package/contracts/instance/base/ComponentService.sol +134 -0
- package/contracts/instance/module/IAccess.sol +27 -18
- package/contracts/instance/module/ISetup.sol +7 -4
- package/contracts/instance/service/ApplicationService.sol +268 -0
- package/contracts/instance/service/BundleService.sol +298 -0
- package/contracts/instance/service/BundleServiceManager.sol +51 -0
- package/contracts/instance/service/DistributionService.sol +45 -27
- package/contracts/instance/service/DistributionServiceManager.sol +10 -12
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +54 -0
- package/contracts/instance/service/IPolicyService.sol +88 -0
- package/contracts/instance/service/IPoolService.sol +6 -23
- package/contracts/instance/service/IProductService.sol +6 -73
- package/contracts/instance/service/PolicyService.sol +524 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +40 -124
- package/contracts/instance/service/PoolServiceManager.sol +10 -12
- package/contracts/instance/service/ProductService.sol +233 -0
- package/contracts/instance/service/ProductServiceManager.sol +54 -0
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +38 -33
- package/contracts/registry/IRegistryService.sol +45 -13
- package/contracts/registry/Registry.sol +223 -250
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +86 -224
- package/contracts/registry/RegistryServiceManager.sol +18 -36
- package/contracts/registry/ReleaseManager.sol +332 -0
- package/contracts/registry/TokenRegistry.sol +11 -9
- package/contracts/shared/ERC165.sol +12 -11
- package/contracts/shared/INftOwnable.sol +6 -1
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IService.sol +2 -1
- package/contracts/shared/IVersionable.sol +2 -2
- package/contracts/shared/NftOwnable.sol +93 -42
- package/contracts/shared/PolicyHolder.sol +52 -0
- package/contracts/shared/ProxyManager.sol +6 -5
- package/contracts/shared/Registerable.sol +15 -24
- 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/NftIdSet.sol +26 -24
- package/contracts/types/ObjectType.sol +5 -1
- package/contracts/types/RoleId.sol +10 -9
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
- 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 -1132
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- 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/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/contracts/components/BaseComponent.sol +0 -91
- package/contracts/components/IBaseComponent.sol +0 -25
- package/contracts/instance/AccessManagedSimple.sol +0 -115
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/base/ComponentServiceBase.sol +0 -125
- 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,135 +1,147 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {IProductService} from "../instance/service/IProductService.sol";
|
4
|
+
import {POOL} from "../types/ObjectType.sol";
|
6
5
|
import {IPoolService} from "../instance/service/IPoolService.sol";
|
7
|
-
import {
|
8
|
-
import {
|
6
|
+
import {IBundleService} from "../instance/service/IBundleService.sol";
|
7
|
+
import {NftId, NftIdLib} from "../types/NftId.sol";
|
8
|
+
import {Fee, FeeLib} from "../types/Fee.sol";
|
9
9
|
import {UFixed} from "../types/UFixed.sol";
|
10
10
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
11
|
-
import {
|
11
|
+
import {Component} from "./Component.sol";
|
12
12
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
13
13
|
import {ISetup} from "../instance/module/ISetup.sol";
|
14
14
|
|
15
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
16
|
-
|
17
|
-
// import {IPool} from "../instance/module/pool/IPoolModule.sol";
|
18
|
-
import {ITreasury} from "../instance/module/ITreasury.sol";
|
19
15
|
import {ISetup} from "../instance/module/ISetup.sol";
|
20
16
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
21
17
|
|
22
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
23
|
-
import {Registerable} from "../shared/Registerable.sol";
|
24
18
|
|
25
|
-
contract Pool is
|
26
|
-
|
19
|
+
abstract contract Pool is
|
20
|
+
Component,
|
21
|
+
IPoolComponent
|
22
|
+
{
|
23
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Pool")) - 1)) & ~bytes32(uint256(0xff));
|
24
|
+
bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
|
27
25
|
|
28
|
-
|
29
|
-
|
26
|
+
struct PoolStorage {
|
27
|
+
UFixed _collateralizationLevel;
|
28
|
+
UFixed _retentionLevel;
|
30
29
|
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
bool _isExternallyManaged;
|
31
|
+
bool _isInterceptingBundleTransfers;
|
32
|
+
bool _isVerifyingApplications;
|
34
33
|
|
35
|
-
|
36
|
-
|
34
|
+
Fee _initialPoolFee;
|
35
|
+
Fee _initialStakingFee;
|
36
|
+
Fee _initialPerformanceFee;
|
37
37
|
|
38
|
-
|
39
|
-
IProductService private _productService;
|
38
|
+
TokenHandler _tokenHandler;
|
40
39
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
"ERROR:POL-001:NOT_POOL_SERVICE");
|
45
|
-
_;
|
40
|
+
// may be used to interact with instance by derived contracts
|
41
|
+
IPoolService _poolService;
|
42
|
+
IBundleService _bundleService;
|
46
43
|
}
|
47
44
|
|
48
|
-
modifier
|
49
|
-
|
50
|
-
msg.sender
|
51
|
-
|
45
|
+
modifier onlyPoolService() {
|
46
|
+
if(msg.sender != address(_getPoolStorage()._poolService)) {
|
47
|
+
revert ErrorPoolNotPoolService(msg.sender);
|
48
|
+
}
|
52
49
|
_;
|
53
50
|
}
|
54
51
|
|
55
|
-
|
52
|
+
|
53
|
+
function initializePool(
|
56
54
|
address registry,
|
57
55
|
NftId instanceNftId,
|
56
|
+
string memory name,
|
58
57
|
// TODO refactor into tokenNftId
|
59
58
|
address token,
|
60
|
-
bool
|
61
|
-
bool
|
59
|
+
bool isInterceptingNftTransfers,
|
60
|
+
bool isExternallyManaging,
|
61
|
+
bool isVerifying,
|
62
62
|
UFixed collateralizationLevel,
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
address initialOwner
|
63
|
+
UFixed retentionLevel,
|
64
|
+
address initialOwner,
|
65
|
+
bytes memory data
|
67
66
|
)
|
68
|
-
|
67
|
+
public
|
68
|
+
virtual
|
69
|
+
onlyInitializing()
|
69
70
|
{
|
70
|
-
|
71
|
-
// TODO add validation
|
72
|
-
_collateralizationLevel = collateralizationLevel;
|
73
|
-
_initialPoolFee = poolFee;
|
74
|
-
_initialStakingFee = stakingFee;
|
75
|
-
_initialPerformanceFee = performanceFee;
|
76
|
-
|
77
|
-
_poolService = _instance.getPoolService();
|
78
|
-
// TODO: reactivate when services are available again
|
79
|
-
// _productService = _instance.getProductService();
|
71
|
+
initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, data);
|
80
72
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
bundleNftId = _poolService.createBundle(
|
96
|
-
owner,
|
97
|
-
fee,
|
98
|
-
initialAmount,
|
99
|
-
lifetime,
|
100
|
-
filter
|
101
|
-
);
|
102
|
-
|
103
|
-
// TODO add logging
|
73
|
+
PoolStorage storage $ = _getPoolStorage();
|
74
|
+
// TODO add validation
|
75
|
+
$._tokenHandler = new TokenHandler(token);
|
76
|
+
$._isExternallyManaged = isExternallyManaging;
|
77
|
+
$._isVerifyingApplications = isVerifying;
|
78
|
+
$._collateralizationLevel = collateralizationLevel;
|
79
|
+
$._retentionLevel = retentionLevel;
|
80
|
+
$._initialPoolFee = FeeLib.zeroFee();
|
81
|
+
$._initialStakingFee = FeeLib.zeroFee();
|
82
|
+
$._initialPerformanceFee = FeeLib.zeroFee();
|
83
|
+
$._poolService = getInstance().getPoolService();
|
84
|
+
$._bundleService = getInstance().getBundleService();
|
85
|
+
|
86
|
+
registerInterface(type(IPoolComponent).interfaceId);
|
104
87
|
}
|
105
88
|
|
106
89
|
/**
|
107
|
-
* @dev see {IPool.
|
90
|
+
* @dev see {IPool.verifyApplication}.
|
108
91
|
* Default implementation that only writes a {LogUnderwrittenByPool} entry.
|
109
92
|
*/
|
110
|
-
function
|
111
|
-
NftId
|
112
|
-
bytes memory
|
93
|
+
function verifyApplication(
|
94
|
+
NftId applicationNftId,
|
95
|
+
bytes memory applicationData,
|
113
96
|
bytes memory bundleFilter,
|
114
97
|
uint256 collateralizationAmount
|
115
98
|
)
|
116
99
|
external
|
117
|
-
|
100
|
+
restricted()
|
118
101
|
virtual override
|
119
102
|
{
|
120
|
-
|
103
|
+
require(
|
104
|
+
policyMatchesBundle(applicationData, bundleFilter),
|
105
|
+
"ERROR:POL-020:POLICY_BUNDLE_MISMATCH"
|
106
|
+
);
|
107
|
+
|
108
|
+
emit LogUnderwrittenByPool(applicationNftId, collateralizationAmount, address(this));
|
121
109
|
}
|
122
110
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
111
|
+
|
112
|
+
function isInterceptingBundleTransfers() external view override returns (bool) {
|
113
|
+
return isNftInterceptor();
|
114
|
+
}
|
115
|
+
|
116
|
+
|
117
|
+
function isExternallyManaged() external view override returns (bool) {
|
118
|
+
return _getPoolStorage()._isExternallyManaged;
|
119
|
+
}
|
120
|
+
|
121
|
+
|
122
|
+
function getRetentionLevel() external view override returns (UFixed retentionLevel) {
|
123
|
+
return _getPoolStorage()._retentionLevel;
|
124
|
+
}
|
125
|
+
|
126
|
+
|
127
|
+
function getCollateralizationLevel() external view override returns (UFixed collateralizationLevel) {
|
128
|
+
return _getPoolStorage()._collateralizationLevel;
|
129
|
+
}
|
130
|
+
|
131
|
+
|
132
|
+
function isVerifyingApplications() external view override returns (bool isConfirmingApplication) {
|
133
|
+
return _getPoolStorage()._isVerifyingApplications;
|
134
|
+
}
|
135
|
+
|
136
|
+
|
137
|
+
/// @dev see {IPoolComponent.policyMatchesBundle}.
|
138
|
+
/// Default implementation always returns true
|
127
139
|
function policyMatchesBundle(
|
128
140
|
bytes memory, // policyData
|
129
141
|
bytes memory // bundleFilter
|
130
142
|
)
|
131
143
|
public
|
132
|
-
|
144
|
+
pure
|
133
145
|
virtual override
|
134
146
|
returns (bool isMatching)
|
135
147
|
{
|
@@ -137,14 +149,6 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
137
149
|
}
|
138
150
|
|
139
151
|
|
140
|
-
function isVerifying() external view override returns (bool verifying) {
|
141
|
-
return _isVerifying;
|
142
|
-
}
|
143
|
-
|
144
|
-
function getCollateralizationLevel() external view override returns (UFixed collateralizationLevel) {
|
145
|
-
return _collateralizationLevel;
|
146
|
-
}
|
147
|
-
|
148
152
|
function setFees(
|
149
153
|
Fee memory poolFee,
|
150
154
|
Fee memory stakingFee,
|
@@ -152,9 +156,10 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
152
156
|
)
|
153
157
|
external
|
154
158
|
onlyOwner
|
159
|
+
restricted()
|
155
160
|
override
|
156
161
|
{
|
157
|
-
_poolService.setFees(poolFee, stakingFee, performanceFee);
|
162
|
+
_getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
|
158
163
|
}
|
159
164
|
|
160
165
|
function setBundleFee(
|
@@ -165,79 +170,85 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
165
170
|
override
|
166
171
|
// TODO add onlyBundleOwner
|
167
172
|
{
|
168
|
-
|
173
|
+
_getPoolStorage()._bundleService.setBundleFee(bundleNftId, fee);
|
169
174
|
}
|
170
175
|
|
171
|
-
function
|
172
|
-
|
173
|
-
|
176
|
+
function lockBundle(
|
177
|
+
NftId bundleNftId
|
178
|
+
)
|
179
|
+
external
|
180
|
+
override
|
181
|
+
// TODO add onlyBundleOwner
|
182
|
+
{
|
183
|
+
_getPoolStorage()._bundleService.lockBundle(bundleNftId);
|
174
184
|
}
|
175
185
|
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
view
|
183
|
-
override (IRegisterable, Registerable)
|
184
|
-
returns (IRegistry.ObjectInfo memory, bytes memory)
|
186
|
+
function unlockBundle(
|
187
|
+
NftId bundleNftId
|
188
|
+
)
|
189
|
+
external
|
190
|
+
override
|
191
|
+
// TODO add onlyBundleOwner
|
185
192
|
{
|
186
|
-
(
|
187
|
-
IRegistry.ObjectInfo memory info,
|
188
|
-
) = super.getInitialInfo();
|
189
|
-
|
190
|
-
return (
|
191
|
-
info,
|
192
|
-
abi.encode(
|
193
|
-
ISetup.PoolSetupInfo(
|
194
|
-
_productNftId,
|
195
|
-
TokenHandler(address(_token)),
|
196
|
-
_collateralizationLevel,
|
197
|
-
_initialPoolFee,
|
198
|
-
_initialStakingFee,
|
199
|
-
_initialPerformanceFee,
|
200
|
-
_isVerifying,
|
201
|
-
_wallet
|
202
|
-
)
|
203
|
-
)
|
204
|
-
);
|
193
|
+
_getPoolStorage()._bundleService.unlockBundle(bundleNftId);
|
205
194
|
}
|
206
195
|
|
207
|
-
|
196
|
+
function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
|
197
|
+
InstanceReader reader = getInstance().getInstanceReader();
|
198
|
+
setupInfo = reader.getPoolSetupInfo(getNftId());
|
208
199
|
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
)
|
215
|
-
internal
|
216
|
-
{
|
217
|
-
require(
|
218
|
-
policyMatchesBundle(policyData, bundleFilter),
|
219
|
-
"ERROR:POL-020:POLICY_BUNDLE_MISMATCH"
|
220
|
-
);
|
200
|
+
// fallback to initial setup info (wallet is always != address(0))
|
201
|
+
if(setupInfo.wallet == address(0)) {
|
202
|
+
setupInfo = _getInitialSetupInfo();
|
203
|
+
}
|
204
|
+
}
|
221
205
|
|
222
|
-
|
206
|
+
function _getInitialSetupInfo() internal view returns (ISetup.PoolSetupInfo memory) {
|
207
|
+
PoolStorage storage $ = _getPoolStorage();
|
208
|
+
return ISetup.PoolSetupInfo(
|
209
|
+
getProductNftId(),
|
210
|
+
$._tokenHandler,
|
211
|
+
isNftInterceptor(),
|
212
|
+
$._isExternallyManaged,
|
213
|
+
$._isVerifyingApplications,
|
214
|
+
$._collateralizationLevel,
|
215
|
+
$._retentionLevel,
|
216
|
+
$._initialPoolFee,
|
217
|
+
$._initialStakingFee,
|
218
|
+
$._initialPerformanceFee,
|
219
|
+
getWallet()
|
220
|
+
);
|
223
221
|
}
|
224
222
|
|
223
|
+
// Internals
|
224
|
+
|
225
225
|
function _createBundle(
|
226
226
|
address bundleOwner,
|
227
227
|
Fee memory fee,
|
228
228
|
uint256 amount,
|
229
229
|
uint256 lifetime,
|
230
|
-
bytes
|
230
|
+
bytes memory filter
|
231
231
|
)
|
232
232
|
internal
|
233
233
|
returns(NftId bundleNftId)
|
234
234
|
{
|
235
|
-
bundleNftId =
|
235
|
+
bundleNftId = _getPoolStorage()._bundleService.createBundle(
|
236
236
|
bundleOwner,
|
237
237
|
fee,
|
238
238
|
amount,
|
239
239
|
lifetime,
|
240
|
-
filter
|
241
|
-
|
240
|
+
filter);
|
241
|
+
|
242
|
+
// TODO add logging
|
243
|
+
}
|
244
|
+
|
245
|
+
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
246
|
+
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
247
|
+
}
|
248
|
+
|
249
|
+
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
250
|
+
assembly {
|
251
|
+
$.slot := POOL_STORAGE_LOCATION_V1
|
252
|
+
}
|
242
253
|
}
|
243
254
|
}
|