@etherisc/gif-next 0.0.2-c8cedfe-604 → 0.0.2-cbce707-667

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.
Files changed (141) hide show
  1. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  2. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  3. package/artifacts/contracts/components/Distribution.sol/Distribution.json +2 -2
  4. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  5. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  6. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  8. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  9. package/artifacts/contracts/components/Pool.sol/Pool.json +99 -16
  10. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  11. package/artifacts/contracts/components/Product.sol/Product.json +2 -2
  12. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +1 -1
  13. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +1 -1
  14. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +1 -1
  15. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  16. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  17. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  32. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +1 -1
  33. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +1 -1
  34. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +1 -1
  35. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  36. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +310 -1
  37. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  38. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/Instance.sol/Instance.json +100 -77
  40. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  41. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +2 -2
  42. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  43. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +143 -38
  44. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +113 -49
  46. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  47. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +43 -19
  48. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  49. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +5 -0
  50. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  51. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  52. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  53. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  54. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  55. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  56. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  57. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  58. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  59. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  60. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  61. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  62. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  63. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +2 -2
  64. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  65. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +35 -14
  66. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  67. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +16 -8
  68. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  72. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  73. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +796 -0
  74. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +448 -0
  76. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  77. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  78. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  79. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  80. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  81. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  82. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  83. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
  85. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  86. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  87. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  88. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  89. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  90. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  91. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  92. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  93. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  94. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  95. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +1 -1
  96. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  97. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  98. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  99. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  100. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  101. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  102. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  103. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  104. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  105. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  106. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  107. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  108. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  109. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  110. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  111. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  112. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  113. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  114. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  115. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  116. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  117. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  118. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  119. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  120. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  121. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  122. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  123. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  124. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  125. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  126. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  127. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  128. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  129. package/contracts/components/Pool.sol +14 -25
  130. package/contracts/instance/IInstance.sol +9 -3
  131. package/contracts/instance/Instance.sol +11 -11
  132. package/contracts/instance/InstanceReader.sol +17 -1
  133. package/contracts/instance/InstanceService.sol +26 -5
  134. package/contracts/instance/base/ComponentServiceBase.sol +2 -0
  135. package/contracts/instance/module/IBundle.sol +1 -0
  136. package/contracts/instance/module/ISetup.sol +1 -0
  137. package/contracts/instance/service/DistributionService.sol +12 -3
  138. package/contracts/instance/service/PoolService.sol +211 -0
  139. package/contracts/instance/service/PoolServiceManager.sol +53 -0
  140. package/contracts/types/RoleId.sol +1 -0
  141. package/package.json +1 -1
@@ -0,0 +1,211 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.19;
3
+
4
+ import {Pool} from "../../components/Pool.sol";
5
+ import {IRegistry} from "../../registry/IRegistry.sol";
6
+ import {IInstance} from "../../instance/IInstance.sol";
7
+ import {IBundle} from "../../instance/module/IBundle.sol";
8
+ import {TokenHandler} from "../../instance/module/ITreasury.sol";
9
+ import {ISetup} from "../module/ISetup.sol";
10
+
11
+ import {IVersionable} from "../../shared/IVersionable.sol";
12
+ import {Versionable} from "../../shared/Versionable.sol";
13
+ import {INftOwnable} from "../../shared/INftOwnable.sol";
14
+
15
+ import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
16
+ import {POOL, BUNDLE} from "../../types/ObjectType.sol";
17
+ import {POOL_OWNER_ROLE} from "../../types/RoleId.sol";
18
+ import {Fee, FeeLib} from "../../types/Fee.sol";
19
+ import {Version, VersionLib} from "../../types/Version.sol";
20
+ import {KEEP_STATE} from "../../types/StateId.sol";
21
+ import {zeroTimestamp} from "../../types/Timestamp.sol";
22
+
23
+ import {IService} from "../../shared/IService.sol";
24
+ import {Service} from "../../shared/Service.sol";
25
+ import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
26
+ import {IPoolService} from "./IPoolService.sol";
27
+ import {IRegistryService} from "../../registry/IRegistryService.sol";
28
+ import {InstanceService} from "../InstanceService.sol";
29
+ import {InstanceReader} from "../InstanceReader.sol";
30
+
31
+
32
+ string constant POOL_SERVICE_NAME = "PoolService";
33
+
34
+ contract PoolService is
35
+ ComponentServiceBase,
36
+ IPoolService
37
+ {
38
+ using NftIdLib for NftId;
39
+
40
+ string public constant NAME = "PoolService";
41
+
42
+ address internal _registryAddress;
43
+ InstanceService internal _instanceService;
44
+
45
+ function _initialize(
46
+ address owner,
47
+ bytes memory data
48
+ )
49
+ internal
50
+ initializer
51
+ virtual override
52
+ {
53
+ address initialOwner = address(0);
54
+ (_registryAddress, initialOwner) = abi.decode(data, (address, address));
55
+
56
+ IRegistry registry = IRegistry(_registryAddress);
57
+ _instanceService = InstanceService(registry.getServiceAddress("InstanceService", getMajorVersion()));
58
+
59
+ _initializeService(_registryAddress, initialOwner);
60
+
61
+ _registerInterface(type(IService).interfaceId);
62
+ _registerInterface(type(IPoolService).interfaceId);
63
+ }
64
+
65
+ function getName() public pure override(Service, IService) returns(string memory name) {
66
+ return NAME;
67
+ }
68
+
69
+ function register(address poolComponentAddress)
70
+ external
71
+ returns (NftId poolNftId)
72
+ {
73
+ address componentOwner = msg.sender;
74
+ Pool pool = Pool(poolComponentAddress);
75
+ IInstance instance = pool.getInstance();
76
+ INftOwnable nftOwnable = INftOwnable(address(instance));
77
+
78
+ require(_instanceService.hasRole(componentOwner, POOL_OWNER_ROLE(), nftOwnable.getNftId()), "ERROR:POS-001:NOT_POOL_OWNER_ROLE");
79
+
80
+ IRegistryService registryService = getRegistryService();
81
+ (IRegistry.ObjectInfo memory poolObjInfo, ) = registryService.registerPool(
82
+ pool,
83
+ componentOwner
84
+ );
85
+ poolNftId = poolObjInfo.nftId;
86
+
87
+ ISetup.PoolSetupInfo memory initialSetup = pool.getInitialSetupInfo();
88
+ instance.createPoolSetup(poolNftId, initialSetup);
89
+ }
90
+
91
+ function setFees(
92
+ Fee memory poolFee,
93
+ Fee memory stakingFee,
94
+ Fee memory performanceFee
95
+ )
96
+ external
97
+ override
98
+ {
99
+ (IRegistry.ObjectInfo memory poolInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
100
+ InstanceReader instanceReader = instance.getInstanceReader();
101
+ NftId poolNftId = poolInfo.nftId;
102
+
103
+ ISetup.PoolSetupInfo memory poolSetupInfo = instanceReader.getPoolSetupInfo(poolNftId);
104
+ poolSetupInfo.poolFee = poolFee;
105
+ poolSetupInfo.stakingFee = stakingFee;
106
+ poolSetupInfo.performanceFee = performanceFee;
107
+
108
+ instance.updatePoolSetup(poolNftId, poolSetupInfo, KEEP_STATE());
109
+ }
110
+
111
+ function createBundle(
112
+ address owner,
113
+ Fee memory fee,
114
+ uint256 stakingAmount,
115
+ uint256 lifetime,
116
+ bytes calldata filter
117
+ )
118
+ external
119
+ override
120
+ returns(NftId bundleNftId)
121
+ {
122
+ (IRegistry.ObjectInfo memory info, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
123
+ InstanceReader instanceReader = instance.getInstanceReader();
124
+ NftId poolNftId = info.nftId;
125
+
126
+ IBundle.BundleInfo memory bundleInfo = IBundle.BundleInfo(
127
+ poolNftId,
128
+ FeeLib.zeroFee(),
129
+ filter,
130
+ stakingAmount,
131
+ 0,
132
+ stakingAmount,
133
+ lifetime,
134
+ zeroTimestamp(),
135
+ zeroTimestamp()
136
+ );
137
+
138
+ // register bundle with registry
139
+ bundleNftId = getRegistryService().registerBundle(
140
+ IRegistry.ObjectInfo(
141
+ zeroNftId(),
142
+ poolNftId,
143
+ BUNDLE(),
144
+ false, // intercepting property for bundles is defined on pool
145
+ address(0),
146
+ owner,
147
+ abi.encode(bundleInfo)
148
+ )
149
+ );
150
+
151
+ // create bundle info in instance
152
+ instance.createBundle(bundleNftId, bundleInfo);
153
+
154
+ // TODO add bundle to pool in instance
155
+
156
+ // TODO collect capital
157
+ // _processStakingByTreasury(
158
+ // instanceReader,
159
+ // zeroNftId(),
160
+ // poolNftId,
161
+ // bundleNftId,
162
+ // stakingAmount);
163
+
164
+ // TODO add logging
165
+ }
166
+
167
+ function setBundleFee(
168
+ NftId bundleNftId,
169
+ Fee memory fee
170
+ )
171
+ external
172
+ override
173
+ {
174
+ (IRegistry.ObjectInfo memory info , IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
175
+ InstanceReader instanceReader = instance.getInstanceReader();
176
+ NftId poolNftId = info.nftId;
177
+
178
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
179
+ require(bundleInfo.poolNftId.gtz(), "ERROR:PLS-010:BUNDLE_UNKNOWN");
180
+ require(poolNftId == bundleInfo.poolNftId, "ERROR:PLS-011:BUNDLE_POOL_MISMATCH");
181
+
182
+ bundleInfo.fee = fee;
183
+
184
+ instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
185
+ }
186
+
187
+
188
+
189
+ function _processStakingByTreasury(
190
+ InstanceReader instanceReader,
191
+ NftId productNftId,
192
+ NftId poolNftId,
193
+ NftId bundleNftId,
194
+ uint256 stakingAmount
195
+ )
196
+ internal
197
+ {
198
+ // process token transfer(s)
199
+ if(stakingAmount > 0) {
200
+ TokenHandler tokenHandler = TokenHandler(instanceReader.getTokenHandler(productNftId));
201
+ address bundleOwner = getRegistry().ownerOf(bundleNftId);
202
+ ISetup.PoolSetupInfo memory poolInfo = instanceReader.getPoolSetupInfo(poolNftId);
203
+
204
+ tokenHandler.transfer(
205
+ bundleOwner,
206
+ poolInfo.wallet,
207
+ stakingAmount
208
+ );
209
+ }
210
+ }
211
+ }
@@ -0,0 +1,53 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../../shared/IVersionable.sol";
5
+ import {ProxyManager} from "../../shared/ProxyManager.sol";
6
+ import {PoolService} from "./PoolService.sol";
7
+ import {Registry} from "../../registry/Registry.sol";
8
+ import {RegistryService} from "../../registry/RegistryService.sol";
9
+ import {VersionLib} from "../../types/Version.sol";
10
+
11
+ contract PoolServiceManager is ProxyManager {
12
+
13
+ PoolService private _poolService;
14
+
15
+ /// @dev initializes proxy manager with pool service implementation
16
+ constructor(
17
+ address registryAddress
18
+ )
19
+ ProxyManager()
20
+ {
21
+ PoolService poolSrv = new PoolService();
22
+ bytes memory data = abi.encode(registryAddress, address(this));
23
+ IVersionable versionable = deploy(
24
+ address(poolSrv),
25
+ data);
26
+
27
+ _poolService = PoolService(address(versionable));
28
+
29
+ Registry registry = Registry(registryAddress);
30
+ address registryServiceAddress = registry.getServiceAddress("RegistryService", VersionLib.toVersion(3, 0, 0).toMajorPart());
31
+ RegistryService registryService = RegistryService(registryServiceAddress);
32
+
33
+ registryService.registerService(_poolService);
34
+
35
+ // link ownership of instance service manager ot nft owner of instance service
36
+ _linkToNftOwnable(
37
+ address(registryAddress),
38
+ address(_poolService));
39
+
40
+ // implies that after this constructor call only upgrade functionality is available
41
+ _isDeployed = true;
42
+ }
43
+
44
+ //--- view functions ----------------------------------------------------//
45
+ function getPoolService()
46
+ external
47
+ view
48
+ returns (PoolService poolService)
49
+ {
50
+ return _poolService;
51
+ }
52
+
53
+ }
@@ -37,6 +37,7 @@ function POOL_REGISTRAR_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId
37
37
  function PRODUCT_REGISTRAR_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1400); }
38
38
 
39
39
  function DISTRIBUTION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(10000); }
40
+ function POOL_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(10100); }
40
41
 
41
42
  function INSTANCE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(11000); }
42
43
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "0.0.2-c8cedfe-604",
3
+ "version": "0.0.2-cbce707-667",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {