commonwarexyz / commonwarexyz/constantinople
Use Rust/WASM bindings for explorer transaction decoding
- Dominant language
- Rust
- Stars
- 27
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
## Problem
The explorer currently duplicates parts of the Rust transaction wire format in TypeScript. That duplication has already drifted once: transaction proof verification assumed a fixed transfer-sized transaction body and failed for newer tagged/channel transaction shapes.
## Goal
Expose a small Rust/WASM boundary for explorer transaction decoding and digest verification so the frontend does not need to manually mirror transaction layout details.
A useful first API could return:
- signed transaction digest
- operation kind: transfer, channel open, channel close
- sender/counterparty/value/nonce display fields where needed
## Notes
Short term, it is acceptable to keep a narrow TypeScript parser for the current proof fix. This issue tracks the cleaner follow-up so future transaction format changes are validated by the Rust primitives codec instead of duplicated in the explorer.
Contributor guide
Research direction
Start by locating the explorer's TypeScript transaction parsing and proof-verification entry points, then trace the corresponding Rust primitives codec. Define the narrow Rust/WASM boundary around decoding and digest verification, including the listed operation and display fields. Done means the explorer can use that boundary without duplicating transaction layout details, with coverage for transfer, channel-open, and channel-close shapes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust, typescript, wasm
- Domain
- blockchain, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100