diff --git a/crates/fidc-core/src/manual_corporate_replay.rs b/crates/fidc-core/src/manual_corporate_replay.rs index 42027a1..3f35049 100644 --- a/crates/fidc-core/src/manual_corporate_replay.rs +++ b/crates/fidc-core/src/manual_corporate_replay.rs @@ -174,12 +174,16 @@ impl ManualCorporateReplay { let expected = current.financial_replay_identity(); let reference_identity = reference.financial_replay_identity(); if reference_identity != expected { + let differing = expected.as_object().into_iter().flat_map(|value| value.keys()) + .chain(reference_identity.as_object().into_iter().flat_map(|value| value.keys())) + .collect::>().into_iter().filter(|key| expected.get(*key)!=reference_identity.get(*key)) + .cloned().collect::>().join(","); return Err(format!( - "manual corporate ledger coverage mismatch: symbol={} observed_at={} expected={} replayed={}", + "manual corporate ledger coverage mismatch: symbol={} observed_at={} expected={} replayed={} differing_fields={}", observation.order.symbol, observation.fill.observed_at, digest(&expected)?, - digest(&reference_identity)? + digest(&reference_identity)?, differing )); } let replayed = self.replay(