commonwarexyz / commonwarexyz/constantinople

Use Rust/WASM bindings for explorer transaction decoding

Open
#33 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.