Conversation
* fix(ci): install Rust 1.91 for cargo-msrv compatibility cargo-msrv 0.19.3 requires rustc 1.91.1 or newer, but the stable toolchain currently ships 1.90.0. Install the 1.91 toolchain and set RUSTUP_TOOLCHAIN=1.91 on the cargo-msrv install and MSRV check steps so the tool can build and run. * Revert "fix(ci): install Rust 1.91 for cargo-msrv compatibility" This reverts commit 4485176. * chore: bump toolchain * chore: clippy
Add scheme-specific constructors that accept typed public keys instead of a generic PublicKeyCommitment, preventing mismatches between key type and authentication scheme: - falcon512_poseidon2(pub_key): creates component from a Falcon512 key - ecdsa_k256_keccak(pub_key): creates component from an ECDSA K256 key - from_public_key(pub_key): creates component from a PublicKey enum Also add From<ecdsa_k256_keccak::PublicKey> for PublicKeyCommitment for parity with the existing Falcon512 conversion.
* chore: rename from PSM to Guardian * fix: prefer state guardian in comments * fix: rename guardian multisig to guarded multisig * fix: restore changelog note and apply nightly formatting * fix: move guardian rename changelog notes to v0.15 * style: clarify guardian masm comments * fix: comment
…#2736) * refactor: lowercase note script filenames in miden-agglayer * docs(agglayer): update SPEC.md note script filenames to lowercase Agent-Logs-Url: https://github.com/0xMiden/protocol/sessions/4f7eb749-9710-4a36-8caf-486f12ae21d7 Co-authored-by: partylikeits1983 <77119221+partylikeits1983@users.noreply.github.com> * fix: update SPEC.md to reference .masm --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
…and `RoleSymbol` types (#2690)
* feat(asset): add AssetAmount wrapper type for fungible amounts Introduce a validated AssetAmount(u64) newtype that encapsulates the max-amount check (2^63 - 2^31) at construction time. - Add AssetAmount with MAX constant, new(), as_u64(), From<u8/u16/u32>, TryFrom<u64>, Display, Serializable, Deserializable - Integrate into FungibleAsset: replace raw u64 amount field - Delegate validation in FungibleAsset::new() to AssetAmount::new() - Keep FungibleAsset::MAX_AMOUNT as backward-compatible alias - Keep amount() returning u64 to minimize downstream churn Closes #2532 * refactor: remove as_u64, delegate add/sub to AssetAmount Remove the redundant as_u64() accessor since From<AssetAmount> for u64 already provides the same conversion. Replace all call sites with u64::from(). Add add() and sub() methods to AssetAmount so that FungibleAsset can delegate arithmetic to the inner type instead of performing it inline. Add unit tests for both new methods. * style: fix rustfmt and clippy lints Expand import list to one-per-line, merge duplicate use super statements, collapse single-line assert_eq, and suppress should_implement_trait on AssetAmount::add/sub. * docs: add changelog entry for AssetAmount wrapper * refactor: make AssetAmount::MAX a u64 constant, use .into() in tests * fix: add type annotations for .into() in tests to resolve ambiguity * refactor: implement Add and Sub traits for AssetAmount --------- Co-authored-by: Bobbin Threadbare <43513081+bobbinth@users.noreply.github.com> Co-authored-by: Marti <marti@miden.team>
* feat: add `metadata_into_note_type` procedure to note.masm Add a procedure to extract the note type from the metadata header and unit tests for both public and private note types. * refactor: address PR review — move stack layout to Where docs, consolidate tests with rstest * chore: add CHANGELOG entry for metadata_into_note_type * refactor: address review — clarify bit position, add stack layout docs, use NoteType comparison * refactoring changes Co-authored-by: Alexander John Lee <77119221+partylikeits1983@users.noreply.github.com> * docs: link CHANGELOG entry for metadata_into_note_type to PR #2738 --------- Co-authored-by: Alexander John Lee <77119221+partylikeits1983@users.noreply.github.com>
…er build scripts (#2538) * refactor: avoid unnecessary asm/ tree copy in standards build script miden-standards: Remove the full asm/ directory copy to OUT_DIR entirely. This crate never mutates its source tree, so the assembler and error extractor can read directly from the crate's asm/ directory. miden-protocol: Replace the bulk copy of the entire asm/ tree with targeted staging of only the two directories that need modification (kernels/transaction/ and protocol/). The assembler requires shared modules to be physically present alongside these source files, but shared_utils/ and shared_modules/ themselves don't need to be copied. Event extraction now reads directly from the original source. Also simplifies copy_dir_recursive (replacing the old copy_directory with its awkward prefix-stripping API) and removes dead code. https://claude.ai/code/session_01HDd5o3XxcgZiGrvBDFsUr1 refactor: scope change to standards build only, leave protocol as-is The protocol crate needs source-level staging because the assembler's `$kernel::` import resolution requires shared modules to be physically co-located with kernel source. This cannot be avoided without assembler changes, so revert the protocol build.rs to the base branch version. https://claude.ai/code/session_01HDd5o3XxcgZiGrvBDFsUr1 * refactor: remove copy_directory from agglayer build.rs Read MASM sources directly from the crate's asm/ directory instead of copying them to OUT_DIR first. The copy is unnecessary because agglayer doesn't mutate the directory structure during compilation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor: generate agglayer error constants into OUT_DIR Write error constants to OUT_DIR instead of src/errors/agglayer.rs, matching the pattern used by miden-standards. The include now uses concat!(env!("OUT_DIR"), ...) so error generation always runs regardless of BUILD_GENERATED_FILES_IN_SRC. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor: validate canonical_zeros.masm instead of generating it The canonical zeros are deterministic Keccak256 values that never change. Instead of generating the file at build time (guarded by BUILD_GENERATED_FILES_IN_SRC), the committed file is now validated against the expected content. To regenerate, run with REGENERATE_CANONICAL_ZEROS=1. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: remove BUILD_GENERATED_FILES_IN_SRC from agglayer Both error constants and canonical zeros no longer write to src/, so BUILD_GENERATED_FILES_IN_SRC is unused and can be removed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: fix trailing empty doc comment line Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
* refactor: reduce max assets per note from 255 to 64 * feat: add add_assets_exceeding_max_per_note_fails test * Update crates/miden-protocol/asm/kernels/transaction/lib/note.masm Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update crates/miden-protocol/asm/kernels/transaction/lib/memory.masm Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: correct CHANGELOG issue link from miden-base to protocol repo Agent-Logs-Url: https://github.com/0xMiden/protocol/sessions/7e834550-7f38-4d90-9c05-d46e3a7e37fa Co-authored-by: partylikeits1983 <77119221+partylikeits1983@users.noreply.github.com> * refactor: address PR comments: add max assets success test, fix memory layout table * chore: fix changelog * Update crates/miden-protocol/src/transaction/kernel/memory.rs Co-authored-by: Philipp Gackstatter <PhilippGackstatter@users.noreply.github.com> * Update crates/miden-testing/src/kernel_tests/tx/test_output_note.rs Co-authored-by: Philipp Gackstatter <PhilippGackstatter@users.noreply.github.com> * refactor: use rstest for tests & update changelog --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Philipp Gackstatter <PhilippGackstatter@users.noreply.github.com>
…onstruction (#2758) * chore: make note procedure names consistent * chore: add changelog * chore: update swap tag construction
* Add cycle counts to successful and failed notes * Changelog * Cycle count order comment * Make fields private
* fix: improve deserialization error handling in AccountCode * chore: update changelog * refactor: removed AccountCode::from_bytes()
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a tracking PR for v0.15.0 release.