@etherisc/gif-next 0.0.2-743affe-003 → 0.0.2-7878646-744
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 +11 -0
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +90 -2
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +118 -6
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +80 -3
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -166
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -166
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -166
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +120 -6
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +118 -6
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -286
- 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 +154 -399
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +90 -2
- 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/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IService.sol/IService.json +80 -3
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +90 -2
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +90 -2
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +2 -2
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -13
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -13
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +2 -2
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/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/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +177 -40
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +120 -16
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +80 -3
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +80 -3
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +80 -3
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +80 -3
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +122 -18
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +146 -42
- 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/IChainNft.sol/IChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +40 -167
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +214 -10
- 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 +66 -188
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +415 -31
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +496 -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 +80 -3
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- 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 +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +121 -82
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +120 -6
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +1 -1
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +118 -6
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +4 -4
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +120 -6
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +120 -8
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +120 -6
- 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 +126 -14
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +2 -2
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/test/Usdc.sol/USDC.json +91 -53
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +4 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/{UFixedMathLib.json → UFixedLib.json} +3 -3
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/contracts/components/BaseComponent.sol +1 -1
- package/contracts/components/IBaseComponent.sol +1 -1
- package/contracts/components/IDistributionComponent.sol +1 -2
- package/contracts/components/IPoolComponent.sol +1 -2
- package/contracts/components/IProductComponent.sol +1 -3
- package/contracts/components/Product.sol +4 -4
- package/contracts/experiment/cloning/Cloner.sol +47 -0
- package/contracts/instance/IInstance.sol +5 -7
- package/contracts/instance/Instance.sol +4 -6
- package/contracts/instance/base/ServiceBase.sol +1 -0
- package/contracts/instance/module/component/ComponentModule.sol +1 -1
- package/contracts/instance/module/component/IComponent.sol +1 -1
- package/contracts/instance/module/policy/IPolicy.sol +1 -1
- package/contracts/instance/module/treasury/ITreasury.sol +1 -1
- package/contracts/instance/module/treasury/TokenHandler.sol +1 -1
- package/contracts/instance/module/treasury/TreasuryModule.sol +4 -4
- package/contracts/instance/service/ComponentOwnerService.sol +73 -30
- package/contracts/instance/service/ProductService.sol +7 -6
- package/contracts/registry/ChainNft.sol +2 -2
- package/contracts/registry/IChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +7 -25
- package/contracts/registry/IRegistryService.sol +9 -3
- package/contracts/registry/Registry.sol +78 -157
- package/contracts/registry/RegistryService.sol +179 -121
- package/contracts/registry/RegistryServiceManager.sol +64 -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 +3 -8
- package/contracts/shared/NftOwnable.sol +136 -0
- package/contracts/shared/ProxyManager.sol +16 -37
- package/contracts/shared/Registerable.sol +14 -42
- package/contracts/shared/UpgradableProxyWithAdmin.sol +2 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/test/TestFee.sol +2 -2
- package/contracts/types/Fee.sol +3 -3
- package/contracts/types/RoleId.sol +7 -0
- package/contracts/types/UFixed.sol +128 -12
- package/package.json +4 -3
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.json +0 -10
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
- package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.json +0 -344
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/contracts/instance/module/access/Access.sol +0 -149
- package/contracts/instance/module/access/IAccess.sol +0 -53
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/registry/RegistryInstaller.sol +0 -100
- package/contracts/shared/IOwnable.sol +0 -6
@@ -0,0 +1,47 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
|
+
|
6
|
+
|
7
|
+
contract Cloner {
|
8
|
+
|
9
|
+
Mock1 public mock1;
|
10
|
+
Mock2 public mock2;
|
11
|
+
|
12
|
+
constructor() {
|
13
|
+
mock1 = new Mock1();
|
14
|
+
mock2 = new Mock2();
|
15
|
+
}
|
16
|
+
|
17
|
+
function createClone(address master)
|
18
|
+
external
|
19
|
+
returns (address cloned)
|
20
|
+
{
|
21
|
+
cloned = Clones.clone(master);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
|
26
|
+
contract Mock1 {
|
27
|
+
function getValue() external virtual view returns (uint256) {
|
28
|
+
return 42;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
contract Mock2 is Mock1 {
|
33
|
+
uint256 internal _value;
|
34
|
+
|
35
|
+
constructor() {
|
36
|
+
_value = 42;
|
37
|
+
}
|
38
|
+
|
39
|
+
function setValue(uint256 value) external virtual {
|
40
|
+
_value = value;
|
41
|
+
}
|
42
|
+
|
43
|
+
function getValue() external virtual override view returns (uint256) {
|
44
|
+
return _value;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
@@ -1,14 +1,13 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
-
import {IERC165} from "@
|
4
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
5
|
|
6
|
+
import {INftOwnable} from "../shared/INftOwnable.sol";
|
6
7
|
import {IVersionable} from "../shared/IVersionable.sol";
|
7
8
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
8
|
-
import {IOwnable} from "../shared/IOwnable.sol";
|
9
9
|
import {RoleId} from "../types/RoleId.sol";
|
10
10
|
|
11
|
-
import {IAccessModule} from "./module/access/IAccess.sol";
|
12
11
|
import {IBundleModule} from "./module/bundle/IBundle.sol";
|
13
12
|
import {IDistributionModule} from "./module/distribution/IDistribution.sol";
|
14
13
|
import {IComponentModule} from "./module/component/IComponent.sol";
|
@@ -18,7 +17,7 @@ import {IRiskModule} from "./module/risk/IRisk.sol";
|
|
18
17
|
import {ITreasuryModule} from "./module/treasury/ITreasury.sol";
|
19
18
|
|
20
19
|
import {IKeyValueStore} from "./base/IKeyValueStore.sol";
|
21
|
-
import {IRegistry} from "../registry/
|
20
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
22
21
|
|
23
22
|
import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
|
24
23
|
import {IDistributionService} from "./service/IDistributionService.sol";
|
@@ -31,7 +30,6 @@ interface IInstance is
|
|
31
30
|
IERC165,
|
32
31
|
IVersionable,
|
33
32
|
IRegisterable,
|
34
|
-
IAccessModule,
|
35
33
|
IPolicyModule,
|
36
34
|
IPoolModule,
|
37
35
|
IRiskModule,
|
@@ -41,8 +39,8 @@ interface IInstance is
|
|
41
39
|
IDistributionModule,
|
42
40
|
IInstanceBase
|
43
41
|
{
|
44
|
-
function getRegistry() external view override (
|
45
|
-
function getOwner() external view override
|
42
|
+
function getRegistry() external view override (INftOwnable) returns (IRegistry registry);
|
43
|
+
function getOwner() external view override returns(address owner);
|
46
44
|
|
47
45
|
function getKeyValueStore() external view override (IInstanceBase) returns (IKeyValueStore keyValueStore);
|
48
46
|
|
@@ -2,10 +2,11 @@
|
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
4
|
import {NftId} from "../types/NftId.sol";
|
5
|
+
import {INftOwnable} from "../shared/INftOwnable.sol";
|
6
|
+
import {NftOwnable} from "../shared/NftOwnable.sol";
|
5
7
|
import {RoleId} from "../types/RoleId.sol";
|
6
8
|
|
7
9
|
import {InstanceBase} from "./base/InstanceBase.sol";
|
8
|
-
import {AccessModule} from "./module/access/Access.sol";
|
9
10
|
import {ComponentModule} from "./module/component/ComponentModule.sol";
|
10
11
|
import {DistributionModule} from "./module/distribution/DistributionModule.sol";
|
11
12
|
import {PolicyModule} from "./module/policy/PolicyModule.sol";
|
@@ -16,7 +17,6 @@ import {TreasuryModule} from "./module/treasury/TreasuryModule.sol";
|
|
16
17
|
|
17
18
|
import {IRegistry} from "../registry/IRegistry.sol";
|
18
19
|
import {Registerable} from "../shared/Registerable.sol";
|
19
|
-
import {IAccessModule} from "./module/access/IAccess.sol";
|
20
20
|
import {IBundleModule} from "./module/bundle/IBundle.sol";
|
21
21
|
import {IComponentModule} from "./module/component/IComponent.sol";
|
22
22
|
import {IPoolModule} from "./module/pool/IPoolModule.sol";
|
@@ -33,7 +33,6 @@ import {IKeyValueStore} from "./base/IKeyValueStore.sol";
|
|
33
33
|
|
34
34
|
contract Instance is
|
35
35
|
InstanceBase,
|
36
|
-
AccessModule,
|
37
36
|
BundleModule,
|
38
37
|
ComponentModule,
|
39
38
|
DistributionModule,
|
@@ -48,7 +47,6 @@ contract Instance is
|
|
48
47
|
address initialOwner
|
49
48
|
)
|
50
49
|
InstanceBase(registry, registryNftId, initialOwner)
|
51
|
-
AccessModule()
|
52
50
|
BundleModule()
|
53
51
|
DistributionModule()
|
54
52
|
ComponentModule()
|
@@ -72,7 +70,7 @@ contract Instance is
|
|
72
70
|
_;
|
73
71
|
}
|
74
72
|
|
75
|
-
function getRegistry() public view override (
|
73
|
+
function getRegistry() public view override (INftOwnable, NftOwnable) returns (IRegistry registry) { return super.getRegistry(); }
|
76
74
|
|
77
75
|
function getKeyValueStore() public view override (InstanceBase) returns (IKeyValueStore keyValueStore) { return super.getKeyValueStore(); }
|
78
76
|
|
@@ -81,5 +79,5 @@ contract Instance is
|
|
81
79
|
function getProductService() external view override (IBundleModule, IPolicyModule, IInstanceBase) returns(IProductService service) { return _productService; }
|
82
80
|
function getPoolService() external view override (IBundleModule, IPoolModule, IInstanceBase) returns(IPoolService service) { return _poolService; }
|
83
81
|
|
84
|
-
function getOwner() public view override (
|
82
|
+
function getOwner() public view override (INftOwnable, NftOwnable) returns(address owner) { return super.getOwner(); }
|
85
83
|
}
|
@@ -6,6 +6,7 @@ import {ObjectType, SERVICE} from "../../types/ObjectType.sol";
|
|
6
6
|
import {Version, VersionPart, VersionLib} from "../../types/Version.sol";
|
7
7
|
|
8
8
|
import {Registerable} from "../../shared/Registerable.sol";
|
9
|
+
import {IRegistry} from "../../registry/IRegistry.sol";
|
9
10
|
import {IVersionable} from "../../shared/IVersionable.sol";
|
10
11
|
import {Versionable} from "../../shared/Versionable.sol";
|
11
12
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
6
6
|
import {IComponentModule} from "./IComponent.sol";
|
7
7
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
|
6
6
|
|
7
7
|
import {StateId} from "../../../types/StateId.sol";
|
@@ -56,7 +56,7 @@ interface IPolicyModule is IPolicy {
|
|
56
56
|
) external view returns (PolicyInfo memory info);
|
57
57
|
|
58
58
|
// repeat registry linked signature
|
59
|
-
function getRegistry() external view returns (IRegistry registry);
|
59
|
+
// function getRegistry() external view returns (IRegistry registry);
|
60
60
|
|
61
61
|
// repeat service linked signature to avoid linearization issues
|
62
62
|
function getProductService() external returns(IProductService);
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
import {IDistributionComponent} from "../../../components/IDistributionComponent.sol";
|
6
6
|
import {IPoolComponent} from "../../../components/IPoolComponent.sol";
|
7
7
|
import {IProductComponent} from "../../../components/IProductComponent.sol";
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
6
|
import {NftId} from "../../../types/NftId.sol";
|
7
7
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
import {IDistributionComponent} from "../../../components/IDistributionComponent.sol";
|
6
6
|
import {IPoolComponent} from "../../../components/IPoolComponent.sol";
|
7
7
|
import {IProductComponent} from "../../../components/IProductComponent.sol";
|
@@ -9,7 +9,7 @@ import {IProductComponent} from "../../../components/IProductComponent.sol";
|
|
9
9
|
import {NftId} from "../../../types/NftId.sol";
|
10
10
|
import {TREASURY} from "../../../types/ObjectType.sol";
|
11
11
|
import {Fee, FeeLib} from "../../../types/Fee.sol";
|
12
|
-
import {UFixed,
|
12
|
+
import {UFixed, UFixedLib} from "../../../types/UFixed.sol";
|
13
13
|
import {TokenHandler} from "./TokenHandler.sol";
|
14
14
|
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
15
15
|
import {ITreasuryModule} from "./ITreasury.sol";
|
@@ -118,7 +118,7 @@ abstract contract TreasuryModule is
|
|
118
118
|
function getUFixed(
|
119
119
|
uint256 a
|
120
120
|
) external pure override returns (UFixed) {
|
121
|
-
return
|
121
|
+
return UFixedLib.toUFixed(a);
|
122
122
|
}
|
123
123
|
|
124
124
|
function getUFixed(
|
@@ -126,6 +126,6 @@ abstract contract TreasuryModule is
|
|
126
126
|
int8 exp
|
127
127
|
) external pure returns (UFixed)
|
128
128
|
{
|
129
|
-
return
|
129
|
+
return UFixedLib.toUFixed(a, exp);
|
130
130
|
}
|
131
131
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
6
|
import {IRegistry} from "../../registry/IRegistry.sol";
|
7
7
|
import {IInstance} from "../IInstance.sol";
|
@@ -22,7 +22,7 @@ import {Key32} from "../../types/Key32.sol";
|
|
22
22
|
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
23
23
|
import {Fee} from "../../types/Fee.sol";
|
24
24
|
import {Version, VersionLib} from "../../types/Version.sol";
|
25
|
-
import {UFixed,
|
25
|
+
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
26
26
|
|
27
27
|
import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
|
28
28
|
import {IPoolComponent} from "../../components/IPoolComponent.sol";
|
@@ -94,44 +94,87 @@ contract ComponentOwnerService is
|
|
94
94
|
return IRegistryService(service);
|
95
95
|
}
|
96
96
|
|
97
|
-
|
98
|
-
|
99
|
-
IBaseComponent component,
|
100
|
-
ObjectType componentType
|
97
|
+
function registerProduct(
|
98
|
+
IBaseComponent product
|
101
99
|
) external returns (NftId nftId) {
|
102
100
|
|
103
101
|
// TODO some info parameters from component and from register may differ -> getObjectInfo() after registration?
|
104
102
|
(
|
105
103
|
IRegistry.ObjectInfo memory info,
|
106
104
|
bytes memory data
|
107
|
-
) = getRegistryService().
|
105
|
+
) = getRegistryService().registerProduct(
|
106
|
+
product,
|
107
|
+
msg.sender);
|
108
108
|
|
109
109
|
NftId instanceNftId = info.parentNftId;
|
110
|
-
address
|
111
|
-
IInstance instance = IInstance(
|
112
|
-
|
113
|
-
RoleId typeRole = getRoleForType(
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
info.nftId,
|
122
|
-
instanceNftId,
|
123
|
-
instance,
|
124
|
-
data
|
125
|
-
);
|
126
|
-
} else if (componentType == POOL()) {
|
127
|
-
_registerPool(
|
128
|
-
info.nftId,
|
110
|
+
address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
|
111
|
+
IInstance instance = IInstance(instanceAddress);
|
112
|
+
|
113
|
+
RoleId typeRole = getRoleForType(PRODUCT());
|
114
|
+
// TODO refactor to use access manager infra
|
115
|
+
// if(instance.hasRole(typeRole, msg.sender) == false) {
|
116
|
+
// revert MissingTypeRole();
|
117
|
+
// }
|
118
|
+
|
119
|
+
_registerProduct(
|
120
|
+
info.nftId,
|
129
121
|
instanceNftId,
|
130
122
|
instance,
|
131
123
|
data
|
132
|
-
|
133
|
-
|
134
|
-
|
124
|
+
);
|
125
|
+
}
|
126
|
+
|
127
|
+
function registerPool(
|
128
|
+
IBaseComponent pool
|
129
|
+
) external returns (NftId nftId) {
|
130
|
+
|
131
|
+
// TODO some info parameters from component and from register may differ -> getObjectInfo() after registration?
|
132
|
+
(
|
133
|
+
IRegistry.ObjectInfo memory info,
|
134
|
+
bytes memory data
|
135
|
+
) = getRegistryService().registerPool(
|
136
|
+
pool,
|
137
|
+
msg.sender);
|
138
|
+
|
139
|
+
NftId instanceNftId = info.parentNftId;
|
140
|
+
address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
|
141
|
+
IInstance instance = IInstance(instanceAddress);
|
142
|
+
|
143
|
+
RoleId typeRole = getRoleForType(POOL());
|
144
|
+
// TODO refactor to use access manager infra
|
145
|
+
// if(instance.hasRole(typeRole, msg.sender) == false) {
|
146
|
+
// revert MissingTypeRole();
|
147
|
+
// }
|
148
|
+
|
149
|
+
_registerPool(
|
150
|
+
info.nftId,
|
151
|
+
instanceNftId,
|
152
|
+
instance,
|
153
|
+
data
|
154
|
+
);
|
155
|
+
}
|
156
|
+
|
157
|
+
function registerDistribution(
|
158
|
+
IBaseComponent distribution
|
159
|
+
) external returns (NftId nftId) {
|
160
|
+
|
161
|
+
// TODO some info parameters from component and from register may differ -> getObjectInfo() after registration?
|
162
|
+
(
|
163
|
+
IRegistry.ObjectInfo memory info,
|
164
|
+
bytes memory data
|
165
|
+
) = getRegistryService().registerDistribution(
|
166
|
+
distribution,
|
167
|
+
msg.sender);
|
168
|
+
|
169
|
+
NftId instanceNftId = info.parentNftId;
|
170
|
+
address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
|
171
|
+
IInstance instance = IInstance(instanceAddress);
|
172
|
+
|
173
|
+
RoleId typeRole = getRoleForType(DISTRIBUTION());
|
174
|
+
// TODO refactor to use access manager infra
|
175
|
+
// if(instance.hasRole(typeRole, msg.sender) == false) {
|
176
|
+
// revert MissingTypeRole();
|
177
|
+
// }
|
135
178
|
}
|
136
179
|
|
137
180
|
function lock(
|
@@ -250,7 +293,7 @@ contract ComponentOwnerService is
|
|
250
293
|
revert InvalidToken();
|
251
294
|
}
|
252
295
|
|
253
|
-
if(
|
296
|
+
if(UFixedLib.eqz(info.collateralizationLevel)) {
|
254
297
|
revert CollateralizationLevelIsZero();
|
255
298
|
}
|
256
299
|
|
@@ -3,6 +3,7 @@ pragma solidity ^0.8.19;
|
|
3
3
|
|
4
4
|
import {IRegistry} from "../../registry/IRegistry.sol";
|
5
5
|
import {IProductComponent} from "../../components/IProductComponent.sol";
|
6
|
+
import {Product} from "../../components/Product.sol";
|
6
7
|
import {IPoolComponent} from "../../components/IPoolComponent.sol";
|
7
8
|
import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
|
8
9
|
import {IInstance} from "../../instance/IInstance.sol";
|
@@ -17,7 +18,7 @@ import {IVersionable} from "../../shared/IVersionable.sol";
|
|
17
18
|
import {Versionable} from "../../shared/Versionable.sol";
|
18
19
|
|
19
20
|
import {Timestamp, zeroTimestamp} from "../../types/Timestamp.sol";
|
20
|
-
import {UFixed,
|
21
|
+
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
21
22
|
import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
|
22
23
|
import {ObjectType, INSTANCE, PRODUCT, POLICY} from "../../types/ObjectType.sol";
|
23
24
|
import {APPLIED, UNDERWRITTEN, ACTIVE} from "../../types/StateId.sol";
|
@@ -105,10 +106,10 @@ contract ProductService is ComponentServiceBase, IProductService {
|
|
105
106
|
);
|
106
107
|
}
|
107
108
|
|
108
|
-
function _getAndVerifyInstanceAndProduct() internal view returns (
|
109
|
+
function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
|
109
110
|
IRegistry.ObjectInfo memory productInfo;
|
110
111
|
(productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
111
|
-
product =
|
112
|
+
product = Product(productInfo.objectAddress);
|
112
113
|
}
|
113
114
|
|
114
115
|
function calculatePremium(
|
@@ -130,7 +131,7 @@ contract ProductService is ComponentServiceBase, IProductService {
|
|
130
131
|
uint256 distributionFeeAmount
|
131
132
|
)
|
132
133
|
{
|
133
|
-
|
134
|
+
Product product = _getAndVerifyInstanceAndProduct();
|
134
135
|
uint256 netPremiumAmount = product.calculateNetPremium(
|
135
136
|
sumInsuredAmount,
|
136
137
|
riskId,
|
@@ -157,7 +158,7 @@ contract ProductService is ComponentServiceBase, IProductService {
|
|
157
158
|
|
158
159
|
function _calculateFeeAmounts(
|
159
160
|
uint256 netPremiumAmount,
|
160
|
-
|
161
|
+
Product product,
|
161
162
|
NftId bundleNftId,
|
162
163
|
ReferralId referralId
|
163
164
|
)
|
@@ -393,7 +394,7 @@ contract ProductService is ComponentServiceBase, IProductService {
|
|
393
394
|
}
|
394
395
|
|
395
396
|
function calculateRequiredCollateral(UFixed collateralizationLevel, uint256 sumInsuredAmount) public pure override returns(uint256 collateralAmount) {
|
396
|
-
UFixed sumInsuredUFixed =
|
397
|
+
UFixed sumInsuredUFixed = UFixedLib.toUFixed(sumInsuredAmount);
|
397
398
|
UFixed collateralUFixed = collateralizationLevel * sumInsuredUFixed;
|
398
399
|
return collateralUFixed.toInt();
|
399
400
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {ERC721, ERC721Enumerable} from "@
|
5
|
-
import {IERC721} from "@
|
4
|
+
import {ERC721, ERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
|
5
|
+
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
6
6
|
|
7
7
|
import {IChainNft} from "./IChainNft.sol";
|
8
8
|
import {ITransferInterceptor} from "./ITransferInterceptor.sol";
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC721Enumerable} from "@
|
4
|
+
import {IERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
|
5
5
|
|
6
6
|
interface IChainNft is IERC721Enumerable {
|
7
7
|
function mint(
|
@@ -1,21 +1,19 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC165} from "@
|
4
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
5
|
|
6
|
-
import {IOwnable} from "../shared/IOwnable.sol";
|
7
6
|
import {NftId} from "../types/NftId.sol";
|
8
7
|
import {ObjectType} from "../types/ObjectType.sol";
|
9
8
|
import {VersionPart} from "../types/Version.sol";
|
10
9
|
import {IChainNft} from "./IChainNft.sol";
|
11
10
|
|
12
|
-
interface IRegistry is IERC165
|
11
|
+
interface IRegistry is IERC165 {
|
13
12
|
|
14
|
-
event LogRegistration(
|
13
|
+
event LogRegistration(ObjectInfo info);
|
15
14
|
|
16
15
|
event LogServiceNameRegistration(string serviceName, VersionPart majorVersion);
|
17
16
|
|
18
|
-
event LogApproval(NftId indexed nftId, ObjectType objectType);
|
19
17
|
|
20
18
|
struct ObjectInfo {
|
21
19
|
NftId nftId;
|
@@ -29,33 +27,17 @@ interface IRegistry is IERC165, IOwnable {
|
|
29
27
|
|
30
28
|
function register(ObjectInfo memory info) external returns (NftId nftId);
|
31
29
|
|
32
|
-
function registerFrom(
|
33
|
-
address from,
|
34
|
-
ObjectInfo memory info
|
35
|
-
) external returns (NftId nftId);
|
36
|
-
|
37
|
-
function approve(
|
38
|
-
NftId registrar,
|
39
|
-
ObjectType object,
|
40
|
-
ObjectType parent
|
41
|
-
) external;
|
42
|
-
|
43
|
-
function allowance(
|
44
|
-
NftId registrar,
|
45
|
-
ObjectType object
|
46
|
-
) external view returns (bool);
|
47
30
|
|
48
31
|
function getObjectCount() external view returns (uint256);
|
49
32
|
|
50
|
-
//nftIdOf
|
51
33
|
function getNftId(address objectAddress) external view returns (NftId nftId);
|
52
34
|
|
53
35
|
function ownerOf(NftId nftId) external view returns (address);
|
54
36
|
|
55
37
|
function ownerOf(address contractAddress) external view returns (address);
|
56
|
-
|
38
|
+
|
57
39
|
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
|
58
|
-
|
40
|
+
|
59
41
|
function getObjectInfo(address object) external view returns (ObjectInfo memory info);
|
60
42
|
|
61
43
|
function isRegistered(NftId nftId) external view returns (bool);
|
@@ -69,7 +51,7 @@ interface IRegistry is IERC165, IOwnable {
|
|
69
51
|
VersionPart majorVersion
|
70
52
|
) external view returns (address serviceAddress);
|
71
53
|
|
72
|
-
function getProtocolOwner() external view returns (address);
|
73
|
-
|
74
54
|
function getChainNft() external view returns (IChainNft);
|
55
|
+
|
56
|
+
function getOwner() external view returns (address);
|
75
57
|
}
|
@@ -16,12 +16,18 @@ interface IRegistryService is IService {
|
|
16
16
|
|
17
17
|
function registerService(IService service) external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
18
18
|
|
19
|
-
function registerComponent(IBaseComponent component, ObjectType componentType, address owner)
|
20
|
-
external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
21
|
-
|
22
19
|
function registerInstance(IRegisterable instance)
|
23
20
|
external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
24
21
|
|
22
|
+
function registerProduct(IBaseComponent product, address owner)
|
23
|
+
external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
24
|
+
|
25
|
+
function registerPool(IBaseComponent pool, address owner)
|
26
|
+
external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
27
|
+
|
28
|
+
function registerDistribution(IBaseComponent distribution, address owner)
|
29
|
+
external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
30
|
+
|
25
31
|
function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId); // -> easy to upgrade
|
26
32
|
|
27
33
|
function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|