diff --git a/contracts/src/HyperdriveStorage.sol b/contracts/src/HyperdriveStorage.sol index d20381760..517151539 100644 --- a/contracts/src/HyperdriveStorage.sol +++ b/contracts/src/HyperdriveStorage.sol @@ -110,6 +110,13 @@ abstract contract HyperdriveStorage is MultiTokenStorage { _governance = _config.governance; _feeCollector = _config.feeCollector; + if ( + _config.fees.curve > 1e18 || + _config.fees.flat > 1e18 || + _config.fees.governance > 1e18 + ) { + revert Errors.InvalidFeeAmounts(); + } _curveFee = _config.fees.curve; _flatFee = _config.fees.flat; _governanceFee = _config.fees.governance; diff --git a/contracts/src/libraries/Errors.sol b/contracts/src/libraries/Errors.sol index cc998bbad..56e55e038 100644 --- a/contracts/src/libraries/Errors.sol +++ b/contracts/src/libraries/Errors.sol @@ -19,6 +19,7 @@ library Errors { error InvalidInitialSharePrice(); error InvalidMaturityTime(); error InvalidPositionDuration(); + error InvalidFeeAmounts(); error NegativeInterest(); error OutputLimit(); error Paused();