@etherisc/gif-next 0.0.2-9b97b55 → 0.0.2-a0d749a

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 (114) hide show
  1. package/README.md +24 -0
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
  3. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +1 -1
  4. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +2 -2
  5. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +1 -1
  6. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  8. package/artifacts/contracts/components/Pool.sol/Pool.json +2 -2
  9. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  10. package/artifacts/contracts/components/Product.sol/Product.json +2 -2
  11. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  12. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +2 -2
  13. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  14. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +2 -2
  15. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  16. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +2 -2
  17. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +2 -2
  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/types/TypeA.sol/TypeALib.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +2 -2
  27. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +2 -2
  29. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  30. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  31. package/artifacts/contracts/instance/Instance.sol/Instance.json +2 -2
  32. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +1 -1
  33. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +1 -1
  34. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +1 -1
  35. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +1 -1
  36. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +1 -1
  37. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
  38. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +1 -1
  39. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +2 -2
  40. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +1 -1
  41. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +1 -1
  42. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +1 -1
  43. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +1 -1
  44. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +1 -1
  45. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
  46. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
  47. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
  48. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +1 -1
  49. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
  50. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
  51. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +1 -1
  52. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +1 -1
  53. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +1 -1
  54. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +1 -1
  55. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +2 -2
  56. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  57. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  58. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  59. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +1 -1
  60. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +1 -1
  61. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  62. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +1 -1
  63. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +1 -1
  64. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  65. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  66. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +1 -1
  67. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +2 -2
  68. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  69. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  70. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  71. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
  72. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  73. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  74. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  75. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +2 -2
  76. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +4 -0
  77. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +453 -0
  78. package/contracts/components/Component.sol +16 -18
  79. package/contracts/components/IPool.sol +3 -3
  80. package/contracts/components/IProduct.sol +3 -6
  81. package/contracts/components/Pool.sol +6 -13
  82. package/contracts/components/Product.sol +10 -21
  83. package/contracts/experiment/errors/Require.sol +10 -5
  84. package/contracts/experiment/errors/Revert.sol +13 -8
  85. package/contracts/experiment/inheritance/A.sol +8 -11
  86. package/contracts/experiment/inheritance/B.sol +10 -5
  87. package/contracts/experiment/inheritance/C.sol +11 -5
  88. package/contracts/experiment/inheritance/IA.sol +2 -7
  89. package/contracts/experiment/inheritance/IB.sol +3 -2
  90. package/contracts/experiment/inheritance/IC.sol +4 -3
  91. package/contracts/experiment/types/TypeA.sol +14 -9
  92. package/contracts/experiment/types/TypeB.sol +14 -9
  93. package/contracts/instance/IInstance.sol +1 -3
  94. package/contracts/instance/Instance.sol +13 -13
  95. package/contracts/instance/access/Access.sol +63 -116
  96. package/contracts/instance/access/IAccess.sol +28 -48
  97. package/contracts/instance/component/ComponentModule.sol +63 -98
  98. package/contracts/instance/component/IComponent.sol +30 -52
  99. package/contracts/instance/policy/IPolicy.sol +9 -24
  100. package/contracts/instance/policy/PolicyModule.sol +19 -35
  101. package/contracts/instance/pool/IPoolModule.sol +7 -19
  102. package/contracts/instance/pool/PoolModule.sol +22 -35
  103. package/contracts/instance/product/IProductService.sol +5 -15
  104. package/contracts/instance/product/ProductService.sol +43 -39
  105. package/contracts/registry/ChainNft.sol +23 -61
  106. package/contracts/registry/IChainNft.sol +10 -7
  107. package/contracts/registry/IRegistry.sol +46 -36
  108. package/contracts/registry/Registry.sol +80 -53
  109. package/contracts/types/Blocknumber.sol +76 -18
  110. package/contracts/types/ChainId.sol +18 -10
  111. package/contracts/types/NftId.sol +29 -13
  112. package/contracts/types/Timestamp.sol +63 -16
  113. package/contracts/types/UFixed.sol +205 -0
  114. package/package.json +9 -4
@@ -7,26 +7,24 @@ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
7
7
 
8
8
  import {IAccessModule} from "./IAccess.sol";
9
9
 
10
-
11
- abstract contract AccessModule is
12
- IAccessModule
13
- {
14
- string constant public PRODUCT_OWNER = "ProductOwner";
15
- string constant public ORACLE_OWNER = "OracleOwner";
16
- string constant public POOL_OWNER = "PoolOwner";
10
+ abstract contract AccessModule is IAccessModule {
11
+ string public constant PRODUCT_OWNER = "ProductOwner";
12
+ string public constant ORACLE_OWNER = "OracleOwner";
13
+ string public constant POOL_OWNER = "PoolOwner";
17
14
 
18
15
  using EnumerableSet for EnumerableSet.AddressSet;
19
16
 
20
17
  event LogAccessRoleGranted(bytes32 role, address member, bool isMember);
21
18
 
22
19
  mapping(bytes32 role => RoleInfo info) private _info;
23
- bytes32 [] private _roles;
20
+ bytes32[] private _roles;
24
21
 
25
22
  bytes32 private immutable _productOwnerRole;
26
23
  bytes32 private immutable _oracleOwnerRole;
27
24
  bytes32 private immutable _poolOwnerRole;
28
25
 
29
- mapping(bytes32 role => mapping(address member => bool isMember)) private _isRoleMember;
26
+ mapping(bytes32 role => mapping(address member => bool isMember))
27
+ private _isRoleMember;
30
28
  mapping(bytes32 role => EnumerableSet.AddressSet) private _roleMembers;
31
29
 
32
30
  modifier onlyOwner() {
@@ -40,70 +38,54 @@ abstract contract AccessModule is
40
38
  _poolOwnerRole = _createRole(POOL_OWNER);
41
39
  }
42
40
 
43
- function PRODUCT_OWNER_ROLE() public view override returns(bytes32 role) { return _productOwnerRole; }
44
- function ORACLE_OWNER_ROLE() public view override returns(bytes32 role) { return _oracleOwnerRole; }
45
- function POOL_OWNER_ROLE() public view override returns(bytes32 role) { return _poolOwnerRole; }
41
+ function PRODUCT_OWNER_ROLE() public view override returns (bytes32 role) {
42
+ return _productOwnerRole;
43
+ }
44
+
45
+ function ORACLE_OWNER_ROLE() public view override returns (bytes32 role) {
46
+ return _oracleOwnerRole;
47
+ }
46
48
 
49
+ function POOL_OWNER_ROLE() public view override returns (bytes32 role) {
50
+ return _poolOwnerRole;
51
+ }
47
52
 
48
- function createRole(string memory roleName)
49
- external
50
- override
51
- onlyOwner
52
- returns(bytes32 role)
53
- {
53
+ function createRole(
54
+ string memory roleName
55
+ ) external override onlyOwner returns (bytes32 role) {
54
56
  return _createRole(roleName);
55
57
  }
56
58
 
57
- function _createRole(string memory roleName)
58
- internal
59
- returns(bytes32 role)
60
- {
61
- RoleInfo memory info = RoleInfo(
62
- 0,
63
- roleName,
64
- true
65
- );
59
+ function _createRole(
60
+ string memory roleName
61
+ ) internal returns (bytes32 role) {
62
+ RoleInfo memory info = RoleInfo(0, roleName, true);
66
63
 
67
64
  role = _setRoleInfo(info);
68
-
69
-
70
65
  }
71
66
 
72
67
  // TODO move to module
73
- function disableRole(bytes32 role)
74
- external
75
- override
76
- onlyOwner
77
- {
68
+ function disableRole(bytes32 role) external override onlyOwner {
78
69
  RoleInfo memory info = _info[role];
79
70
  require(info.id == role, "ERROR:AOS-001:ROLE_DOES_NOT_EXIST");
80
71
 
81
72
  info.isActive = false;
82
73
  _setRoleInfo(info);
83
-
84
-
85
- }
74
+ }
86
75
 
87
76
  // TODO move to module
88
- function enableRole(bytes32 role)
89
- external
90
- override
91
- onlyOwner
92
- {
77
+ function enableRole(bytes32 role) external override onlyOwner {
93
78
  RoleInfo memory info = _info[role];
94
79
  require(info.id == role, "ERROR:AOS-002:ROLE_DOES_NOT_EXIST");
95
80
 
96
81
  info.isActive = true;
97
82
  _setRoleInfo(info);
83
+ }
98
84
 
99
-
100
- }
101
-
102
- function grantRole(bytes32 role, address member)
103
- external
104
- override
105
- onlyOwner
106
- {
85
+ function grantRole(
86
+ bytes32 role,
87
+ address member
88
+ ) external override onlyOwner {
107
89
  require(_info[role].id == role, "ERROR:ACM-010:ROLE_NOT_EXISTING");
108
90
  require(_info[role].isActive, "ERROR:ACM-011:ROLE_NOT_ACTIVE");
109
91
 
@@ -113,106 +95,71 @@ abstract contract AccessModule is
113
95
  emit LogAccessRoleGranted(role, member, _isRoleMember[role][member]);
114
96
  }
115
97
 
116
-
117
- function revokeRole(bytes32 role, address member)
118
- external
119
- override
120
- onlyOwner
121
- {
98
+ function revokeRole(
99
+ bytes32 role,
100
+ address member
101
+ ) external override onlyOwner {
122
102
  require(_info[role].id == role, "ERROR:ACM-020:ROLE_NOT_EXISTING");
123
103
 
124
104
  _isRoleMember[role][member] = false;
125
105
  _roleMembers[role].remove(member);
126
-
127
-
128
106
  }
129
107
 
130
-
131
- function hasRole(bytes32 role, address member)
132
- external
133
- view
134
- override
135
- returns(bool)
136
- {
108
+ function hasRole(
109
+ bytes32 role,
110
+ address member
111
+ ) external view override returns (bool) {
137
112
  return _isRoleMember[role][member];
138
113
  }
139
114
 
140
-
141
- function getRoleInfo(bytes32 role)
142
- external
143
- override
144
- view
145
- returns(RoleInfo memory info)
146
- {
115
+ function getRoleInfo(
116
+ bytes32 role
117
+ ) external view override returns (RoleInfo memory info) {
147
118
  return _info[role];
148
119
  }
149
120
 
150
-
151
- function getRole(uint256 idx)
152
- external
153
- override
154
- view
155
- returns(bytes32 role)
156
- {
121
+ function getRole(
122
+ uint256 idx
123
+ ) external view override returns (bytes32 role) {
157
124
  return _roles[idx];
158
125
  }
159
126
 
160
-
161
- function getRoleCount()
162
- external
163
- override
164
- view
165
- returns(uint256 roles)
166
- {
127
+ function getRoleCount() external view override returns (uint256 roles) {
167
128
  return _roles.length;
168
- }
169
-
170
- function getRoleMemberCount(bytes32 role)
171
- public
172
- override
173
- view
174
- returns(uint256 roleMembers)
175
- {
129
+ }
130
+
131
+ function getRoleMemberCount(
132
+ bytes32 role
133
+ ) public view override returns (uint256 roleMembers) {
176
134
  return _roleMembers[role].length();
177
135
  }
178
136
 
179
- function getRoleMember(bytes32 role, uint256 idx)
180
- public
181
- override
182
- view
183
- returns(address roleMembers)
184
- {
137
+ function getRoleMember(
138
+ bytes32 role,
139
+ uint256 idx
140
+ ) public view override returns (address roleMembers) {
185
141
  return _roleMembers[role].at(idx);
186
142
  }
187
143
 
188
- function getRoleForName(string memory roleName)
189
- public
190
- override
191
- pure
192
- returns(bytes32 role)
193
- {
144
+ function getRoleForName(
145
+ string memory roleName
146
+ ) public pure override returns (bytes32 role) {
194
147
  return keccak256(abi.encode(roleName));
195
148
  }
196
149
 
197
-
198
- function _setRoleInfo(RoleInfo memory info)
199
- internal
200
- returns(bytes32 role)
201
- {
150
+ function _setRoleInfo(
151
+ RoleInfo memory info
152
+ ) internal returns (bytes32 role) {
202
153
  role = info.id;
203
154
 
204
- if(role == bytes32(0)) {
155
+ if (role == bytes32(0)) {
205
156
  role = getRoleForName(info.name);
206
157
  // TODO check that this is a new role id
207
158
 
208
159
  info.id = role;
209
160
  _roles.push(role);
210
-
211
-
212
161
  }
213
162
 
214
163
  _info[role] = info;
215
-
216
-
217
164
  }
218
165
  }
@@ -4,7 +4,6 @@ pragma solidity ^0.8.19;
4
4
  import {IOwnable, IRegistryLinked} from "../../registry/IRegistry.sol";
5
5
 
6
6
  interface IAccess {
7
-
8
7
  struct RoleInfo {
9
8
  bytes32 id;
10
9
  string name;
@@ -13,71 +12,52 @@ interface IAccess {
13
12
  }
14
13
 
15
14
  interface IAccessCheckRole {
16
-
17
- function hasRole(bytes32 role, address member)
18
- external
19
- view
20
- returns(bool);
15
+ function hasRole(bytes32 role, address member) external view returns (bool);
21
16
  }
22
17
 
23
18
  interface IAccessComponentTypeRoles {
24
- function PRODUCT_OWNER_ROLE() external view returns(bytes32 role);
25
- function ORACLE_OWNER_ROLE() external view returns(bytes32 role);
26
- function POOL_OWNER_ROLE() external view returns(bytes32 role);
27
- }
19
+ function PRODUCT_OWNER_ROLE() external view returns (bytes32 role);
28
20
 
21
+ function ORACLE_OWNER_ROLE() external view returns (bytes32 role);
29
22
 
30
- interface IAccessModule is
23
+ function POOL_OWNER_ROLE() external view returns (bytes32 role);
24
+ }
25
+
26
+ interface IAccessModule is
31
27
  IOwnable,
32
28
  IRegistryLinked,
33
29
  IAccess,
34
30
  IAccessComponentTypeRoles,
35
31
  IAccessCheckRole
36
32
  {
33
+ function createRole(string memory roleName) external returns (bytes32 role);
37
34
 
38
- function createRole(string memory roleName)
39
- external
40
- returns(bytes32 role);
41
-
42
- function enableRole(bytes32 role)
43
- external;
35
+ function enableRole(bytes32 role) external;
44
36
 
45
- function disableRole(bytes32 role)
46
- external;
37
+ function disableRole(bytes32 role) external;
47
38
 
48
- function grantRole(bytes32 role, address member)
49
- external;
39
+ function grantRole(bytes32 role, address member) external;
50
40
 
51
- function revokeRole(bytes32 role, address member)
52
- external;
41
+ function revokeRole(bytes32 role, address member) external;
53
42
 
54
- function getRole(uint256 idx)
55
- external
56
- view
57
- returns(bytes32 role);
43
+ function getRole(uint256 idx) external view returns (bytes32 role);
58
44
 
59
- function getRoleInfo(bytes32 role)
60
- external
61
- view
62
- returns(RoleInfo memory info);
45
+ function getRoleInfo(
46
+ bytes32 role
47
+ ) external view returns (RoleInfo memory info);
63
48
 
64
- function getRoleForName(string memory roleName)
65
- external
66
- pure
67
- returns(bytes32 role);
49
+ function getRoleForName(
50
+ string memory roleName
51
+ ) external pure returns (bytes32 role);
68
52
 
69
- function getRoleCount()
70
- external
71
- view
72
- returns(uint256 roles);
53
+ function getRoleCount() external view returns (uint256 roles);
73
54
 
74
- function getRoleMemberCount(bytes32 role)
75
- external
76
- view
77
- returns(uint256 roleMembers);
55
+ function getRoleMemberCount(
56
+ bytes32 role
57
+ ) external view returns (uint256 roleMembers);
78
58
 
79
- function getRoleMember(bytes32 role, uint256 idx)
80
- external
81
- view
82
- returns(address roleMembers);
83
- }
59
+ function getRoleMember(
60
+ bytes32 role,
61
+ uint256 idx
62
+ ) external view returns (address roleMembers);
63
+ }
@@ -11,7 +11,7 @@ import {IProductComponent} from "../../components/IProduct.sol";
11
11
  import {IPoolModule} from "../pool/IPoolModule.sol";
12
12
  import {NftId, NftIdLib} from "../../types/NftId.sol";
13
13
 
14
- abstract contract ComponentModule is
14
+ abstract contract ComponentModule is
15
15
  IRegistryLinked,
16
16
  IAccessComponentTypeRoles,
17
17
  IAccessCheckRole,
@@ -29,7 +29,10 @@ abstract contract ComponentModule is
29
29
  IComponentOwnerService private _componentOwnerService;
30
30
 
31
31
  modifier onlyComponentOwnerService() {
32
- require(address(_componentOwnerService) == msg.sender, "ERROR:CMP-001:NOT_OWNER_SERVICE");
32
+ require(
33
+ address(_componentOwnerService) == msg.sender,
34
+ "ERROR:CMP-001:NOT_OWNER_SERVICE"
35
+ );
33
36
  _;
34
37
  }
35
38
 
@@ -37,25 +40,21 @@ abstract contract ComponentModule is
37
40
  _componentOwnerService = ComponentOwnerService(componentOwnerService);
38
41
  }
39
42
 
40
- function registerComponent(IComponentContract component)
41
- external
42
- override
43
- onlyComponentOwnerService
44
- returns(NftId nftId)
45
- {
43
+ function registerComponent(
44
+ IComponentContract component
45
+ ) external override onlyComponentOwnerService returns (NftId nftId) {
46
46
  bytes32 typeRole = getRoleForType(component.getType());
47
47
  require(
48
48
  this.hasRole(typeRole, component.getInitialOwner()),
49
- "ERROR:CMP-004:TYPE_ROLE_MISSING");
50
-
49
+ "ERROR:CMP-004:TYPE_ROLE_MISSING"
50
+ );
51
+
51
52
  nftId = this.getRegistry().register(address(component));
52
53
 
53
- _componentInfo[nftId] = ComponentInfo(
54
- nftId,
55
- CState.Active);
54
+ _componentInfo[nftId] = ComponentInfo(nftId, CState.Active);
56
55
 
57
56
  // special case product -> persist product - pool assignment
58
- if(component.getType() == this.getRegistry().PRODUCT()) {
57
+ if (component.getType() == this.getRegistry().PRODUCT()) {
59
58
  IProductComponent product = IProductComponent(address(component));
60
59
  NftId poolNftId = product.getPoolNftId();
61
60
  require(poolNftId.gtz(), "ERROR:CMP-005:POOL_UNKNOWN");
@@ -64,8 +63,7 @@ abstract contract ComponentModule is
64
63
  _poolNftIdForProduct[nftId] = poolNftId;
65
64
 
66
65
  // add creation of productInfo
67
- }
68
- else if(component.getType() == this.getRegistry().POOL()) {
66
+ } else if (component.getType() == this.getRegistry().POOL()) {
69
67
  IPoolModule poolModule = IPoolModule(address(this));
70
68
  poolModule.createPoolInfo(
71
69
  nftId,
@@ -80,104 +78,79 @@ abstract contract ComponentModule is
80
78
  // add logging
81
79
  }
82
80
 
83
- function getPoolNftId(NftId productNftId)
84
- external
85
- view
86
- override
87
- returns(NftId poolNftId)
88
- {
81
+ function getPoolNftId(
82
+ NftId productNftId
83
+ ) external view override returns (NftId poolNftId) {
89
84
  poolNftId = _poolNftIdForProduct[productNftId];
90
85
  }
91
86
 
92
-
93
87
  function getComponentOwnerService()
94
88
  external
95
- override
96
89
  view
97
- returns(IComponentOwnerService)
90
+ override
91
+ returns (IComponentOwnerService)
98
92
  {
99
93
  return _componentOwnerService;
100
94
  }
101
95
 
102
- function setComponentInfo(ComponentInfo memory info)
103
- external
104
- onlyComponentOwnerService
105
- returns(NftId nftId)
106
- {
96
+ function setComponentInfo(
97
+ ComponentInfo memory info
98
+ ) external onlyComponentOwnerService returns (NftId nftId) {
107
99
  nftId = info.nftId;
108
100
  require(
109
101
  nftId.gtz() && _componentInfo[nftId].nftId.eq(nftId),
110
- "ERROR:CMP-006:COMPONENT_UNKNOWN");
102
+ "ERROR:CMP-006:COMPONENT_UNKNOWN"
103
+ );
111
104
 
112
105
  _componentInfo[nftId] = info;
113
106
 
114
107
  // add logging
115
108
  }
116
109
 
117
- function getComponentInfo(NftId nftId)
118
- external
119
- override
120
- view
121
- returns(ComponentInfo memory)
122
- {
110
+ function getComponentInfo(
111
+ NftId nftId
112
+ ) external view override returns (ComponentInfo memory) {
123
113
  return _componentInfo[nftId];
124
114
  }
125
115
 
126
- function getComponentOwner(NftId nftId)
127
- external
128
- view
129
- returns(address owner)
130
- {
131
-
132
- }
116
+ function getComponentOwner(
117
+ NftId nftId
118
+ ) external view returns (address owner) {}
133
119
 
134
- function getComponentId(address componentAddress)
135
- external
136
- view
137
- returns(NftId componentNftId)
138
- {
120
+ function getComponentId(
121
+ address componentAddress
122
+ ) external view returns (NftId componentNftId) {
139
123
  return _nftIdByAddress[componentAddress];
140
124
  }
141
125
 
142
-
143
- function getComponentId(uint256 idx)
144
- external
145
- override
146
- view
147
- returns(NftId componentNftId)
148
- {
126
+ function getComponentId(
127
+ uint256 idx
128
+ ) external view override returns (NftId componentNftId) {
149
129
  return _nftIds[idx];
150
130
  }
151
131
 
152
-
153
132
  function components()
154
133
  external
155
- override
156
134
  view
157
- returns(uint256 numberOfCompnents)
135
+ override
136
+ returns (uint256 numberOfCompnents)
158
137
  {
159
138
  return _nftIds.length;
160
139
  }
161
140
 
162
- function getRoleForType(uint256 cType)
163
- public
164
- view
165
- returns(bytes32 role)
166
- {
167
- if(cType == this.getRegistry().PRODUCT()) {
141
+ function getRoleForType(uint256 cType) public view returns (bytes32 role) {
142
+ if (cType == this.getRegistry().PRODUCT()) {
168
143
  return this.PRODUCT_OWNER_ROLE();
169
144
  }
170
- if(cType == this.getRegistry().POOL()) {
145
+ if (cType == this.getRegistry().POOL()) {
171
146
  return this.POOL_OWNER_ROLE();
172
147
  }
173
- if(cType == this.getRegistry().ORACLE()) {
148
+ if (cType == this.getRegistry().ORACLE()) {
174
149
  return this.ORACLE_OWNER_ROLE();
175
150
  }
176
-
177
151
  }
178
152
  }
179
153
 
180
-
181
154
  // this is actually the component owner service
182
155
  contract ComponentOwnerService is
183
156
  RegistryLinked,
@@ -188,9 +161,7 @@ contract ComponentOwnerService is
188
161
 
189
162
  modifier onlyComponentOwner(IComponentContract component) {
190
163
  NftId nftId = _registry.getNftId(address(component));
191
- require(
192
- nftId.gtz(),
193
- "ERROR:COS-001:COMPONENT_UNKNOWN");
164
+ require(nftId.gtz(), "ERROR:COS-001:COMPONENT_UNKNOWN");
194
165
  require(
195
166
  msg.sender == _registry.getOwner(nftId),
196
167
  "ERROR:COS-002:NOT_OWNER"
@@ -198,31 +169,27 @@ contract ComponentOwnerService is
198
169
  _;
199
170
  }
200
171
 
201
- constructor(address registry)
202
- RegistryLinked(registry)
203
- { }
172
+ constructor(address registry) RegistryLinked(registry) {}
204
173
 
205
- function register(IComponentContract component)
206
- external
207
- override
208
- returns(NftId nftId)
209
- {
174
+ function register(
175
+ IComponentContract component
176
+ ) external override returns (NftId nftId) {
210
177
  require(
211
- msg.sender == component.getInitialOwner(),
212
- "ERROR:COS-003:NOT_OWNER");
178
+ msg.sender == component.getInitialOwner(),
179
+ "ERROR:COS-003:NOT_OWNER"
180
+ );
213
181
 
214
182
  IInstance instance = component.getInstance();
215
183
  nftId = instance.registerComponent(component);
216
184
  }
217
185
 
218
-
219
- function lock(IComponentContract component)
220
- external
221
- override
222
- onlyComponentOwner(component)
223
- {
186
+ function lock(
187
+ IComponentContract component
188
+ ) external override onlyComponentOwner(component) {
224
189
  IInstance instance = component.getInstance();
225
- ComponentInfo memory info = instance.getComponentInfo(component.getNftId());
190
+ ComponentInfo memory info = instance.getComponentInfo(
191
+ component.getNftId()
192
+ );
226
193
  require(info.nftId.gtz(), "ERROR_COMPONENT_UNKNOWN");
227
194
  // TODO add state change validation
228
195
 
@@ -230,19 +197,17 @@ contract ComponentOwnerService is
230
197
  instance.setComponentInfo(info);
231
198
  }
232
199
 
233
-
234
- function unlock(IComponentContract component)
235
- external
236
- override
237
- onlyComponentOwner(component)
238
- {
200
+ function unlock(
201
+ IComponentContract component
202
+ ) external override onlyComponentOwner(component) {
239
203
  IInstance instance = component.getInstance();
240
- ComponentInfo memory info = instance.getComponentInfo(component.getNftId());
204
+ ComponentInfo memory info = instance.getComponentInfo(
205
+ component.getNftId()
206
+ );
241
207
  require(info.nftId.gtz(), "ERROR_COMPONENT_UNKNOWN");
242
208
  // TODO state change validation
243
209
 
244
210
  info.state = CState.Active;
245
211
  instance.setComponentInfo(info);
246
212
  }
247
-
248
- }
213
+ }