Skip to content

feat(contracts): inspect WASM contract specs via soroban-spec #25

Open

Description

@Ayinkx01

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

  1. Ayinkx01 commented on Oct 28, 2026

    @Ayinkx01
    ContributorAuthor

    Partially implemented on main in #133: devkit-contract validates WASM without executing it and decodes contractspecv0 as bounded official ScSpecEntry XDR 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. Marking status/needs-revision.

  2. added and removed on Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions