This commit is contained in:
2026-06-17 16:06:09 +02:00
parent be12f5810b
commit 319be14aa6
37 changed files with 7129 additions and 363 deletions

View File

@@ -0,0 +1,285 @@
-- file: validation_sql/SQL_VALIDATION_METEORA_DLMM_0_7_57.sql
-- 0.7.57 meteora_dlmm validation checklist.
-- Run on a dedicated fresh SQLite database for the Meteora DLMM tranche.
-- Recommended replay settings:
-- skipDexDecode=no, forceDexDecode=yes, deferInstructionObservations=yes.
-- This file is read-only.
-- 00. Upstream fallback samples to backfill/promote.
SELECT
json_extract(de.payload_json, '$.upstreamEntryName') AS upstream_entry_name,
json_extract(de.payload_json, '$.upstreamDiscriminatorHex') AS upstream_discriminator_hex,
json_extract(de.payload_json, '$.upstreamSourceRepo') AS source_repo,
COUNT(*) AS fallback_count,
COUNT(DISTINCT de.transaction_id) AS tx_count,
MIN(tx.signature) AS sample_signature
FROM k_sol_dex_decoded_events de
LEFT JOIN k_sol_chain_transactions tx
ON tx.id = de.transaction_id
WHERE de.protocol_name = 'upstream_git'
AND de.event_kind = 'upstream_git.instruction_match'
AND json_extract(de.payload_json, '$.upstreamDecoderCode') = 'meteora_dlmm'
GROUP BY upstream_entry_name, upstream_discriminator_hex, source_repo
ORDER BY fallback_count DESC, upstream_entry_name, upstream_discriminator_hex;
-- 01. Local instruction observations.
SELECT
instruction_name,
discriminator_hex,
COUNT(*) AS observed_count,
COUNT(DISTINCT signature) AS tx_count,
MIN(signature) AS sample_signature
FROM k_sol_instruction_observations
WHERE decoder_code = 'meteora_dlmm'
GROUP BY instruction_name, discriminator_hex
ORDER BY observed_count DESC, instruction_name, discriminator_hex;
-- 02. Coverage entries.
SELECT
entry_name,
entry_kind,
event_family,
expected_db_target,
proof_status,
local_event_kind,
discriminator_hex,
observed_count,
materialized_count,
trade_count
FROM k_sol_dex_event_coverage_entries
WHERE decoder_code = 'meteora_dlmm'
ORDER BY entry_kind, entry_name, discriminator_hex;
-- 03. Decoded DLMM summary.
SELECT
de.event_kind,
COUNT(*) AS decoded_count,
COUNT(DISTINCT de.transaction_id) AS tx_count,
MIN(tx.signature) AS sample_signature
FROM k_sol_dex_decoded_events de
LEFT JOIN k_sol_chain_transactions tx
ON tx.id = de.transaction_id
WHERE de.protocol_name = 'meteora_dlmm'
GROUP BY de.event_kind
ORDER BY decoded_count DESC, de.event_kind;
-- 04. Decoded DLMM without coverage. Target: empty.
SELECT
de.event_kind,
COUNT(*) AS decoded_count,
COUNT(DISTINCT de.transaction_id) AS tx_count,
MIN(tx.signature) AS sample_signature
FROM k_sol_dex_decoded_events de
LEFT JOIN k_sol_chain_transactions tx
ON tx.id = de.transaction_id
LEFT JOIN k_sol_dex_event_coverage_entries ce
ON ce.decoder_code = 'meteora_dlmm'
AND ce.local_event_kind = de.event_kind
WHERE de.protocol_name = 'meteora_dlmm'
AND ce.id IS NULL
GROUP BY de.event_kind
ORDER BY decoded_count DESC, de.event_kind;
-- 05. Successful non-materialized without explicit skip/policy. Target: empty.
SELECT
de.event_kind,
COUNT(*) AS unexplained_count,
MIN(tx.signature) AS sample_signature
FROM k_sol_dex_decoded_events de
JOIN k_sol_chain_transactions tx
ON tx.id = de.transaction_id
LEFT JOIN k_sol_trade_events te ON te.decoded_event_id = de.id
LEFT JOIN k_sol_launch_events lae ON lae.decoded_event_id = de.id
LEFT JOIN k_sol_liquidity_events lie ON lie.decoded_event_id = de.id
LEFT JOIN k_sol_pool_lifecycle_events ple ON ple.decoded_event_id = de.id
LEFT JOIN k_sol_fee_events fee ON fee.decoded_event_id = de.id
LEFT JOIN k_sol_reward_events rew ON rew.decoded_event_id = de.id
LEFT JOIN k_sol_pool_admin_events adm ON adm.decoded_event_id = de.id
LEFT JOIN k_sol_orderbook_events obe ON obe.decoded_event_id = de.id
LEFT JOIN k_sol_token_account_events tae ON tae.decoded_event_id = de.id
WHERE de.protocol_name = 'meteora_dlmm'
AND (tx.err_json IS NULL OR tx.err_json = '' OR tx.err_json = 'null')
AND COALESCE(json_extract(de.payload_json, '$.eventActionability'), '') NOT IN (
'informational',
'decoded_only_anchor_event',
'decoded_only_missing_mint_context',
'decoded_only_with_explicit_skip_reason'
)
AND te.id IS NULL AND lae.id IS NULL AND lie.id IS NULL AND ple.id IS NULL
AND fee.id IS NULL AND rew.id IS NULL AND adm.id IS NULL AND obe.id IS NULL AND tae.id IS NULL
AND COALESCE(TRIM(json_extract(de.payload_json, '$.skipTradeReason')), '') = ''
AND COALESCE(TRIM(json_extract(de.payload_json, '$.skipCandleReason')), '') = ''
AND COALESCE(TRIM(json_extract(de.payload_json, '$.skipLiquidityReason')), '') = ''
AND COALESCE(TRIM(json_extract(de.payload_json, '$.skipLifecycleReason')), '') = ''
AND COALESCE(TRIM(json_extract(de.payload_json, '$.skipCatalogReason')), '') = ''
AND COALESCE(TRIM(json_extract(de.payload_json, '$.skipFeeReason')), '') = ''
AND COALESCE(TRIM(json_extract(de.payload_json, '$.skipRewardReason')), '') = ''
AND COALESCE(TRIM(json_extract(de.payload_json, '$.skipAdminReason')), '') = ''
AND COALESCE(TRIM(json_extract(de.payload_json, '$.skipOrderbookReason')), '') = ''
GROUP BY de.event_kind
ORDER BY unexplained_count DESC, de.event_kind;
-- 06. Failed transaction materialization. Target: empty.
SELECT
de.event_kind,
COUNT(DISTINCT de.id) AS decoded_failed_count,
COUNT(DISTINCT te.id) AS trade_count,
COUNT(DISTINCT lie.id) AS liquidity_count,
COUNT(DISTINCT ple.id) AS lifecycle_count,
COUNT(DISTINCT fee.id) AS fee_count,
COUNT(DISTINCT rew.id) AS reward_count,
COUNT(DISTINCT adm.id) AS admin_count,
COUNT(DISTINCT obe.id) AS orderbook_count,
MIN(tx.signature) AS sample_signature
FROM k_sol_dex_decoded_events de
JOIN k_sol_chain_transactions tx
ON tx.id = de.transaction_id
LEFT JOIN k_sol_trade_events te ON te.decoded_event_id = de.id
LEFT JOIN k_sol_liquidity_events lie ON lie.decoded_event_id = de.id
LEFT JOIN k_sol_pool_lifecycle_events ple ON ple.decoded_event_id = de.id
LEFT JOIN k_sol_fee_events fee ON fee.decoded_event_id = de.id
LEFT JOIN k_sol_reward_events rew ON rew.decoded_event_id = de.id
LEFT JOIN k_sol_pool_admin_events adm ON adm.decoded_event_id = de.id
LEFT JOIN k_sol_orderbook_events obe ON obe.decoded_event_id = de.id
WHERE de.protocol_name = 'meteora_dlmm'
AND tx.err_json IS NOT NULL
AND tx.err_json <> ''
AND tx.err_json <> 'null'
GROUP BY de.event_kind
HAVING trade_count > 0 OR liquidity_count > 0 OR lifecycle_count > 0
OR fee_count > 0 OR reward_count > 0 OR admin_count > 0 OR orderbook_count > 0
ORDER BY decoded_failed_count DESC, de.event_kind;
-- 07. Multi-target materialization. Target: empty.
SELECT *
FROM (
SELECT
de.id AS decoded_event_id,
de.event_kind,
tx.signature,
(CASE WHEN te.id IS NULL THEN 0 ELSE 1 END)
+ (CASE WHEN lie.id IS NULL THEN 0 ELSE 1 END)
+ (CASE WHEN ple.id IS NULL THEN 0 ELSE 1 END)
+ (CASE WHEN fee.id IS NULL THEN 0 ELSE 1 END)
+ (CASE WHEN rew.id IS NULL THEN 0 ELSE 1 END)
+ (CASE WHEN adm.id IS NULL THEN 0 ELSE 1 END)
+ (CASE WHEN obe.id IS NULL THEN 0 ELSE 1 END) AS target_count
FROM k_sol_dex_decoded_events de
JOIN k_sol_chain_transactions tx ON tx.id = de.transaction_id
LEFT JOIN k_sol_trade_events te ON te.decoded_event_id = de.id
LEFT JOIN k_sol_liquidity_events lie ON lie.decoded_event_id = de.id
LEFT JOIN k_sol_pool_lifecycle_events ple ON ple.decoded_event_id = de.id
LEFT JOIN k_sol_fee_events fee ON fee.decoded_event_id = de.id
LEFT JOIN k_sol_reward_events rew ON rew.decoded_event_id = de.id
LEFT JOIN k_sol_pool_admin_events adm ON adm.decoded_event_id = de.id
LEFT JOIN k_sol_orderbook_events obe ON obe.decoded_event_id = de.id
WHERE de.protocol_name = 'meteora_dlmm'
)
WHERE target_count > 1
ORDER BY target_count DESC, event_kind, signature;
-- 08. Non-swap trade/candle safety. Target: empty.
SELECT
de.event_kind,
COUNT(DISTINCT te.id) AS trade_count,
COUNT(DISTINCT pc.id) AS candle_count,
MIN(tx.signature) AS sample_signature
FROM k_sol_dex_decoded_events de
JOIN k_sol_chain_transactions tx ON tx.id = de.transaction_id
LEFT JOIN k_sol_trade_events te ON te.decoded_event_id = de.id
LEFT JOIN k_sol_pair_candles pc ON pc.pair_id = te.pair_id
WHERE de.protocol_name = 'meteora_dlmm'
AND de.event_kind NOT IN (
'meteora_dlmm.swap',
'meteora_dlmm.swap2',
'meteora_dlmm.swap_exact_out',
'meteora_dlmm.swap_exact_out2',
'meteora_dlmm.swap_with_price_impact',
'meteora_dlmm.swap_with_price_impact2'
)
GROUP BY de.event_kind
HAVING trade_count > 0 OR candle_count > 0
ORDER BY trade_count DESC, candle_count DESC, de.event_kind;
-- 09. Fee parent/legs summary.
SELECT
de.protocol_name,
de.event_kind,
COUNT(DISTINCT fee.id) AS fee_parent_count,
COUNT(DISTINCT CASE
WHEN COALESCE(TRIM(fee.fee_token_mint), '') <> ''
AND COALESCE(TRIM(fee.fee_amount_raw), '') <> ''
THEN fee.id
ELSE NULL
END) AS parent_with_scalar_amount_count,
COUNT(DISTINCT fea.id) AS fee_amount_leg_count,
MIN(tx.signature) AS sample_signature
FROM k_sol_fee_events fee
JOIN k_sol_dex_decoded_events de ON de.id = fee.decoded_event_id
JOIN k_sol_chain_transactions tx ON tx.id = fee.transaction_id
LEFT JOIN k_sol_fee_event_amounts fea ON fea.fee_event_id = fee.id
WHERE de.protocol_name = 'meteora_dlmm'
GROUP BY de.protocol_name, de.event_kind
ORDER BY de.protocol_name, de.event_kind;
-- 10. Fee parent scalar without leg. Target: empty.
SELECT
de.protocol_name,
de.event_kind,
tx.signature,
fee.id AS fee_event_id,
fee.fee_token_mint,
fee.fee_amount_raw,
fee.payload_json
FROM k_sol_fee_events fee
JOIN k_sol_dex_decoded_events de ON de.id = fee.decoded_event_id
JOIN k_sol_chain_transactions tx ON tx.id = fee.transaction_id
LEFT JOIN k_sol_fee_event_amounts fea ON fea.fee_event_id = fee.id
WHERE de.protocol_name = 'meteora_dlmm'
AND COALESCE(TRIM(fee.fee_token_mint), '') <> ''
AND COALESCE(TRIM(fee.fee_amount_raw), '') <> ''
AND fea.id IS NULL
ORDER BY de.protocol_name, de.event_kind, tx.signature
LIMIT 100;
-- 11. Orphan fee amount legs. Target: empty.
SELECT
fea.id,
fea.fee_event_id,
fea.transaction_id,
fea.decoded_event_id
FROM k_sol_fee_event_amounts fea
LEFT JOIN k_sol_fee_events fee ON fee.id = fea.fee_event_id
WHERE fee.id IS NULL;
-- 12. Reward/fee separation overview.
SELECT
de.event_kind,
COUNT(DISTINCT fee.id) AS fee_count,
COUNT(DISTINCT rew.id) AS reward_count,
MIN(tx.signature) AS sample_signature
FROM k_sol_dex_decoded_events de
JOIN k_sol_chain_transactions tx ON tx.id = de.transaction_id
LEFT JOIN k_sol_fee_events fee ON fee.decoded_event_id = de.id
LEFT JOIN k_sol_reward_events rew ON rew.decoded_event_id = de.id
WHERE de.protocol_name = 'meteora_dlmm'
GROUP BY de.event_kind
HAVING fee_count > 0 OR reward_count > 0
ORDER BY de.event_kind;
-- 13. Global watchlist after replay.
SELECT
COALESCE(json_extract(de.payload_json, '$.upstreamDecoderCode'), de.protocol_name) AS backlog_decoder,
de.event_kind,
json_extract(de.payload_json, '$.upstreamEntryName') AS upstream_entry_name,
json_extract(de.payload_json, '$.upstreamDiscriminatorHex') AS upstream_discriminator_hex,
COUNT(*) AS decoded_count,
COUNT(DISTINCT de.transaction_id) AS tx_count,
MIN(tx.signature) AS sample_signature
FROM k_sol_dex_decoded_events de
LEFT JOIN k_sol_chain_transactions tx ON tx.id = de.transaction_id
WHERE de.protocol_name IN ('upstream_git', 'meteora_dlmm')
GROUP BY backlog_decoder, de.event_kind, upstream_entry_name, upstream_discriminator_hex
ORDER BY decoded_count DESC, backlog_decoder, de.event_kind
LIMIT 100;