MASM Changes
MASM syntax has been modernized. Replace dotted keywords (const., export., use.) with spaced forms.
Quick Fix
src/contract.masm
# Before
const.MY_CONSTANT=42
use.miden::account
export.my_procedure
# After
const MY_CONSTANT=42
use miden::account
export my_procedure
Syntax Modernization
Replace dotted keywords with spaced forms:
Constants
src/contract.masm
- const.MY_CONSTANT=42
+ const MY_CONSTANT=42
Exports
src/contract.masm
- export.my_procedure
+ export my_procedure
# procedure body
- end
+ end
Imports
src/contract.masm
- use.miden::account
- use.miden::note
+ use miden::account
+ use miden::note
Re-exports
src/contract.masm
- export.miden::account::get_id
+ pub use miden::account::get_id
Use sed to batch-update MASM files:
# Update constants
sed -i 's/const\./const /g' *.masm
# Update exports
sed -i 's/export\./export /g' *.masm
# Update imports
sed -i 's/use\./use /g' *.masm
Cryptography Updates
Falcon Signature Rename
Rename RpoFalcon512 to Falcon512Rpo throughout codebase:
src/auth.masm
- use.miden::contracts::auth::basic::auth_tx_rpo_falcon512
+ use miden::contracts::auth::basic::auth_tx_falcon512_rpo
ECDSA Procedures
ECDSA procedures moved to new namespace:
src/crypto.masm
- use.miden::crypto::dsa::ecdsa
- exec.ecdsa::verify_k256
+ use miden::core::crypto::dsa::ecdsa_k256_keccak
+ exec.ecdsa_k256_keccak::verify
RPO Hash Helpers
Hash helper procedures renamed:
src/hash.masm
- exec.rpo::hash_memory_words
+ exec.rpo::hash_words
Complete MASM Migration Example
Before:
src/contract.masm (before)
use.miden::account
use.std::crypto::hashes::rpo
const.BALANCE_SLOT=0
export.get_balance
push.BALANCE_SLOT
exec.account::get_item
end
export.transfer
exec.rpo::hash_memory_words
# ... rest of procedure
end
After:
src/contract.masm (after)
use miden::account
use miden::core::crypto::hashes::rpo
const BALANCE_SLOT=0
export get_balance
push.BALANCE_SLOT
exec.account::get_item
end
export transfer
exec.rpo::hash_words
# ... rest of procedure
end
Migration Steps
- Find all
.masmfiles in your project - Replace
const.withconst(space instead of dot) - Replace
export.withexport(space instead of dot) - Replace
use.withuse(space instead of dot) - Replace
export.<path>re-exports withpub use <path> - Update
std::namespace tomiden::core:: - Rename
RpoFalcon512toFalcon512Rpo - Update ECDSA procedure paths
- Rename
hash_memory_wordstohash_words
Common Errors
| Error | Cause | Fix |
|---|---|---|
unexpected token '.' | Old syntax | Use space: const X not const.X |
module 'std' not found | Namespace changed | Use miden::core:: |
procedure 'auth_tx_rpo_falcon512' not found | Renamed | Use auth_tx_falcon512_rpo |
procedure 'hash_memory_words' not found | Renamed | Use hash_words |