Skip to content

Commit 18afb3a

Browse files
committed
fix(c4-117-g06): keccak256() should only need to be called on a specific string literal once
Signed-off-by: Tomás Migone <[email protected]>
1 parent 76865a4 commit 18afb3a

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

contracts/governance/Managed.sol

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ contract Managed {
2828
mapping(bytes32 => address) private addressCache;
2929
uint256[10] private __gap;
3030

31+
// Immutables
32+
bytes32 immutable CURATION = keccak256("Curation");
33+
bytes32 immutable EPOCH_MANAGER = keccak256("EpochManager");
34+
bytes32 immutable REWARDS_MANAGER = keccak256("RewardsManager");
35+
bytes32 immutable STAKING = keccak256("Staking");
36+
bytes32 immutable GRAPH_TOKEN = keccak256("GraphToken");
37+
bytes32 immutable GRAPH_TOKEN_GATEWAY = keccak256("GraphTokenGateway");
38+
3139
// -- Events --
3240

3341
event ParameterUpdated(string param);
@@ -111,47 +119,47 @@ contract Managed {
111119
* @return Curation contract registered with Controller
112120
*/
113121
function curation() internal view returns (ICuration) {
114-
return ICuration(_resolveContract(keccak256("Curation")));
122+
return ICuration(_resolveContract(CURATION));
115123
}
116124

117125
/**
118126
* @dev Return EpochManager interface.
119127
* @return Epoch manager contract registered with Controller
120128
*/
121129
function epochManager() internal view returns (IEpochManager) {
122-
return IEpochManager(_resolveContract(keccak256("EpochManager")));
130+
return IEpochManager(_resolveContract(EPOCH_MANAGER));
123131
}
124132

125133
/**
126134
* @dev Return RewardsManager interface.
127135
* @return Rewards manager contract registered with Controller
128136
*/
129137
function rewardsManager() internal view returns (IRewardsManager) {
130-
return IRewardsManager(_resolveContract(keccak256("RewardsManager")));
138+
return IRewardsManager(_resolveContract(REWARDS_MANAGER));
131139
}
132140

133141
/**
134142
* @dev Return Staking interface.
135143
* @return Staking contract registered with Controller
136144
*/
137145
function staking() internal view returns (IStaking) {
138-
return IStaking(_resolveContract(keccak256("Staking")));
146+
return IStaking(_resolveContract(STAKING));
139147
}
140148

141149
/**
142150
* @dev Return GraphToken interface.
143151
* @return Graph token contract registered with Controller
144152
*/
145153
function graphToken() internal view returns (IGraphToken) {
146-
return IGraphToken(_resolveContract(keccak256("GraphToken")));
154+
return IGraphToken(_resolveContract(GRAPH_TOKEN));
147155
}
148156

149157
/**
150158
* @dev Return GraphTokenGateway (L1 or L2) interface.
151159
* @return Graph token gateway contract registered with Controller
152160
*/
153161
function graphTokenGateway() internal view returns (ITokenGateway) {
154-
return ITokenGateway(_resolveContract(keccak256("GraphTokenGateway")));
162+
return ITokenGateway(_resolveContract(GRAPH_TOKEN_GATEWAY));
155163
}
156164

157165
/**

0 commit comments

Comments
 (0)