Skip to content

Commit

Permalink
fix: Unify reserveCount and maxReserve to uint16
Browse files Browse the repository at this point in the history
  • Loading branch information
LHerskind committed Dec 1, 2021
1 parent 1107015 commit b6e2b35
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 23 deletions.
20 changes: 2 additions & 18 deletions contracts/mocks/helpers/MockPool.sol
Original file line number Diff line number Diff line change
Expand Up @@ -31,35 +31,19 @@ contract MockPool {
import {Pool} from '../../protocol/pool/Pool.sol';

contract MockPoolInherited is Pool {
uint256 internal _maxNumberOfReserves = 128;
uint16 internal _maxNumberOfReserves = 128;

function getRevision() internal pure override returns (uint256) {
return 0x3;
}

constructor(IPoolAddressesProvider provider) Pool(provider) {}

function setMaxNumberOfReserves(uint256 newMaxNumberOfReserves) public {
function setMaxNumberOfReserves(uint16 newMaxNumberOfReserves) public {
_maxNumberOfReserves = newMaxNumberOfReserves;
}

function MAX_NUMBER_RESERVES() public view override returns (uint256) {
return _maxNumberOfReserves;
}

function _addReserveToList(address asset) internal override {
uint256 reservesCount = _reservesCount;
require(reservesCount < _maxNumberOfReserves, Errors.P_NO_MORE_RESERVES_ALLOWED);
bool reserveAlreadyAdded = _reserves[asset].id != 0 || _reservesList[0] == asset;

if (!reserveAlreadyAdded) {
for (uint8 i = 0; i <= reservesCount; i++) {
if (_reservesList[i] == address(0)) {
_reserves[asset].id = i;
_reservesList[i] = asset;
_reservesCount = uint16(reservesCount + 1);
}
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ library ReserveConfiguration {
uint256 constant MAX_VALID_DEBT_CEILING = 1099511627775;

uint256 public constant DEBT_CEILING_DECIMALS = 2;
uint256 public constant MAX_RESERVES_COUNT = 128;
uint16 public constant MAX_RESERVES_COUNT = 128;

/**
* @notice Sets the Loan to Value of the reserve
Expand Down
2 changes: 1 addition & 1 deletion contracts/protocol/libraries/types/DataTypes.sol
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ library DataTypes {
//address of the interest rate strategy
address interestRateStrategyAddress;
//the id of the reserve. Represents the position in the list of the active reserves
uint8 id;
uint16 id;
//the current treasury balance, scaled
uint128 accruedToTreasury;
//the quickwithdraw balance waiting for underlying to be backed
Expand Down
6 changes: 3 additions & 3 deletions contracts/protocol/pool/Pool.sol
Original file line number Diff line number Diff line change
Expand Up @@ -704,18 +704,18 @@ contract Pool is VersionedInitializable, IPool, PoolStorage {
}

function _addReserveToList(address asset) internal virtual {
uint256 reservesCount = _reservesCount;
uint16 reservesCount = _reservesCount;

require(reservesCount < MAX_NUMBER_RESERVES(), Errors.P_NO_MORE_RESERVES_ALLOWED);

bool reserveAlreadyAdded = _reserves[asset].id != 0 || _reservesList[0] == asset;

if (!reserveAlreadyAdded) {
for (uint8 i = 0; i <= reservesCount; i++) {
for (uint16 i = 0; i <= reservesCount; i++) {
if (_reservesList[i] == address(0)) {
_reserves[asset].id = i;
_reservesList[i] = asset;
_reservesCount = uint16(reservesCount + 1);
_reservesCount = reservesCount + 1;
}
}
}
Expand Down

0 comments on commit b6e2b35

Please sign in to comment.