@@ -26,14 +26,14 @@ abstract contract AbstractCompoundRateKeeper is ICompoundRateKeeper, Initializab
26
26
using Math for uint256 ;
27
27
using DSMath for uint256 ;
28
28
29
- uint256 public capitalizationRate ;
30
- uint64 public capitalizationPeriod ;
29
+ uint256 private _capitalizationRate ;
30
+ uint64 private _capitalizationPeriod ;
31
31
32
- uint64 public lastUpdate ;
32
+ uint64 private _lastUpdate ;
33
33
34
- bool public isMaxRateReached ;
34
+ bool private _isMaxRateReached ;
35
35
36
- uint256 internal _currentRate;
36
+ uint256 private _currentRate;
37
37
38
38
/**
39
39
* @notice The proxy initializer function
@@ -43,7 +43,7 @@ abstract contract AbstractCompoundRateKeeper is ICompoundRateKeeper, Initializab
43
43
uint64 capitalizationPeriod_
44
44
) internal onlyInitializing {
45
45
_currentRate = PRECISION;
46
- lastUpdate = uint64 (block .timestamp );
46
+ _lastUpdate = uint64 (block .timestamp );
47
47
48
48
_changeCapitalizationRate (capitalizationRate_);
49
49
_changeCapitalizationPeriod (capitalizationPeriod_);
@@ -55,10 +55,10 @@ abstract contract AbstractCompoundRateKeeper is ICompoundRateKeeper, Initializab
55
55
function emergencyUpdateCompoundRate () public override {
56
56
try this .getCompoundRate () returns (uint256 rate_ ) {
57
57
if (rate_ == _getMaxRate ()) {
58
- isMaxRateReached = true ;
58
+ _isMaxRateReached = true ;
59
59
}
60
60
} catch {
61
- isMaxRateReached = true ;
61
+ _isMaxRateReached = true ;
62
62
}
63
63
}
64
64
@@ -76,23 +76,23 @@ abstract contract AbstractCompoundRateKeeper is ICompoundRateKeeper, Initializab
76
76
* @return the compound rate for the provided timestamp
77
77
*/
78
78
function getFutureCompoundRate (uint64 timestamp_ ) public view override returns (uint256 ) {
79
- if (isMaxRateReached ) {
79
+ if (_isMaxRateReached ) {
80
80
return _getMaxRate ();
81
81
}
82
82
83
- uint64 lastUpdate_ = lastUpdate ;
83
+ uint64 lastUpdate_ = _lastUpdate ;
84
84
85
85
if (lastUpdate_ >= timestamp_) {
86
86
return _currentRate;
87
87
}
88
88
89
89
uint64 secondsPassed_ = timestamp_ - lastUpdate_;
90
90
91
- uint64 capitalizationPeriod_ = capitalizationPeriod ;
91
+ uint64 capitalizationPeriod_ = _capitalizationPeriod ;
92
92
uint64 capitalizationPeriodsNum_ = secondsPassed_ / capitalizationPeriod_;
93
93
uint64 secondsLeft_ = secondsPassed_ % capitalizationPeriod_;
94
94
95
- uint256 capitalizationRate_ = capitalizationRate ;
95
+ uint256 capitalizationRate_ = _capitalizationRate ;
96
96
uint256 rate_ = _currentRate;
97
97
98
98
if (capitalizationPeriodsNum_ != 0 ) {
@@ -113,6 +113,46 @@ abstract contract AbstractCompoundRateKeeper is ICompoundRateKeeper, Initializab
113
113
return rate_.min (_getMaxRate ());
114
114
}
115
115
116
+ /**
117
+ * @notice The function to get the current capitalization rate
118
+ * @return capitalizationRate_ the current capitalization rate
119
+ */
120
+ function getCapitalizationRate () public view returns (uint256 capitalizationRate_ ) {
121
+ return _capitalizationRate;
122
+ }
123
+
124
+ /**
125
+ * @notice The function to get the current capitalization period
126
+ * @return capitalizationPeriod_ the current capitalization period
127
+ */
128
+ function getCapitalizationPeriod () public view returns (uint64 capitalizationPeriod_ ) {
129
+ return _capitalizationPeriod;
130
+ }
131
+
132
+ /**
133
+ * @notice The function to get the timestamp of the last update
134
+ * @return lastUpdate_ the timestamp of the last update
135
+ */
136
+ function getLastUpdate () public view returns (uint64 lastUpdate_ ) {
137
+ return _lastUpdate;
138
+ }
139
+
140
+ /**
141
+ * @notice The function to get the status of whether the max rate is reached
142
+ * @return isMaxRateReached_ the boolean indicating if the max rate is reached
143
+ */
144
+ function getIsMaxRateReached () public view returns (bool isMaxRateReached_ ) {
145
+ return _isMaxRateReached;
146
+ }
147
+
148
+ /**
149
+ * @notice The function to get the current rate
150
+ * @return currentRate_ the current rate
151
+ */
152
+ function getCurrentRate () public view returns (uint256 currentRate_ ) {
153
+ return _currentRate;
154
+ }
155
+
116
156
/**
117
157
* @notice The internal function to set the capitalization rate
118
158
* @param capitalizationRate_ new capitalization rate
@@ -135,10 +175,10 @@ abstract contract AbstractCompoundRateKeeper is ICompoundRateKeeper, Initializab
135
175
* @notice The private function to update the compound rate
136
176
*/
137
177
function _update () private {
138
- require (! isMaxRateReached , "CRK: max rate is reached " );
178
+ require (! _isMaxRateReached , "CRK: max rate is reached " );
139
179
140
180
_currentRate = getCompoundRate ();
141
- lastUpdate = uint64 (block .timestamp );
181
+ _lastUpdate = uint64 (block .timestamp );
142
182
}
143
183
144
184
/**
@@ -147,7 +187,7 @@ abstract contract AbstractCompoundRateKeeper is ICompoundRateKeeper, Initializab
147
187
function _changeCapitalizationRate (uint256 capitalizationRate_ ) private {
148
188
require (capitalizationRate_ >= PRECISION, "CRK: rate is less than 1 " );
149
189
150
- capitalizationRate = capitalizationRate_;
190
+ _capitalizationRate = capitalizationRate_;
151
191
152
192
emit CapitalizationRateChanged (capitalizationRate_);
153
193
}
@@ -158,7 +198,7 @@ abstract contract AbstractCompoundRateKeeper is ICompoundRateKeeper, Initializab
158
198
function _changeCapitalizationPeriod (uint64 capitalizationPeriod_ ) private {
159
199
require (capitalizationPeriod_ > 0 , "CRK: invalid period " );
160
200
161
- capitalizationPeriod = capitalizationPeriod_;
201
+ _capitalizationPeriod = capitalizationPeriod_;
162
202
163
203
emit CapitalizationPeriodChanged (capitalizationPeriod_);
164
204
}
0 commit comments