-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deploy WETH market on Optimism #26
base: main
Are you sure you want to change the base?
Conversation
constructor(address priceFeedA_, address priceFeedB_, uint8 decimals_, string memory description_) { | ||
priceFeedA = priceFeedA_; | ||
priceFeedB = priceFeedB_; | ||
uint8 priceFeedADecimals = AggregatorV3Interface(priceFeedA_).decimals(); | ||
priceFeedAScalling = signed256(10 ** (priceFeedADecimals)); | ||
|
||
if (decimals_ > 18) revert BadDecimals(); | ||
decimals = decimals_; | ||
description = description_; | ||
priceFeedScale = int256(10 ** decimals); | ||
} |
Check warning
Code scanning / Semgrep OSS
There're no sanity checks for the constructor argument description_. Warning
constructor(address priceFeedA_, address priceFeedB_, uint8 decimals_, string memory description_) { | ||
priceFeedA = priceFeedA_; | ||
priceFeedB = priceFeedB_; | ||
uint8 priceFeedADecimals = AggregatorV3Interface(priceFeedA_).decimals(); | ||
priceFeedAScalling = signed256(10 ** (priceFeedADecimals)); | ||
|
||
if (decimals_ > 18) revert BadDecimals(); | ||
decimals = decimals_; | ||
description = description_; | ||
priceFeedScale = int256(10 ** decimals); | ||
} |
Check warning
Code scanning / Semgrep OSS
There're no sanity checks for the constructor argument priceFeedA_. Warning
constructor(address priceFeedA_, address priceFeedB_, uint8 decimals_, string memory description_) { | ||
priceFeedA = priceFeedA_; | ||
priceFeedB = priceFeedB_; | ||
uint8 priceFeedADecimals = AggregatorV3Interface(priceFeedA_).decimals(); | ||
priceFeedAScalling = signed256(10 ** (priceFeedADecimals)); | ||
|
||
if (decimals_ > 18) revert BadDecimals(); | ||
decimals = decimals_; | ||
description = description_; | ||
priceFeedScale = int256(10 ** decimals); | ||
} |
Check warning
Code scanning / Semgrep OSS
There're no sanity checks for the constructor argument priceFeedB_. Warning
constructor(address priceFeedA_, address priceFeedB_, uint8 decimals_, string memory description_) { | ||
priceFeedA = priceFeedA_; | ||
priceFeedB = priceFeedB_; | ||
uint8 priceFeedADecimals = AggregatorV3Interface(priceFeedA_).decimals(); | ||
priceFeedAScalling = signed256(10 ** (priceFeedADecimals)); | ||
|
||
if (decimals_ > 18) revert BadDecimals(); | ||
decimals = decimals_; | ||
description = description_; | ||
priceFeedScale = int256(10 ** decimals); | ||
} |
Check warning
Code scanning / Semgrep OSS
Consider making costructor payable to save gas. Warning
error InvalidInt256(); | ||
|
||
/// @notice Version of the price feed | ||
uint public constant override version = 1; |
Check notice
Code scanning / Semgrep OSS
Semgrep Finding: compound.solidity.constant-not-in-uppercase Note
constructor(address ezETHRateProvider, uint8 decimals_, string memory description_) { | ||
underlyingPriceFeed = ezETHRateProvider; | ||
decimals = decimals_; | ||
description = description_; | ||
|
||
uint8 ezETHRateProviderDecimals = 18; | ||
// Note: Solidity does not allow setting immutables in if/else statements | ||
shouldUpscale = ezETHRateProviderDecimals < decimals_ ? true : false; | ||
rescaleFactor = (shouldUpscale | ||
? signed256(10 ** (decimals_ - ezETHRateProviderDecimals)) | ||
: signed256(10 ** (ezETHRateProviderDecimals - decimals_)) | ||
); | ||
} |
Check warning
Code scanning / Semgrep OSS
There're no sanity checks for the constructor argument description_. Warning
constructor(address ezETHRateProvider, uint8 decimals_, string memory description_) { | ||
underlyingPriceFeed = ezETHRateProvider; | ||
decimals = decimals_; | ||
description = description_; | ||
|
||
uint8 ezETHRateProviderDecimals = 18; | ||
// Note: Solidity does not allow setting immutables in if/else statements | ||
shouldUpscale = ezETHRateProviderDecimals < decimals_ ? true : false; | ||
rescaleFactor = (shouldUpscale | ||
? signed256(10 ** (decimals_ - ezETHRateProviderDecimals)) | ||
: signed256(10 ** (ezETHRateProviderDecimals - decimals_)) | ||
); | ||
} |
Check warning
Code scanning / Semgrep OSS
There're no sanity checks for the constructor argument ezETHRateProvider. Warning
constructor(address ezETHRateProvider, uint8 decimals_, string memory description_) { | ||
underlyingPriceFeed = ezETHRateProvider; | ||
decimals = decimals_; | ||
description = description_; | ||
|
||
uint8 ezETHRateProviderDecimals = 18; | ||
// Note: Solidity does not allow setting immutables in if/else statements | ||
shouldUpscale = ezETHRateProviderDecimals < decimals_ ? true : false; | ||
rescaleFactor = (shouldUpscale | ||
? signed256(10 ** (decimals_ - ezETHRateProviderDecimals)) | ||
: signed256(10 ** (ezETHRateProviderDecimals - decimals_)) | ||
); | ||
} |
Check warning
Code scanning / Semgrep OSS
Semgrep Finding: compound.solidity.missing-constructor-sanity-checks Warning
constructor(address ezETHRateProvider, uint8 decimals_, string memory description_) { | ||
underlyingPriceFeed = ezETHRateProvider; | ||
decimals = decimals_; | ||
description = description_; | ||
|
||
uint8 ezETHRateProviderDecimals = 18; | ||
// Note: Solidity does not allow setting immutables in if/else statements | ||
shouldUpscale = ezETHRateProviderDecimals < decimals_ ? true : false; | ||
rescaleFactor = (shouldUpscale | ||
? signed256(10 ** (decimals_ - ezETHRateProviderDecimals)) | ||
: signed256(10 ** (ezETHRateProviderDecimals - decimals_)) | ||
); | ||
} |
Check warning
Code scanning / Semgrep OSS
Consider making costructor payable to save gas. Warning
uint256 updatedAt, | ||
uint80 answeredInRound | ||
) { | ||
uint256 rate = IBalancerRateProvider(underlyingPriceFeed).getRate(); |
Check warning
Code scanning / Semgrep OSS
IBalancerRateProvider(underlyingPriceFeed).getRate() call on a Balancer pool is not protected from the read-only reentrancy. Warning
No description provided.