MCPcopy Create free account
hub / github.com/ElementsProject/lightning / is_drift_ok

Method is_drift_ok

plugins/currencyrate-plugin/src/oracle.rs:193–211  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

191 }
192
193 fn is_drift_ok(&self) -> bool {
194 let mut cache_sorted_by_recency: Vec<(&String, &PriceCache)> = self.prices.iter().collect();
195 cache_sorted_by_recency.sort_by_key(|(_, p)| Reverse(p.timestamp));
196 if cache_sorted_by_recency.len() == 1 {
197 return true;
198 }
199
200 let latest_price = cache_sorted_by_recency.first().unwrap().1;
201 let second_latest_price = cache_sorted_by_recency.get(1).unwrap().1;
202
203 let relative_drift =
204 f64::abs((latest_price.price - second_latest_price.price) / second_latest_price.price);
205
206 if relative_drift > DRIFT_THRESHOLD {
207 return false;
208 }
209
210 true
211 }
212
213 fn currency_requested(&mut self) {
214 self.last_request = Instant::now();

Callers 1

background_refreshMethod · 0.80

Calls 2

unwrapMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected