This commit is contained in:
2026-05-11 11:02:47 +02:00
parent d66afede28
commit 7f130dba6b
49 changed files with 10301 additions and 8481 deletions

View File

@@ -63,6 +63,10 @@ pub struct LocalPipelineReplayResult {
/// This is a replay write/result counter, not the number of distinct rows
/// currently persisted in the analytic signal table.
pub analytic_signal_upsert_count: usize,
/// Total transaction classification rows upserted during replay.
pub transaction_classification_count: usize,
/// Number of transactions that produced a classification error.
pub transaction_classification_error_count: usize,
/// Number of token metadata rows updated after replay.
pub token_metadata_updated_count: usize,
/// Number of pair symbols updated after replay.
@@ -122,6 +126,8 @@ impl LocalPipelineReplayService {
let pair_candle_aggregation =
crate::PairCandleAggregationService::new(self.database.clone());
let pair_analytic_signal = crate::PairAnalyticSignalService::new(self.database.clone());
let transaction_classification =
crate::TransactionClassificationService::new(self.database.clone());
let mut result = LocalPipelineReplayResult {
selected_transaction_count: signatures.len(),
..Default::default()
@@ -209,6 +215,22 @@ impl LocalPipelineReplayService {
);
},
}
let classification_result = transaction_classification
.classify_transaction_by_signature(signature.as_str())
.await;
match classification_result {
Ok(_) => {
result.transaction_classification_count += 1;
},
Err(error) => {
result.transaction_classification_error_count += 1;
tracing::warn!(
signature = %signature,
error = %error,
"local pipeline replay transaction classification step failed"
);
},
}
result.replayed_transaction_count += 1;
}
if config.refresh_missing_token_metadata {