@etherisc/gif-next 0.0.2-cbce707-667 → 0.0.2-cc18d4d-714
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 +63 -1
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/Component.sol/Component.json +656 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +311 -132
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → components/IComponent.sol/IComponent.json} +171 -158
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +445 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +522 -58
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +596 -5
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +299 -258
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +329 -155
- 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/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 +1289 -62
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +125 -19
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +175 -655
- 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 +75 -82
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +275 -127
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +38 -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} +137 -20
- 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/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- 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/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1102 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +449 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +161 -46
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +29 -28
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IBundleService.sol/IBundleService.json} +295 -46
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +13 -18
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +766 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +15 -82
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +25 -245
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1227 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +505 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +160 -150
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +29 -40
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +856 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +437 -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 +195 -224
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +221 -93
- 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 +208 -329
- 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 +75 -112
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +51 -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 +13 -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/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -5
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +13 -18
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +19 -6
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +19 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -11
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +26 -18
- 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/Versionable.sol/Versionable.dbg.json +1 -1
- 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 +19 -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 +44 -36
- 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/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/Fee.sol/FeeLib.dbg.json +1 -1
- 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/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/Referral.sol/ReferralLib.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 +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 +216 -0
- package/contracts/components/Distribution.sol +39 -52
- package/contracts/components/IComponent.sol +43 -0
- package/contracts/components/IDistributionComponent.sol +4 -3
- package/contracts/components/IPoolComponent.sol +7 -18
- package/contracts/components/IProductComponent.sol +7 -3
- package/contracts/components/Pool.sol +59 -98
- package/contracts/components/Product.sol +77 -108
- 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 +63 -237
- package/contracts/instance/InstanceAccessManager.sol +87 -78
- package/contracts/instance/InstanceReader.sol +12 -25
- package/contracts/instance/InstanceService.sol +348 -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 +3 -1
- package/contracts/instance/service/BundleService.sol +293 -0
- package/contracts/instance/service/BundleServiceManager.sol +51 -0
- package/contracts/instance/service/DistributionService.sol +43 -42
- package/contracts/instance/service/DistributionServiceManager.sol +10 -12
- package/contracts/instance/service/IBundleService.sol +44 -0
- package/contracts/instance/service/IPolicyService.sol +94 -0
- package/contracts/instance/service/IPoolService.sol +6 -23
- package/contracts/instance/service/IProductService.sol +6 -73
- package/contracts/instance/service/PolicyService.sol +538 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +39 -140
- 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 +35 -31
- package/contracts/registry/IRegistryService.sol +45 -13
- package/contracts/registry/Registry.sol +206 -243
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +83 -220
- package/contracts/registry/RegistryServiceManager.sol +18 -36
- package/contracts/registry/ReleaseManager.sol +332 -0
- package/contracts/registry/TokenRegistry.sol +8 -7
- package/contracts/shared/IRegisterable.sol +1 -3
- package/contracts/shared/IService.sol +2 -1
- package/contracts/shared/NftOwnable.sol +7 -4
- package/contracts/shared/ProxyManager.sol +1 -1
- package/contracts/shared/Registerable.sol +10 -14
- package/contracts/shared/Service.sol +14 -8
- package/contracts/test/TestService.sol +3 -2
- package/contracts/types/NftIdSet.sol +26 -24
- 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 -41
- 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,42 +1,36 @@
|
|
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 {
|
6
|
+
import {IBundleService} from "../instance/service/IBundleService.sol";
|
7
|
+
import {NftId, NftIdLib} from "../types/NftId.sol";
|
8
8
|
import {Fee} 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
|
19
|
+
abstract contract Pool is Component, IPoolComponent {
|
26
20
|
using NftIdLib for NftId;
|
27
21
|
|
28
|
-
bool internal
|
22
|
+
bool internal _isConfirmingApplication;
|
29
23
|
UFixed internal _collateralizationLevel;
|
30
24
|
|
31
25
|
Fee internal _initialPoolFee;
|
32
26
|
Fee internal _initialStakingFee;
|
33
27
|
Fee internal _initialPerformanceFee;
|
34
28
|
|
29
|
+
TokenHandler internal _tokenHandler;
|
30
|
+
|
35
31
|
// may be used to interact with instance by derived contracts
|
36
32
|
IPoolService internal _poolService;
|
37
|
-
|
38
|
-
// only relevant to protect callback functions for "active" pools
|
39
|
-
IProductService private _productService;
|
33
|
+
IBundleService private _bundleService;
|
40
34
|
|
41
35
|
modifier onlyPoolService() {
|
42
36
|
require(
|
@@ -45,62 +39,43 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
45
39
|
_;
|
46
40
|
}
|
47
41
|
|
48
|
-
modifier onlyProductService() {
|
49
|
-
require(
|
50
|
-
msg.sender == address(_productService),
|
51
|
-
"ERROR:POL-002:NOT_PRODUCT_SERVICE");
|
52
|
-
_;
|
53
|
-
}
|
54
|
-
|
55
42
|
constructor(
|
56
43
|
address registry,
|
57
44
|
NftId instanceNftId,
|
45
|
+
string memory name,
|
58
46
|
// TODO refactor into tokenNftId
|
59
47
|
address token,
|
60
48
|
bool isInterceptor,
|
61
|
-
bool
|
49
|
+
bool isConfirmingApplication,
|
62
50
|
UFixed collateralizationLevel,
|
63
51
|
Fee memory poolFee,
|
64
52
|
Fee memory stakingFee,
|
65
53
|
Fee memory performanceFee,
|
66
|
-
address initialOwner
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
54
|
+
address initialOwner,
|
55
|
+
bytes memory data
|
56
|
+
) Component(
|
57
|
+
registry,
|
58
|
+
instanceNftId,
|
59
|
+
name,
|
60
|
+
token,
|
61
|
+
POOL(),
|
62
|
+
isInterceptor,
|
63
|
+
initialOwner,
|
64
|
+
data
|
65
|
+
) {
|
66
|
+
_isConfirmingApplication = isConfirmingApplication;
|
71
67
|
// TODO add validation
|
72
68
|
_collateralizationLevel = collateralizationLevel;
|
73
69
|
_initialPoolFee = poolFee;
|
74
70
|
_initialStakingFee = stakingFee;
|
75
71
|
_initialPerformanceFee = performanceFee;
|
76
72
|
|
77
|
-
|
78
|
-
// TODO: reactivate when services are available again
|
79
|
-
// _productService = _instance.getProductService();
|
80
|
-
|
81
|
-
_registerInterface(type(IPoolComponent).interfaceId);
|
82
|
-
}
|
73
|
+
_tokenHandler = new TokenHandler(token);
|
83
74
|
|
84
|
-
|
85
|
-
|
86
|
-
uint256 initialAmount,
|
87
|
-
uint256 lifetime,
|
88
|
-
bytes memory filter
|
89
|
-
)
|
90
|
-
external
|
91
|
-
virtual override
|
92
|
-
returns(NftId bundleNftId)
|
93
|
-
{
|
94
|
-
address owner = msg.sender;
|
95
|
-
bundleNftId = _poolService.createBundle(
|
96
|
-
owner,
|
97
|
-
fee,
|
98
|
-
initialAmount,
|
99
|
-
lifetime,
|
100
|
-
filter
|
101
|
-
);
|
75
|
+
_poolService = getInstance().getPoolService();
|
76
|
+
_bundleService = getInstance().getBundleService();
|
102
77
|
|
103
|
-
|
78
|
+
_registerInterface(type(IPoolComponent).interfaceId);
|
104
79
|
}
|
105
80
|
|
106
81
|
/**
|
@@ -114,7 +89,7 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
114
89
|
uint256 collateralizationAmount
|
115
90
|
)
|
116
91
|
external
|
117
|
-
|
92
|
+
restricted()
|
118
93
|
virtual override
|
119
94
|
{
|
120
95
|
_underwrite(policyNftId, policyData, bundleFilter, collateralizationAmount);
|
@@ -137,8 +112,8 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
137
112
|
}
|
138
113
|
|
139
114
|
|
140
|
-
function
|
141
|
-
return
|
115
|
+
function isConfirmingApplication() external view override returns (bool isConfirmingApplication) {
|
116
|
+
return _isConfirmingApplication;
|
142
117
|
}
|
143
118
|
|
144
119
|
function getCollateralizationLevel() external view override returns (UFixed collateralizationLevel) {
|
@@ -152,59 +127,45 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
152
127
|
)
|
153
128
|
external
|
154
129
|
onlyOwner
|
130
|
+
restricted()
|
155
131
|
override
|
156
132
|
{
|
157
133
|
_poolService.setFees(poolFee, stakingFee, performanceFee);
|
158
134
|
}
|
159
135
|
|
160
|
-
function
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
136
|
+
function _setBundleFee(NftId bundleNftId, Fee memory fee) internal {
|
137
|
+
_bundleService.setBundleFee(bundleNftId, fee);
|
138
|
+
}
|
139
|
+
|
140
|
+
function _lockBundle(NftId bundleNftId) internal {
|
141
|
+
_bundleService.lockBundle(bundleNftId);
|
142
|
+
}
|
143
|
+
|
144
|
+
function _unlockBundle(NftId bundleNftId) internal {
|
145
|
+
_bundleService.unlockBundle(bundleNftId);
|
146
|
+
}
|
147
|
+
|
148
|
+
function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
|
149
|
+
InstanceReader reader = getInstance().getInstanceReader();
|
150
|
+
setupInfo = reader.getPoolSetupInfo(getNftId());
|
151
|
+
|
152
|
+
// fallback to initial setup info (wallet is always != address(0))
|
153
|
+
if(setupInfo.wallet == address(0)) {
|
154
|
+
setupInfo = _getInitialSetupInfo();
|
155
|
+
}
|
169
156
|
}
|
170
157
|
|
171
|
-
function
|
158
|
+
function _getInitialSetupInfo() internal view returns (ISetup.PoolSetupInfo memory) {
|
172
159
|
return ISetup.PoolSetupInfo(
|
173
|
-
|
174
|
-
|
160
|
+
getProductNftId(),
|
161
|
+
_tokenHandler,
|
175
162
|
_collateralizationLevel,
|
176
163
|
_initialPoolFee,
|
177
164
|
_initialStakingFee,
|
178
165
|
_initialPerformanceFee,
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
}
|
183
|
-
function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
|
184
|
-
InstanceReader reader = _instance.getInstanceReader();
|
185
|
-
return reader.getPoolSetupInfo(getNftId());
|
186
|
-
}
|
187
|
-
|
188
|
-
// from IRegisterable
|
189
|
-
|
190
|
-
// TODO used only once, occupies space
|
191
|
-
// TODO do not use super
|
192
|
-
function getInitialInfo()
|
193
|
-
public
|
194
|
-
view
|
195
|
-
override (IRegisterable, Registerable)
|
196
|
-
returns (IRegistry.ObjectInfo memory, bytes memory)
|
197
|
-
{
|
198
|
-
(
|
199
|
-
IRegistry.ObjectInfo memory info,
|
200
|
-
bytes memory data
|
201
|
-
) = super.getInitialInfo();
|
202
|
-
|
203
|
-
return (
|
204
|
-
info,
|
205
|
-
abi.encode(
|
206
|
-
getInitialSetupInfo()
|
207
|
-
)
|
166
|
+
false,
|
167
|
+
_isConfirmingApplication,
|
168
|
+
getWallet()
|
208
169
|
);
|
209
170
|
}
|
210
171
|
|
@@ -236,7 +197,7 @@ contract Pool is BaseComponent, IPoolComponent {
|
|
236
197
|
internal
|
237
198
|
returns(NftId bundleNftId)
|
238
199
|
{
|
239
|
-
bundleNftId =
|
200
|
+
bundleNftId = _bundleService.createBundle(
|
240
201
|
bundleOwner,
|
241
202
|
fee,
|
242
203
|
amount,
|
@@ -4,37 +4,33 @@ pragma solidity ^0.8.19;
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
6
|
import {IRisk} from "../instance/module/IRisk.sol";
|
7
|
-
import {
|
8
|
-
import {IProductService} from "../instance/service/IProductService.sol";
|
7
|
+
import {IPolicyService} from "../instance/service/IPolicyService.sol";
|
9
8
|
import {IProductComponent} from "./IProductComponent.sol";
|
10
|
-
import {NftId,
|
11
|
-
import {
|
9
|
+
import {NftId, NftIdLib} from "../types/NftId.sol";
|
10
|
+
import {PRODUCT} from "../types/ObjectType.sol";
|
12
11
|
import {ReferralId} from "../types/Referral.sol";
|
13
12
|
import {RiskId, RiskIdLib} from "../types/RiskId.sol";
|
14
13
|
import {StateId} from "../types/StateId.sol";
|
15
14
|
import {Timestamp} from "../types/Timestamp.sol";
|
16
|
-
import {Fee
|
17
|
-
import {
|
15
|
+
import {Fee} from "../types/Fee.sol";
|
16
|
+
import {Component} from "./Component.sol";
|
18
17
|
|
19
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
20
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
21
|
-
import {Registerable} from "../shared/Registerable.sol";
|
22
18
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
23
19
|
|
24
20
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
25
21
|
import {ISetup} from "../instance/module/ISetup.sol";
|
26
22
|
import {Pool} from "../components/Pool.sol";
|
23
|
+
import {Distribution} from "../components/Distribution.sol";
|
27
24
|
|
28
|
-
|
29
|
-
|
30
|
-
contract Product is BaseComponent, IProductComponent {
|
25
|
+
abstract contract Product is Component, IProductComponent {
|
31
26
|
using NftIdLib for NftId;
|
32
27
|
|
33
|
-
|
28
|
+
IPolicyService internal _policyService;
|
34
29
|
Pool internal _pool;
|
35
|
-
|
30
|
+
Distribution internal _distribution;
|
36
31
|
Fee internal _initialProductFee;
|
37
32
|
Fee internal _initialProcessingFee;
|
33
|
+
TokenHandler internal _tokenHandler;
|
38
34
|
|
39
35
|
NftId internal _poolNftId;
|
40
36
|
NftId internal _distributionNftId;
|
@@ -42,24 +38,36 @@ contract Product is BaseComponent, IProductComponent {
|
|
42
38
|
constructor(
|
43
39
|
address registry,
|
44
40
|
NftId instanceNftid,
|
41
|
+
string memory name,
|
45
42
|
address token,
|
46
43
|
bool isInterceptor,
|
47
44
|
address pool,
|
48
45
|
address distribution,
|
49
46
|
Fee memory productFee,
|
50
47
|
Fee memory processingFee,
|
51
|
-
address initialOwner
|
52
|
-
|
48
|
+
address initialOwner,
|
49
|
+
bytes memory data
|
50
|
+
) Component (
|
51
|
+
registry,
|
52
|
+
instanceNftid,
|
53
|
+
name,
|
54
|
+
token,
|
55
|
+
PRODUCT(),
|
56
|
+
isInterceptor,
|
57
|
+
initialOwner,
|
58
|
+
data
|
59
|
+
) {
|
53
60
|
// TODO add validation
|
54
|
-
|
55
|
-
// _productService = _instance.getProductService();
|
61
|
+
_policyService = getInstance().getPolicyService();
|
56
62
|
_pool = Pool(pool);
|
57
|
-
_distribution = distribution;
|
63
|
+
_distribution = Distribution(distribution);
|
58
64
|
_initialProductFee = productFee;
|
59
65
|
_initialProcessingFee = processingFee;
|
60
66
|
|
67
|
+
_tokenHandler = new TokenHandler(token);
|
68
|
+
|
61
69
|
_poolNftId = getRegistry().getNftId(address(_pool));
|
62
|
-
_distributionNftId = getRegistry().getNftId(_distribution);
|
70
|
+
_distributionNftId = getRegistry().getNftId(address(_distribution));
|
63
71
|
|
64
72
|
_registerInterface(type(IProductComponent).interfaceId);
|
65
73
|
}
|
@@ -70,15 +78,15 @@ contract Product is BaseComponent, IProductComponent {
|
|
70
78
|
RiskId riskId,
|
71
79
|
uint256 lifetime,
|
72
80
|
bytes memory applicationData,
|
73
|
-
|
74
|
-
|
81
|
+
NftId bundleNftId,
|
82
|
+
ReferralId referralId
|
75
83
|
)
|
76
84
|
external
|
77
85
|
view
|
78
86
|
override
|
79
87
|
returns (uint256 premiumAmount)
|
80
88
|
{
|
81
|
-
(premiumAmount,,,,) =
|
89
|
+
(premiumAmount,,,,) = _policyService.calculatePremium(
|
82
90
|
riskId,
|
83
91
|
sumInsuredAmount,
|
84
92
|
lifetime,
|
@@ -112,19 +120,19 @@ contract Product is BaseComponent, IProductComponent {
|
|
112
120
|
RiskId id,
|
113
121
|
bytes memory data
|
114
122
|
) internal {
|
115
|
-
|
123
|
+
getProductService().createRisk(
|
116
124
|
id,
|
117
125
|
data
|
118
126
|
);
|
119
127
|
}
|
120
128
|
|
121
|
-
function
|
129
|
+
function _updateRisk(
|
122
130
|
RiskId id,
|
123
|
-
|
131
|
+
bytes memory data
|
124
132
|
) internal {
|
125
|
-
|
133
|
+
getProductService().updateRisk(
|
126
134
|
id,
|
127
|
-
|
135
|
+
data
|
128
136
|
);
|
129
137
|
}
|
130
138
|
|
@@ -132,14 +140,14 @@ contract Product is BaseComponent, IProductComponent {
|
|
132
140
|
RiskId id,
|
133
141
|
StateId state
|
134
142
|
) internal {
|
135
|
-
|
143
|
+
getProductService().updateRiskState(
|
136
144
|
id,
|
137
145
|
state
|
138
146
|
);
|
139
147
|
}
|
140
148
|
|
141
149
|
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
142
|
-
return
|
150
|
+
return getInstance().getInstanceReader().getRiskInfo(id);
|
143
151
|
}
|
144
152
|
|
145
153
|
function _createApplication(
|
@@ -151,7 +159,7 @@ contract Product is BaseComponent, IProductComponent {
|
|
151
159
|
NftId bundleNftId,
|
152
160
|
ReferralId referralId
|
153
161
|
) internal returns (NftId nftId) {
|
154
|
-
nftId =
|
162
|
+
nftId = _policyService.createApplication(
|
155
163
|
applicationOwner,
|
156
164
|
riskId,
|
157
165
|
sumInsuredAmount,
|
@@ -169,7 +177,7 @@ contract Product is BaseComponent, IProductComponent {
|
|
169
177
|
)
|
170
178
|
internal
|
171
179
|
{
|
172
|
-
|
180
|
+
_policyService.underwrite(
|
173
181
|
policyNftId,
|
174
182
|
requirePremiumPayment,
|
175
183
|
activateAt);
|
@@ -181,7 +189,7 @@ contract Product is BaseComponent, IProductComponent {
|
|
181
189
|
)
|
182
190
|
internal
|
183
191
|
{
|
184
|
-
|
192
|
+
_policyService.collectPremium(
|
185
193
|
policyNftId,
|
186
194
|
activateAt);
|
187
195
|
}
|
@@ -192,17 +200,25 @@ contract Product is BaseComponent, IProductComponent {
|
|
192
200
|
)
|
193
201
|
internal
|
194
202
|
{
|
195
|
-
|
203
|
+
_policyService.activate(
|
196
204
|
policyNftId,
|
197
205
|
activateAt);
|
198
206
|
}
|
199
207
|
|
208
|
+
function _close(
|
209
|
+
NftId policyNftId
|
210
|
+
)
|
211
|
+
internal
|
212
|
+
{
|
213
|
+
_policyService.close(policyNftId);
|
214
|
+
}
|
215
|
+
|
200
216
|
function getPoolNftId() external view override returns (NftId poolNftId) {
|
201
217
|
return getRegistry().getNftId(address(_pool));
|
202
218
|
}
|
203
219
|
|
204
220
|
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
205
|
-
return getRegistry().getNftId(_distribution);
|
221
|
+
return getRegistry().getNftId(address(_distribution));
|
206
222
|
}
|
207
223
|
|
208
224
|
// from product component
|
@@ -212,86 +228,39 @@ contract Product is BaseComponent, IProductComponent {
|
|
212
228
|
)
|
213
229
|
external
|
214
230
|
onlyOwner
|
231
|
+
restricted()
|
215
232
|
override
|
216
233
|
{
|
217
|
-
|
234
|
+
getProductService().setFees(productFee, processingFee);
|
218
235
|
}
|
219
236
|
|
220
237
|
function getSetupInfo() public view returns (ISetup.ProductSetupInfo memory setupInfo) {
|
221
|
-
|
222
|
-
|
223
|
-
_token,
|
224
|
-
TokenHandler(address(0)),
|
225
|
-
_distributionNftId,
|
226
|
-
_poolNftId,
|
227
|
-
FeeLib.zeroFee(), //_instance.getDistributionFee(_distributionNftId)
|
228
|
-
_initialProductFee,
|
229
|
-
_initialProcessingFee,
|
230
|
-
FeeLib.zeroFee(), //_instance.getPoolFee(_poolNftId)
|
231
|
-
FeeLib.zeroFee(), //_instance.getStakingFee(_poolNftId)
|
232
|
-
FeeLib.zeroFee() //_instance.getPerformanceFee(_poolNftId)
|
233
|
-
);
|
234
|
-
}
|
235
|
-
|
236
|
-
InstanceReader reader = _instance.getInstanceReader();
|
237
|
-
return reader.getProductSetupInfo(getNftId());
|
238
|
-
}
|
238
|
+
InstanceReader reader = getInstance().getInstanceReader();
|
239
|
+
setupInfo = reader.getProductSetupInfo(getNftId());
|
239
240
|
|
240
|
-
|
241
|
+
// fallback to initial setup info (wallet is always != address(0))
|
242
|
+
if(setupInfo.wallet == address(0)) {
|
243
|
+
setupInfo = _getInitialSetupInfo();
|
244
|
+
}
|
245
|
+
}
|
241
246
|
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
//require(getRegistry().getObjectInfo(_poolNftId).objectType == POOL(), "POOL_NOT_REGISTERED");
|
260
|
-
//require(getRegistry().getObjectInfo(_distributionNftId).objectType == DISTRIBUTION(), "DISTRIBUTION_NOT_REGISTERED");
|
261
|
-
|
262
|
-
// from PoolComponent
|
263
|
-
(
|
264
|
-
IRegistry.ObjectInfo memory poolInfo,
|
265
|
-
bytes memory poolData
|
266
|
-
) = _pool.getInitialInfo();
|
267
|
-
|
268
|
-
(
|
269
|
-
/*IPool.PoolInfo memory info*/,
|
270
|
-
/*address wallet*/,
|
271
|
-
/*IERC20Metadata token*/,
|
272
|
-
Fee memory initialPoolFee,
|
273
|
-
Fee memory initialStakingFee,
|
274
|
-
Fee memory initialPerformanceFee
|
275
|
-
) = abi.decode(poolData, (ISetup.PoolSetupInfo, address, IERC20Metadata, Fee, Fee, Fee));
|
276
|
-
|
277
|
-
// TODO from DistributionComponent
|
278
|
-
|
279
|
-
return (
|
280
|
-
productInfo,
|
281
|
-
abi.encode(
|
282
|
-
ISetup.ProductSetupInfo(
|
283
|
-
_token,
|
284
|
-
TokenHandler(address(0)),
|
285
|
-
_distributionNftId,
|
286
|
-
_poolNftId,
|
287
|
-
FeeLib.zeroFee(), //_instance.getDistributionFee(_distributionNftId)
|
288
|
-
_initialProductFee,
|
289
|
-
_initialProcessingFee,
|
290
|
-
initialPoolFee,
|
291
|
-
initialStakingFee,
|
292
|
-
initialPerformanceFee
|
293
|
-
)
|
294
|
-
)
|
247
|
+
function _getInitialSetupInfo() internal view returns (ISetup.ProductSetupInfo memory setupInfo) {
|
248
|
+
ISetup.DistributionSetupInfo memory distributionSetupInfo = _distribution.getSetupInfo();
|
249
|
+
ISetup.PoolSetupInfo memory poolSetupInfo = _pool.getSetupInfo();
|
250
|
+
|
251
|
+
return ISetup.ProductSetupInfo(
|
252
|
+
getToken(),
|
253
|
+
_tokenHandler,
|
254
|
+
_distributionNftId,
|
255
|
+
_poolNftId,
|
256
|
+
distributionSetupInfo.distributionFee,
|
257
|
+
_initialProductFee,
|
258
|
+
_initialProcessingFee,
|
259
|
+
poolSetupInfo.poolFee,
|
260
|
+
poolSetupInfo.stakingFee,
|
261
|
+
poolSetupInfo.performanceFee,
|
262
|
+
false,
|
263
|
+
getWallet()
|
295
264
|
);
|
296
265
|
}
|
297
266
|
}
|