docs: MASP inspector proc hash requires per-chunk byte-reversal before use in call.0xHEX
- 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
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