Releases: 0xMiden/protocol
Releases · 0xMiden/protocol
v0.15.3
What's Changed
- chore: add RUSTSEC-2026-0173 to deny.toml by @mmagician in #3063
- feat(agglayer): make bridge network ID a deployment setting by @mmagician in #3062
- docs(agglayer): sync spec, diagram & comments with #2771 by @mmagician in #2980
- chore: increment crate versions to v0.15.3 by @mmagician in #3076
Full Changelog: v0.15.2...v0.15.3
v0.15.2
- [BREAKING]
AuthNetworkAccountnow gates transaction scripts with a root allowlist instead of banning them outright, enabling network accounts to run approved tx scripts such as setting the expiration delta (#3028). - [BREAKING]
TransactionScript::root()now returnsTransactionScriptRootinstead ofWord(#3028). - Renamed
AuthNetworkAccount::with_allowlisttowith_allowed_notesand aligned the component's internal allowlist field names, for consistency withwith_allowed_tx_scripts(#3049).
v0.15.1
What's Changed
- fix(agglayer): enforce
NoteType::Publicfor B2AGG bridge-out notes (#3005) - fix: reject circular note dependencies at transaction, batch and block level (#2993)
- Extend execution-error assertion macros with patter and any arms (#2897)
- Make BURN note ID unique (#2987)
- docs: discourage multiple attachments with the same scheme (#2992)
- docs: remove MASM format & style guide (#2994)
- feat(agglayer): reject duplicate GER insertions (#2983)
- feat: implement
CloneforTransactionContextBuilder(#2979)
v0.15.0
Features
- Added a
FungibleTokenMetadatacomponent supporting name, description, logo URI, and external links, along with MASM procedures for retrieving token metadata (get_token_metadata, get_max_supply, get_decimals, get_token_symbol). Also aligned fungible faucet token metadata with the standard by using the canonical storage slot, enabling compatibility with MASM metadata getters (#2439). - Added
PSWAP(partial swap) note for decentralized partial-fill asset exchange with remainder note re-creation (#2636). - [BREAKING] Renamed
NoteIdtoNoteDetailsCommitment, newNoteIdstruct now includes the NoteMetadata (#1731). - Added lock/unlock path for Miden-native tokens in the AggLayer bridge:
is_nativeflag infaucet_registry_map, bridge-localfaucet_metadata_map(replacing FPI to faucets for conversion data), andlock_asset/unlock_and_sendprocedures so the bridge holds native assets in its own vault instead of burn/mint via a faucet (#2771). - [BREAKING] Added support for multiple attachments per note (#2795, #2849):
- [BREAKING] Removed
AccountStorageMode::Network; network accounts are now identified viaNetworkAccountNoteAllowlist(#2900). - Added
PswapAttachmentscheme andPswapNote::payback_note/remainder_notediscovery helpers so creators can reconstruct private paybacks from on-chain commitments (#2909). - Added benchmark for ECDSA signed transaction (#2967).
Changes
- Documented the
miden::protocol::account_idmodule in the protocol library docs (#2607). - [BREAKING] Renamed
procedure_digest!toprocedure_root!and returnAccountProcedureRootinstead ofWord(#2621). - [BREAKING] Introduced
AssetCompositionand encoded composition in the asset vault key's metadata byte (#2631). - Added
BlockNumber::saturating_sub()(#2660). - [BREAKING] Renamed
ProvenBatch::newtonew_unchecked(#2687). - Added
ShortCapitalStringtype and relatedTokenSymbolandRoleSymboltypes (#2690). - [BREAKING] Renamed the guarded multisig component-facing APIs from
multisig_guardian/AuthMultisigGuardiantoguarded_multisig/AuthGuardedMultisig, while retaining theguardianauth namespace and guardian-specific procedures. - Added shared
ProcedurePolicyfor AuthMultisig (#2670). - [BREAKING] Changed
NoteTypeencoding from 2 bits to 1 and makesNoteType::Privatethe default (#2691). - [BREAKING] Renamed
native_asset_idtofee_faucet_id(#2718). - Added
AssetAmountwrapper type for validated fungible asset amounts (#2721). - Added validation of leaf type on CLAIM note processing to prevent message leaves from being processed as asset claims (#2730).
- [BREAKING] Removed redundant outputs from kernel procedures:
note::write_assets_to_memory,active_note::get_assets,input_note::get_assets,output_note::get_assets,active_note::get_storage, andfaucet::mintno longer return values identical to their inputs (#2733). - Added
metadata_into_note_typeprocedure tonote.masmfor extracting note type from metadata header (#2738). - [BREAKING] Reduced
MAX_ASSETS_PER_NOTEfrom 255 to 64 andNOTE_MEM_SIZEfrom 3072 to 1024 (#2741). - [BREAKING] Stored
origin_networkin LE-packed format in AggLayer faucet storage (#2745). - Optimized
B2AGGprocessing with selective load/save of Local Exit Tree frontier entries, halving frontier storage map syscalls (#2752). - [BREAKING] Renamed
extract_sender_from_metadatatometadata_into_senderandextract_attachment_info_from_metadatatometadata_into_attachment_infoinnote.masm(#2758). - Updated
SwapNote::build_tagto use 1-bitNoteTypeencoding, increasing script root bits from 14 to 15 (#2758). - Use number of storage slots from native account in account delta commitment computation (#2770).
- [BREAKING] Added cycle counts to notes returned by
NoteConsumptionInfoand removed public fields from related types (#2772). - Added
TransactionScript::from_package()method to createTransactionScriptfrommiden-mast-package::Package(#2779). - [BREAKING] Removed unused
payback_attachmentfromSwapNoteStorageandattachmentfromMintNoteStorage(#2789). - Automatically enable
concurrentfeature inmiden-txforstdcontext (#2791). - Added
Pausablestandard component withpause,unpause,is_pausedprocedures andon_before_asset_added_to_account,on_before_asset_added_to_notecallbacks (#2793). - Added trace row counts to
bench-tx.json(#2794). - [BREAKING] Renamed
set_attachmenttoadd_attachment,set_word_attachmenttoadd_word_attachment, andset_array_attachmenttoadd_array_attachmentinmiden::protocol::output_note(#2795, #2849). - Added foundations for
AuthMultisigSmart(#2806). - Added
tx::get_tx_script_rootkernel procedure returning the root of the executed transaction script (empty word if no script was executed) (#2816). - Added
AuthNetworkAccountauth component that rejects transactions which execute a tx script or consume input notes outside of a fixed allowlist of note script roots (#2817). - Added basic blocklist transfer policy with owner-managed admin (
block_account/unblock_account) and runtime policy switching via the protocol-reserved asset callback slots ([#2820])(#2820). - [BREAKING] Renamed
OwnerControlledBlocklisttoBlocklistOwnerControlled. - Added basic allowlist transfer policy (default-deny dual of the blocklist) with owner-managed admin (
allow_account/disallow_account) and runtime policy switching via the protocol-reserved asset callback slots. - Derive
Hashimplementation forStorageMapKeyandStorageMapKeyHashto allow using those values as keys in containers (#2843). - [BREAKING] Replaced
metadata_into_attachment_infowithmetadata_into_attachment_schemesinmiden::protocol::note(#2795, #2849). - [BREAKING] All
get_metadataprocedures (active_note,input_note,output_note) no longer return attachments (#2795, #2849). - [BREAKING] Added
NoteScriptRootnewtype wrapping note script roots (#2851). - Re-exported
MIN_STACK_DEPTHfrommiden-processor(#2856). - [BREAKING] Renamed
NoteIdtoNoteDetailsCommitment, newNoteIdstruct now includes the NoteMetadata (#2861). - Added
metadata_into_taghelper for extracting the tag from metadata. This should be used instead of extracting the tag manually from the header (#2871). - [BREAKING] Renamed
note::build_recipient_hashtonote::compute_recipientandnote::build_recipienttonote::compute_and_store_recipient(#2875). - Added standardized
NetworkAccountNoteAllowlistslot for detecting network accounts (#2883). - [BREAKING] Merged
BasicFungibleFaucetandNetworkFungibleFaucet(#2890). - [BREAKING] Renamed
NoteMetadatatoPartialNoteMetadataand renamedNoteMetadataHeadertoNoteMetadata(#2887). - [BREAKING] Renamed account ID version 0 to version 1 and made encoded version 0 invalid (#2842).
- [BREAKING] Changed note metadata version 1 to encode as
1, leaving encoded version0invalid. - [BREAKING] Added
NetworkAccountwrapper for convenient network account identification (#2915). - [BREAKING] Replaced the
FungibleFaucetBuilderwith abonbuilder on `Fun...
v0.14.6
v0.14.5
v0.14.4
What's Changed
- fix(agglayer): must
padwbefore loadingSERIAL_NUMby @mmagician in #2749 - chore: release v0.14.4 by @mmagician in #2751
Full Changelog: v0.14.3...v0.14.4