@@ -9,6 +9,7 @@ import {SignatureChecker} from '@openzeppelin/contracts/utils/cryptography/Signa
9
9
import {SafeCast} from '@openzeppelin/contracts/utils/math/SafeCast.sol ' ;
10
10
import {AccessControl} from '@openzeppelin/contracts/access/AccessControl.sol ' ;
11
11
12
+ import {Errors} from 'src/contracts/facilitators/gsm/libraries/Errors.sol ' ;
12
13
import {IGhoFacilitator} from 'src/contracts/gho/interfaces/IGhoFacilitator.sol ' ;
13
14
import {IGhoToken} from 'src/contracts/gho/interfaces/IGhoToken.sol ' ;
14
15
import {IGsmPriceStrategy} from 'src/contracts/facilitators/gsm/priceStrategy/interfaces/IGsmPriceStrategy.sol ' ;
@@ -76,15 +77,15 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
76
77
* @dev Require GSM to not be frozen for functions marked by this modifier
77
78
*/
78
79
modifier notFrozen () {
79
- require (! _isFrozen, GsmFrozen () );
80
+ require (! _isFrozen, Errors.GSM_FROZEN );
80
81
_;
81
82
}
82
83
83
84
/**
84
85
* @dev Require GSM to not be seized for functions marked by this modifier
85
86
*/
86
87
modifier notSeized () {
87
- require (! _isSeized, GsmSeized () );
88
+ require (! _isSeized, Errors.GSM_SEIZED );
88
89
_;
89
90
}
90
91
@@ -95,11 +96,11 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
95
96
* @param priceStrategy The address of the price strategy
96
97
*/
97
98
constructor (address ghoToken , address underlyingAsset , address priceStrategy ) EIP712 ('GSM ' , '1 ' ) {
98
- require (ghoToken != address (0 ), InvalidZeroAddress () );
99
- require (underlyingAsset != address (0 ), InvalidZeroAddress () );
99
+ require (ghoToken != address (0 ), Errors.INVALID_ZERO_ADDRESS );
100
+ require (underlyingAsset != address (0 ), Errors.INVALID_ZERO_ADDRESS );
100
101
require (
101
102
IGsmPriceStrategy (priceStrategy).UNDERLYING_ASSET () == underlyingAsset,
102
- InvalidPriceStrategy ()
103
+ Errors.INVALID_PRICE_STRATEGY
103
104
);
104
105
GHO_TOKEN = ghoToken;
105
106
UNDERLYING_ASSET = underlyingAsset;
@@ -119,7 +120,7 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
119
120
uint128 exposureCap ,
120
121
address liquidityProvider
121
122
) external initializer {
122
- require (admin != address (0 ), InvalidZeroAddress () );
123
+ require (admin != address (0 ), Errors.INVALID_ZERO_ADDRESS );
123
124
_grantRole (DEFAULT_ADMIN_ROLE, admin);
124
125
_grantRole (CONFIGURATOR_ROLE, admin);
125
126
_updateGhoTreasury (ghoTreasury);
@@ -143,7 +144,7 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
143
144
uint256 deadline ,
144
145
bytes calldata signature
145
146
) external notFrozen notSeized returns (uint256 , uint256 ) {
146
- require (deadline >= block .timestamp , SignatureExpired () );
147
+ require (deadline >= block .timestamp , Errors.SIG_EXPIRED );
147
148
bytes32 digest = keccak256 (
148
149
abi.encode (
149
150
'\x19\x01 ' ,
@@ -154,7 +155,7 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
154
155
);
155
156
require (
156
157
SignatureChecker.isValidSignatureNow (originator, digest, signature),
157
- InvalidSignature ()
158
+ Errors.INVALID_SIG
158
159
);
159
160
160
161
return _buyAsset (originator, minAmount, receiver);
@@ -176,7 +177,7 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
176
177
uint256 deadline ,
177
178
bytes calldata signature
178
179
) external notFrozen notSeized returns (uint256 , uint256 ) {
179
- require (deadline >= block .timestamp , SignatureExpired () );
180
+ require (deadline >= block .timestamp , Errors.SIG_EXPIRED );
180
181
bytes32 digest = keccak256 (
181
182
abi.encode (
182
183
'\x19\x01 ' ,
@@ -187,7 +188,7 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
187
188
);
188
189
require (
189
190
SignatureChecker.isValidSignatureNow (originator, digest, signature),
190
- InvalidSignature ()
191
+ Errors.INVALID_SIG
191
192
);
192
193
193
194
return _sellAsset (originator, maxAmount, receiver);
@@ -199,14 +200,14 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
199
200
address to ,
200
201
uint256 amount
201
202
) external onlyRole (TOKEN_RESCUER_ROLE) {
202
- require (amount > 0 , InvalidAmount () );
203
+ require (amount > 0 , Errors.INVALID_AMOUNT );
203
204
if (token == GHO_TOKEN) {
204
205
uint256 rescuableBalance = IERC20 (token).balanceOf (address (this )) - _accruedFees;
205
- require (rescuableBalance >= amount, ' INSUFFICIENT_GHO_TO_RESCUE ' );
206
+ require (rescuableBalance >= amount, Errors.INSUFFICIENT_GHO_RESC );
206
207
}
207
208
if (token == UNDERLYING_ASSET) {
208
209
uint256 rescuableBalance = IERC20 (token).balanceOf (address (this )) - _currentExposure;
209
- require (rescuableBalance >= amount, ' INSUFFICIENT_EXOGENOUS_ASSET_TO_RESCUE ' );
210
+ require (rescuableBalance >= amount, Errors.INSUFFICIENT_EXO_RESC );
210
211
}
211
212
IERC20 (token).safeTransfer (to, amount);
212
213
emit TokensRescued (token, to, amount);
@@ -215,9 +216,9 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
215
216
/// @inheritdoc IGsm
216
217
function setSwapFreeze (bool enable ) external onlyRole (SWAP_FREEZER_ROLE) {
217
218
if (enable) {
218
- require (! _isFrozen, GsmFrozen () );
219
+ require (! _isFrozen, Errors.GSM_FROZEN );
219
220
} else {
220
- require (_isFrozen, ' GSM_ALREADY_UNFROZEN ' );
221
+ require (_isFrozen, Errors.GSM_UNFROZEN );
221
222
}
222
223
_isFrozen = enable;
223
224
emit SwapFreeze (msg .sender , enable);
@@ -240,8 +241,8 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
240
241
241
242
/// @inheritdoc IGsm
242
243
function burnAfterSeize (uint256 amount ) external onlyRole (LIQUIDATOR_ROLE) returns (uint256 ) {
243
- require (_isSeized, GsmNotSeized () );
244
- require (amount > 0 , InvalidAmount () );
244
+ require (_isSeized, Errors.GSM_NOT_SEIZED );
245
+ require (amount > 0 , Errors.INVALID_AMOUNT );
245
246
246
247
if (amount > _ghoLiquidity) {
247
248
amount = _ghoLiquidity;
@@ -256,7 +257,7 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
256
257
257
258
/// @inheritdoc IGsmL2
258
259
function provideLiquidity (uint256 amount ) external {
259
- require (msg .sender == _liquidityProvider, InvalidLiquidityProvider () );
260
+ require (msg .sender == _liquidityProvider, Errors.INVALID_LIQ_PROVIDER );
260
261
261
262
_ghoLiquidity += amount.toUint128 ();
262
263
IGhoToken (GHO_TOKEN).transferFrom (msg .sender , address (this ), amount);
@@ -420,8 +421,8 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
420
421
421
422
_beforeBuyAsset (originator, assetAmount, receiver);
422
423
423
- require (assetAmount > 0 , InvalidAmount () );
424
- require (_currentExposure >= assetAmount, InsufficientAvailableExogenousLiquidity () );
424
+ require (assetAmount > 0 , Errors.INVALID_AMOUNT );
425
+ require (_currentExposure >= assetAmount, Errors.INSUFFICIENT_EXO_LIQ );
425
426
426
427
_currentExposure -= assetAmount.toUint128 ();
427
428
_ghoLiquidity += ghoSold.toUint128 ();
@@ -465,8 +466,8 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
465
466
466
467
_beforeSellAsset (originator, assetAmount, receiver);
467
468
468
- require (assetAmount > 0 , InvalidAmount () );
469
- require (_currentExposure + assetAmount <= _exposureCap, ExogenousAssetExposureTooHigh () );
469
+ require (assetAmount > 0 , Errors.INVALID_AMOUNT );
470
+ require (_currentExposure + assetAmount <= _exposureCap, Errors.EXO_LIQ_HIGH );
470
471
471
472
_currentExposure += assetAmount.toUint128 ();
472
473
_ghoLiquidity -= ghoBought.toUint128 ();
@@ -570,10 +571,10 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
570
571
571
572
/**
572
573
* @dev Updates Liquidity Provider
573
- * @param exposureCap The address of the liquidty provider for the GSM
574
+ * @param liquidityProvider The address of the liquidty provider for the GSM
574
575
*/
575
576
function _updateLiquidityProvider (address liquidityProvider ) internal {
576
- require (liquidityProvider != address (0 ), InvalidZeroAddress () );
577
+ require (liquidityProvider != address (0 ), Errors.INVALID_ZERO_ADDRESS );
577
578
address oldLiquidityProvider = _liquidityProvider;
578
579
_liquidityProvider = liquidityProvider;
579
580
emit LiquidityProviderUpdated (oldLiquidityProvider, liquidityProvider);
@@ -584,7 +585,7 @@ contract GsmL2 is IGsm, IGsmL2, AccessControl, VersionedInitializable, EIP712 {
584
585
* @param newGhoTreasury The address of the new GHO Treasury
585
586
*/
586
587
function _updateGhoTreasury (address newGhoTreasury ) internal {
587
- require (newGhoTreasury != address (0 ), InvalidZeroAddress () );
588
+ require (newGhoTreasury != address (0 ), Errors.INVALID_ZERO_ADDRESS );
588
589
address oldGhoTreasury = _ghoTreasury;
589
590
_ghoTreasury = newGhoTreasury;
590
591
emit GhoTreasuryUpdated (oldGhoTreasury, newGhoTreasury);
0 commit comments