This commit is contained in:
2026-04-28 11:29:39 +02:00
parent 081758995a
commit b6ab7bab9c
6 changed files with 757 additions and 16 deletions

View File

@@ -100,6 +100,7 @@ pub struct KbTransactionResolutionService {
persistence: crate::KbDetectionPersistenceService,
transaction_model: crate::KbTransactionModelService,
dex_decode_service: crate::KbDexDecodeService,
dex_detect_service: crate::KbDexDetectService,
http_role: std::string::String,
resolved_signatures:
std::sync::Arc<tokio::sync::Mutex<std::collections::HashSet<std::string::String>>>,
@@ -114,13 +115,14 @@ impl KbTransactionResolutionService {
) -> Self {
let persistence = crate::KbDetectionPersistenceService::new(database.clone());
let transaction_model = crate::KbTransactionModelService::new(database.clone());
let dex_decode_service = crate::KbDexDecodeService::new(database);
let dex_decode_service = crate::KbDexDecodeService::new(database.clone());
let dex_detect_service = crate::KbDexDetectService::new(database);
Self {
http_pool,
persistence,
transaction_model,
dex_decode_service,
dex_detect_service,
http_role,
resolved_signatures: std::sync::Arc::new(tokio::sync::Mutex::new(
std::collections::HashSet::new(),
@@ -303,6 +305,15 @@ impl KbTransactionResolutionService {
Err(error) => return Err(error),
};
let decoded_event_count = decoded_events.len();
let detection_results_result = self
.dex_detect_service
.detect_transaction_by_signature(request.signature.as_str())
.await;
let detection_results = match detection_results_result {
Ok(detection_results) => detection_results,
Err(error) => return Err(error),
};
let detected_object_count = detection_results.len();
let payload = serde_json::json!({
"status": "resolved",
"signature": request.signature.clone(),
@@ -311,6 +322,7 @@ impl KbTransactionResolutionService {
"slotHint": request.slot_hint,
"projectedTransactionId": projected_transaction_id,
"decodedEventCount": decoded_event_count,
"detectedObjectCount": detected_object_count,
"triggerPayload": request.trigger_payload.clone(),
"transaction": transaction_value
});