Skip to content

Releases: 0xMiden/protocol

v0.15.3

10 Jun 07:10
681fc90

Choose a tag to compare

What's Changed

Full Changelog: v0.15.2...v0.15.3

v0.15.2

05 Jun 07:37
292405b

Choose a tag to compare

  • [BREAKING] AuthNetworkAccount now 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 returns TransactionScriptRoot instead of Word (#3028).
  • Renamed AuthNetworkAccount::with_allowlist to with_allowed_notes and aligned the component's internal allowlist field names, for consistency with with_allowed_tx_scripts (#3049).

v0.15.1

31 May 20:28
625b66d

Choose a tag to compare

What's Changed

  • fix(agglayer): enforce NoteType::Public for 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 Clone for TransactionContextBuilder (#2979)

v0.15.0

22 May 20:32
21e3bea

Choose a tag to compare

Features

  • Added a FungibleTokenMetadata component 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 NoteId to NoteDetailsCommitment, new NoteId struct now includes the NoteMetadata (#1731).
  • Added lock/unlock path for Miden-native tokens in the AggLayer bridge: is_native flag in faucet_registry_map, bridge-local faucet_metadata_map (replacing FPI to faucets for conversion data), and lock_asset / unlock_and_send procedures 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 via NetworkAccountNoteAllowlist (#2900).
  • Added PswapAttachment scheme and PswapNote::payback_note / remainder_note discovery 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_id module in the protocol library docs (#2607).
  • [BREAKING] Renamed procedure_digest! to procedure_root! and return AccountProcedureRoot instead of Word (#2621).
  • [BREAKING] Introduced AssetComposition and encoded composition in the asset vault key's metadata byte (#2631).
  • Added BlockNumber::saturating_sub() (#2660).
  • [BREAKING] Renamed ProvenBatch::new to new_unchecked (#2687).
  • Added ShortCapitalString type and related TokenSymbol and RoleSymbol types (#2690).
  • [BREAKING] Renamed the guarded multisig component-facing APIs from multisig_guardian / AuthMultisigGuardian to guarded_multisig / AuthGuardedMultisig, while retaining the guardian auth namespace and guardian-specific procedures.
  • Added shared ProcedurePolicy for AuthMultisig (#2670).
  • [BREAKING] Changed NoteType encoding from 2 bits to 1 and makes NoteType::Private the default (#2691).
  • [BREAKING] Renamed native_asset_id to fee_faucet_id (#2718).
  • Added AssetAmount wrapper 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, and faucet::mint no longer return values identical to their inputs (#2733).
  • Added metadata_into_note_type procedure to note.masm for extracting note type from metadata header (#2738).
  • [BREAKING] Reduced MAX_ASSETS_PER_NOTE from 255 to 64 and NOTE_MEM_SIZE from 3072 to 1024 (#2741).
  • [BREAKING] Stored origin_network in LE-packed format in AggLayer faucet storage (#2745).
  • Optimized B2AGG processing with selective load/save of Local Exit Tree frontier entries, halving frontier storage map syscalls (#2752).
  • [BREAKING] Renamed extract_sender_from_metadata to metadata_into_sender and extract_attachment_info_from_metadata to metadata_into_attachment_info in note.masm (#2758).
  • Updated SwapNote::build_tag to use 1-bit NoteType encoding, 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 NoteConsumptionInfo and removed public fields from related types (#2772).
  • Added TransactionScript::from_package() method to create TransactionScript from miden-mast-package::Package (#2779).
  • [BREAKING] Removed unused payback_attachment from SwapNoteStorage and attachment from MintNoteStorage (#2789).
  • Automatically enable concurrent feature in miden-tx for std context (#2791).
  • Added Pausable standard component with pause, unpause, is_paused procedures and on_before_asset_added_to_account, on_before_asset_added_to_note callbacks (#2793).
  • Added trace row counts to bench-tx.json (#2794).
  • [BREAKING] Renamed set_attachment to add_attachment, set_word_attachment to add_word_attachment, and set_array_attachment to add_array_attachment in miden::protocol::output_note (#2795, #2849).
  • Added foundations for AuthMultisigSmart (#2806).
  • Added tx::get_tx_script_root kernel procedure returning the root of the executed transaction script (empty word if no script was executed) (#2816).
  • Added AuthNetworkAccount auth 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 OwnerControlledBlocklist to BlocklistOwnerControlled.
  • 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 Hash implementation for StorageMapKey and StorageMapKeyHash to allow using those values as keys in containers (#2843).
  • [BREAKING] Replaced metadata_into_attachment_info with metadata_into_attachment_schemes in miden::protocol::note (#2795, #2849).
  • [BREAKING] All get_metadata procedures (active_note, input_note, output_note) no longer return attachments (#2795, #2849).
  • [BREAKING] Added NoteScriptRoot newtype wrapping note script roots (#2851).
  • Re-exported MIN_STACK_DEPTH from miden-processor (#2856).
  • [BREAKING] Renamed NoteId to NoteDetailsCommitment, new NoteId struct now includes the NoteMetadata (#2861).
  • Added metadata_into_tag helper 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_hash to note::compute_recipient and note::build_recipient to note::compute_and_store_recipient (#2875).
  • Added standardized NetworkAccountNoteAllowlist slot for detecting network accounts (#2883).
  • [BREAKING] Merged BasicFungibleFaucet and NetworkFungibleFaucet (#2890).
  • [BREAKING] Renamed NoteMetadata to PartialNoteMetadata and renamed NoteMetadataHeader to NoteMetadata (#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 version 0 invalid.
  • [BREAKING] Added NetworkAccount wrapper for convenient network account identification (#2915).
  • [BREAKING] Replaced the FungibleFaucetBuilder with a bon builder on `Fun...
Read more

v0.14.6

10 May 05:23
6033d10

Choose a tag to compare

  • Fixed asset callback against native account panicking (#2868).

v0.14.5

24 Apr 00:57
006fcbd

Choose a tag to compare

  • Fixed note script compilation: all note scripts are now compiled as libraries (#2822).

v0.14.4

09 Apr 13:38
7f1077f

Choose a tag to compare

What's Changed

Full Changelog: v0.14.3...v0.14.4

v0.14.3

07 Apr 18:23
0e47320

Choose a tag to compare

  • [BREAKING] Updated for compatibility with miden-vm v0.22.1 (Arc<Library> return types, MastArtifact/PackageKind removal) (#2742).

v0.14.2

01 Apr 02:40
abd3f78

Choose a tag to compare

  • Changed felt-to-word layout in the type registry from [0, 0, 0, felt] to [felt, 0, 0, 0] to match the actual MASM storage layout (#2711).

v0.14.1

30 Mar 20:50
954a37b

Choose a tag to compare

  • Integrate various AggLayer cleanups