0xMiden / 0xMiden/rust-sdk

docs: MASP inspector proc hash requires per-chunk byte-reversal before use in call.0xHEX

Offen Anfängerfreundlich
#2,463 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Rust
Sterne
78
Forks
129
Ø Merge
4 T. 14 Std.
Gemergte PRs (30 T.)
52

Beschreibung

### Packages versions

miden-assembly-syntax 0.22.1
miden-client 0.15.x

### Bug description

The MASP inspector reports procedure hashes in big-endian per 8-byte chunk order, but `call.0xHEX` in Miden assembly parses each chunk as little-endian (per `u64::from_le_bytes` in `miden-assembly/src/parser/lexer.rs`). There is no documentation warning developers about this format mismatch.

Using the raw MASP inspector hash in `call.0xHEX` silently invokes a different or non-existent procedure, producing a wrong-proc error or silent failure with no helpful diagnostic message.

### How can this be reproduced?

1. Deploy any Miden contract with exported procedures.
2. Open the MASP inspector and copy the procedure hash for any exported procedure.
3. Use the copied hash directly in a transaction script: `call.0x`
4. The transaction silently fails or invokes a wrong/non-existent procedure.

Correct usage requires per-chunk byte-reversal before use:

```python
masp = "1f92867d5acabdfdece9a4eb6d0c2ae19359c1a7ae1fa54e1fc16cc6ab2d94c0"
chunks = [masp[i:i+16] for i in range(0, 64, 16)]
call_hex = "".join(bytes.fromhex(c)[::-1].hex() for c in chunks)
# Result: fdbdca5a7d86921fe12a0c6deba4e9ec4ea51faea7c15993c0942dabc66cc11f
# Use: call.0xfdbdca5a7d86921fe12a0c6deba4e9ec4ea51faea7c15993c0942dabc66cc11f
```

### Relevant log output

```shell
WalletTransactionError: procedure with root digest 0x1f92867d5acabdfdece9a4eb6d0c2ae19359c1a7ae1fa54e1fc16cc6ab2d94c0 could not be found
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Das Issue betrifft die Dokumentation einer Diskrepanz zwischen dem Hash-Format des MASP-Inspectors und dem `call.0xHEX`-Parser. Untersuchen Sie das Ausgabeformat des MASP-Inspectors und den Parser in `miden-assembly/src/parser/lexer.rs` bei `u64::from_le_bytes`. Die Lösung besteht darin, einen Hinweis in der Dokumentation hinzuzufügen, wahrscheinlich in der Nähe der Erklärung von Prozedur-Hashes oder in der Dokumentation der `call.0xHEX`-Instruktion. Prüfen Sie bestehende Dokumentation auf ähnliche Warnungen und ermitteln Sie, wo das Konvertierungsbeispiel platziert werden sollte.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust
Bereich
documentation
Issue-Typ
Dokumentation
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Aktiv
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
70/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.