Skip to content
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

Сomet with extended asset list #53

Open
wants to merge 46 commits into
base: main
Choose a base branch
from

Conversation

MishaShWoof
Copy link
Collaborator

No description provided.

contracts/AssetList.sol Fixed Show fixed Hide fixed
contracts/AssetList.sol Fixed Show fixed Hide fixed
contracts/AssetList.sol Fixed Show fixed Hide fixed
contracts/AssetList.sol Fixed Show fixed Hide fixed
contracts/AssetList.sol Fixed Show fixed Hide fixed
contracts/CometExtendedAssetList.sol Fixed Show fixed Hide fixed
contracts/CometExtendedAssetList.sol Fixed Show fixed Hide fixed
contracts/CometExtendedAssetList.sol Fixed Show fixed Hide fixed
contracts/CometExtendedAssetList.sol Fixed Show fixed Hide fixed
contracts/CometExtendedAssetList.sol Fixed Show fixed Hide fixed
contracts/CometExtAssetList.sol Dismissed Show dismissed Hide dismissed
contracts/CometExtAssetList.sol Dismissed Show dismissed Hide dismissed
contracts/CometExtAssetList.sol Dismissed Show dismissed Hide dismissed
Comment on lines 30 to 38
constructor(CometConfiguration.AssetConfig[] memory assetConfigs) {
uint8 _numAssets = uint8(assetConfigs.length);
numAssets = _numAssets;
for (uint i = 0; i < _numAssets; i++) {
(uint256 asset_a, uint256 asset_b) = getPackedAssetInternal(assetConfigs, i);
assets_a.push(asset_a);
assets_b.push(asset_b);
}
}

Check warning

Code scanning / Semgrep OSS

Semgrep Finding: compound.solidity.missing-constructor-sanity-checks Warning

There're no sanity checks for the constructor argument assetConfigs.
Comment on lines 30 to 38
constructor(CometConfiguration.AssetConfig[] memory assetConfigs) {
uint8 _numAssets = uint8(assetConfigs.length);
numAssets = _numAssets;
for (uint i = 0; i < _numAssets; i++) {
(uint256 asset_a, uint256 asset_b) = getPackedAssetInternal(assetConfigs, i);
assets_a.push(asset_a);
assets_b.push(asset_b);
}
}

Check notice

Code scanning / Semgrep OSS

Semgrep Finding: rules.solidity.performance.non-payable-constructor Note

Consider making costructor payable to save gas.
contracts/AssetList.sol Fixed Show fixed Hide fixed
contracts/AssetList.sol Fixed Show fixed Hide fixed
contracts/AssetList.sol Fixed Show fixed Hide fixed

uint startGas = gasleft();
accrueInternal();
for (uint i = 0; i < accounts.length; ) {

Check notice

Code scanning / Semgrep OSS

Semgrep Finding: rules.solidity.performance.array-length-outside-loop Note

Caching the array length outside a loop saves reading it on each iteration, as long as the array's length is not changed during the loop.
accrueInternal();
for (uint i = 0; i < accounts.length; ) {
absorbInternal(absorber, accounts[i]);
unchecked { i++; }

Check notice

Code scanning / Semgrep OSS

Semgrep Finding: rules.solidity.performance.use-prefix-increment-not-postfix Note

Consider using the prefix increment expression whenever the return value is not needed.
The prefix increment expression is cheaper in terms of gas.
// Using gas price instead of base fee would more accurately reflect spend,
// but is also subject to abuse if refunds were to be given automatically.
LiquidatorPoints memory points = liquidatorPoints[absorber];
points.numAbsorbs++;

Check notice

Code scanning / Semgrep OSS

Semgrep Finding: rules.solidity.performance.use-prefix-increment-not-postfix Note

Consider using the prefix increment expression whenever the return value is not needed.
The prefix increment expression is cheaper in terms of gas.
uint8 _reserved = accountUser._reserved;

uint256 basePrice = getPrice(baseTokenPriceFeed);
uint256 deltaValue = 0;

Check notice

Code scanning / Semgrep OSS

Semgrep Finding: rules.solidity.performance.init-variables-with-default-value Note

Uninitialized variables are assigned with the types default value.
Explicitly initializing a variable with its default value costs unnecessary gas.

emit AbsorbCollateral(absorber, account, asset, seizeAmount, value);
}
unchecked { i++; }

Check notice

Code scanning / Semgrep OSS

Semgrep Finding: rules.solidity.performance.use-prefix-increment-not-postfix Note

Consider using the prefix increment expression whenever the return value is not needed.
The prefix increment expression is cheaper in terms of gas.
if (isBuyPaused()) revert Paused();

int reserves = getReserves();
if (reserves >= 0 && uint(reserves) >= targetReserves) revert NotForSale();

Check notice

Code scanning / Semgrep OSS

Semgrep Finding: rules.solidity.performance.use-nested-if Note

Using nested is cheaper than using && multiple check combinations.
There are more advantages, such as easier to read code and better coverage reports.

const { timelock } = await deploymentManager.getContracts();
// impersonate the timelock
await deploymentManager.hre.network.provider.request({

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants