@@ -130,7 +130,6 @@ contract PriceFeedDeployer is Test, PriceFeedDataLive {
130130 string memory description = string (abi.encodePacked ("PRICEFEED_ " , tokenTestSuite.symbols (t)));
131131 vm.label (pf, description);
132132 }
133- updateRedstoneOraclePriceFeeds ();
134133 }
135134
136135 // BOUNDED PRICE FEEDS
@@ -172,18 +171,61 @@ contract PriceFeedDeployer is Test, PriceFeedDataLive {
172171 address token = tokenTestSuite.addressOf (t);
173172
174173 if (
175- token != address (0 ) && compositePriceFeeds[i].targetToBaseFeed != address (0 )
176- && compositePriceFeeds[i].baseToUSDFeed != address (0 )
174+ token != address (0 )
175+ && (
176+ compositePriceFeeds[i].targetToBaseFeed != address (0 )
177+ || compositePriceFeeds[i].isTargetRedstone
178+ )
179+ && (
180+ compositePriceFeeds[i].baseToUSDFeed != address (0 ) || compositePriceFeeds[i].isBaseComposite
181+ )
177182 ) {
183+ address targetToBaseFeed;
184+ if (compositePriceFeeds[i].isTargetRedstone) {
185+ targetToBaseFeed = address (
186+ new RedstonePriceFeed (
187+ token,
188+ compositePriceFeeds[i].redstoneTargetToBaseData.dataFeedId,
189+ compositePriceFeeds[i].redstoneTargetToBaseData.signers,
190+ compositePriceFeeds[i].redstoneTargetToBaseData.signersThreshold
191+ )
192+ );
193+ redstoneServiceIdByPriceFeed[targetToBaseFeed] =
194+ compositePriceFeeds[i].redstoneTargetToBaseData.dataServiceId;
195+ redStoneOracles.push (targetToBaseFeed);
196+ } else {
197+ targetToBaseFeed = compositePriceFeeds[i].targetToBaseFeed;
198+ }
199+
200+ address baseToUSDFeed;
201+ if (compositePriceFeeds[i].isBaseComposite) {
202+ baseToUSDFeed = address (
203+ new CompositePriceFeed (
204+ [
205+ PriceFeedParams ({
206+ priceFeed: compositePriceFeeds[i].compositeBaseToUSDData.targetToBaseFeed,
207+ stalenessPeriod: compositePriceFeeds[i].compositeBaseToUSDData.targetStalenessPeriod
208+ }),
209+ PriceFeedParams ({
210+ priceFeed: compositePriceFeeds[i].compositeBaseToUSDData.baseToUSDFeed,
211+ stalenessPeriod: compositePriceFeeds[i].compositeBaseToUSDData.baseStalenessPeriod
212+ })
213+ ]
214+ )
215+ );
216+ } else {
217+ baseToUSDFeed = compositePriceFeeds[i].baseToUSDFeed;
218+ }
219+
178220 address pf = address (
179221 new CompositePriceFeed (
180222 [
181223 PriceFeedParams ({
182- priceFeed: compositePriceFeeds[i]. targetToBaseFeed,
224+ priceFeed: targetToBaseFeed,
183225 stalenessPeriod: compositePriceFeeds[i].targetStalenessPeriod
184226 }),
185227 PriceFeedParams ({
186- priceFeed: compositePriceFeeds[i]. baseToUSDFeed,
228+ priceFeed: baseToUSDFeed,
187229 stalenessPeriod: compositePriceFeeds[i].baseStalenessPeriod
188230 })
189231 ]
@@ -197,6 +239,7 @@ contract PriceFeedDeployer is Test, PriceFeedDataLive {
197239 }
198240 }
199241 }
242+ updateRedstoneOraclePriceFeeds ();
200243 }
201244
202245 // ZERO PRICE FEEDS
0 commit comments