@@ -13,9 +13,6 @@ library UserConfiguration {
1313 uint256 internal constant BORROWING_MASK =
1414 0x5555555555555555555555555555555555555555555555555555555555555555 ;
1515
16- uint256 internal constant _maxReserves = 256 ;
17- uint256 internal constant _indexCount = _maxReserves / 128 + ((_maxReserves % 128 > 0 ) ? 1 : 0 );
18-
1916 /**
2017 * @dev Sets if the user is borrowing the reserve identified by reserveIndex
2118 * @param self The configuration object
@@ -27,11 +24,9 @@ library UserConfiguration {
2724 uint256 reserveIndex ,
2825 bool borrowing
2926 ) internal {
30- require (reserveIndex < _maxReserves, Errors.UL_INVALID_INDEX);
31- uint256 index = reserveIndex / 128 ;
32- reserveIndex = reserveIndex % 128 ;
33- self.data[index] =
34- (self.data[index] & ~ (1 << (reserveIndex * 2 ))) |
27+ require (reserveIndex < 128 , Errors.UL_INVALID_INDEX);
28+ self.data =
29+ (self.data & ~ (1 << (reserveIndex * 2 ))) |
3530 (uint256 (borrowing ? 1 : 0 ) << (reserveIndex * 2 ));
3631 }
3732
@@ -46,11 +41,9 @@ library UserConfiguration {
4641 uint256 reserveIndex ,
4742 bool usingAsCollateral
4843 ) internal {
49- require (reserveIndex < _maxReserves, Errors.UL_INVALID_INDEX);
50- uint256 index = reserveIndex / 128 ;
51- reserveIndex = reserveIndex % 128 ;
52- self.data[index] =
53- (self.data[index] & ~ (1 << (reserveIndex * 2 + 1 ))) |
44+ require (reserveIndex < 128 , Errors.UL_INVALID_INDEX);
45+ self.data =
46+ (self.data & ~ (1 << (reserveIndex * 2 + 1 ))) |
5447 (uint256 (usingAsCollateral ? 1 : 0 ) << (reserveIndex * 2 + 1 ));
5548 }
5649
@@ -64,10 +57,8 @@ library UserConfiguration {
6457 DataTypes.UserConfigurationMap memory self ,
6558 uint256 reserveIndex
6659 ) internal pure returns (bool ) {
67- require (reserveIndex < _maxReserves, Errors.UL_INVALID_INDEX);
68- uint256 index = reserveIndex / 128 ;
69- reserveIndex = reserveIndex % 128 ;
70- return (self.data[index] >> (reserveIndex * 2 )) & 3 != 0 ;
60+ require (reserveIndex < 128 , Errors.UL_INVALID_INDEX);
61+ return (self.data >> (reserveIndex * 2 )) & 3 != 0 ;
7162 }
7263
7364 /**
@@ -81,10 +72,8 @@ library UserConfiguration {
8172 pure
8273 returns (bool )
8374 {
84- require (reserveIndex < _maxReserves, Errors.UL_INVALID_INDEX);
85- uint256 index = reserveIndex / 128 ;
86- reserveIndex = reserveIndex % 128 ;
87- return (self.data[index] >> (reserveIndex * 2 )) & 1 != 0 ;
75+ require (reserveIndex < 128 , Errors.UL_INVALID_INDEX);
76+ return (self.data >> (reserveIndex * 2 )) & 1 != 0 ;
8877 }
8978
9079 /**
@@ -98,10 +87,8 @@ library UserConfiguration {
9887 pure
9988 returns (bool )
10089 {
101- require (reserveIndex < _maxReserves, Errors.UL_INVALID_INDEX);
102- uint256 index = reserveIndex / 128 ;
103- reserveIndex = reserveIndex % 128 ;
104- return (self.data[index] >> (reserveIndex * 2 + 1 )) & 1 != 0 ;
90+ require (reserveIndex < 128 , Errors.UL_INVALID_INDEX);
91+ return (self.data >> (reserveIndex * 2 + 1 )) & 1 != 0 ;
10592 }
10693
10794 /**
@@ -110,12 +97,7 @@ library UserConfiguration {
11097 * @return True if the user has been borrowing any reserve, false otherwise
11198 **/
11299 function isBorrowingAny (DataTypes.UserConfigurationMap memory self ) internal pure returns (bool ) {
113- for (uint8 i = 0 ; i < _indexCount; i++ ) {
114- if (self.data[i] & BORROWING_MASK != 0 ) {
115- return true ;
116- }
117- }
118- return false ;
100+ return self.data & BORROWING_MASK != 0 ;
119101 }
120102
121103 /**
@@ -124,11 +106,6 @@ library UserConfiguration {
124106 * @return True if the user has been borrowing any reserve, false otherwise
125107 **/
126108 function isEmpty (DataTypes.UserConfigurationMap memory self ) internal pure returns (bool ) {
127- for (uint8 i = 0 ; i < _indexCount; i++ ) {
128- if (self.data[i] != 0 ) {
129- return false ;
130- }
131- }
132- return true ;
109+ return self.data == 0 ;
133110 }
134111}
0 commit comments