<!-- file: docs/VALIDATION_STATUS_0_7_51_FINAL.md -->

# Validation Status — `0.7.51 raydium_amm_v4 final`

## Rust

```text
cargo test -p kb_lib -> 405 passed / 0 failed
cargo clippy -p kb_lib --all-targets -- -D warnings -> OK
```

## Replay final

```text
195 replayed
0 decode skipped
195 ledger upserts
70 unsafe ledger rows
168 trades
7 liquidity
15 lifecycle
0 tokenAccount
668 candle upserts
instructionObservations = 2599
resetDeleted = 1578
catalog = 61 tokens / 65 pools / 65 pairs
```

## SQL blocking checks

Résultat attendu et rapporté : `vide` pour les contrôles suivants.

- `raydium_amm_v4.swap` legacy ;
- decoded events AMM v4 sans coverage entry ;
- observations AMM v4 en discriminant plus long qu'un octet ;
- non-swap AMM v4 avec trade ;
- failed tx AMM v4 avec trade ;
- successful non-materialized AMM v4 sans raison explicite ;
- matérialisation multi-target AMM v4.

## Points validés

- Tous les discriminants officiels AMM v4 `00..11` sont observés localement.
- `pre_initialize` : `decoded_success_count=7`, `lifecycle_count=7`.
- `migrate_to_open_book` : orderbook-only (`lifecycle_count=0`, `orderbook_count=6`).
- `simulate_info` : decoded-only.
- `raydium_pool_v4` : audit-only / décision conditionnelle, sans decoder local.
