Summary
When debugging discrepancies between on-chain and database state, operators need a way to see exactly what the contract holds for a given key without writing a separate script. A GET /admin/keys/:keyId/snapshot endpoint that reads all relevant on-chain fields via the Soroban RPC and returns them alongside the corresponding database values would simplify reconciliation.
Scope
- Add GET /admin/keys/:keyId/snapshot requiring a valid admin JWT
- Read circulatingSupply, currentPrice, holderCount, tradingPaused, supplyCap, holderCapBps, and circuitBreakerThresholdBps from the Soroban contract
- Read the same fields from the database key record
- Return both sets side by side with a drift boolean per field indicating whether they match
- Return 404 for unknown key IDs
Acceptance Criteria
ETA: 12 hours
Coordinate on Telegram
Summary
When debugging discrepancies between on-chain and database state, operators need a way to see exactly what the contract holds for a given key without writing a separate script. A GET /admin/keys/:keyId/snapshot endpoint that reads all relevant on-chain fields via the Soroban RPC and returns them alongside the corresponding database values would simplify reconciliation.
Scope
Acceptance Criteria
ETA: 12 hours
Coordinate on Telegram