From a05c730e47e99f048583f7fd2ba3c6dc828e1b0c Mon Sep 17 00:00:00 2001 From: Juan Munoz Date: Thu, 30 Apr 2026 17:51:14 -0300 Subject: [PATCH 1/5] chore: update miden dependencies --- Cargo.lock | 80 ++++++++++-------- Cargo.toml | 14 +-- bin/remote-prover/src/server/mod.rs | 5 +- bin/stress-test/src/seeding/mod.rs | 22 ++++- crates/block-producer/src/test_utils/batch.rs | 2 +- crates/ntx-builder/src/actor/execute.rs | 14 +-- crates/ntx-builder/src/actor/mod.rs | 9 +- crates/ntx-builder/src/clients/store.rs | 2 +- .../db/migrations/2025062000000_setup/up.sql | 4 +- crates/store/src/db/models/queries/notes.rs | 4 +- crates/store/src/genesis/config/mod.rs | 29 ++++--- .../agglayer_faucet_eth.mac | Bin 12322 -> 13838 bytes .../agglayer_faucet_usdc.mac | Bin 12322 -> 13838 bytes .../samples/02-with-account-files/bridge.mac | Bin 31167 -> 31454 bytes crates/store/src/genesis/config/tests.rs | 29 +++++-- crates/validator/src/server/tests.rs | 2 +- 16 files changed, 127 insertions(+), 89 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 875987a9c3..2e3f9c45b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -836,6 +836,31 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bon" +version = "3.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f47dbe92550676ee653353c310dfb9cf6ba17ee70396e1f7cf0a2020ad49b2fe" +dependencies = [ + "bon-macros", + "rustversion", +] + +[[package]] +name = "bon-macros" +version = "3.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "519bd3116aeeb42d5372c29d982d16d0170d3d4a5ed85fc7dd91642ffff3c67c" +dependencies = [ + "darling", + "ident_case", + "prettyplease", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.117", +] + [[package]] name = "build-rs" version = "0.3.3" @@ -2845,21 +2870,21 @@ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "miden-agglayer" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4302fc29d77db3d2c6323d1b211e503aafb91db2d572ef30c68829347fe79352" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" dependencies = [ "alloy-sol-types", "fs-err", "miden-assembly", "miden-core", - "miden-core-lib", "miden-crypto", "miden-protocol", "miden-standards", "miden-utils-sync", "primitive-types", "regex", + "serde", + "serde_json", "thiserror 2.0.18", "walkdir", ] @@ -2921,9 +2946,8 @@ dependencies = [ [[package]] name = "miden-block-prover" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde56bcea3cebe307786a856e204d84e7987c318e5a2909bcbb655d16286ce31" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" dependencies = [ "miden-protocol", "thiserror 2.0.18", @@ -3543,9 +3567,8 @@ dependencies = [ [[package]] name = "miden-protocol" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e860cc978d3467297de076e9bd22f0573b82ef73a3d223d6bb957731a45b8164" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" dependencies = [ "bech32", "fs-err", @@ -3555,9 +3578,9 @@ dependencies = [ "miden-core", "miden-core-lib", "miden-crypto", + "miden-crypto-derive", "miden-mast-package", "miden-processor", - "miden-protocol-macros", "miden-utils-sync", "miden-verifier", "rand 0.9.2", @@ -3571,17 +3594,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "miden-protocol-macros" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4daec4a5a6f050a670a8639e78e017ab11ef0bf2e253b012505f25e6247c13e7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "miden-prover" version = "0.22.1" @@ -3670,13 +3682,12 @@ dependencies = [ [[package]] name = "miden-standards" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f455a087f41c30636b45ead961d1e66114d2d20661887b307cede05307eeb942" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" dependencies = [ + "bon", "fs-err", "miden-assembly", - "miden-core", "miden-core-lib", "miden-processor", "miden-protocol", @@ -3688,14 +3699,11 @@ dependencies = [ [[package]] name = "miden-testing" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84430e84c6dee90d9bd92568be1c3082113f0b4b36f9db7933380f0295207f9" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" dependencies = [ "anyhow", "itertools 0.14.0", - "miden-agglayer", - "miden-assembly", "miden-block-prover", "miden-core-lib", "miden-crypto", @@ -3711,9 +3719,8 @@ dependencies = [ [[package]] name = "miden-tx" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d788795041ce5e6f947a3256314373171e4877c11b86fafeabcec4d8b8628d9" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" dependencies = [ "miden-processor", "miden-protocol", @@ -3725,9 +3732,8 @@ dependencies = [ [[package]] name = "miden-tx-batch-prover" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce059e2d599266b00708f6f1bff6af5cf82683e76df3ec812c2d1c72e880f943" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" dependencies = [ "miden-protocol", "miden-tx", diff --git a/Cargo.toml b/Cargo.toml index 192acc98a6..35788f184b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -61,13 +61,13 @@ miden-remote-prover-client = { path = "crates/remote-prover-client", versio miden-node-rocksdb-cxx-linkage-fix = { path = "crates/rocksdb-cxx-linkage-fix", version = "0.15" } # miden-protocol dependencies. These should be updated in sync. -miden-agglayer = { version = "0.14" } -miden-block-prover = { version = "0.14" } -miden-protocol = { default-features = false, version = "0.14" } -miden-standards = { version = "0.14" } -miden-testing = { version = "0.14" } -miden-tx = { default-features = false, version = "0.14" } -miden-tx-batch-prover = { version = "0.14" } +miden-agglayer = { branch = "next", git = "https://github.com/0xMiden/protocol" } +miden-block-prover = { branch = "next", git = "https://github.com/0xMiden/protocol" } +miden-protocol = { branch = "next", default-features = false, git = "https://github.com/0xMiden/protocol" } +miden-standards = { branch = "next", git = "https://github.com/0xMiden/protocol" } +miden-testing = { branch = "next", git = "https://github.com/0xMiden/protocol" } +miden-tx = { branch = "next", default-features = false, git = "https://github.com/0xMiden/protocol" } +miden-tx-batch-prover = { branch = "next", git = "https://github.com/0xMiden/protocol" } # Other miden dependencies. These should align with those expected by miden-protocol. miden-crypto = { version = "0.23" } diff --git a/bin/remote-prover/src/server/mod.rs b/bin/remote-prover/src/server/mod.rs index 3b084c42fc..6d3038e6c8 100644 --- a/bin/remote-prover/src/server/mod.rs +++ b/bin/remote-prover/src/server/mod.rs @@ -1,7 +1,6 @@ use std::num::NonZeroUsize; use anyhow::Context; -use miden_node_utils::clap::GrpcOptionsInternal; use miden_node_utils::cors::cors_for_grpc_web_layer; use miden_node_utils::panic::catch_panic_layer_fn; use miden_node_utils::tracing::grpc::grpc_trace_fn; @@ -83,11 +82,9 @@ impl Server { // Mark the service as serving health_reporter.set_serving::>().await; - let grpc_options = GrpcOptionsInternal::default(); - let server = tonic::transport::Server::builder() .accept_http1(true) - .timeout(grpc_options.request_timeout) + .timeout(self.timeout) .layer(CatchPanicLayer::custom(catch_panic_layer_fn)) .layer(TraceLayer::new_for_grpc().make_span_with(grpc_trace_fn)) .layer(cors_for_grpc_web_layer()) diff --git a/bin/stress-test/src/seeding/mod.rs b/bin/stress-test/src/seeding/mod.rs index 79b4618489..7edb997077 100644 --- a/bin/stress-test/src/seeding/mod.rs +++ b/bin/stress-test/src/seeding/mod.rs @@ -50,7 +50,10 @@ use miden_protocol::utils::serde::Serializable; use miden_protocol::vm::ExecutionProof; use miden_protocol::{Felt, ONE, Word}; use miden_standards::account::auth::AuthSingleSig; -use miden_standards::account::faucets::BasicFungibleFaucet; +use miden_standards::account::burn_policies::BurnAuthControlled; +use miden_standards::account::faucets::{BasicFungibleFaucet, TokenMetadata}; +use miden_standards::account::metadata::{FungibleTokenMetadata, TokenName}; +use miden_standards::account::mint_policies::MintAuthControlled; use miden_standards::account::wallets::BasicWallet; use miden_standards::note::P2idNote; use rand::Rng; @@ -350,10 +353,21 @@ fn create_faucet() -> Account { let init_seed = [0_u8; 32]; let token_symbol = TokenSymbol::new("TEST").unwrap(); + let token_metadata = FungibleTokenMetadata::builder( + TokenName::new("TEST").unwrap(), + token_symbol, + 2, + FungibleAsset::MAX_AMOUNT, + ) + .build() + .unwrap(); AccountBuilder::new(init_seed) .account_type(AccountType::FungibleFaucet) .storage_mode(AccountStorageMode::Private) - .with_component(BasicFungibleFaucet::new(token_symbol, 2, Felt::new(u64::MAX)).unwrap()) + .with_component(token_metadata) + .with_component(BasicFungibleFaucet) + .with_component(MintAuthControlled::allow_all()) + .with_component(BurnAuthControlled::allow_all()) .with_auth_component(AuthSingleSig::new( key_pair.public_key().into(), AuthScheme::Falcon512Poseidon2, @@ -370,7 +384,7 @@ fn create_batch(txs: &[ProvenTransaction], block_ref: &BlockHeader) -> ProvenBat .collect(); let input_notes = txs.iter().flat_map(|tx| tx.input_notes().iter().cloned()).collect(); let output_notes = txs.iter().flat_map(|tx| tx.output_notes().iter().cloned()).collect(); - ProvenBatch::new( + ProvenBatch::new_unchecked( BatchId::from_transactions(txs.iter()), block_ref.commitment(), block_ref.block_num(), @@ -458,7 +472,7 @@ fn create_emit_note_tx( ) -> ProvenTransaction { let initial_account_hash = faucet.to_commitment(); - let metadata_slot_name = BasicFungibleFaucet::metadata_slot(); + let metadata_slot_name = TokenMetadata::metadata_slot(); let slot = faucet.storage().get_item(metadata_slot_name).unwrap(); faucet .storage_mut() diff --git a/crates/block-producer/src/test_utils/batch.rs b/crates/block-producer/src/test_utils/batch.rs index ca705e241e..df97d3ea4f 100644 --- a/crates/block-producer/src/test_utils/batch.rs +++ b/crates/block-producer/src/test_utils/batch.rs @@ -59,7 +59,7 @@ impl TransactionBatchConstructor for ProvenBatch { output_notes.extend(tx.output_notes().iter().cloned()); } - ProvenBatch::new( + ProvenBatch::new_unchecked( BatchId::from_transactions(txs.iter().copied()), Word::empty(), BlockNumber::GENESIS, diff --git a/crates/ntx-builder/src/actor/execute.rs b/crates/ntx-builder/src/actor/execute.rs index dba9a8f245..4253a7a97c 100644 --- a/crates/ntx-builder/src/actor/execute.rs +++ b/crates/ntx-builder/src/actor/execute.rs @@ -43,7 +43,6 @@ use miden_tx::{ MastForestStore, NoteCheckerError, NoteConsumptionChecker, - NoteConsumptionInfo, TransactionExecutor, TransactionExecutorError, TransactionMastStore, @@ -270,18 +269,21 @@ impl NtxContext { )) .await { - Ok(NoteConsumptionInfo { successful, failed, .. }) => { + Ok(consumption_info) => { + let (successful, failed) = consumption_info.into_parts(); for failed_note in &failed { tracing::info!( - note.id = %failed_note.note.id(), - nullifier = %failed_note.note.nullifier(), - err = %failed_note.error.as_report(), + note.id = %failed_note.note().id(), + nullifier = %failed_note.note().nullifier(), + err = %failed_note.error().as_report(), "note failed consumability check", ); } // Map successful notes to input notes. - let successful = InputNotes::from_unauthenticated_notes(successful) + let successful_notes = + successful.into_iter().map(|s| s.note().clone()).collect::>(); + let successful = InputNotes::from_unauthenticated_notes(successful_notes) .map_err(NtxError::InputNotes)?; // If none are successful, abort. diff --git a/crates/ntx-builder/src/actor/mod.rs b/crates/ntx-builder/src/actor/mod.rs index 4bd1d42ff7..1b67f353b5 100644 --- a/crates/ntx-builder/src/actor/mod.rs +++ b/crates/ntx-builder/src/actor/mod.rs @@ -528,14 +528,15 @@ fn log_failed_notes(failed: Vec) -> Vec<(Nullifier, NoteError)> { failed .into_iter() .map(|f| { - let error_msg = f.error.as_report(); + let error_msg = f.error().as_report(); tracing::info!( - note.id = %f.note.id(), - nullifier = %f.note.nullifier(), + note.id = %f.note().id(), + nullifier = %f.note().nullifier(), err = %error_msg, "note failed: consumability check", ); - (f.note.nullifier(), Arc::new(f.error) as NoteError) + let error: NoteError = Arc::new(std::io::Error::other(error_msg)); + (f.note().nullifier(), error) }) .collect() } diff --git a/crates/ntx-builder/src/clients/store.rs b/crates/ntx-builder/src/clients/store.rs index 49bebb5229..c901fc69ab 100644 --- a/crates/ntx-builder/src/clients/store.rs +++ b/crates/ntx-builder/src/clients/store.rs @@ -494,7 +494,7 @@ pub fn build_minimal_foreign_account( "account_code", ) })?; - let account_code = AccountCode::from_bytes(account_code_bytes)?; + let account_code = AccountCode::read_from_bytes(account_code_bytes)?; // Derive partial storage. Storage maps are not required for foreign accounts. let partial_storage = PartialStorage::new(account_details.storage_details.header.clone(), [])?; diff --git a/crates/store/src/db/migrations/2025062000000_setup/up.sql b/crates/store/src/db/migrations/2025062000000_setup/up.sql index 93a309eab5..2f8538d988 100644 --- a/crates/store/src/db/migrations/2025062000000_setup/up.sql +++ b/crates/store/src/db/migrations/2025062000000_setup/up.sql @@ -58,7 +58,7 @@ CREATE TABLE notes ( note_index INTEGER NOT NULL, -- Index of note in batch, starting from 0 note_id BLOB NOT NULL, note_commitment BLOB NOT NULL, - note_type INTEGER NOT NULL, -- 1-Public (0b01), 2-Private (0b10), 3-Encrypted (0b11) + note_type INTEGER NOT NULL, -- 0-Private, 1-Public sender BLOB NOT NULL, tag INTEGER NOT NULL, network_note_type INTEGER NOT NULL, -- 0-not a network note, 1-single account target network note @@ -73,7 +73,7 @@ CREATE TABLE notes ( serial_num BLOB, PRIMARY KEY (committed_at, batch_index, note_index), - CONSTRAINT notes_type_in_enum CHECK (note_type BETWEEN 1 AND 3), + CONSTRAINT notes_type_in_enum CHECK (note_type BETWEEN 0 AND 1), CONSTRAINT notes_network_note_type_in_enum CHECK (network_note_type BETWEEN 0 AND 1), CONSTRAINT notes_consumed_at_is_u32 CHECK (consumed_at BETWEEN 0 AND 0xFFFFFFFF), CONSTRAINT notes_batch_index_is_u32 CHECK (batch_index BETWEEN 0 AND 0xFFFFFFFF), diff --git a/crates/store/src/db/models/queries/notes.rs b/crates/store/src/db/models/queries/notes.rs index 266ef7f1a6..0d803f2184 100644 --- a/crates/store/src/db/models/queries/notes.rs +++ b/crates/store/src/db/models/queries/notes.rs @@ -799,12 +799,12 @@ pub struct NoteMetadataRawRow { attachment: Vec, } -#[expect(clippy::cast_sign_loss)] +#[expect(clippy::cast_sign_loss, clippy::cast_possible_truncation)] impl TryInto for NoteMetadataRawRow { type Error = DatabaseError; fn try_into(self) -> Result { let sender = AccountId::read_from_bytes(&self.sender[..])?; - let note_type = NoteType::try_from(self.note_type as u32) + let note_type = NoteType::try_from(self.note_type as u8) .map_err(miden_node_db::DatabaseError::conversiont_from_sql::)?; let tag = NoteTag::new(self.tag as u32); let attachment = NoteAttachment::read_from_bytes(&self.attachment)?; diff --git a/crates/store/src/genesis/config/mod.rs b/crates/store/src/genesis/config/mod.rs index 6c70a6f387..36cff16fa0 100644 --- a/crates/store/src/genesis/config/mod.rs +++ b/crates/store/src/genesis/config/mod.rs @@ -28,8 +28,10 @@ use miden_protocol::errors::TokenSymbolError; use miden_protocol::{Felt, ONE}; use miden_standards::AuthMethod; use miden_standards::account::auth::AuthSingleSig; +use miden_standards::account::burn_policies::BurnAuthControlled; use miden_standards::account::faucets::{BasicFungibleFaucet, TokenMetadata}; -use miden_standards::account::mint_policies::AuthControlled; +use miden_standards::account::metadata::{FungibleTokenMetadata, TokenName}; +use miden_standards::account::mint_policies::MintAuthControlled; use miden_standards::account::wallets::create_basic_wallet; use rand::distr::weighted::Weight; use rand::{Rng, SeedableRng}; @@ -311,8 +313,8 @@ impl GenesisConfig { debug_assert_eq!(faucet_account.nonce(), ONE); // sanity check the total issuance against - let basic = BasicFungibleFaucet::try_from(&faucet_account)?; - let max_supply = basic.max_supply().as_canonical_u64(); + let metadata = TokenMetadata::try_from(faucet_account.storage())?; + let max_supply = metadata.max_supply().as_canonical_u64(); if max_supply < total_issuance { return Err(GenesisConfigError::MaxIssuanceExceeded { max_supply, @@ -394,9 +396,9 @@ impl NativeFaucetConfig { return Err(GenesisConfigError::NativeFaucetNotFungible { path: full_path }); } - let faucet = BasicFungibleFaucet::try_from(&account) + let metadata = TokenMetadata::try_from(account.storage()) .expect("validated as fungible faucet above"); - let symbol = TokenSymbolStr::from(faucet.symbol().clone()); + let symbol = TokenSymbolStr::from(metadata.symbol().clone()); Ok((account, symbol, None)) }, } @@ -436,18 +438,23 @@ impl FungibleFaucetConfig { AuthSingleSig::new(secret_key.public_key().into(), AuthScheme::Falcon512Poseidon2); let init_seed: [u8; 32] = rng.random(); - let max_supply = Felt::try_from(max_supply) - .expect("The `Felt::MODULUS` is _always_ larger than the `max_supply`"); - - let component = BasicFungibleFaucet::new(symbol.as_ref().clone(), decimals, max_supply)?; + let token_metadata = FungibleTokenMetadata::builder( + TokenName::new("").expect("empty token name is always valid"), + symbol.as_ref().clone(), + decimals, + max_supply, + ) + .build()?; // It's similar to `fn create_basic_fungible_faucet`, but we need to cover more cases. let faucet_account = AccountBuilder::new(init_seed) .account_type(AccountType::FungibleFaucet) .storage_mode(storage_mode.into()) .with_auth_component(auth) - .with_component(component) - .with_component(AuthControlled::allow_all()) + .with_component(token_metadata) + .with_component(BasicFungibleFaucet) + .with_component(MintAuthControlled::allow_all()) + .with_component(BurnAuthControlled::allow_all()) .build()?; debug_assert_eq!(faucet_account.nonce(), Felt::ZERO); diff --git a/crates/store/src/genesis/config/samples/02-with-account-files/agglayer_faucet_eth.mac b/crates/store/src/genesis/config/samples/02-with-account-files/agglayer_faucet_eth.mac index d20f2d85fce2db9b740022038393ecf49675029d..594dcab0a50b2de1ceca9909562112b0c51aefb8 100644 GIT binary patch delta 4011 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 U4-qnL_;ApnN0Y<@d|2dv0Jpl-&;S4c diff --git a/crates/store/src/genesis/config/samples/02-with-account-files/agglayer_faucet_usdc.mac b/crates/store/src/genesis/config/samples/02-with-account-files/agglayer_faucet_usdc.mac index 89d1231c981255859f912665b2dffd0267a5f003..3e6ee7553c7a80ea29fb1679566ba1f4536b7243 100644 GIT binary patch delta 4011 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 U4-qnL_;ApnN0Y<@d|2dv0Jpl-&;S4c diff --git a/crates/store/src/genesis/config/samples/02-with-account-files/bridge.mac b/crates/store/src/genesis/config/samples/02-with-account-files/bridge.mac index 4eaf26f63c4b06e65cc268e1050241e3d1d15fec..2b83be84686152f4267b270bd81c65bfda1d6705 100644 GIT binary patch delta 2534 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 H8~pwU^vu_q diff --git a/crates/store/src/genesis/config/tests.rs b/crates/store/src/genesis/config/tests.rs index acc1b94465..88c30989a5 100644 --- a/crates/store/src/genesis/config/tests.rs +++ b/crates/store/src/genesis/config/tests.rs @@ -44,11 +44,11 @@ fn parsing_yields_expected_default_values() -> TestResult { assert_eq!(wallet2.nonce(), ONE); { - let faucet = BasicFungibleFaucet::try_from(native_faucet.clone()).unwrap(); + let metadata = TokenMetadata::try_from(native_faucet.storage()).unwrap(); - assert_eq!(faucet.max_supply(), Felt::new(100_000_000_000_000_000)); - assert_eq!(faucet.decimals(), 6); - assert_eq!(*faucet.symbol(), TokenSymbol::new("MIDEN").unwrap()); + assert_eq!(metadata.max_supply(), Felt::new(100_000_000_000_000_000)); + assert_eq!(metadata.decimals(), 6); + assert_eq!(*metadata.symbol(), TokenSymbol::new("MIDEN").unwrap()); } // check account balance, and ensure ordering is retained @@ -145,6 +145,9 @@ fn parsing_native_faucet_from_file() -> TestResult { use miden_protocol::account::auth::AuthScheme; use miden_protocol::account::{AccountBuilder, AccountFile, AccountStorageMode, AccountType}; use miden_standards::account::auth::AuthSingleSig; + use miden_standards::account::burn_policies::BurnAuthControlled; + use miden_standards::account::metadata::{FungibleTokenMetadata, TokenName}; + use miden_standards::account::mint_policies::MintAuthControlled; use tempfile::tempdir; // Create a temporary directory for our test files @@ -159,14 +162,22 @@ fn parsing_native_faucet_from_file() -> TestResult { ); let auth = AuthSingleSig::new(secret_key.public_key().into(), AuthScheme::Falcon512Poseidon2); - let faucet_component = - BasicFungibleFaucet::new(TokenSymbol::new("MIDEN").unwrap(), 6, Felt::new(1_000_000_000))?; + let token_metadata = FungibleTokenMetadata::builder( + TokenName::new("MIDEN").unwrap(), + TokenSymbol::new("MIDEN").unwrap(), + 6, + 1_000_000_000, + ) + .build()?; let faucet_account = AccountBuilder::new(init_seed) .account_type(AccountType::FungibleFaucet) .storage_mode(AccountStorageMode::Public) .with_auth_component(auth) - .with_component(faucet_component) + .with_component(token_metadata) + .with_component(BasicFungibleFaucet) + .with_component(MintAuthControlled::allow_all()) + .with_component(BurnAuthControlled::allow_all()) .build()?; let faucet_id = faucet_account.id(); @@ -327,8 +338,8 @@ async fn parsing_agglayer_sample_with_account_files() -> TestResult { // Verify native faucet symbol { - let faucet = BasicFungibleFaucet::try_from(native_faucet.clone()).unwrap(); - assert_eq!(*faucet.symbol(), TokenSymbol::new("MIDEN").unwrap()); + let metadata = TokenMetadata::try_from(native_faucet.storage()).unwrap(); + assert_eq!(*metadata.symbol(), TokenSymbol::new("MIDEN").unwrap()); } // Bridge account is a regular account (not a faucet) diff --git a/crates/validator/src/server/tests.rs b/crates/validator/src/server/tests.rs index 66357ab22e..be7cbdedec 100644 --- a/crates/validator/src/server/tests.rs +++ b/crates/validator/src/server/tests.rs @@ -324,7 +324,7 @@ async fn unknown_transactions_rejected() { let tx_id = tx_header.id(); // Build a ProvenBatch containing this transaction. - let batch = ProvenBatch::new( + let batch = ProvenBatch::new_unchecked( BatchId::from_ids(std::iter::once((tx_id, account_id))), genesis_header.commitment(), BlockNumber::GENESIS, From eafa417d3e16fc1c2b634f05853fbe4ac4de7f7c Mon Sep 17 00:00:00 2001 From: Juan Munoz Date: Mon, 4 May 2026 11:45:34 -0300 Subject: [PATCH 2/5] docs: add changelog entry with fix --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9de0cef6ae..9250b1fb2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - [BREAKING] Network monitor `/status` endpoint now emits a single `RemoteProverStatus` entry per remote prover that bundles status, workers, and test results, instead of separate entries ([#1980](https://github.com/0xMiden/node/pull/1980)). - Refactored the validator gRPC API implementation to use the new per-method trait implementations ([#1959](https://github.com/0xMiden/node/pull/1959)). - Aligned `SyncNullifiers` list-limit validation in RPC and store with `nullifier_prefix` parameter semantics, extended `GetLimits` test coverage, and documented query parameter limits ([#1986](https://github.com/0xMiden/node/pull/1986)). +- Fixed remote-prover grpc server not using configured timeout ([#2023](https://github.com/0xMiden/node/pull/2023)). ## v0.14.10 (2026-05-29) From d1c06488b5f44e96fc95e7ce549c34bc3fd4df00 Mon Sep 17 00:00:00 2001 From: Juan Munoz Date: Tue, 5 May 2026 13:12:58 -0300 Subject: [PATCH 3/5] chore: address PR comments --- CHANGELOG.md | 1 - crates/store/src/db/migrations/2025062000000_setup/up.sql | 4 ++-- crates/store/src/genesis/config/mod.rs | 3 ++- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fccb39bb17..6fb2ec75d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,6 @@ - [BREAKING] Network monitor `/status` endpoint now emits a single `RemoteProverStatus` entry per remote prover that bundles status, workers, and test results, instead of separate entries ([#1980](https://github.com/0xMiden/node/pull/1980)). - Refactored the validator gRPC API implementation to use the new per-method trait implementations ([#1959](https://github.com/0xMiden/node/pull/1959)). - Aligned `SyncNullifiers` list-limit validation in RPC and store with `nullifier_prefix` parameter semantics, extended `GetLimits` test coverage, and documented query parameter limits ([#1986](https://github.com/0xMiden/node/pull/1986)). -- Fixed remote-prover grpc server not using configured timeout ([#2023](https://github.com/0xMiden/node/pull/2023)). ## v0.14.10 (2026-05-29) diff --git a/crates/store/src/db/migrations/2025062000000_setup/up.sql b/crates/store/src/db/migrations/2025062000000_setup/up.sql index 2f8538d988..1b168ab4cc 100644 --- a/crates/store/src/db/migrations/2025062000000_setup/up.sql +++ b/crates/store/src/db/migrations/2025062000000_setup/up.sql @@ -58,7 +58,7 @@ CREATE TABLE notes ( note_index INTEGER NOT NULL, -- Index of note in batch, starting from 0 note_id BLOB NOT NULL, note_commitment BLOB NOT NULL, - note_type INTEGER NOT NULL, -- 0-Private, 1-Public + note_type INTEGER NOT NULL, -- 1-Public, 2-Private sender BLOB NOT NULL, tag INTEGER NOT NULL, network_note_type INTEGER NOT NULL, -- 0-not a network note, 1-single account target network note @@ -73,7 +73,7 @@ CREATE TABLE notes ( serial_num BLOB, PRIMARY KEY (committed_at, batch_index, note_index), - CONSTRAINT notes_type_in_enum CHECK (note_type BETWEEN 0 AND 1), + CONSTRAINT notes_type_in_enum CHECK (note_type BETWEEN 1 AND 2), CONSTRAINT notes_network_note_type_in_enum CHECK (network_note_type BETWEEN 0 AND 1), CONSTRAINT notes_consumed_at_is_u32 CHECK (consumed_at BETWEEN 0 AND 0xFFFFFFFF), CONSTRAINT notes_batch_index_is_u32 CHECK (batch_index BETWEEN 0 AND 0xFFFFFFFF), diff --git a/crates/store/src/genesis/config/mod.rs b/crates/store/src/genesis/config/mod.rs index 36cff16fa0..620b18384f 100644 --- a/crates/store/src/genesis/config/mod.rs +++ b/crates/store/src/genesis/config/mod.rs @@ -439,7 +439,8 @@ impl FungibleFaucetConfig { let init_seed: [u8; 32] = rng.random(); let token_metadata = FungibleTokenMetadata::builder( - TokenName::new("").expect("empty token name is always valid"), + TokenName::new(&symbol.to_string()) + .expect("token symbol fits within token name byte limit"), symbol.as_ref().clone(), decimals, max_supply, From 089bf9581728ba6a06a664b0d72f1ecb3147c60e Mon Sep 17 00:00:00 2001 From: Juan Munoz Date: Tue, 5 May 2026 15:29:22 -0300 Subject: [PATCH 4/5] chore: bump to latest protocol version --- Cargo.lock | 46 +++++++++--------- bin/network-monitor/src/deploy/mod.rs | 4 +- bin/stress-test/src/seeding/mod.rs | 19 +++++--- crates/ntx-builder/src/actor/execute.rs | 5 +- .../src/db/models/queries/tests.rs | 4 +- crates/proto/src/domain/block.rs | 2 +- crates/store/src/db/tests.rs | 3 +- crates/store/src/genesis/config/mod.rs | 15 ++++-- .../agglayer_faucet_eth.mac | Bin 13838 -> 13601 bytes .../agglayer_faucet_usdc.mac | Bin 13838 -> 13601 bytes .../samples/02-with-account-files/bridge.mac | Bin 31454 -> 31454 bytes crates/store/src/genesis/config/tests.rs | 15 ++++-- crates/utils/src/fee.rs | 8 +-- crates/validator/src/server/tests.rs | 2 +- .../validator/src/tx_validation/data_store.rs | 4 +- 15 files changed, 75 insertions(+), 52 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6ab030f297..eb5f37ee88 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -177,7 +177,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -188,7 +188,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -1678,7 +1678,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -2294,7 +2294,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.3", + "socket2 0.5.10", "system-configuration", "tokio", "tower-service", @@ -2895,7 +2895,7 @@ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "miden-agglayer" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" +source = "git+https://github.com/0xMiden/protocol?branch=next#ad7420e778af4a4b7be4f4bb24d0e7155b487e22" dependencies = [ "alloy-sol-types", "fs-err", @@ -2971,7 +2971,7 @@ dependencies = [ [[package]] name = "miden-block-prover" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" +source = "git+https://github.com/0xMiden/protocol?branch=next#ad7420e778af4a4b7be4f4bb24d0e7155b487e22" dependencies = [ "miden-protocol", "thiserror 2.0.18", @@ -3588,7 +3588,7 @@ dependencies = [ [[package]] name = "miden-protocol" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" +source = "git+https://github.com/0xMiden/protocol?branch=next#ad7420e778af4a4b7be4f4bb24d0e7155b487e22" dependencies = [ "bech32", "fs-err", @@ -3700,7 +3700,7 @@ dependencies = [ [[package]] name = "miden-standards" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" +source = "git+https://github.com/0xMiden/protocol?branch=next#ad7420e778af4a4b7be4f4bb24d0e7155b487e22" dependencies = [ "bon", "fs-err", @@ -3717,7 +3717,7 @@ dependencies = [ [[package]] name = "miden-testing" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" +source = "git+https://github.com/0xMiden/protocol?branch=next#ad7420e778af4a4b7be4f4bb24d0e7155b487e22" dependencies = [ "anyhow", "itertools 0.14.0", @@ -3737,7 +3737,7 @@ dependencies = [ [[package]] name = "miden-tx" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" +source = "git+https://github.com/0xMiden/protocol?branch=next#ad7420e778af4a4b7be4f4bb24d0e7155b487e22" dependencies = [ "miden-processor", "miden-protocol", @@ -3750,7 +3750,7 @@ dependencies = [ [[package]] name = "miden-tx-batch-prover" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol?branch=next#c2c6eafff6231179a84cd7f392278bf50a845aad" +source = "git+https://github.com/0xMiden/protocol?branch=next#ad7420e778af4a4b7be4f4bb24d0e7155b487e22" dependencies = [ "miden-protocol", "miden-tx", @@ -3964,7 +3964,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -4841,7 +4841,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" dependencies = [ "heck", - "itertools 0.14.0", + "itertools 0.13.0", "log", "multimap", "petgraph 0.8.3", @@ -4862,7 +4862,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.117", @@ -4984,7 +4984,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls 0.23.37", - "socket2 0.6.3", + "socket2 0.5.10", "thiserror 2.0.18", "tokio", "tracing", @@ -5022,7 +5022,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.3", + "socket2 0.5.10", "tracing", "windows-sys 0.60.2", ] @@ -5391,7 +5391,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -5462,7 +5462,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -5869,7 +5869,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -6084,7 +6084,7 @@ dependencies = [ "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -6093,7 +6093,7 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8c27177b12a6399ffc08b98f76f7c9a1f4fe9fc967c784c5a071fa8d93cf7e1" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -6112,7 +6112,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ "rustix", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -7116,7 +7116,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] diff --git a/bin/network-monitor/src/deploy/mod.rs b/bin/network-monitor/src/deploy/mod.rs index 5a998bd636..7cf162b5a4 100644 --- a/bin/network-monitor/src/deploy/mod.rs +++ b/bin/network-monitor/src/deploy/mod.rs @@ -15,7 +15,7 @@ use miden_protocol::account::{Account, AccountId, PartialAccount, StorageMapKey} use miden_protocol::asset::{AssetVaultKey, AssetWitness}; use miden_protocol::block::{BlockHeader, BlockNumber}; use miden_protocol::crypto::merkle::mmr::{MmrPeaks, PartialMmr}; -use miden_protocol::note::NoteScript; +use miden_protocol::note::{NoteScript, NoteScriptRoot}; use miden_protocol::transaction::{AccountInputs, InputNotes, PartialBlockchain, TransactionArgs}; use miden_protocol::utils::serde::Serializable; use miden_protocol::{MastForest, Word}; @@ -324,7 +324,7 @@ impl DataStore for MonitorDataStore { async fn get_note_script( &self, - _script_root: Word, + _script_root: NoteScriptRoot, ) -> Result, DataStoreError> { Ok(None) } diff --git a/bin/stress-test/src/seeding/mod.rs b/bin/stress-test/src/seeding/mod.rs index 561864f9fc..5d487e0b8f 100644 --- a/bin/stress-test/src/seeding/mod.rs +++ b/bin/stress-test/src/seeding/mod.rs @@ -50,10 +50,14 @@ use miden_protocol::utils::serde::Serializable; use miden_protocol::vm::ExecutionProof; use miden_protocol::{Felt, ONE, Word}; use miden_standards::account::auth::AuthSingleSig; -use miden_standards::account::burn_policies::BurnAuthControlled; use miden_standards::account::faucets::{BasicFungibleFaucet, TokenMetadata}; use miden_standards::account::metadata::{FungibleTokenMetadata, TokenName}; -use miden_standards::account::mint_policies::MintAuthControlled; +use miden_standards::account::policies::{ + BurnPolicyConfig, + MintPolicyConfig, + PolicyAuthority, + TokenPolicyManager, +}; use miden_standards::account::wallets::BasicWallet; use miden_standards::note::P2idNote; use rand::Rng; @@ -282,7 +286,7 @@ async fn apply_block( /// Extract the payable fee as `FungibleAsset` from the given `BlockHeader`. fn fee_from_block(block_ref: &BlockHeader) -> Result { FungibleAsset::new( - block_ref.fee_parameters().native_asset_id(), + block_ref.fee_parameters().fee_faucet_id(), u64::from(block_ref.fee_parameters().verification_base_fee()), ) } @@ -366,8 +370,11 @@ fn create_faucet() -> Account { .storage_mode(AccountStorageMode::Private) .with_component(token_metadata) .with_component(BasicFungibleFaucet) - .with_component(MintAuthControlled::allow_all()) - .with_component(BurnAuthControlled::allow_all()) + .with_components(TokenPolicyManager::new( + PolicyAuthority::AuthControlled, + MintPolicyConfig::AllowAll, + BurnPolicyConfig::AllowAll, + )) .with_auth_component(AuthSingleSig::new( key_pair.public_key().into(), AuthScheme::Falcon512Poseidon2, @@ -499,7 +506,7 @@ fn create_emit_note_tx( block_ref.block_num(), block_ref.commitment(), FungibleAsset::new( - block_ref.fee_parameters().native_asset_id(), + block_ref.fee_parameters().fee_faucet_id(), u64::from(block_ref.fee_parameters().verification_base_fee()), ) .unwrap(), diff --git a/crates/ntx-builder/src/actor/execute.rs b/crates/ntx-builder/src/actor/execute.rs index 4253a7a97c..fca948e103 100644 --- a/crates/ntx-builder/src/actor/execute.rs +++ b/crates/ntx-builder/src/actor/execute.rs @@ -18,7 +18,7 @@ use miden_protocol::account::{ use miden_protocol::asset::{AssetVaultKey, AssetWitness}; use miden_protocol::block::{BlockHeader, BlockNumber}; use miden_protocol::errors::TransactionInputError; -use miden_protocol::note::{Note, NoteScript}; +use miden_protocol::note::{Note, NoteScript, NoteScriptRoot}; use miden_protocol::transaction::{ AccountInputs, ExecutedTransaction, @@ -566,9 +566,10 @@ impl DataStore for NtxDataStore { /// 3. Remote store via gRPC. fn get_note_script( &self, - script_root: Word, + script_root: NoteScriptRoot, ) -> impl FutureMaybeSend, DataStoreError>> { async move { + let script_root = Word::from(script_root); // 1. In-memory LRU cache. if let Some(cached_script) = self.script_cache.get(&script_root) { return Ok(Some(cached_script)); diff --git a/crates/ntx-builder/src/db/models/queries/tests.rs b/crates/ntx-builder/src/db/models/queries/tests.rs index 108dcab617..f46b1aafab 100644 --- a/crates/ntx-builder/src/db/models/queries/tests.rs +++ b/crates/ntx-builder/src/db/models/queries/tests.rs @@ -602,7 +602,7 @@ fn note_script_insert_and_lookup() { let account_id = mock_network_account_id(); let note: miden_protocol::note::Note = mock_single_target_note(account_id, 10).into_note(); let script = note.script().clone(); - let root = script.root(); + let root = Word::from(script.root()); // Insert the script. insert_note_script(conn, &root, &script).unwrap(); @@ -629,7 +629,7 @@ fn note_script_insert_is_idempotent() { let account_id = mock_network_account_id(); let note: miden_protocol::note::Note = mock_single_target_note(account_id, 10).into_note(); let script = note.script().clone(); - let root = script.root(); + let root = Word::from(script.root()); // Insert the same script twice — should not error. insert_note_script(conn, &root, &script).unwrap(); diff --git a/crates/proto/src/domain/block.rs b/crates/proto/src/domain/block.rs index 19a4bf8bf1..c419746419 100644 --- a/crates/proto/src/domain/block.rs +++ b/crates/proto/src/domain/block.rs @@ -326,7 +326,7 @@ impl From for proto::blockchain::FeeParameters { impl From<&FeeParameters> for proto::blockchain::FeeParameters { fn from(value: &FeeParameters) -> Self { Self { - native_asset_id: Some(value.native_asset_id().into()), + native_asset_id: Some(value.fee_faucet_id().into()), verification_base_fee: value.verification_base_fee(), } } diff --git a/crates/store/src/db/tests.rs b/crates/store/src/db/tests.rs index e298ce9f02..1c582066ae 100644 --- a/crates/store/src/db/tests.rs +++ b/crates/store/src/db/tests.rs @@ -319,7 +319,8 @@ fn sql_select_note_script_by_root() { assert_eq!(res.unwrap(), 1, "One element must have been inserted"); // test querying the script by the root - let note_script = queries::select_note_script_by_root(conn, new_note.script().root()).unwrap(); + let note_script = + queries::select_note_script_by_root(conn, Word::from(new_note.script().root())).unwrap(); assert_eq!(note_script, Some(new_note.script().clone())); // test querying the script by the root that is not in the database diff --git a/crates/store/src/genesis/config/mod.rs b/crates/store/src/genesis/config/mod.rs index 620b18384f..66c53307d9 100644 --- a/crates/store/src/genesis/config/mod.rs +++ b/crates/store/src/genesis/config/mod.rs @@ -28,10 +28,14 @@ use miden_protocol::errors::TokenSymbolError; use miden_protocol::{Felt, ONE}; use miden_standards::AuthMethod; use miden_standards::account::auth::AuthSingleSig; -use miden_standards::account::burn_policies::BurnAuthControlled; use miden_standards::account::faucets::{BasicFungibleFaucet, TokenMetadata}; use miden_standards::account::metadata::{FungibleTokenMetadata, TokenName}; -use miden_standards::account::mint_policies::MintAuthControlled; +use miden_standards::account::policies::{ + BurnPolicyConfig, + MintPolicyConfig, + PolicyAuthority, + TokenPolicyManager, +}; use miden_standards::account::wallets::create_basic_wallet; use rand::distr::weighted::Weight; use rand::{Rng, SeedableRng}; @@ -454,8 +458,11 @@ impl FungibleFaucetConfig { .with_auth_component(auth) .with_component(token_metadata) .with_component(BasicFungibleFaucet) - .with_component(MintAuthControlled::allow_all()) - .with_component(BurnAuthControlled::allow_all()) + .with_components(TokenPolicyManager::new( + PolicyAuthority::AuthControlled, + MintPolicyConfig::AllowAll, + BurnPolicyConfig::AllowAll, + )) .build()?; debug_assert_eq!(faucet_account.nonce(), Felt::ZERO); diff --git a/crates/store/src/genesis/config/samples/02-with-account-files/agglayer_faucet_eth.mac b/crates/store/src/genesis/config/samples/02-with-account-files/agglayer_faucet_eth.mac index 594dcab0a50b2de1ceca9909562112b0c51aefb8..2753dd76d6d9d4f37277727d355bf68f9880fb0a 100644 GIT binary patch delta 2210 zcmbtUX;70{7R>^(i4sVn$o2^_kQOjN1_fy(5FpAXn}nS}LRgZBfv`E6Ak88a>t_#0 zXhB2;Y^G%b8iA(SL<9v{U0c9zkQV8Y5rk-~^I&GG<{wt|tvXfr$9eaj^X{!%$h{a> zj76%I;A&tEvaq+(p1E1cz9bmYMXzcRzemQNj#UQ+zK z5@w|E(70!3XF{;z1PA))^kf>4wP2yTIfg{7t-*Hb6$LLZ6ODZA9h#-h>YXS|R+$Q( z$kPl9E}Xj%iZ8+LfwMFmrSlq(P|!+^(hqnBb__jdr}nKs!NIOL-o>CdC?*+6COO2s z?S-ec$n=io0F(WZi*xaBGp2jE=%|-xFf%Vf1^ze8TA%9WL~mP9uI{`n06QG&o=NpPAn=O zf^?n^kw}$^snKm=%~tNYS39sxk|oZlT7FnFYSIX3QUdtARlRv3#5R9aS&L=lf_mcaBRB=$I&r8b4Gmg%$6;m?wgT z-KoRoZUdPMtZLT^q23tuSir+;ArN9cAV7cccK7QUQ3iAkHx#;bY?wx>q`RW+a>5&j z7Itz>I>3@`%wxJkLJoYt|FXEBG~AlSAG~WE%J@WFG^-YHmm@>E-sCC&$4^9yH&i6> zgr|(U=xnhM(UcPYud}lS&38ZC%Et-iYrmteVY)&an5^}=vuR*ap7CgtZ^%J$>c>+W9(DO~_bJxJZe{z4hra7sTgsFGnv(ybp z``c6$^`9S1KLdoW7b85;M|_$z3)HZ2t;yb^{c2L3#NZS5f^+3o!IHx= zHd}&Elb2N<+D7XwR63glTx?q>E+mMn$$53T8qj#k;qA;O!|w`KIn!(#POiD7liqA8 zQA}TLIlnVx`I+0qR7=^}N%z*#L}#BM^TzPgzh3gcm-HT!2TZI_C5RCy4@dRp>y22M zxi30qD+Hic62=Ge*o71e`mnuF+E0X#5J7gW^sw>v;x?jNgw~C}WGH0Uv$@CYJMmq~ zmd0r;hE&-^Ly0bpqiu13rbd;?XnW$JXhWf@C&AC;QT!hC(pKH<#yGGE4rI{NV9I=lK>G_iWQCE6@EP(T5Fkw$^KPmH< z=Ld^+ywUJZ*IrS1_zip=knCFALT?*>e(cYu*->~IJ~pe#yj67CiiWTub*l#dLn)ao z`uQYoB1cxXv=*n7E|3zoUtWBl5yII2F6-k@n5Ex~3v_`ZOMux#narXf`zXSNJ!m~* zcO2!}fYywrbn-&((d$08CTb!Oo$IT2r~I4z2Z+f?CVATKbH^RC|n< zSX^5DlJhKjW-->*rC9`6XRIF+Y8>ima^*7$cWHSkUg6XYmNwJ=si{x^=H z;Tg*paF>Kd3V0C-!E_416?K>i!y@|5EM delta 2398 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 delta 2398 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 diff --git a/crates/store/src/genesis/config/tests.rs b/crates/store/src/genesis/config/tests.rs index 88c30989a5..6641bf4fe4 100644 --- a/crates/store/src/genesis/config/tests.rs +++ b/crates/store/src/genesis/config/tests.rs @@ -145,9 +145,13 @@ fn parsing_native_faucet_from_file() -> TestResult { use miden_protocol::account::auth::AuthScheme; use miden_protocol::account::{AccountBuilder, AccountFile, AccountStorageMode, AccountType}; use miden_standards::account::auth::AuthSingleSig; - use miden_standards::account::burn_policies::BurnAuthControlled; use miden_standards::account::metadata::{FungibleTokenMetadata, TokenName}; - use miden_standards::account::mint_policies::MintAuthControlled; + use miden_standards::account::policies::{ + BurnPolicyConfig, + MintPolicyConfig, + PolicyAuthority, + TokenPolicyManager, + }; use tempfile::tempdir; // Create a temporary directory for our test files @@ -176,8 +180,11 @@ fn parsing_native_faucet_from_file() -> TestResult { .with_auth_component(auth) .with_component(token_metadata) .with_component(BasicFungibleFaucet) - .with_component(MintAuthControlled::allow_all()) - .with_component(BurnAuthControlled::allow_all()) + .with_components(TokenPolicyManager::new( + PolicyAuthority::AuthControlled, + MintPolicyConfig::AllowAll, + BurnPolicyConfig::AllowAll, + )) .build()?; let faucet_id = faucet_account.id(); diff --git a/crates/utils/src/fee.rs b/crates/utils/src/fee.rs index 5bde432842..33c4472bad 100644 --- a/crates/utils/src/fee.rs +++ b/crates/utils/src/fee.rs @@ -1,16 +1,16 @@ use miden_protocol::asset::FungibleAsset; use miden_protocol::block::FeeParameters; -use miden_protocol::testing::account_id::ACCOUNT_ID_NATIVE_ASSET_FAUCET; +use miden_protocol::testing::account_id::ACCOUNT_ID_FEE_FAUCET; /// Derive a default, zero valued fee, payable to -/// [`miden_protocol::testing::account_id::ACCOUNT_ID_NATIVE_ASSET_FAUCET`]. +/// [`miden_protocol::testing::account_id::ACCOUNT_ID_FEE_FAUCET`]. pub fn test_fee() -> FungibleAsset { - let faucet = ACCOUNT_ID_NATIVE_ASSET_FAUCET.try_into().unwrap(); + let faucet = ACCOUNT_ID_FEE_FAUCET.try_into().unwrap(); FungibleAsset::new(faucet, 0).unwrap() } /// Derive the default fee parameters, compatible with [`fn test_fee`]. pub fn test_fee_params() -> FeeParameters { - let faucet = ACCOUNT_ID_NATIVE_ASSET_FAUCET.try_into().unwrap(); + let faucet = ACCOUNT_ID_FEE_FAUCET.try_into().unwrap(); FeeParameters::new(faucet, 0).unwrap() } diff --git a/crates/validator/src/server/tests.rs b/crates/validator/src/server/tests.rs index be7cbdedec..8d55f6a7ea 100644 --- a/crates/validator/src/server/tests.rs +++ b/crates/validator/src/server/tests.rs @@ -312,7 +312,7 @@ async fn unknown_transactions_rejected() { // Build a dummy transaction header with a transaction ID that has NOT been // submitted through `submit_proven_transaction`. let account_id = ACCOUNT_ID_SENDER.try_into().unwrap(); - let fee = FungibleAsset::new(test_fee_params().native_asset_id(), 0).unwrap(); + let fee = FungibleAsset::new(test_fee_params().fee_faucet_id(), 0).unwrap(); let tx_header = TransactionHeader::new( account_id, Word::default(), diff --git a/crates/validator/src/tx_validation/data_store.rs b/crates/validator/src/tx_validation/data_store.rs index ac143ef3be..9b97421076 100644 --- a/crates/validator/src/tx_validation/data_store.rs +++ b/crates/validator/src/tx_validation/data_store.rs @@ -6,7 +6,7 @@ use miden_protocol::Word; use miden_protocol::account::{AccountId, PartialAccount, StorageMapKey, StorageMapWitness}; use miden_protocol::asset::{AssetVaultKey, AssetWitness}; use miden_protocol::block::{BlockHeader, BlockNumber}; -use miden_protocol::note::NoteScript; +use miden_protocol::note::{NoteScript, NoteScriptRoot}; use miden_protocol::transaction::{AccountInputs, PartialBlockchain, TransactionInputs}; use miden_protocol::vm::FutureMaybeSend; use miden_tx::{DataStore, DataStoreError, MastForestStore, TransactionMastStore}; @@ -94,7 +94,7 @@ impl DataStore for TransactionInputsDataStore { fn get_note_script( &self, - _script_root: Word, + _script_root: NoteScriptRoot, ) -> impl FutureMaybeSend, DataStoreError>> { async move { unimplemented!("get_note_script is not used during re-execution of transactions") } } From aba54d84576656a996c9b3781a0a0e27077c3b51 Mon Sep 17 00:00:00 2001 From: Juan Munoz Date: Tue, 5 May 2026 17:05:57 -0300 Subject: [PATCH 5/5] fix: NoteType encoding --- crates/store/src/db/migrations/2025062000000_setup/up.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/store/src/db/migrations/2025062000000_setup/up.sql b/crates/store/src/db/migrations/2025062000000_setup/up.sql index 1b168ab4cc..2f8538d988 100644 --- a/crates/store/src/db/migrations/2025062000000_setup/up.sql +++ b/crates/store/src/db/migrations/2025062000000_setup/up.sql @@ -58,7 +58,7 @@ CREATE TABLE notes ( note_index INTEGER NOT NULL, -- Index of note in batch, starting from 0 note_id BLOB NOT NULL, note_commitment BLOB NOT NULL, - note_type INTEGER NOT NULL, -- 1-Public, 2-Private + note_type INTEGER NOT NULL, -- 0-Private, 1-Public sender BLOB NOT NULL, tag INTEGER NOT NULL, network_note_type INTEGER NOT NULL, -- 0-not a network note, 1-single account target network note @@ -73,7 +73,7 @@ CREATE TABLE notes ( serial_num BLOB, PRIMARY KEY (committed_at, batch_index, note_index), - CONSTRAINT notes_type_in_enum CHECK (note_type BETWEEN 1 AND 2), + CONSTRAINT notes_type_in_enum CHECK (note_type BETWEEN 0 AND 1), CONSTRAINT notes_network_note_type_in_enum CHECK (network_note_type BETWEEN 0 AND 1), CONSTRAINT notes_consumed_at_is_u32 CHECK (consumed_at BETWEEN 0 AND 0xFFFFFFFF), CONSTRAINT notes_batch_index_is_u32 CHECK (batch_index BETWEEN 0 AND 0xFFFFFFFF),