Problem
indexer/src/decoder.js falls back to a function name of "unknown" and emits raw_topics when it cannot recognize an event or its ABI. This fallback is silent: there is no counter or log that records how often decoding falls through, so there is no way to measure decoding coverage or detect a regression where a whole class of events stops decoding. Since human-readable decoding is the core value of the product, this blind spot matters.
What needs to be done
- Increment a metric each time the decoder falls back to the
unknown/raw_topics path, labeled by contract and/or event where feasible.
- Emit a debug/structured log for fallbacks so they can be sampled and investigated.
- Expose the metric via the service's metrics endpoint so decoding coverage can be tracked over time.
- Document what a rising fallback rate indicates.
Files
indexer/src/decoder.js
- indexer metrics/exposition and
indexer/src/api.js
Acceptance deliverables
- Decode fallbacks are counted and observable.
- A rising fallback rate is visible via metrics.
- All CI checks pass; the change cannot be merged until CI is green.
Tests to pass
- Test: decoding an unrecognized event increments the fallback counter.
- Test: decoding a known event does not increment it.
Problem
indexer/src/decoder.jsfalls back to a function name of"unknown"and emitsraw_topicswhen it cannot recognize an event or its ABI. This fallback is silent: there is no counter or log that records how often decoding falls through, so there is no way to measure decoding coverage or detect a regression where a whole class of events stops decoding. Since human-readable decoding is the core value of the product, this blind spot matters.What needs to be done
unknown/raw_topicspath, labeled by contract and/or event where feasible.Files
indexer/src/decoder.jsindexer/src/api.jsAcceptance deliverables
Tests to pass