@etherisc/gif-next 0.0.2-f752d2a-551 → 0.0.2-f7b8c9f-518
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 +71 -0
- 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 +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +557 -0
- 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 +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +177 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +108 -156
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +67 -139
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +417 -88
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +360 -51
- 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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +913 -530
- 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 +1043 -556
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +224 -43
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +51 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
- 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 +174 -53
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +263 -45
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +41 -23
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
- 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 +220 -52
- 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 +55 -54
- 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 +56 -55
- 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/{compensation/ICompensation.sol/ICompensation.json → distribution/IDistribution.sol/IDistribution.json} +2 -2
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensationModule.json → distribution/IDistribution.sol/IDistributionModule.json} +2 -2
- 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 -51
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +61 -51
- 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 -14
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +28 -13
- 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/IRisk.sol/IRiskModule.json +104 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +126 -5
- 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 +326 -221
- 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 +326 -221
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +350 -79
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +630 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +176 -74
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +446 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +235 -50
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +325 -51
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +335 -53
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +466 -71
- 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 +298 -39
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +745 -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 +489 -120
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +997 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +468 -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 +55 -14
- 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/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +557 -0
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +417 -88
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +407 -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 +267 -62
- 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 +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +89 -25
- 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/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +50 -11
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/types/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 +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/UFixedMathLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -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 +12 -21
- package/contracts/components/Distribution.sol +155 -0
- package/contracts/components/IBaseComponent.sol +2 -2
- package/contracts/components/IDistributionComponent.sol +46 -0
- package/contracts/components/IPoolComponent.sol +15 -8
- package/contracts/components/IProductComponent.sol +26 -8
- package/contracts/components/Pool.sol +99 -27
- package/contracts/components/Product.sol +204 -22
- package/contracts/instance/IInstance.sol +12 -10
- package/contracts/instance/Instance.sol +28 -9
- package/contracts/instance/base/ComponentServiceBase.sol +13 -6
- package/contracts/instance/base/IInstanceBase.sol +11 -2
- package/contracts/instance/base/IKeyValueStore.sol +4 -3
- package/contracts/instance/base/InstanceBase.sol +19 -10
- package/contracts/instance/base/KeyValueStore.sol +12 -7
- package/contracts/instance/base/Lifecycle.sol +15 -10
- package/contracts/instance/base/ModuleBase.sol +22 -17
- package/contracts/instance/base/ServiceBase.sol +20 -13
- package/contracts/instance/module/access/Access.sol +3 -3
- package/contracts/instance/module/bundle/BundleModule.sol +10 -12
- package/contracts/instance/module/bundle/IBundle.sol +6 -11
- package/contracts/instance/module/component/ComponentModule.sol +34 -58
- package/contracts/instance/module/component/IComponent.sol +7 -32
- 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 +13 -10
- package/contracts/instance/module/policy/PolicyModule.sol +35 -20
- package/contracts/instance/module/pool/IPoolModule.sol +4 -4
- package/contracts/instance/module/pool/PoolModule.sol +23 -15
- package/contracts/instance/module/risk/IRisk.sol +18 -2
- package/contracts/instance/module/risk/RiskModule.sol +56 -2
- package/contracts/instance/module/treasury/ITreasury.sol +32 -51
- package/contracts/instance/module/treasury/TokenHandler.sol +2 -2
- package/contracts/instance/module/treasury/TreasuryModule.sol +68 -89
- package/contracts/instance/service/ComponentOwnerService.sol +200 -95
- package/contracts/instance/service/DistributionService.sol +54 -0
- package/contracts/instance/service/IComponentOwnerService.sol +0 -2
- package/contracts/instance/service/IDistributionService.sol +12 -0
- package/contracts/instance/service/IPoolService.sol +7 -0
- package/contracts/instance/service/IProductService.sol +56 -7
- package/contracts/instance/service/PoolService.sol +49 -23
- package/contracts/instance/service/ProductService.sol +248 -92
- package/contracts/registry/ChainNft.sol +43 -15
- package/contracts/registry/IChainNft.sol +3 -2
- package/contracts/registry/IRegistry.sol +42 -26
- package/contracts/registry/IRegistryService.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +6 -0
- package/contracts/registry/Registry.sol +384 -274
- package/contracts/registry/RegistryService.sol +368 -0
- package/contracts/registry/RegistryServiceManager.sol +43 -0
- package/contracts/shared/ContractDeployerLib.sol +72 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/INftOwnable.sol +22 -0
- package/contracts/shared/IRegisterable.sol +9 -16
- package/contracts/shared/IVersionable.sol +55 -11
- 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 +112 -54
- package/contracts/test/TestDistribution.sol +22 -0
- package/contracts/test/TestPool.sol +7 -2
- package/contracts/test/TestProduct.sol +37 -7
- package/contracts/test/TestRegisterable.sol +5 -6
- package/contracts/test/TestService.sol +5 -11
- package/contracts/types/Fee.sol +8 -3
- 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 +2 -2
- package/contracts/types/Version.sol +9 -0
- package/package.json +1 -1
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
- package/contracts/experiment/statemachine/README.md +0 -112
- package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
- package/contracts/instance/module/compensation/ICompensation.sol +0 -10
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/shared/IOwnable.sol +0 -6
@@ -1,53 +1,28 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
3
|
-
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
2
|
+
pragma solidity ^0.8.20;
|
5
3
|
|
4
|
+
import {IERC20Metadata} from "@openzeppelin5/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
|
6
6
|
|
7
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
8
|
-
import {IInstance} from "../../IInstance.sol";
|
9
7
|
import {StateId} from "../../../types/StateId.sol";
|
10
8
|
import {NftId} from "../../../types/NftId.sol";
|
11
|
-
import {ObjectType} from "../../../types/ObjectType.sol";
|
12
|
-
import {RoleId} from "../../../types/RoleId.sol";
|
13
|
-
import {Fee} from "../../../types/Fee.sol";
|
14
|
-
import {UFixed} from "../../../types/UFixed.sol";
|
15
|
-
|
16
|
-
import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
|
17
|
-
// import {IComponentBase} from "../../../components/IComponentBase.sol";
|
18
9
|
|
19
10
|
interface IComponent {
|
20
|
-
// component dynamic info (static info kept in registry)
|
21
11
|
struct ComponentInfo {
|
22
|
-
NftId nftId;
|
23
|
-
StateId state;
|
24
12
|
IERC20Metadata token;
|
13
|
+
address wallet;
|
25
14
|
}
|
26
15
|
}
|
27
16
|
|
28
17
|
interface IComponentModule is IComponent {
|
29
|
-
function getRegistry() external view returns (IRegistry registry);
|
30
18
|
|
31
|
-
function registerComponent(
|
32
|
-
|
33
|
-
|
34
|
-
IERC20Metadata token
|
35
|
-
) external;
|
36
|
-
|
37
|
-
function setComponentInfo(
|
38
|
-
ComponentInfo memory info
|
39
|
-
) external returns (NftId componentNftId);
|
40
|
-
|
41
|
-
function getComponentInfo(
|
42
|
-
NftId nftId
|
43
|
-
) external view returns (ComponentInfo memory info);
|
19
|
+
function registerComponent(NftId nftId, IERC20Metadata token, address wallet) external;
|
20
|
+
function getComponentToken(NftId nftId) external view returns (IERC20Metadata token);
|
21
|
+
function getComponentWallet(NftId nftId) external view returns (address wallet);
|
44
22
|
|
45
23
|
function getComponentCount() external view returns (uint256 numberOfCompnents);
|
46
|
-
|
47
24
|
function getComponentId(uint256 idx) external view returns (NftId nftId);
|
48
25
|
|
49
26
|
// repeat service linked signaturea to avoid linearization issues
|
50
27
|
function getComponentOwnerService() external view returns(IComponentOwnerService);
|
51
|
-
|
52
|
-
function hasRole(RoleId role, address member) external view returns (bool);
|
53
28
|
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {IDistributionModule} from "./IDistribution.sol";
|
5
|
+
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
6
|
+
import {ModuleBase} from "../../base/ModuleBase.sol";
|
7
|
+
|
8
|
+
contract DistributionModule is
|
9
|
+
ModuleBase,
|
10
|
+
IDistributionModule
|
11
|
+
{
|
12
|
+
|
13
|
+
function initializeDistributionModule(IKeyValueStore keyValueStore) internal {
|
14
|
+
_initialize(keyValueStore);
|
15
|
+
}
|
16
|
+
|
17
|
+
}
|
@@ -5,42 +5,45 @@ import {IRegistry} from "../../../registry/IRegistry.sol";
|
|
5
5
|
import {IInstance} from "../../IInstance.sol";
|
6
6
|
import {IProductService} from "../../service/IProductService.sol";
|
7
7
|
import {NftId} from "../../../types/NftId.sol";
|
8
|
+
import {ReferralId} from "../../../types/ReferralId.sol";
|
9
|
+
import {RiskId} from "../../../types/RiskId.sol";
|
8
10
|
import {StateId} from "../../../types/StateId.sol";
|
9
11
|
import {Timestamp} from "../../../types/Timestamp.sol";
|
10
|
-
import {Blocknumber} from "../../../types/Blocknumber.sol";
|
11
12
|
|
12
13
|
// TODO check if there is value to introuce IContract and let IPolicy derive from IContract
|
13
14
|
interface IPolicy {
|
14
15
|
struct PolicyInfo {
|
15
|
-
NftId nftId;
|
16
16
|
NftId productNftId;
|
17
17
|
NftId bundleNftId;
|
18
|
+
ReferralId referralId;
|
18
19
|
address beneficiary;
|
19
|
-
|
20
|
+
RiskId riskId;
|
20
21
|
uint256 sumInsuredAmount;
|
21
22
|
uint256 premiumAmount;
|
22
23
|
uint256 premiumPaidAmount;
|
23
24
|
uint256 lifetime;
|
24
|
-
bytes
|
25
|
-
|
25
|
+
bytes applicationData;
|
26
|
+
bytes policyData;
|
26
27
|
Timestamp activatedAt; // time of underwriting
|
27
28
|
Timestamp expiredAt; // no new claims (activatedAt + lifetime)
|
28
29
|
Timestamp closedAt; // no locked capital
|
29
|
-
Blocknumber updatedIn; // write log entries in a way to support backtracking of all state changes
|
30
30
|
}
|
31
31
|
}
|
32
32
|
|
33
33
|
interface IPolicyModule is IPolicy {
|
34
|
-
function
|
35
|
-
NftId productNftId,
|
34
|
+
function createPolicyInfo(
|
36
35
|
NftId policyNftId,
|
36
|
+
NftId productNftId,
|
37
|
+
ReferralId referralId,
|
38
|
+
RiskId riskId,
|
37
39
|
uint256 sumInsuredAmount,
|
38
40
|
uint256 premiumAmount,
|
39
41
|
uint256 lifetime,
|
40
42
|
NftId bundleNftId
|
41
43
|
) external;
|
42
44
|
|
43
|
-
function setPolicyInfo(PolicyInfo memory
|
45
|
+
function setPolicyInfo(NftId policyNftId, PolicyInfo memory info) external;
|
46
|
+
function updatePolicyState(NftId nftId, StateId state) external;
|
44
47
|
|
45
48
|
// function underwrite(NftId nftId) external;
|
46
49
|
|
@@ -53,7 +56,7 @@ interface IPolicyModule is IPolicy {
|
|
53
56
|
) external view returns (PolicyInfo memory info);
|
54
57
|
|
55
58
|
// repeat registry linked signature
|
56
|
-
function getRegistry() external view returns (IRegistry registry);
|
59
|
+
// function getRegistry() external view returns (IRegistry registry);
|
57
60
|
|
58
61
|
// repeat service linked signature to avoid linearization issues
|
59
62
|
function getProductService() external returns(IProductService);
|
@@ -6,15 +6,19 @@ import {IRegistry} from "../../../registry/IRegistry.sol";
|
|
6
6
|
import {IProductService} from "../../service/IProductService.sol";
|
7
7
|
import {IPolicy, IPolicyModule} from "./IPolicy.sol";
|
8
8
|
import {ObjectType, POLICY} from "../../../types/ObjectType.sol";
|
9
|
-
import {APPLIED, ACTIVE, UNDERWRITTEN} from "../../../types/StateId.sol";
|
10
9
|
import {NftId, NftIdLib} from "../../../types/NftId.sol";
|
10
|
+
import {ReferralId} from "../../../types/ReferralId.sol";
|
11
|
+
import {RiskId} from "../../../types/RiskId.sol";
|
12
|
+
import {StateId} from "../../../types/StateId.sol";
|
11
13
|
import {Timestamp, blockTimestamp, zeroTimestamp} from "../../../types/Timestamp.sol";
|
12
|
-
import {Blocknumber, blockNumber} from "../../../types/Blocknumber.sol";
|
13
14
|
|
14
|
-
|
15
|
-
|
15
|
+
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
16
|
+
import {ModuleBase} from "../../base/ModuleBase.sol";
|
16
17
|
|
17
|
-
|
18
|
+
abstract contract PolicyModule is
|
19
|
+
ModuleBase,
|
20
|
+
IPolicyModule
|
21
|
+
{
|
18
22
|
|
19
23
|
// TODO find a better place to avoid dupliation
|
20
24
|
modifier onlyProductService2() {
|
@@ -25,9 +29,15 @@ abstract contract PolicyModule is IPolicyModule {
|
|
25
29
|
_;
|
26
30
|
}
|
27
31
|
|
28
|
-
function
|
29
|
-
|
32
|
+
function initializePolicyModule(IKeyValueStore keyValueStore) internal {
|
33
|
+
_initialize(keyValueStore);
|
34
|
+
}
|
35
|
+
|
36
|
+
function createPolicyInfo(
|
30
37
|
NftId policyNftId,
|
38
|
+
NftId productNftId,
|
39
|
+
ReferralId referralId,
|
40
|
+
RiskId riskId,
|
31
41
|
uint256 sumInsuredAmount,
|
32
42
|
uint256 premiumAmount,
|
33
43
|
uint256 lifetime,
|
@@ -37,40 +47,45 @@ abstract contract PolicyModule is IPolicyModule {
|
|
37
47
|
onlyProductService2
|
38
48
|
override
|
39
49
|
{
|
40
|
-
|
41
|
-
policyNftId,
|
50
|
+
PolicyInfo memory info = PolicyInfo(
|
42
51
|
productNftId,
|
43
52
|
bundleNftId,
|
53
|
+
referralId,
|
44
54
|
address(0), // beneficiary = policy nft holder
|
45
|
-
|
46
|
-
APPLIED(),
|
55
|
+
riskId,
|
47
56
|
sumInsuredAmount,
|
48
57
|
premiumAmount,
|
49
58
|
0, // premium paid amount
|
50
59
|
lifetime,
|
51
|
-
"", //
|
52
|
-
|
60
|
+
"", // applicationData
|
61
|
+
"", // policyData
|
53
62
|
zeroTimestamp(), // activatedAt
|
54
63
|
zeroTimestamp(), // expiredAt
|
55
|
-
zeroTimestamp()
|
56
|
-
blockNumber() // updatedIn
|
64
|
+
zeroTimestamp() // closedAt
|
57
65
|
);
|
58
66
|
|
59
|
-
|
67
|
+
_create(POLICY(), policyNftId, abi.encode(info));
|
60
68
|
}
|
61
69
|
|
62
|
-
function setPolicyInfo(PolicyInfo memory
|
70
|
+
function setPolicyInfo(NftId policyNftId, PolicyInfo memory info)
|
63
71
|
external
|
64
72
|
override
|
65
73
|
onlyProductService2
|
66
74
|
{
|
67
|
-
|
75
|
+
_updateData(POLICY(), policyNftId, abi.encode(info));
|
76
|
+
}
|
77
|
+
|
78
|
+
function updatePolicyState(NftId bundleNftId, StateId state)
|
79
|
+
external
|
80
|
+
override
|
81
|
+
onlyProductService2
|
82
|
+
{
|
83
|
+
_updateState(POLICY(), bundleNftId, state);
|
68
84
|
}
|
69
85
|
|
70
86
|
function getPolicyInfo(
|
71
87
|
NftId nftId
|
72
88
|
) external view returns (PolicyInfo memory info) {
|
73
|
-
return
|
89
|
+
return abi.decode(_getData(POLICY(), nftId), (PolicyInfo));
|
74
90
|
}
|
75
|
-
|
76
91
|
}
|
@@ -6,10 +6,10 @@ 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 {
|
12
|
-
NftId nftId;
|
13
13
|
bool isVerifying;
|
14
14
|
UFixed collateralizationLevel;
|
15
15
|
}
|
@@ -18,9 +18,8 @@ interface IPool {
|
|
18
18
|
interface IPoolModule is IPool {
|
19
19
|
|
20
20
|
function registerPool(
|
21
|
-
NftId
|
22
|
-
|
23
|
-
UFixed collateralizationLevel
|
21
|
+
NftId nftId,
|
22
|
+
PoolInfo memory info
|
24
23
|
) external;
|
25
24
|
|
26
25
|
function addBundleToPool(
|
@@ -37,5 +36,6 @@ interface IPoolModule is IPool {
|
|
37
36
|
function getBundleNftId(NftId poolNftId, uint256 index) external view returns (NftId bundleNftId);
|
38
37
|
|
39
38
|
// repeat service linked signatures to avoid linearization issues
|
39
|
+
function getComponentOwnerService() external view returns(IComponentOwnerService);
|
40
40
|
function getPoolService() external returns(IPoolService);
|
41
41
|
}
|
@@ -8,20 +8,34 @@ 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
|
|
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
|
+
|
25
39
|
modifier poolServiceCallingPool() {
|
26
40
|
require(
|
27
41
|
msg.sender == address(this.getPoolService()),
|
@@ -30,25 +44,19 @@ abstract contract PoolModule is
|
|
30
44
|
_;
|
31
45
|
}
|
32
46
|
|
47
|
+
function initializePoolModule(IKeyValueStore keyValueStore) internal {
|
48
|
+
_initialize(keyValueStore);
|
49
|
+
}
|
50
|
+
|
33
51
|
function registerPool(
|
34
52
|
NftId nftId,
|
35
|
-
|
36
|
-
UFixed collateralizationRate
|
53
|
+
PoolInfo memory info
|
37
54
|
)
|
38
55
|
public
|
56
|
+
onlyComponentOwnerService
|
39
57
|
override
|
40
58
|
{
|
41
|
-
|
42
|
-
_poolInfo[nftId].nftId.eqz(),
|
43
|
-
"ERROR:PL-010:ALREADY_CREATED");
|
44
|
-
|
45
|
-
_poolInfo[nftId] = PoolInfo(
|
46
|
-
nftId,
|
47
|
-
isVerifying,
|
48
|
-
collateralizationRate
|
49
|
-
);
|
50
|
-
|
51
|
-
// TODO add logging
|
59
|
+
_create(POOL(), nftId, abi.encode(info));
|
52
60
|
}
|
53
61
|
|
54
62
|
function addBundleToPool(
|
@@ -71,7 +79,7 @@ abstract contract PoolModule is
|
|
71
79
|
function getPoolInfo(
|
72
80
|
NftId nftId
|
73
81
|
) external view override returns (PoolInfo memory info) {
|
74
|
-
|
82
|
+
return abi.decode(_getData(POOL(), nftId), (PoolInfo));
|
75
83
|
}
|
76
84
|
|
77
85
|
|
@@ -1,10 +1,26 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
-
|
4
|
+
import {NftId} from "../../../types/NftId.sol";
|
5
|
+
import {RiskId} from "../../../types/RiskId.sol";
|
6
|
+
import {StateId} from "../../../types/StateId.sol";
|
5
7
|
|
8
|
+
interface IRisk {
|
9
|
+
struct RiskInfo {
|
10
|
+
NftId productNftId;
|
11
|
+
bytes data;
|
12
|
+
}
|
6
13
|
}
|
7
14
|
|
8
15
|
interface IRiskModule is IRisk {
|
9
|
-
|
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);
|
10
26
|
}
|
@@ -1,8 +1,62 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
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";
|
4
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
|
+
{
|
5
60
|
|
6
|
-
|
7
|
-
|
61
|
+
}
|
8
62
|
}
|
@@ -1,7 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@
|
4
|
+
import {IERC20Metadata} from "@openzeppelin5/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";
|
8
|
+
import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
|
5
9
|
|
6
10
|
import {NftId} from "../../../types/NftId.sol";
|
7
11
|
import {UFixed} from "../../../types/UFixed.sol";
|
@@ -13,73 +17,48 @@ interface ITreasury {
|
|
13
17
|
// TODO add events
|
14
18
|
// TODO add errors
|
15
19
|
|
16
|
-
|
17
|
-
|
18
|
-
NftId distributorNftId;
|
20
|
+
// treasury info is linked to product nft id
|
21
|
+
struct TreasuryInfo {
|
19
22
|
NftId poolNftId;
|
23
|
+
NftId distributionNftId;
|
20
24
|
IERC20Metadata token;
|
21
|
-
|
22
|
-
Fee
|
23
|
-
Fee
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
NftId distributorNftId;
|
28
|
-
address wallet;
|
29
|
-
Fee commissionFee;
|
30
|
-
}
|
31
|
-
|
32
|
-
struct PoolSetup {
|
33
|
-
NftId poolNftId;
|
34
|
-
address wallet;
|
35
|
-
Fee stakingFee;
|
36
|
-
Fee performanceFee;
|
25
|
+
Fee productFee; // product fee on net premium
|
26
|
+
Fee processingFee; // product fee on payout amounts
|
27
|
+
Fee poolFee; // pool fee on net premium
|
28
|
+
Fee stakingFee; // pool fee on staked capital from investor
|
29
|
+
Fee performanceFee; // pool fee on profits from capital investors
|
30
|
+
Fee distributionFee; // default distribution fee (no referral id)
|
37
31
|
}
|
38
32
|
}
|
39
33
|
|
40
34
|
interface ITreasuryModule is ITreasury {
|
41
35
|
|
42
|
-
function
|
36
|
+
function registerProductSetup(
|
43
37
|
NftId productNftId,
|
44
|
-
|
45
|
-
NftId poolNftId,
|
46
|
-
IERC20Metadata token,
|
47
|
-
address wallet,
|
48
|
-
Fee memory policyFee,
|
49
|
-
Fee memory processingFee
|
38
|
+
TreasuryInfo memory info
|
50
39
|
) external;
|
51
40
|
|
52
|
-
function
|
41
|
+
function setTreasuryInfo(
|
53
42
|
NftId productNftId,
|
54
|
-
|
55
|
-
Fee memory processingFee
|
43
|
+
TreasuryInfo memory info
|
56
44
|
) external;
|
57
45
|
|
58
|
-
function
|
59
|
-
NftId
|
60
|
-
|
61
|
-
Fee memory stakingFee,
|
62
|
-
Fee memory performanceFee
|
63
|
-
) external;
|
46
|
+
function hasTreasuryInfo(
|
47
|
+
NftId productNftId
|
48
|
+
) external view returns (bool hasInfo);
|
64
49
|
|
65
|
-
function
|
66
|
-
NftId
|
67
|
-
|
68
|
-
|
69
|
-
|
50
|
+
function getTreasuryInfo(
|
51
|
+
NftId productNftId
|
52
|
+
) external view returns (TreasuryInfo memory info);
|
53
|
+
|
54
|
+
function getProductNftId(
|
55
|
+
NftId componentNftId
|
56
|
+
) external view returns (NftId productNftId);
|
70
57
|
|
71
58
|
function getTokenHandler(
|
72
59
|
NftId componentNftId
|
73
60
|
) external view returns (TokenHandler tokenHandler);
|
74
61
|
|
75
|
-
function getProductSetup(
|
76
|
-
NftId productNftId
|
77
|
-
) external view returns (ProductSetup memory setup);
|
78
|
-
|
79
|
-
function getPoolSetup(
|
80
|
-
NftId poolNftId
|
81
|
-
) external view returns (PoolSetup memory setup);
|
82
|
-
|
83
62
|
function calculateFeeAmount(
|
84
63
|
uint256 amount,
|
85
64
|
Fee memory fee
|
@@ -90,7 +69,7 @@ interface ITreasuryModule is ITreasury {
|
|
90
69
|
uint256 fixedFee
|
91
70
|
) external pure returns (Fee memory fee);
|
92
71
|
|
93
|
-
function getZeroFee() external
|
72
|
+
function getZeroFee() external view returns (Fee memory fee);
|
94
73
|
|
95
74
|
function getUFixed(
|
96
75
|
uint256 a
|
@@ -100,4 +79,6 @@ interface ITreasuryModule is ITreasury {
|
|
100
79
|
uint256 a,
|
101
80
|
int8 exp
|
102
81
|
) external pure returns (UFixed);
|
82
|
+
|
83
|
+
function getComponentOwnerService() external view returns(IComponentOwnerService);
|
103
84
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@
|
4
|
+
import {IERC20Metadata} from "@openzeppelin5/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
6
|
import {NftId} from "../../../types/NftId.sol";
|
7
7
|
|