@etherisc/gif-next 0.0.2-e510b92-393 → 0.0.2-e545d2c-624
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/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +29 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +33 -102
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +29 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +33 -130
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +33 -113
- 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/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +45 -32
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +116 -0
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +99 -14
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +79 -665
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +244 -114
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +763 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2 -2
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +166 -173
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -78
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +15 -2
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +24 -32
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.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/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 +1031 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +436 -0
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +39 -52
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +49 -72
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +13 -37
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +720 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +13 -13
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +13 -13
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +771 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +12 -241
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +17 -241
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1156 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +492 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +32 -354
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +13 -57
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +40 -410
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +13 -81
- 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 +132 -133
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +94 -65
- 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 +145 -227
- 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 +30 -128
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +38 -104
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +530 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
- 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/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +13 -13
- 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 +2 -2
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +13 -13
- 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 +2 -2
- 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 +31 -31
- 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/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/BaseComponent.sol +35 -8
- package/contracts/components/Distribution.sol +2 -1
- package/contracts/components/IBaseComponent.sol +3 -0
- package/contracts/components/Pool.sol +11 -6
- package/contracts/components/Product.sol +22 -10
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
- package/contracts/instance/IInstance.sol +7 -1
- package/contracts/instance/IInstanceBase.sol +26 -0
- package/contracts/instance/IInstanceService.sol +10 -2
- package/contracts/instance/Instance.sol +32 -214
- package/contracts/instance/InstanceAccessManager.sol +93 -78
- package/contracts/instance/InstanceBase.sol +41 -0
- package/contracts/instance/InstanceService.sol +228 -115
- package/contracts/instance/InstanceServiceManager.sol +5 -8
- package/contracts/instance/ObjectManager.sol +7 -1
- package/contracts/instance/base/ComponentServiceBase.sol +29 -87
- package/contracts/instance/module/IAccess.sol +27 -17
- package/contracts/instance/service/BundleService.sol +294 -0
- package/contracts/instance/service/BundleServiceManager.sol +51 -0
- package/contracts/instance/service/ComponentOwnerService.sol +4 -6
- package/contracts/instance/service/DistributionService.sol +53 -21
- package/contracts/instance/service/DistributionServiceManager.sol +6 -9
- package/contracts/instance/service/IBundleService.sol +44 -0
- package/contracts/instance/service/IPolicyService.sol +94 -0
- package/contracts/instance/service/IPoolService.sol +2 -33
- package/contracts/instance/service/IProductService.sol +2 -72
- package/contracts/instance/service/PolicyService.sol +539 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +65 -207
- package/contracts/instance/service/PoolServiceManager.sol +5 -8
- package/contracts/instance/service/ProductService.sol +100 -457
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +26 -16
- package/contracts/registry/IRegistryService.sol +13 -5
- package/contracts/registry/Registry.sol +149 -201
- package/contracts/registry/RegistryAccessManager.sol +210 -0
- package/contracts/registry/RegistryService.sol +50 -88
- package/contracts/registry/RegistryServiceManager.sol +18 -36
- package/contracts/registry/ReleaseManager.sol +342 -0
- package/contracts/registry/TokenRegistry.sol +5 -6
- package/contracts/shared/IService.sol +2 -1
- package/contracts/shared/ProxyManager.sol +1 -1
- package/contracts/shared/Service.sol +10 -7
- package/contracts/test/TestService.sol +3 -2
- package/contracts/types/RoleId.sol +10 -10
- package/package.json +1 -1
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +0 -101
- 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/contracts/instance/AccessManagedSimple.sol +0 -115
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
@@ -14,7 +14,7 @@ import {Versionable} from "../../shared/Versionable.sol";
|
|
14
14
|
import {INftOwnable} from "../../shared/INftOwnable.sol";
|
15
15
|
|
16
16
|
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
17
|
-
import {POOL, BUNDLE} from "../../types/ObjectType.sol";
|
17
|
+
import {ObjectType, POOL, BUNDLE} from "../../types/ObjectType.sol";
|
18
18
|
import {POOL_OWNER_ROLE, RoleId} from "../../types/RoleId.sol";
|
19
19
|
import {Fee, FeeLib} from "../../types/Fee.sol";
|
20
20
|
import {Version, VersionLib} from "../../types/Version.sol";
|
@@ -29,6 +29,7 @@ import {IPoolService} from "./IPoolService.sol";
|
|
29
29
|
import {IRegistryService} from "../../registry/IRegistryService.sol";
|
30
30
|
import {InstanceService} from "../InstanceService.sol";
|
31
31
|
import {InstanceReader} from "../InstanceReader.sol";
|
32
|
+
import {IBaseComponent} from "../../components/IBaseComponent.sol";
|
32
33
|
|
33
34
|
string constant POOL_SERVICE_NAME = "PoolService";
|
34
35
|
|
@@ -38,8 +39,6 @@ contract PoolService is
|
|
38
39
|
{
|
39
40
|
using NftIdLib for NftId;
|
40
41
|
|
41
|
-
string public constant NAME = "PoolService";
|
42
|
-
|
43
42
|
address internal _registryAddress;
|
44
43
|
|
45
44
|
function _initialize(
|
@@ -50,26 +49,78 @@ contract PoolService is
|
|
50
49
|
initializer
|
51
50
|
virtual override
|
52
51
|
{
|
53
|
-
address
|
54
|
-
|
52
|
+
address registryAddress;
|
53
|
+
address initialOwner;
|
54
|
+
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
55
55
|
// TODO while PoolService is not deployed in PoolServiceManager constructor
|
56
56
|
// owner is PoolServiceManager deployer
|
57
|
-
_initializeService(
|
57
|
+
_initializeService(registryAddress, owner);
|
58
58
|
|
59
|
-
_registerInterface(type(IService).interfaceId);
|
60
59
|
_registerInterface(type(IPoolService).interfaceId);
|
61
60
|
}
|
62
61
|
|
63
|
-
function
|
64
|
-
return
|
62
|
+
function getDomain() public pure override(Service, IService) returns(ObjectType) {
|
63
|
+
return POOL();
|
65
64
|
}
|
66
65
|
|
67
|
-
function
|
68
|
-
|
69
|
-
|
70
|
-
|
66
|
+
function register(address poolAddress)
|
67
|
+
external
|
68
|
+
returns(NftId poolNftId)
|
69
|
+
{
|
70
|
+
address poolOwner = msg.sender;
|
71
|
+
IBaseComponent pool = IBaseComponent(poolAddress);
|
72
|
+
|
73
|
+
IRegistry.ObjectInfo memory info;
|
74
|
+
bytes memory data;
|
75
|
+
(info, data) = getRegistryService().registerPool(pool, poolOwner);
|
76
|
+
|
77
|
+
NftId instanceNftId = info.parentNftId;
|
78
|
+
IInstance instance = _getInstance(instanceNftId);
|
79
|
+
bool hasRole = getInstanceService().hasRole(
|
80
|
+
poolOwner,
|
81
|
+
POOL_OWNER_ROLE(),
|
82
|
+
address(instance));
|
83
|
+
|
84
|
+
if(!hasRole) {
|
85
|
+
revert ExpectedRoleMissing(POOL_OWNER_ROLE(), poolOwner);
|
86
|
+
}
|
87
|
+
|
88
|
+
poolNftId = info.nftId;
|
89
|
+
string memory poolName;
|
90
|
+
ISetup.PoolSetupInfo memory initialSetup;
|
91
|
+
(poolName, initialSetup) = _decodeAndVerifyPoolData(data);
|
92
|
+
instance.createPoolSetup(poolNftId, initialSetup);
|
93
|
+
|
94
|
+
getInstanceService().createTarget(instanceNftId, poolAddress, poolName);
|
95
|
+
|
96
|
+
pool.linkToRegisteredNftId();
|
97
|
+
}
|
98
|
+
|
99
|
+
function _decodeAndVerifyPoolData(bytes memory data)
|
100
|
+
internal
|
101
|
+
returns(string memory name, ISetup.PoolSetupInfo memory setup)
|
102
|
+
{
|
103
|
+
(name, setup) = abi.decode(
|
104
|
+
data,
|
105
|
+
(string, ISetup.PoolSetupInfo)
|
71
106
|
);
|
72
|
-
|
107
|
+
|
108
|
+
// TODO add checks
|
109
|
+
/*IRegistry _registry = getRegistry();
|
110
|
+
|
111
|
+
if(wallet == address(0)) {
|
112
|
+
revert WalletIsZero();
|
113
|
+
}
|
114
|
+
|
115
|
+
ObjectType tokenType = _registry.getObjectInfo(address(token)).objectType;
|
116
|
+
|
117
|
+
if(tokenType != TOKEN()) {
|
118
|
+
revert InvalidToken();
|
119
|
+
}
|
120
|
+
|
121
|
+
if(UFixedLib.eqz(info.collateralizationLevel)) {
|
122
|
+
revert CollateralizationLevelIsZero();
|
123
|
+
}*/
|
73
124
|
}
|
74
125
|
|
75
126
|
function setFees(
|
@@ -91,197 +142,4 @@ contract PoolService is
|
|
91
142
|
|
92
143
|
instance.updatePoolSetup(poolNftId, poolSetupInfo, KEEP_STATE());
|
93
144
|
}
|
94
|
-
|
95
|
-
function createBundle(
|
96
|
-
address owner,
|
97
|
-
Fee memory fee,
|
98
|
-
uint256 stakingAmount,
|
99
|
-
uint256 lifetime,
|
100
|
-
bytes calldata filter
|
101
|
-
)
|
102
|
-
external
|
103
|
-
override
|
104
|
-
returns(NftId bundleNftId)
|
105
|
-
{
|
106
|
-
(IRegistry.ObjectInfo memory info, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
|
107
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
108
|
-
NftId poolNftId = info.nftId;
|
109
|
-
|
110
|
-
IBundle.BundleInfo memory bundleInfo = IBundle.BundleInfo(
|
111
|
-
poolNftId,
|
112
|
-
fee,
|
113
|
-
filter,
|
114
|
-
stakingAmount,
|
115
|
-
0,
|
116
|
-
stakingAmount,
|
117
|
-
lifetime,
|
118
|
-
zeroTimestamp(),
|
119
|
-
zeroTimestamp()
|
120
|
-
);
|
121
|
-
|
122
|
-
// register bundle with registry
|
123
|
-
bundleNftId = getRegistryService().registerBundle(
|
124
|
-
IRegistry.ObjectInfo(
|
125
|
-
zeroNftId(),
|
126
|
-
poolNftId,
|
127
|
-
BUNDLE(),
|
128
|
-
false, // intercepting property for bundles is defined on pool
|
129
|
-
address(0),
|
130
|
-
owner,
|
131
|
-
abi.encode(bundleInfo)
|
132
|
-
)
|
133
|
-
);
|
134
|
-
|
135
|
-
// create bundle info in instance
|
136
|
-
instance.createBundle(bundleNftId, bundleInfo);
|
137
|
-
|
138
|
-
BundleManager bundleManager = instance.getBundleManager();
|
139
|
-
bundleManager.add(bundleNftId);
|
140
|
-
|
141
|
-
_processStakingByTreasury(
|
142
|
-
instanceReader,
|
143
|
-
poolNftId,
|
144
|
-
bundleNftId,
|
145
|
-
stakingAmount);
|
146
|
-
|
147
|
-
// TODO add logging
|
148
|
-
}
|
149
|
-
|
150
|
-
function setBundleFee(
|
151
|
-
NftId bundleNftId,
|
152
|
-
Fee memory fee
|
153
|
-
)
|
154
|
-
external
|
155
|
-
override
|
156
|
-
{
|
157
|
-
(IRegistry.ObjectInfo memory info , IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
|
158
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
159
|
-
NftId poolNftId = info.nftId;
|
160
|
-
|
161
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
162
|
-
require(bundleInfo.poolNftId.gtz(), "ERROR:PLS-010:BUNDLE_UNKNOWN");
|
163
|
-
require(poolNftId == bundleInfo.poolNftId, "ERROR:PLS-011:BUNDLE_POOL_MISMATCH");
|
164
|
-
|
165
|
-
bundleInfo.fee = fee;
|
166
|
-
|
167
|
-
instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
168
|
-
}
|
169
|
-
|
170
|
-
function updateBundle(NftId instanceNftId, NftId bundleNftId, IBundle.BundleInfo memory bundleInfo, StateId state)
|
171
|
-
external
|
172
|
-
onlyService
|
173
|
-
{
|
174
|
-
IRegistry.ObjectInfo memory instanceInfo = getRegistry().getObjectInfo(instanceNftId);
|
175
|
-
IInstance instance = IInstance(instanceInfo.objectAddress);
|
176
|
-
instance.updateBundle(bundleNftId, bundleInfo, state);
|
177
|
-
}
|
178
|
-
|
179
|
-
function lockBundle(NftId bundleNftId)
|
180
|
-
external
|
181
|
-
{
|
182
|
-
(, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
|
183
|
-
BundleManager bundleManager = instance.getBundleManager();
|
184
|
-
bundleManager.lock(bundleNftId);
|
185
|
-
}
|
186
|
-
|
187
|
-
function unlockBundle(NftId bundleNftId)
|
188
|
-
external
|
189
|
-
{
|
190
|
-
(, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
|
191
|
-
BundleManager bundleManager = instance.getBundleManager();
|
192
|
-
bundleManager.unlock(bundleNftId);
|
193
|
-
}
|
194
|
-
|
195
|
-
function underwritePolicy(IInstance instance,
|
196
|
-
NftId policyNftId,
|
197
|
-
NftId bundleNftId,
|
198
|
-
uint256 collateralAmount,
|
199
|
-
uint256 netPremiumAmount
|
200
|
-
)
|
201
|
-
external
|
202
|
-
onlyService
|
203
|
-
{
|
204
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
205
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
206
|
-
|
207
|
-
// lock collateral
|
208
|
-
bundleInfo.lockedAmount += collateralAmount;
|
209
|
-
bundleInfo.balanceAmount += netPremiumAmount;
|
210
|
-
|
211
|
-
instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
212
|
-
|
213
|
-
linkPolicy(instance, policyNftId);
|
214
|
-
}
|
215
|
-
|
216
|
-
/// @dev links policy to bundle
|
217
|
-
function linkPolicy(IInstance instance, NftId policyNftId)
|
218
|
-
internal
|
219
|
-
onlyService
|
220
|
-
{
|
221
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
222
|
-
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
223
|
-
|
224
|
-
// ensure policy has not yet been activated
|
225
|
-
if (policyInfo.activatedAt.gtz()) {
|
226
|
-
revert BundleManager.ErrorBundleManagerErrorPolicyAlreadyActivated(policyNftId);
|
227
|
-
}
|
228
|
-
|
229
|
-
BundleManager bundleManager = instance.getBundleManager();
|
230
|
-
bundleManager.linkPolicy(policyNftId);
|
231
|
-
}
|
232
|
-
|
233
|
-
/// @dev unlinks policy from bundle
|
234
|
-
function unlinkPolicy(IInstance instance, NftId policyNftId)
|
235
|
-
internal
|
236
|
-
onlyService
|
237
|
-
{
|
238
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
239
|
-
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
240
|
-
|
241
|
-
// ensure policy has no open claims
|
242
|
-
if (policyInfo.openClaimsCount > 0) {
|
243
|
-
revert BundleManager.ErrorBundleManagerPolicyWithOpenClaims(
|
244
|
-
policyNftId,
|
245
|
-
policyInfo.openClaimsCount);
|
246
|
-
}
|
247
|
-
|
248
|
-
// ensure policy is closeable
|
249
|
-
if (policyInfo.expiredAt < TimestampLib.blockTimestamp()
|
250
|
-
|| policyInfo.payoutAmount < policyInfo.sumInsuredAmount)
|
251
|
-
{
|
252
|
-
revert BundleManager.ErrorBundleManagerPolicyNotCloseable(policyNftId);
|
253
|
-
}
|
254
|
-
|
255
|
-
BundleManager bundleManager = instance.getBundleManager();
|
256
|
-
bundleManager.unlinkPolicy(policyNftId);
|
257
|
-
}
|
258
|
-
|
259
|
-
function _processStakingByTreasury(
|
260
|
-
InstanceReader instanceReader,
|
261
|
-
NftId poolNftId,
|
262
|
-
NftId bundleNftId,
|
263
|
-
uint256 stakingAmount
|
264
|
-
)
|
265
|
-
internal
|
266
|
-
{
|
267
|
-
// process token transfer(s)
|
268
|
-
if(stakingAmount > 0) {
|
269
|
-
ISetup.PoolSetupInfo memory poolInfo = instanceReader.getPoolSetupInfo(poolNftId);
|
270
|
-
TokenHandler tokenHandler = poolInfo.tokenHandler;
|
271
|
-
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
272
|
-
Fee memory stakingFee = poolInfo.stakingFee;
|
273
|
-
|
274
|
-
tokenHandler.transfer(
|
275
|
-
bundleOwner,
|
276
|
-
poolInfo.wallet,
|
277
|
-
stakingAmount
|
278
|
-
);
|
279
|
-
|
280
|
-
|
281
|
-
if (! FeeLib.feeIsZero(stakingFee)) {
|
282
|
-
(uint256 stakingFeeAmount, uint256 netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
|
283
|
-
// TODO: track staking fees in pool's state (issue #177)
|
284
|
-
}
|
285
|
-
}
|
286
|
-
}
|
287
145
|
}
|
@@ -6,7 +6,7 @@ import {ProxyManager} from "../../shared/ProxyManager.sol";
|
|
6
6
|
import {PoolService} from "./PoolService.sol";
|
7
7
|
import {Registry} from "../../registry/Registry.sol";
|
8
8
|
import {RegistryService} from "../../registry/RegistryService.sol";
|
9
|
-
import {
|
9
|
+
import {REGISTRY} from "../../types/ObjectType.sol";
|
10
10
|
|
11
11
|
contract PoolServiceManager is ProxyManager {
|
12
12
|
|
@@ -26,10 +26,10 @@ contract PoolServiceManager is ProxyManager {
|
|
26
26
|
|
27
27
|
_poolService = PoolService(address(versionable));
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
//
|
29
|
+
// TODO `this` must have a role or own nft to register service
|
30
|
+
//Registry registry = Registry(registryAddress);
|
31
|
+
//address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _poolService.getMajorVersion());
|
32
|
+
//RegistryService registryService = RegistryService(registryServiceAddress);
|
33
33
|
//registryService.registerService(_poolService);
|
34
34
|
|
35
35
|
// TODO no nft to link yet
|
@@ -37,9 +37,6 @@ contract PoolServiceManager is ProxyManager {
|
|
37
37
|
//_linkToNftOwnable(
|
38
38
|
// address(registryAddress),
|
39
39
|
// address(_poolService));
|
40
|
-
|
41
|
-
// implies that after this constructor call only upgrade functionality is available
|
42
|
-
_isDeployed = true;
|
43
40
|
}
|
44
41
|
|
45
42
|
//--- view functions ----------------------------------------------------//
|