@etherisc/gif-next 0.0.2-de0a1d3-009 → 0.0.2-e1e92ab-754
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 +51 -25
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +166 -39
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +212 -60
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +119 -39
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -163
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +6 -185
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -163
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +257 -119
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +220 -50
- 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/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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +247 -355
- 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 +369 -507
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +144 -50
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +1 -1
- 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/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IService.sol/IService.json +120 -40
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +147 -66
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +140 -59
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
- 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/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
- 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/distribution/DistributionModule.sol/DistributionModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +2 -2
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +1 -1
- 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 +0 -13
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -13
- 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 +29 -9
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +28 -8
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +2 -2
- 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 +138 -11
- 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 +138 -11
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +288 -79
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +188 -65
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +122 -61
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +120 -40
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +120 -40
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +120 -40
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +190 -67
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +220 -97
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +141 -12
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +5 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +190 -51
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +872 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +380 -139
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1245 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +490 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
- 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 +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/{Proxy.sol/ProxyWithProxyAdminGetter.json → UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json} +4 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +4 -27
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +1 -1
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +212 -60
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +4 -4
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +257 -119
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +225 -56
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
- 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 +187 -69
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +15 -38
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/test/Usdc.sol/USDC.json +91 -53
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +4 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/{UFixedMathLib.json → UFixedLib.json} +3 -3
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
- package/contracts/components/BaseComponent.sol +11 -26
- package/contracts/components/Distribution.sol +29 -6
- package/contracts/components/IBaseComponent.sol +1 -1
- package/contracts/components/IDistributionComponent.sol +1 -2
- package/contracts/components/IPoolComponent.sol +3 -10
- package/contracts/components/IProductComponent.sol +2 -3
- package/contracts/components/Pool.sol +84 -73
- package/contracts/components/Product.sol +85 -13
- package/contracts/instance/IInstance.sol +6 -7
- package/contracts/instance/Instance.sol +18 -9
- package/contracts/instance/base/ComponentServiceBase.sol +13 -6
- package/contracts/instance/base/IInstanceBase.sol +3 -2
- package/contracts/instance/base/InstanceBase.sol +6 -8
- package/contracts/instance/base/ServiceBase.sol +20 -13
- package/contracts/instance/module/component/ComponentModule.sol +4 -3
- package/contracts/instance/module/component/IComponent.sol +1 -1
- package/contracts/instance/module/policy/IPolicy.sol +1 -1
- package/contracts/instance/module/pool/IPoolModule.sol +4 -3
- package/contracts/instance/module/pool/PoolModule.sol +12 -7
- package/contracts/instance/module/treasury/ITreasury.sol +6 -4
- package/contracts/instance/module/treasury/TokenHandler.sol +1 -1
- package/contracts/instance/module/treasury/TreasuryModule.sol +23 -30
- package/contracts/instance/service/ComponentOwnerService.sol +224 -66
- package/contracts/instance/service/DistributionService.sol +6 -11
- package/contracts/instance/service/IComponentOwnerService.sol +0 -2
- package/contracts/instance/service/PoolService.sol +19 -19
- package/contracts/instance/service/ProductService.sol +27 -26
- package/contracts/registry/ChainNft.sol +42 -14
- package/contracts/registry/IChainNft.sol +2 -1
- package/contracts/registry/IRegistry.sol +27 -27
- package/contracts/registry/IRegistryService.sol +35 -0
- package/contracts/registry/ITransferInterceptor.sol +6 -0
- package/contracts/registry/Registry.sol +312 -267
- package/contracts/registry/RegistryService.sol +441 -0
- package/contracts/registry/RegistryServiceManager.sol +63 -0
- package/contracts/shared/ContractDeployerLib.sol +72 -0
- package/contracts/shared/INftOwnable.sol +22 -0
- package/contracts/shared/IRegisterable.sol +8 -15
- package/contracts/shared/IVersionable.sol +40 -9
- package/contracts/shared/NftOwnable.sol +136 -0
- package/contracts/shared/ProxyManager.sol +94 -0
- package/contracts/shared/Registerable.sol +62 -59
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +109 -61
- package/contracts/test/TestDistribution.sol +3 -2
- package/contracts/test/TestFee.sol +2 -2
- package/contracts/test/TestPool.sol +4 -2
- package/contracts/test/TestProduct.sol +4 -2
- package/contracts/test/TestRegisterable.sol +5 -6
- package/contracts/test/TestService.sol +5 -11
- package/contracts/types/Fee.sol +3 -3
- package/contracts/types/RoleId.sol +7 -0
- package/contracts/types/UFixed.sol +128 -12
- package/contracts/types/Version.sol +1 -0
- package/package.json +4 -3
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.json +0 -10
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
- package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.json +0 -724
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
- package/artifacts/contracts/shared/Proxy.sol/ProxyDeployer.dbg.json +0 -4
- package/artifacts/contracts/shared/Proxy.sol/ProxyDeployer.json +0 -248
- package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +0 -4
- package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.dbg.json +0 -4
- package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.json +0 -228
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/contracts/experiment/statemachine/README.md +0 -112
- package/contracts/instance/module/access/Access.sol +0 -149
- package/contracts/instance/module/access/IAccess.sol +0 -53
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/registry/RegistryUpgradeable.sol +0 -473
- package/contracts/shared/IOwnable.sol +0 -6
- package/contracts/shared/Proxy.sol +0 -94
- package/contracts/shared/VersionableUpgradeable.sol +0 -133
@@ -1,10 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Key32} from "../../types/Key32.sol";
|
5
5
|
import {StateId} from "../../types/StateId.sol";
|
6
6
|
|
7
7
|
import {IKeyValueStore} from "./IKeyValueStore.sol";
|
8
|
+
|
8
9
|
import {IComponentOwnerService} from "../service/IComponentOwnerService.sol";
|
9
10
|
import {IDistributionService} from "../service/IDistributionService.sol";
|
10
11
|
import {IProductService} from "../service/IProductService.sol";
|
@@ -15,7 +16,7 @@ interface IInstanceBase {
|
|
15
16
|
function updateState(Key32 key, StateId state) external;
|
16
17
|
function getState(Key32 key) external view returns (StateId state);
|
17
18
|
|
18
|
-
function getComponentOwnerService() external view returns(IComponentOwnerService
|
19
|
+
function getComponentOwnerService() external view returns(IComponentOwnerService);
|
19
20
|
function getDistributionService() external view returns(IDistributionService);
|
20
21
|
function getProductService() external view returns(IProductService service);
|
21
22
|
function getPoolService() external view returns(IPoolService service);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Versionable} from "../../shared/Versionable.sol";
|
5
5
|
import {Registerable} from "../../shared/Registerable.sol";
|
@@ -35,11 +35,13 @@ abstract contract InstanceBase is
|
|
35
35
|
|
36
36
|
constructor(
|
37
37
|
address registry,
|
38
|
-
NftId registryNftId
|
38
|
+
NftId registryNftId,
|
39
|
+
address initialOwner
|
39
40
|
)
|
40
|
-
Registerable(registry, registryNftId)
|
41
41
|
Versionable()
|
42
42
|
{
|
43
|
+
bytes memory data = "";
|
44
|
+
_initializeRegisterable(registry, registryNftId, INSTANCE(), true, initialOwner, data);
|
43
45
|
_keyValueStore = new KeyValueStore();
|
44
46
|
|
45
47
|
_registerInterface(type(IInstance).interfaceId);
|
@@ -67,10 +69,6 @@ abstract contract InstanceBase is
|
|
67
69
|
}
|
68
70
|
|
69
71
|
// from registerable
|
70
|
-
function getType() external pure override returns (ObjectType objectType) {
|
71
|
-
return INSTANCE();
|
72
|
-
}
|
73
|
-
|
74
72
|
|
75
73
|
// internal / private functions
|
76
74
|
function _linkToServicesInRegistry() internal {
|
@@ -82,7 +80,7 @@ abstract contract InstanceBase is
|
|
82
80
|
}
|
83
81
|
|
84
82
|
function _getAndCheck(string memory serviceName, VersionPart majorVersion) internal view returns (address serviceAddress) {
|
85
|
-
serviceAddress =
|
83
|
+
serviceAddress = getRegistry().getServiceAddress(serviceName, majorVersion);
|
86
84
|
require(
|
87
85
|
serviceAddress != address(0),
|
88
86
|
"ERROR:INS-001:NOT_REGISTERED"
|
@@ -3,9 +3,10 @@ pragma solidity ^0.8.19;
|
|
3
3
|
|
4
4
|
import {NftId, zeroNftId} from "../../types/NftId.sol";
|
5
5
|
import {ObjectType, SERVICE} from "../../types/ObjectType.sol";
|
6
|
-
import {Version, VersionPart} from "../../types/Version.sol";
|
6
|
+
import {Version, VersionPart, VersionLib} from "../../types/Version.sol";
|
7
7
|
|
8
8
|
import {Registerable} from "../../shared/Registerable.sol";
|
9
|
+
import {IRegistry} from "../../registry/IRegistry.sol";
|
9
10
|
import {IVersionable} from "../../shared/IVersionable.sol";
|
10
11
|
import {Versionable} from "../../shared/Versionable.sol";
|
11
12
|
|
@@ -16,22 +17,28 @@ abstract contract ServiceBase is
|
|
16
17
|
Versionable,
|
17
18
|
IService
|
18
19
|
{
|
20
|
+
function getName() public pure virtual override returns(string memory name);
|
19
21
|
|
20
|
-
|
21
|
-
|
22
|
-
NftId registryNftId
|
23
|
-
)
|
24
|
-
Registerable(registry, registryNftId)
|
25
|
-
Versionable()
|
26
|
-
{
|
27
|
-
_registerInterface(type(IService).interfaceId);
|
22
|
+
function getMajorVersion() public view virtual override returns(VersionPart majorVersion) {
|
23
|
+
return getVersion().toMajorPart();
|
28
24
|
}
|
29
25
|
|
30
|
-
|
31
|
-
|
26
|
+
// from Versionable
|
27
|
+
function getVersion()
|
28
|
+
public
|
29
|
+
pure
|
30
|
+
virtual override (IVersionable, Versionable)
|
31
|
+
returns(Version)
|
32
|
+
{
|
33
|
+
return VersionLib.toVersion(3,0,0);
|
32
34
|
}
|
33
35
|
|
34
|
-
function
|
35
|
-
|
36
|
+
function _initializeServiceBase(address registry, NftId registryNftId, address initialOwner)
|
37
|
+
internal
|
38
|
+
//onlyInitializing //TODO uncomment when "fully" upgradeable
|
39
|
+
{// service must provide its name and version upon registration
|
40
|
+
bytes memory data = abi.encode(getName(), getMajorVersion());
|
41
|
+
_initializeRegisterable(registry, registryNftId, SERVICE(), false, initialOwner, data);
|
42
|
+
_registerInterface(type(IService).interfaceId);
|
36
43
|
}
|
37
44
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
@@ -17,10 +17,11 @@ abstract contract ComponentModule is
|
|
17
17
|
|
18
18
|
NftId[] private _nftIds;
|
19
19
|
|
20
|
-
modifier
|
20
|
+
// TODO try to keep 1 modifier in 1 place...
|
21
|
+
modifier onlyComponentOwnerService() virtual {
|
21
22
|
require(
|
22
23
|
msg.sender == address(this.getComponentOwnerService()),
|
23
|
-
"ERROR:CMP-001:
|
24
|
+
"ERROR:CMP-001:NOT_COMPONENT_OWNER_SERVICE"
|
24
25
|
);
|
25
26
|
_;
|
26
27
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
|
@@ -56,7 +56,7 @@ interface IPolicyModule is IPolicy {
|
|
56
56
|
) external view returns (PolicyInfo memory info);
|
57
57
|
|
58
58
|
// repeat registry linked signature
|
59
|
-
function getRegistry() external view returns (IRegistry registry);
|
59
|
+
// function getRegistry() external view returns (IRegistry registry);
|
60
60
|
|
61
61
|
// repeat service linked signature to avoid linearization issues
|
62
62
|
function getProductService() external returns(IProductService);
|
@@ -6,6 +6,7 @@ import {NftId} from "../../../types/NftId.sol";
|
|
6
6
|
import {UFixed} from "../../../types/UFixed.sol";
|
7
7
|
import {IProductService} from "../../service/IProductService.sol";
|
8
8
|
import {IPoolService} from "../../service/IPoolService.sol";
|
9
|
+
import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
|
9
10
|
|
10
11
|
interface IPool {
|
11
12
|
struct PoolInfo {
|
@@ -17,9 +18,8 @@ interface IPool {
|
|
17
18
|
interface IPoolModule is IPool {
|
18
19
|
|
19
20
|
function registerPool(
|
20
|
-
NftId
|
21
|
-
|
22
|
-
UFixed collateralizationLevel
|
21
|
+
NftId nftId,
|
22
|
+
PoolInfo memory info
|
23
23
|
) external;
|
24
24
|
|
25
25
|
function addBundleToPool(
|
@@ -36,5 +36,6 @@ interface IPoolModule is IPool {
|
|
36
36
|
function getBundleNftId(NftId poolNftId, uint256 index) external view returns (NftId bundleNftId);
|
37
37
|
|
38
38
|
// repeat service linked signatures to avoid linearization issues
|
39
|
+
function getComponentOwnerService() external view returns(IComponentOwnerService);
|
39
40
|
function getPoolService() external returns(IPoolService);
|
40
41
|
}
|
@@ -26,6 +26,16 @@ abstract contract PoolModule is
|
|
26
26
|
// mapping(NftId poolNftId => PoolInfo info) private _poolInfo;
|
27
27
|
mapping(NftId poolNftId => LibNftIdSet.Set bundles) private _bundlesForPool;
|
28
28
|
|
29
|
+
|
30
|
+
// TODO try to keep 1 modifier in 1 place...
|
31
|
+
modifier onlyComponentOwnerService() virtual {
|
32
|
+
require(
|
33
|
+
msg.sender == address(this.getComponentOwnerService()),
|
34
|
+
"ERROR:CMP-001:NOT_COMPONENT_OWNER_SERVICE"
|
35
|
+
);
|
36
|
+
_;
|
37
|
+
}
|
38
|
+
|
29
39
|
modifier poolServiceCallingPool() {
|
30
40
|
require(
|
31
41
|
msg.sender == address(this.getPoolService()),
|
@@ -40,17 +50,12 @@ abstract contract PoolModule is
|
|
40
50
|
|
41
51
|
function registerPool(
|
42
52
|
NftId nftId,
|
43
|
-
|
44
|
-
UFixed collateralizationRate
|
53
|
+
PoolInfo memory info
|
45
54
|
)
|
46
55
|
public
|
56
|
+
onlyComponentOwnerService
|
47
57
|
override
|
48
58
|
{
|
49
|
-
PoolInfo memory info = PoolInfo(
|
50
|
-
isVerifying,
|
51
|
-
collateralizationRate
|
52
|
-
);
|
53
|
-
|
54
59
|
_create(POOL(), nftId, abi.encode(info));
|
55
60
|
}
|
56
61
|
|
@@ -1,10 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
import {IDistributionComponent} from "../../../components/IDistributionComponent.sol";
|
6
6
|
import {IPoolComponent} from "../../../components/IPoolComponent.sol";
|
7
7
|
import {IProductComponent} from "../../../components/IProductComponent.sol";
|
8
|
+
import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
|
8
9
|
|
9
10
|
import {NftId} from "../../../types/NftId.sol";
|
10
11
|
import {UFixed} from "../../../types/UFixed.sol";
|
@@ -33,9 +34,8 @@ interface ITreasury {
|
|
33
34
|
interface ITreasuryModule is ITreasury {
|
34
35
|
|
35
36
|
function registerProductSetup(
|
36
|
-
|
37
|
-
|
38
|
-
IDistributionComponent distribution
|
37
|
+
NftId productNftId,
|
38
|
+
TreasuryInfo memory info
|
39
39
|
) external;
|
40
40
|
|
41
41
|
function setTreasuryInfo(
|
@@ -79,4 +79,6 @@ interface ITreasuryModule is ITreasury {
|
|
79
79
|
uint256 a,
|
80
80
|
int8 exp
|
81
81
|
) external pure returns (UFixed);
|
82
|
+
|
83
|
+
function getComponentOwnerService() external view returns(IComponentOwnerService);
|
82
84
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
import {IDistributionComponent} from "../../../components/IDistributionComponent.sol";
|
@@ -9,7 +9,7 @@ import {IProductComponent} from "../../../components/IProductComponent.sol";
|
|
9
9
|
import {NftId} from "../../../types/NftId.sol";
|
10
10
|
import {TREASURY} from "../../../types/ObjectType.sol";
|
11
11
|
import {Fee, FeeLib} from "../../../types/Fee.sol";
|
12
|
-
import {UFixed,
|
12
|
+
import {UFixed, UFixedLib} from "../../../types/UFixed.sol";
|
13
13
|
import {TokenHandler} from "./TokenHandler.sol";
|
14
14
|
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
15
15
|
import {ITreasuryModule} from "./ITreasury.sol";
|
@@ -25,48 +25,41 @@ abstract contract TreasuryModule is
|
|
25
25
|
mapping(NftId componentNftId => TokenHandler tokenHandler) internal _tokenHandler;
|
26
26
|
Fee internal _zeroFee;
|
27
27
|
|
28
|
+
modifier onlyComponentOwnerService() virtual {
|
29
|
+
require(
|
30
|
+
msg.sender == address(this.getComponentOwnerService()),
|
31
|
+
"ERROR:CMP-001:NOT_COPONENT_OWNER_SERVICE"
|
32
|
+
);
|
33
|
+
_;
|
34
|
+
}
|
28
35
|
|
29
|
-
function
|
36
|
+
function _initializeTreasuryModule(IKeyValueStore keyValueStore) internal {
|
37
|
+
//_initializeModuleBase(keyValueStore);
|
30
38
|
_initialize(keyValueStore);
|
31
39
|
_zeroFee = FeeLib.zeroFee();
|
32
40
|
}
|
33
41
|
|
34
42
|
function registerProductSetup(
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
43
|
+
NftId productNftId,
|
44
|
+
TreasuryInfo memory setup
|
45
|
+
)
|
46
|
+
external
|
47
|
+
onlyComponentOwnerService
|
39
48
|
{
|
40
|
-
NftId
|
41
|
-
NftId
|
42
|
-
NftId distributionNftId = distribution.getNftId();
|
43
|
-
|
44
|
-
require(productNftId.gtz(), "ERROR:TRS-010:PRODUCT_UNDEFINED");
|
45
|
-
require(poolNftId.gtz(), "ERROR:TRS-011:POOL_UNDEFINED");
|
49
|
+
NftId poolNftId = setup.poolNftId;
|
50
|
+
NftId distributionNftId = setup.distributionNftId;
|
46
51
|
|
47
52
|
require(address(_tokenHandler[productNftId]) == address(0), "ERROR:TRS-012:TOKEN_HANDLER_ALREADY_REGISTERED");
|
48
53
|
require(_productNft[poolNftId].eqz(), "ERROR:TRS-013:POOL_ALREADY_LINKED");
|
49
54
|
require(_productNft[distributionNftId].eqz(), "ERROR:TRS-014:COMPENSATION_ALREADY_LINKED");
|
50
55
|
|
56
|
+
// TODO deploy TokenHandler with separate contract to save space
|
51
57
|
// deploy product specific handler contract
|
52
|
-
|
53
|
-
_tokenHandler[productNftId] = new TokenHandler(productNftId, address(token));
|
58
|
+
_tokenHandler[productNftId] = new TokenHandler(productNftId, address(setup.token));
|
54
59
|
_productNft[distributionNftId] = productNftId;
|
55
60
|
_productNft[poolNftId] = productNftId;
|
56
61
|
|
57
|
-
|
58
|
-
poolNftId,
|
59
|
-
distributionNftId,
|
60
|
-
token,
|
61
|
-
product.getProductFee(),
|
62
|
-
product.getProcessingFee(),
|
63
|
-
pool.getPoolFee(),
|
64
|
-
pool.getStakingFee(),
|
65
|
-
pool.getPerformanceFee(),
|
66
|
-
distribution.getDistributionFee()
|
67
|
-
);
|
68
|
-
|
69
|
-
_create(TREASURY(), productNftId, abi.encode(info));
|
62
|
+
_create(TREASURY(), productNftId, abi.encode(setup));
|
70
63
|
}
|
71
64
|
|
72
65
|
function setTreasuryInfo(
|
@@ -125,7 +118,7 @@ abstract contract TreasuryModule is
|
|
125
118
|
function getUFixed(
|
126
119
|
uint256 a
|
127
120
|
) external pure override returns (UFixed) {
|
128
|
-
return
|
121
|
+
return UFixedLib.toUFixed(a);
|
129
122
|
}
|
130
123
|
|
131
124
|
function getUFixed(
|
@@ -133,6 +126,6 @@ abstract contract TreasuryModule is
|
|
133
126
|
int8 exp
|
134
127
|
) external pure returns (UFixed)
|
135
128
|
{
|
136
|
-
return
|
129
|
+
return UFixedLib.toUFixed(a, exp);
|
137
130
|
}
|
138
131
|
}
|