Skip to content

Commit fc8d3a0

Browse files
committed
fix: simplify nested price feeds deployment
Underlying price feeds prices are no longer queried during deployment. This call is redundant since price validity is checked when adding price feed to PFS and PO. At the same time, it significantly complicates deployment when underlying feeds are updatable.
1 parent f8d1010 commit fc8d3a0

File tree

9 files changed

+25
-25
lines changed

9 files changed

+25
-25
lines changed

contracts/oracles/BoundedPriceFeed.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ contract BoundedPriceFeed is IPriceFeed, SanityCheckTrait, PriceFeedValidationTr
4444
if (_upperBound <= 0) revert IncorrectParameterException(); // U:[BPF-1]
4545
priceFeed = _priceFeed; // U:[BPF-1]
4646
stalenessPeriod = _stalenessPeriod; // U:[BPF-1]
47-
skipCheck = _validatePriceFeed(priceFeed, stalenessPeriod); // U:[BPF-1]
47+
skipCheck = _validatePriceFeedMetadata(priceFeed, stalenessPeriod); // U:[BPF-1]
4848
upperBound = _upperBound; // U:[BPF-1]
4949
_descriptionTicker = descriptionTicker.toSmallString();
5050
}

contracts/oracles/CompositePriceFeed.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ contract CompositePriceFeed is IPriceFeed, PriceFeedValidationTrait, SanityCheck
5454
targetFeedScale = int256(10 ** IPriceFeed(priceFeed0).decimals()); // U:[CPF-1]
5555
// target/base price feed validation is omitted because it will fail if feed has other than 8 decimals
5656
skipCheck0 = false; // U:[CPF-1]
57-
skipCheck1 = _validatePriceFeed(priceFeed1, stalenessPeriod1); // U:[CPF-1]
57+
skipCheck1 = _validatePriceFeedMetadata(priceFeed1, stalenessPeriod1); // U:[CPF-1]
5858

5959
_descriptionTicker = descriptionTicker.toSmallString();
6060
}

contracts/oracles/SingleAssetLPPriceFeed.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ abstract contract SingleAssetLPPriceFeed is LPPriceFeed {
2020
{
2121
priceFeed = _priceFeed; // U:[SAPF-1]
2222
stalenessPeriod = _stalenessPeriod; // U:[SAPF-1]
23-
skipCheck = _validatePriceFeed(_priceFeed, _stalenessPeriod); // U:[SAPF-1]
23+
skipCheck = _validatePriceFeedMetadata(_priceFeed, _stalenessPeriod); // U:[SAPF-1]
2424
}
2525

2626
function getAggregatePrice() public view override returns (int256 answer) {

contracts/oracles/balancer/BPTStablePriceFeed.sol

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ contract BPTStablePriceFeed is LPPriceFeed {
5555

5656
numAssets = priceFeed2 == address(0) ? 2 : (priceFeed3 == address(0) ? 3 : (priceFeed4 == address(0) ? 4 : 5)); // U:[BAL-S-2]
5757

58-
skipCheck0 = _validatePriceFeed(priceFeed0, stalenessPeriod0);
59-
skipCheck1 = _validatePriceFeed(priceFeed1, stalenessPeriod1);
60-
skipCheck2 = numAssets > 2 ? _validatePriceFeed(priceFeed2, stalenessPeriod2) : false;
61-
skipCheck3 = numAssets > 3 ? _validatePriceFeed(priceFeed3, stalenessPeriod3) : false;
62-
skipCheck4 = numAssets > 4 ? _validatePriceFeed(priceFeed4, stalenessPeriod4) : false;
58+
skipCheck0 = _validatePriceFeedMetadata(priceFeed0, stalenessPeriod0);
59+
skipCheck1 = _validatePriceFeedMetadata(priceFeed1, stalenessPeriod1);
60+
skipCheck2 = numAssets > 2 ? _validatePriceFeedMetadata(priceFeed2, stalenessPeriod2) : false;
61+
skipCheck3 = numAssets > 3 ? _validatePriceFeedMetadata(priceFeed3, stalenessPeriod3) : false;
62+
skipCheck4 = numAssets > 4 ? _validatePriceFeedMetadata(priceFeed4, stalenessPeriod4) : false;
6363

6464
_setLimiter(_lowerBound); // U:[BAL-S-1]
6565
}

contracts/oracles/balancer/BPTWeightedPriceFeed.sol

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -155,14 +155,14 @@ contract BPTWeightedPriceFeed is LPPriceFeed {
155155
stalenessPeriod6 = numAssets >= 7 ? priceFeeds[index6].stalenessPeriod : 0;
156156
stalenessPeriod7 = numAssets >= 8 ? priceFeeds[index7].stalenessPeriod : 0;
157157

158-
skipCheck0 = _validatePriceFeed(priceFeed0, stalenessPeriod0);
159-
skipCheck1 = _validatePriceFeed(priceFeed1, stalenessPeriod1);
160-
skipCheck2 = numAssets >= 3 ? _validatePriceFeed(priceFeed2, stalenessPeriod2) : false;
161-
skipCheck3 = numAssets >= 4 ? _validatePriceFeed(priceFeed3, stalenessPeriod3) : false;
162-
skipCheck4 = numAssets >= 5 ? _validatePriceFeed(priceFeed4, stalenessPeriod4) : false;
163-
skipCheck5 = numAssets >= 6 ? _validatePriceFeed(priceFeed5, stalenessPeriod5) : false;
164-
skipCheck6 = numAssets >= 7 ? _validatePriceFeed(priceFeed6, stalenessPeriod6) : false;
165-
skipCheck7 = numAssets >= 8 ? _validatePriceFeed(priceFeed7, stalenessPeriod7) : false;
158+
skipCheck0 = _validatePriceFeedMetadata(priceFeed0, stalenessPeriod0);
159+
skipCheck1 = _validatePriceFeedMetadata(priceFeed1, stalenessPeriod1);
160+
skipCheck2 = numAssets >= 3 ? _validatePriceFeedMetadata(priceFeed2, stalenessPeriod2) : false;
161+
skipCheck3 = numAssets >= 4 ? _validatePriceFeedMetadata(priceFeed3, stalenessPeriod3) : false;
162+
skipCheck4 = numAssets >= 5 ? _validatePriceFeedMetadata(priceFeed4, stalenessPeriod4) : false;
163+
skipCheck5 = numAssets >= 6 ? _validatePriceFeedMetadata(priceFeed5, stalenessPeriod5) : false;
164+
skipCheck6 = numAssets >= 7 ? _validatePriceFeedMetadata(priceFeed6, stalenessPeriod6) : false;
165+
skipCheck7 = numAssets >= 8 ? _validatePriceFeedMetadata(priceFeed7, stalenessPeriod7) : false;
166166

167167
_setLimiter(_lowerBound); // U:[BAL-W-1]
168168
}

contracts/oracles/curve/CurveCryptoLPPriceFeed.sol

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ contract CurveCryptoLPPriceFeed is LPPriceFeed {
5555

5656
nCoins = priceFeed2 == address(0) ? 2 : 3; // U:[CRV-C-2]
5757

58-
skipCheck0 = _validatePriceFeed(priceFeed0, stalenessPeriod0);
59-
skipCheck1 = _validatePriceFeed(priceFeed1, stalenessPeriod1);
60-
skipCheck2 = nCoins == 3 ? _validatePriceFeed(priceFeed2, stalenessPeriod2) : false;
58+
skipCheck0 = _validatePriceFeedMetadata(priceFeed0, stalenessPeriod0);
59+
skipCheck1 = _validatePriceFeedMetadata(priceFeed1, stalenessPeriod1);
60+
skipCheck2 = nCoins == 3 ? _validatePriceFeedMetadata(priceFeed2, stalenessPeriod2) : false;
6161

6262
_setLimiter(_lowerBound); // U:[CRV-C-1]
6363
}

contracts/oracles/curve/CurveStableLPPriceFeed.sol

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,10 @@ contract CurveStableLPPriceFeed is LPPriceFeed {
5656

5757
nCoins = priceFeed2 == address(0) ? 2 : (priceFeed3 == address(0) ? 3 : 4); // U:[CRV-S-2]
5858

59-
skipCheck0 = _validatePriceFeed(priceFeed0, stalenessPeriod0);
60-
skipCheck1 = _validatePriceFeed(priceFeed1, stalenessPeriod1);
61-
skipCheck2 = nCoins > 2 ? _validatePriceFeed(priceFeed2, stalenessPeriod2) : false;
62-
skipCheck3 = nCoins > 3 ? _validatePriceFeed(priceFeed3, stalenessPeriod3) : false;
59+
skipCheck0 = _validatePriceFeedMetadata(priceFeed0, stalenessPeriod0);
60+
skipCheck1 = _validatePriceFeedMetadata(priceFeed1, stalenessPeriod1);
61+
skipCheck2 = nCoins > 2 ? _validatePriceFeedMetadata(priceFeed2, stalenessPeriod2) : false;
62+
skipCheck3 = nCoins > 3 ? _validatePriceFeedMetadata(priceFeed3, stalenessPeriod3) : false;
6363

6464
_setLimiter(_lowerBound); // U:[CRV-S-1]
6565
}

contracts/oracles/pendle/PendleTWAPPTPriceFeed.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ contract PendleTWAPPTPriceFeed is IPriceFeed, PriceFeedValidationTrait, SanityCh
5959
expiry = IPendleMarket(_market).expiry();
6060
priceFeed = _priceFeed;
6161
stalenessPeriod = _stalenessPeriod;
62-
skipCheck = _validatePriceFeed(priceFeed, stalenessPeriod);
62+
skipCheck = _validatePriceFeedMetadata(priceFeed, stalenessPeriod);
6363
twapWindow = _twapWindow;
6464
priceToSy = _priceToSY;
6565

lib/@gearbox-protocol/core-v3

Submodule core-v3 updated 41 files

0 commit comments

Comments
 (0)