feat(contracts): inspect WASM contract specs via soroban-spec #25
Description
Problem
There is no contract inspection; developers must use other tools.
Why this matters
Read-only spec inspection is a high-value developer workflow.
Context
soroban-spec 28.0.0 provides spec utilities.
Scope
-
Extract and print contract spec entries from a WASM file
-
Clearly separate confirmed facts from inference
Out of scope
-
Executing contracts.
-
Deploying.
Technical guidance
- Never execute WASM; only parse metadata.
Relevant modules/files
- crates/devkit-contract/
Acceptance criteria
-
Spec entries are extracted from a fixture WASM
-
Unavailable data is reported as unavailable
Tests required
- Fixture-based tests
Security considerations
Treat WASM as untrusted; bound parsing.
Performance considerations
Bound input size.
Documentation requirements
Document supported spec output.
Dependencies
None.
Definition of done
Merged with tests passing and CI green.
Complexity recommendation
difficulty/high
Contribution guidelines
-
Assignment required before starting. Request assignment on this issue; do not open a pull request until a maintainer has assigned you.
-
Your pull request must include
Closes #25. -
Run the local gate before opening the PR:
cargo fmt --all -- --check cargo clippy --all-targets --all-features -- -D warnings cargo test --all -
Example commit message:
feat(contracts): inspect WASM contract specs via soroban-spec -
Suggested timeframe: complete within the active Wave cycle.
-
Complexity is tagged with a
difficulty/*label. Drips determines the applicable points and budget through its own system. -
See docs/WAVE.md and CONTRIBUTING.md.
Activity
Ayinkx01 commentedon Oct 28, 2026
Partially implemented on
mainin #133:devkit-contractvalidates WASM without executing it and decodescontractspecv0as bounded officialScSpecEntryXDR values, returning XDR-JSON with variant kind and best-effort name. Remaining: a fixture-WASM test that extracts real spec entries and a normalized ABI view. Markingstatus/needs-revision.docs: close completed issues and re-scope partial work (#135)