This commit is contained in:
2026-04-29 07:40:44 +02:00
parent 02aab8c3f6
commit d7b03c91b9
20 changed files with 1523 additions and 11 deletions

View File

@@ -101,6 +101,7 @@ pub struct KbTransactionResolutionService {
transaction_model: crate::KbTransactionModelService,
dex_decode_service: crate::KbDexDecodeService,
dex_detect_service: crate::KbDexDetectService,
launch_origin_service: crate::KbLaunchOriginService,
http_role: std::string::String,
resolved_signatures:
std::sync::Arc<tokio::sync::Mutex<std::collections::HashSet<std::string::String>>>,
@@ -116,13 +117,15 @@ impl KbTransactionResolutionService {
let persistence = crate::KbDetectionPersistenceService::new(database.clone());
let transaction_model = crate::KbTransactionModelService::new(database.clone());
let dex_decode_service = crate::KbDexDecodeService::new(database.clone());
let dex_detect_service = crate::KbDexDetectService::new(database);
let dex_detect_service = crate::KbDexDetectService::new(database.clone());
let launch_origin_service = crate::KbLaunchOriginService::new(database.clone());
Self {
http_pool,
persistence,
transaction_model,
dex_decode_service,
dex_detect_service,
launch_origin_service,
http_role,
resolved_signatures: std::sync::Arc::new(tokio::sync::Mutex::new(
std::collections::HashSet::new(),
@@ -309,6 +312,15 @@ impl KbTransactionResolutionService {
.dex_detect_service
.detect_transaction_by_signature(request.signature.as_str())
.await;
let launch_attributions_result = self
.launch_origin_service
.attribute_transaction_by_signature(request.signature.as_str())
.await;
let launch_attributions = match launch_attributions_result {
Ok(launch_attributions) => launch_attributions,
Err(error) => return Err(error),
};
let launch_attribution_count = launch_attributions.len();
let detection_results = match detection_results_result {
Ok(detection_results) => detection_results,
Err(error) => return Err(error),
@@ -323,6 +335,7 @@ impl KbTransactionResolutionService {
"projectedTransactionId": projected_transaction_id,
"decodedEventCount": decoded_event_count,
"detectedObjectCount": detected_object_count,
"launchAttributionCount": launch_attribution_count,
"triggerPayload": request.trigger_payload.clone(),
"transaction": transaction_value
});