@@ -36,7 +36,7 @@ contract ChainlinkOracleTest is Test {
36
36
37
37
function testOracleWbtcUsdc () public {
38
38
ChainlinkOracle oracle =
39
- new ChainlinkOracle (vaultZero, 1 , vaultZero, 1 , wBtcBtcFeed, btcUsdFeed, usdcUsdFeed, feedZero, 8 , 6 );
39
+ new ChainlinkOracle (vaultZero, 1 , wBtcBtcFeed, btcUsdFeed, 8 , vaultZero, 1 , usdcUsdFeed, feedZero , 6 );
40
40
(, int256 firstBaseAnswer ,,,) = wBtcBtcFeed.latestRoundData ();
41
41
(, int256 secondBaseAnswer ,,,) = btcUsdFeed.latestRoundData ();
42
42
(, int256 quoteAnswer ,,,) = usdcUsdFeed.latestRoundData ();
@@ -49,7 +49,7 @@ contract ChainlinkOracleTest is Test {
49
49
50
50
function testOracleUsdcWbtc () public {
51
51
ChainlinkOracle oracle =
52
- new ChainlinkOracle (vaultZero, 1 , vaultZero, 1 , usdcUsdFeed, feedZero, wBtcBtcFeed, btcUsdFeed, 6 , 8 );
52
+ new ChainlinkOracle (vaultZero, 1 , usdcUsdFeed, feedZero, 6 , vaultZero, 1 , wBtcBtcFeed, btcUsdFeed , 8 );
53
53
(, int256 baseAnswer ,,,) = usdcUsdFeed.latestRoundData ();
54
54
(, int256 firstQuoteAnswer ,,,) = wBtcBtcFeed.latestRoundData ();
55
55
(, int256 secondQuoteAnswer ,,,) = btcUsdFeed.latestRoundData ();
@@ -62,63 +62,62 @@ contract ChainlinkOracleTest is Test {
62
62
63
63
function testOracleWbtcEth () public {
64
64
ChainlinkOracle oracle =
65
- new ChainlinkOracle (vaultZero, 1 , vaultZero, 1 , wBtcBtcFeed, btcEthFeed, feedZero , feedZero, 8 , 18 );
65
+ new ChainlinkOracle (vaultZero, 1 , wBtcBtcFeed, btcEthFeed, 8 , vaultZero, 1 , feedZero, feedZero , 18 );
66
66
(, int256 firstBaseAnswer ,,,) = wBtcBtcFeed.latestRoundData ();
67
67
(, int256 secondBaseAnswer ,,,) = btcEthFeed.latestRoundData ();
68
68
assertEq (oracle.price (), (uint256 (firstBaseAnswer) * uint256 (secondBaseAnswer) * 10 ** (36 + 18 - 8 - 8 - 18 )));
69
69
}
70
70
71
71
function testOracleStEthUsdc () public {
72
72
ChainlinkOracle oracle =
73
- new ChainlinkOracle (vaultZero, 1 , vaultZero, 1 , stEthEthFeed, feedZero, usdcEthFeed, feedZero, 18 , 6 );
73
+ new ChainlinkOracle (vaultZero, 1 , stEthEthFeed, feedZero, 18 , vaultZero, 1 , usdcEthFeed, feedZero , 6 );
74
74
(, int256 baseAnswer ,,,) = stEthEthFeed.latestRoundData ();
75
75
(, int256 quoteAnswer ,,,) = usdcEthFeed.latestRoundData ();
76
76
assertEq (oracle.price (), uint256 (baseAnswer) * 10 ** (36 + 18 + 6 - 18 - 18 ) / uint256 (quoteAnswer));
77
77
}
78
78
79
79
function testOracleEthUsd () public {
80
80
ChainlinkOracle oracle =
81
- new ChainlinkOracle (vaultZero, 1 , vaultZero, 1 , ethUsdFeed, feedZero, feedZero , feedZero, 18 , 0 );
81
+ new ChainlinkOracle (vaultZero, 1 , ethUsdFeed, feedZero, 18 , vaultZero, 1 , feedZero, feedZero , 0 );
82
82
(, int256 expectedPrice ,,,) = ethUsdFeed.latestRoundData ();
83
83
assertEq (oracle.price (), uint256 (expectedPrice) * 10 ** (36 - 18 - 8 ));
84
84
}
85
85
86
86
function testOracleStEthEth () public {
87
87
ChainlinkOracle oracle =
88
- new ChainlinkOracle (vaultZero, 1 , vaultZero, 1 , stEthEthFeed, feedZero, feedZero , feedZero, 18 , 18 );
88
+ new ChainlinkOracle (vaultZero, 1 , stEthEthFeed, feedZero, 18 , vaultZero, 1 , feedZero, feedZero , 18 );
89
89
(, int256 expectedPrice ,,,) = stEthEthFeed.latestRoundData ();
90
90
assertEq (oracle.price (), uint256 (expectedPrice) * 10 ** (36 + 18 - 18 - 18 ));
91
91
assertApproxEqRel (oracle.price (), 1e36 , 0.01 ether);
92
92
}
93
93
94
94
function testOracleEthStEth () public {
95
95
ChainlinkOracle oracle =
96
- new ChainlinkOracle (vaultZero, 1 , vaultZero, 1 , feedZero, feedZero, stEthEthFeed, feedZero, 18 , 18 );
96
+ new ChainlinkOracle (vaultZero, 1 , feedZero, feedZero, 18 , vaultZero, 1 , stEthEthFeed, feedZero , 18 );
97
97
(, int256 expectedPrice ,,,) = stEthEthFeed.latestRoundData ();
98
98
assertEq (oracle.price (), 10 ** (36 + 18 + 18 - 18 ) / uint256 (expectedPrice));
99
99
assertApproxEqRel (oracle.price (), 1e36 , 0.01 ether);
100
100
}
101
101
102
102
function testOracleUsdcUsd () public {
103
103
ChainlinkOracle oracle =
104
- new ChainlinkOracle (vaultZero, 1 , vaultZero, 1 , usdcUsdFeed, feedZero, feedZero , feedZero, 6 , 0 );
104
+ new ChainlinkOracle (vaultZero, 1 , usdcUsdFeed, feedZero, 6 , vaultZero, 1 , feedZero, feedZero , 0 );
105
105
assertApproxEqRel (oracle.price (), 1e36 / 1e6 , 0.01 ether);
106
106
}
107
107
108
108
function testNegativeAnswer (int256 price ) public {
109
109
price = bound (price, type (int256 ).min, - 1 );
110
110
ChainlinkAggregatorMock aggregator = new ChainlinkAggregatorMock ();
111
111
ChainlinkOracle oracle = new ChainlinkOracle (
112
- vaultZero, 1 , vaultZero, 1 , AggregatorV3Interface (address (aggregator)), feedZero, feedZero, feedZero, 18 , 0
113
- );
112
+ vaultZero, 1 , AggregatorV3Interface (address (aggregator)), feedZero, 18 , vaultZero, 1 , feedZero, feedZero, 0 );
114
113
aggregator.setAnwser (price);
115
114
vm.expectRevert (bytes (ErrorsLib.NEGATIVE_ANSWER));
116
115
oracle.price ();
117
116
}
118
117
119
118
function testSDaiEthOracle () public {
120
119
ChainlinkOracle oracle =
121
- new ChainlinkOracle (sDaiVault, 10 ** 18 , vaultZero, 1 , daiEthFeed, feedZero, feedZero , feedZero, 18 , 18 );
120
+ new ChainlinkOracle (sDaiVault, 10 ** 18 , daiEthFeed, feedZero, 18 , vaultZero, 1 , feedZero, feedZero , 18 );
122
121
(, int256 expectedPrice ,,,) = daiEthFeed.latestRoundData ();
123
122
assertEq (
124
123
oracle.price (),
@@ -128,7 +127,7 @@ contract ChainlinkOracleTest is Test {
128
127
129
128
function testSDaiUsdcOracle () public {
130
129
ChainlinkOracle oracle =
131
- new ChainlinkOracle (sDaiVault, 10 ** 18 , vaultZero, 1 , daiEthFeed, feedZero, usdcEthFeed, feedZero, 18 , 6 );
130
+ new ChainlinkOracle (sDaiVault, 10 ** 18 , daiEthFeed, feedZero, 18 , vaultZero, 1 , usdcEthFeed, feedZero , 6 );
132
131
(, int256 baseAnswer ,,,) = daiEthFeed.latestRoundData ();
133
132
(, int256 quoteAnswer ,,,) = usdcEthFeed.latestRoundData ();
134
133
assertEq (
@@ -145,7 +144,7 @@ contract ChainlinkOracleTest is Test {
145
144
146
145
function testEthSDaiOracle () public {
147
146
ChainlinkOracle oracle =
148
- new ChainlinkOracle (vaultZero, 1 , sDaiVault, 1e18 , feedZero, feedZero, daiEthFeed, feedZero, 18 , 18 );
147
+ new ChainlinkOracle (vaultZero, 1 , feedZero, feedZero, 18 , sDaiVault, 1e18 , daiEthFeed, feedZero , 18 );
149
148
(, int256 quoteAnswer ,,,) = daiEthFeed.latestRoundData ();
150
149
assertEq (
151
150
oracle.price (),
@@ -156,7 +155,7 @@ contract ChainlinkOracleTest is Test {
156
155
157
156
function testUsdcSDaiOracle () public {
158
157
ChainlinkOracle oracle =
159
- new ChainlinkOracle (vaultZero, 1 , sDaiVault, 1e18 , usdcEthFeed, feedZero, daiEthFeed, feedZero, 6 , 18 );
158
+ new ChainlinkOracle (vaultZero, 1 , usdcEthFeed, feedZero, 6 , sDaiVault, 1e18 , daiEthFeed, feedZero , 18 );
160
159
(, int256 baseAnswer ,,,) = usdcEthFeed.latestRoundData ();
161
160
(, int256 quoteAnswer ,,,) = daiEthFeed.latestRoundData ();
162
161
// 1e(36 + dQ1 + fpQ1 + fpQ2 - dB1 - fpB1 - fpB2) * qCS / bCS
@@ -174,17 +173,17 @@ contract ChainlinkOracleTest is Test {
174
173
175
174
function testConstructorZeroVaultConversionSample () public {
176
175
vm.expectRevert (bytes (ErrorsLib.VAULT_CONVERSION_SAMPLE_IS_ZERO));
177
- new ChainlinkOracle (sDaiVault, 0 , vaultZero, 1 , daiEthFeed, feedZero, usdcEthFeed, feedZero, 18 , 6 );
176
+ new ChainlinkOracle (sDaiVault, 0 , daiEthFeed, feedZero, 18 , vaultZero, 1 , usdcEthFeed, feedZero , 6 );
178
177
vm.expectRevert (bytes (ErrorsLib.VAULT_CONVERSION_SAMPLE_IS_ZERO));
179
- new ChainlinkOracle (vaultZero, 1 , sDaiVault, 0 , daiEthFeed, feedZero, usdcEthFeed, feedZero, 18 , 6 );
178
+ new ChainlinkOracle (vaultZero, 1 , daiEthFeed, feedZero, 18 , sDaiVault, 0 , usdcEthFeed, feedZero , 6 );
180
179
}
181
180
182
181
function testConstructorVaultZeroNotOneSample (uint256 vaultConversionSample ) public {
183
182
vaultConversionSample = bound (vaultConversionSample, 2 , type (uint256 ).max);
184
183
185
184
vm.expectRevert (bytes (ErrorsLib.VAULT_CONVERSION_SAMPLE_IS_NOT_ONE));
186
- new ChainlinkOracle (vaultZero, 0 , vaultZero, 1 , daiEthFeed, feedZero, usdcEthFeed, feedZero, 18 , 6 );
185
+ new ChainlinkOracle (vaultZero, 0 , daiEthFeed, feedZero, 18 , vaultZero, 1 , usdcEthFeed, feedZero , 6 );
187
186
vm.expectRevert (bytes (ErrorsLib.VAULT_CONVERSION_SAMPLE_IS_NOT_ONE));
188
- new ChainlinkOracle (vaultZero, 1 , vaultZero, 0 , daiEthFeed, feedZero, usdcEthFeed, feedZero, 18 , 6 );
187
+ new ChainlinkOracle (vaultZero, 1 , daiEthFeed, feedZero, 18 , vaultZero, 0 , usdcEthFeed, feedZero , 6 );
189
188
}
190
189
}
0 commit comments