Skip to content

Commit b62f427

Browse files
committed
fix(oracle): prevent instanciating with zero decimals
1 parent 5aaaf58 commit b62f427

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/ChainlinkOracle.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ contract ChainlinkOracle is IOracle {
5959
require(
6060
address(vault) != address(0) || vaultConversionSample == 1, ErrorsLib.VAULT_CONVERSION_SAMPLE_IS_NOT_ONE
6161
);
62-
require(vaultConversionSample != 0, ErrorsLib.VAULT_CONVERSION_IS_ZERO);
62+
require(vaultConversionSample != 0, ErrorsLib.VAULT_CONVERSION_SAMPLE_IS_ZERO);
6363

6464
VAULT = vault;
6565
VAULT_CONVERSION_SAMPLE = vaultConversionSample;
@@ -97,7 +97,7 @@ contract ChainlinkOracle is IOracle {
9797
** (
9898
36 + quoteTokenDecimals + quoteFeed1.getDecimals() + quoteFeed2.getDecimals() - baseTokenDecimals
9999
- baseFeed1.getDecimals() - baseFeed2.getDecimals()
100-
) / VAULT_CONVERSION_SAMPLE;
100+
) / vaultConversionSample;
101101
}
102102

103103
/* PRICE */

test/ChainlinkOracleTest.sol

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,14 @@ contract ChainlinkOracleTest is Test {
132132
assertApproxEqRel(oracle.price(), expectedPrice, deviation);
133133
}
134134

135+
function testConstructorZeroVaultConversionSample() public {
136+
vm.expectRevert(bytes(ErrorsLib.VAULT_CONVERSION_SAMPLE_IS_ZERO));
137+
new ChainlinkOracle(sDaiVault, daiEthFeed, feedZero, usdcEthFeed, feedZero, 0, 18, 6);
138+
}
139+
135140
function testConstructorVaultZeroNonOneSample(uint256 vaultConversionSample) public {
136-
vm.assume(vaultConversionSample != 1);
141+
vm.assume(vaultConversionSample > 1);
142+
137143
vm.expectRevert(bytes(ErrorsLib.VAULT_CONVERSION_SAMPLE_IS_NOT_ONE));
138144
new ChainlinkOracle(vaultZero, daiEthFeed, feedZero, usdcEthFeed, feedZero, vaultConversionSample, 18, 6);
139145
}

0 commit comments

Comments
 (0)