|
|
|
|
@@ -167,6 +167,39 @@ pub(crate) struct DemoPipeline2LocalPipelineValidationReport {
|
|
|
|
|
/// Total persisted pool lifecycle events.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub pool_lifecycle_event_count: i64,
|
|
|
|
|
/// Total persisted fee events.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub fee_event_count: i64,
|
|
|
|
|
/// Total persisted reward events.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub reward_event_count: i64,
|
|
|
|
|
/// Total persisted pool administration events.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub pool_admin_event_count: i64,
|
|
|
|
|
/// Total known tokens.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub token_count: i64,
|
|
|
|
|
/// Total tokens missing symbol or name.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub token_metadata_missing_count: i64,
|
|
|
|
|
/// Total tokens used by trade-materialized pairs that still miss symbol or name.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub tradable_token_metadata_missing_count: i64,
|
|
|
|
|
/// Total quote-side tokens used by pairs that still miss symbol or name.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub quote_token_metadata_missing_count: i64,
|
|
|
|
|
/// Total pairs whose display symbol is missing or still falls back to raw mints.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub pair_symbol_fallback_count: i64,
|
|
|
|
|
/// Total pairs whose display symbol is present and does not include raw mints.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub pair_symbol_resolved_count: i64,
|
|
|
|
|
/// Total pairs whose quote token is WSOL.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub wsol_quote_pair_count: i64,
|
|
|
|
|
/// Total pairs whose quote token is a known stable quote.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub stable_quote_pair_count: i64,
|
|
|
|
|
/// Number of entries currently exposed by the DEX support matrix.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub dex_support_matrix_entry_count: i64,
|
|
|
|
|
@@ -283,6 +316,15 @@ pub(crate) struct DemoPipeline2LocalPipelineDiagnosticSummary {
|
|
|
|
|
/// Total persisted pool lifecycle events.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub pool_lifecycle_event_count: i64,
|
|
|
|
|
/// Total persisted fee events.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub fee_event_count: i64,
|
|
|
|
|
/// Total persisted reward events.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub reward_event_count: i64,
|
|
|
|
|
/// Total persisted pool administration events.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub pool_admin_event_count: i64,
|
|
|
|
|
/// Whether the local persisted pipeline has no blocking diagnostic issue.
|
|
|
|
|
pub diagnostics_clean: bool,
|
|
|
|
|
/// Number of blocking diagnostic issues.
|
|
|
|
|
@@ -333,6 +375,24 @@ pub(crate) struct DemoPipeline2LocalPipelineDiagnosticSummary {
|
|
|
|
|
/// Total tokens missing symbol or name.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub token_metadata_missing_count: i64,
|
|
|
|
|
/// Total tokens used by trade-materialized pairs that still miss symbol or name.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub tradable_token_metadata_missing_count: i64,
|
|
|
|
|
/// Total quote-side tokens used by pairs that still miss symbol or name.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub quote_token_metadata_missing_count: i64,
|
|
|
|
|
/// Total pairs whose display symbol is missing or still falls back to raw mints.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub pair_symbol_fallback_count: i64,
|
|
|
|
|
/// Total pairs whose display symbol is present and does not include raw mints.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub pair_symbol_resolved_count: i64,
|
|
|
|
|
/// Total pairs whose quote token is WSOL.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub wsol_quote_pair_count: i64,
|
|
|
|
|
/// Total pairs whose quote token is a known stable quote.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub stable_quote_pair_count: i64,
|
|
|
|
|
/// Total known pools.
|
|
|
|
|
#[ts(type = "number")]
|
|
|
|
|
pub pool_count: i64,
|
|
|
|
|
@@ -1087,7 +1147,7 @@ pub(crate) async fn demo_pipeline2_validate_local_pipeline(
|
|
|
|
|
let service = kb_lib::LocalPipelineValidationService::new(database.clone());
|
|
|
|
|
let profile_code = match request {
|
|
|
|
|
Some(request) => request.profile_code,
|
|
|
|
|
None => "0.7.36_meteora_family_consolidation".to_string(),
|
|
|
|
|
None => "0.7.37_token_metadata_catalog_enrichment".to_string(),
|
|
|
|
|
};
|
|
|
|
|
let run_result = match profile_code.as_str() {
|
|
|
|
|
"0.7.27" | "0.7.27_dexes_non_regression" => {
|
|
|
|
|
@@ -1120,6 +1180,9 @@ pub(crate) async fn demo_pipeline2_validate_local_pipeline(
|
|
|
|
|
"0.7.36" | "0.7.36_meteora_family_consolidation" => {
|
|
|
|
|
service.validate_v0_7_36_current_database().await
|
|
|
|
|
},
|
|
|
|
|
"0.7.37" | "0.7.37_token_metadata_catalog_enrichment" => {
|
|
|
|
|
service.validate_v0_7_37_current_database().await
|
|
|
|
|
},
|
|
|
|
|
other => Err(kb_lib::Error::InvalidState(format!(
|
|
|
|
|
"unsupported local pipeline validation profile: {other}"
|
|
|
|
|
))),
|
|
|
|
|
@@ -1551,6 +1614,17 @@ fn demo_pipeline2_map_local_validation_report(
|
|
|
|
|
decoded_unknown_event_count: report.decoded_unknown_event_count,
|
|
|
|
|
liquidity_event_count: report.liquidity_event_count,
|
|
|
|
|
pool_lifecycle_event_count: report.pool_lifecycle_event_count,
|
|
|
|
|
fee_event_count: report.fee_event_count,
|
|
|
|
|
reward_event_count: report.reward_event_count,
|
|
|
|
|
pool_admin_event_count: report.pool_admin_event_count,
|
|
|
|
|
token_count: report.token_count,
|
|
|
|
|
token_metadata_missing_count: report.token_metadata_missing_count,
|
|
|
|
|
tradable_token_metadata_missing_count: report.tradable_token_metadata_missing_count,
|
|
|
|
|
quote_token_metadata_missing_count: report.quote_token_metadata_missing_count,
|
|
|
|
|
pair_symbol_fallback_count: report.pair_symbol_fallback_count,
|
|
|
|
|
pair_symbol_resolved_count: report.pair_symbol_resolved_count,
|
|
|
|
|
wsol_quote_pair_count: report.wsol_quote_pair_count,
|
|
|
|
|
stable_quote_pair_count: report.stable_quote_pair_count,
|
|
|
|
|
dex_support_matrix_entry_count: report.dex_support_matrix_entry_count,
|
|
|
|
|
dex_support_matrix,
|
|
|
|
|
issues,
|
|
|
|
|
@@ -1679,6 +1753,9 @@ fn demo_pipeline2_map_local_diagnostics_summary(
|
|
|
|
|
decoded_unknown_event_count: summary.decoded_unknown_event_count,
|
|
|
|
|
liquidity_event_count: summary.liquidity_event_count,
|
|
|
|
|
pool_lifecycle_event_count: summary.pool_lifecycle_event_count,
|
|
|
|
|
fee_event_count: summary.fee_event_count,
|
|
|
|
|
reward_event_count: summary.reward_event_count,
|
|
|
|
|
pool_admin_event_count: summary.pool_admin_event_count,
|
|
|
|
|
diagnostics_clean: summary.diagnostics_clean,
|
|
|
|
|
blocking_issue_count: summary.blocking_issue_count,
|
|
|
|
|
missing_trade_event_count: summary.missing_trade_event_count,
|
|
|
|
|
@@ -1701,6 +1778,12 @@ fn demo_pipeline2_map_local_diagnostics_summary(
|
|
|
|
|
duplicate_candle_bucket_count: summary.duplicate_candle_bucket_count,
|
|
|
|
|
token_count: summary.token_count,
|
|
|
|
|
token_metadata_missing_count: summary.token_metadata_missing_count,
|
|
|
|
|
tradable_token_metadata_missing_count: summary.tradable_token_metadata_missing_count,
|
|
|
|
|
quote_token_metadata_missing_count: summary.quote_token_metadata_missing_count,
|
|
|
|
|
pair_symbol_fallback_count: summary.pair_symbol_fallback_count,
|
|
|
|
|
pair_symbol_resolved_count: summary.pair_symbol_resolved_count,
|
|
|
|
|
wsol_quote_pair_count: summary.wsol_quote_pair_count,
|
|
|
|
|
stable_quote_pair_count: summary.stable_quote_pair_count,
|
|
|
|
|
pool_count: summary.pool_count,
|
|
|
|
|
pair_count: summary.pair_count,
|
|
|
|
|
pair_gap_counter_semantics: summary.pair_gap_counter_semantics,
|
|
|
|
|
|