- Added AggLayer faucet registry to bridge account with conversion metadata,
CONFIG_AGG_BRIDGEnote for faucet registration, and FPI-based asset conversion inbridge_out(#2426). - Enable
CodeBuilderto add advice map entries to compiled scripts (#2275). - Added
BlockNumber::MAXconstant to represent the maximum block number (#2324). - Added single-word
Arraystandard (#2203). - Added B2AGG and UPDATE_GER note attachment target checks (#2334).
- Added double-word array data structure abstraction over storage maps (#2299).
- Implemented verification of AggLayer deposits (claims) against GER (#2295, #2288).
- Added
SignedBlockstruct (#2355). - Added
PackageKindandProcedureExport(#2358). - Added
AccountTargetNetworkNotetype andNetworkNoteExttrait withis_network_note()/as_account_target_network_note()helpers (#2365). - Changed GER storage to a map (#2388).
- Implemented
assert_valid_gerprocedure for verifying GER against storage (#2388). - Added
P2idNoteStorageandP2ideNoteStorage(#2389). - [BREAKING] Added
get_assetandget_initial_assetkernel procedures and removedget_balance,get_initial_balanceandhas_non_fungible_assetkernel procedures (#2369). - Added
p2id::newMASM constructor procedure for creating P2ID notes from MASM code (#2381). - Introduced
TokenMetadatatype to encapsulate fungible faucet metadata (#2344). - Increased
TokenSymbolmax allowed length from 6 to 12 uppercase characters (#2420). - Added
StandardNote::from_script_root()andStandardNote::name()methods, and exposedNoteTypePUBLIC/PRIVATEmasks as public constants (#2411). - Resolve standard note scripts directly in
TransactionExecutorHostinstead of querying the data store (#2417). - Added
DEFAULT_TAGconstant tomiden::standards::note_tagMASM module (#2482). - Added
NoteExecutionHintvariant constants (NONE,ALWAYS,AFTER_BLOCK,ON_BLOCK_SLOT) tomiden::standards::note::execution_hintMASM module (#2493).
- [BREAKING] Migrated to miden-vm 0.21 and miden-crypto 0.22 (#2508).
- [BREAKING] The stack orientation changed from big-endian to little-endian - see PR description (#2508).
- [BREAKING] The native hash function changed from RPO256 to Poseidon2 - see PR description (#2508).
- Introduced
StorageMapKeyandStorageMapKeyHashWord wrappers for type-safe storage map key handling (#2431). - Restructured
miden-agglayer/asmdirectory to separate bridge and faucet into per-component libraries, preventing cross-component procedure exposure (#2294). - Made kernel procedure offset constants public and replaced accessor procedures with direct constant usage (#2375).
- [BREAKING] Made
AccountComponentMetadataa required parameter ofAccountComponent::new(); removedwith_supported_type,with_supports_all_types, andwith_metadatamethods fromAccountComponent; simplifiedAccountComponentMetadata::new()to take justname; renamedAccountComponentTemplateErrortoComponentMetadataError(#2373, #2395). - Fixed MASM inline comment casing to adhere to commenting conventions (#2398).
- Removed redundant note storage item count from advice map (#2376).
- Moved
NoteExecutionHinttomiden-standards(#2378). - Added
miden::protocol::authmodule with public auth event constants (#2377). - Replaced auth event constant workarounds with direct imports now that
miden-assemblyv0.20.6 supports it (#2404). - [BREAKING] Prefixed transaction kernel events with
miden::protocol(#2364). - [BREAKING] Simplified
NoteMetadata::new()constructor to not require tag parameter; tag defaults to zero and can be set viawith_tag()builder method (#2384). - [BREAKING] Renamed
WellKnownComponenttoStandardAccountComponent,WellKnownNotetoStandardNote, andWellKnownNoteAttachmenttoStandardNoteAttachment(#2332). - Skip requests to the
DataStorefor asset vault witnesses which are already in transaction inputs (#2298). - [BREAKING] Refactored
TransactionAuthenticator::get_public_key()method to returnArc<PublicKey>instead of&PublicKey(#2304). - [BREAKING] Renamed
NoteInputstoNoteStorageto better reflect that values are stored data associated with a note rather than inputs (#1662, #2316). - Removed
NoteType::Encrypted(#2315). - [BREAKING] Changed note scripts to be compiled as libraries with
@note_scriptannotation for marking the entrypoint procedure (#2339, #2374). - Remove protocol-reserved faucet sysdata storage slot (#2335).
- Updated note tag length to support up to 32 bits (#2329).
- [BREAKING] Updated note tag length to support up to 32 bits (#2329).
- [BREAKING] Moved standard note code into individual note modules (#2363).
- [BREAKING] Added
miden::standards::note_tagmodule for account target note tags (#2366). - [BREAKING] Refactored assets in the tx kernel and
miden::protocolfrom one to two words, i.e.ASSETbecomesASSET_KEYandASSET_VALUE(#2396, #2410). - [BREAKING] Rename
miden::protocol::asset::build_fungible_assettomiden::protocol::asset::create_fungible_asset(#2410). - [BREAKING] Rename
miden::protocol::asset::build_non_fungible_assettomiden::protocol::asset::create_non_fungible_asset(#2410). - [BREAKING] Change the layout of fungible and non-fungible assets (#2437).
- [BREAKING] Refactored assets in the tx kernel from one to two words, i.e.
ASSETbecomesASSET_KEYandASSET_VALUE(#2396). - Unified the underlying representation of
ExitRootandSmtNodeand use type aliases (#2387). - [BREAKING] Moved padding to the end of
CLAIMNoteStoragelayout (#2405). - [BREAKING] Consolidated authentication components ([#2390] (0xMiden#2390))
- [BREAKING] Refactored account ID and nonce memory and advice stack layout (#2442).
- [BREAKING] Removed
hash_account(#2442). - [BREAKING] Renamed
AccountHeader::commitment,Account::commitmentandPartialAccount::commitmenttoto_commitment(#2442). - [BREAKING] Remove
BlockSignertrait (#2447). - Updated account schema commitment construction to accept borrowed schema iterators; added extension trait to enable
AccountBuilder::with_schema_commitment()helper (#2419). - [BREAKING] Renamed
SchemaTypeIdtoSchemaType(#2494). - Updated stale
miden-basereferences toprotocolacross docs, READMEs, code comments, and Cargo.toml repository URL (#2503). - [BREAKING] Reverse the order of the transaction summary on the stack (#2512).
- Use
@auth_scriptMASM attribute instead ofauth_prefix to identify authentication procedures in account components (#2534).
- Fixed
CLAIMnote creation to useNetworkAccountTargetattachment (#2352). - Added standards for working with
NetworkAccountTargetattachments (#2338). - Fixed
PartialBlockchain::add_block()not adding block headers to theblocksmap whentrack=true, which causedprune_to()to never untrack old blocks, leading to unbounded memory growth (#2353).
- Make transaction executor respect debug mode settings (#2327).
- Make
NetworkAccountTargetErrorpublic (#2319).
- [BREAKING] Refactored storage slots to be accessed by names instead of indices (#1987, #2025, #2149, #2150, #2153, #2154, #2160, #2161, #2170).
- [BREAKING] Allowed account components to share identical account code procedures (#2164).
- Add
AccountId::parse()helper function to parse both hex and bech32 formats (#2223). - Add Keccak-based MMR frontier structure to the Agglayer library (#2245).
- Add
read_foreign_account_inputs(),read_vault_asset_witnesses(), andread_storage_map_witness()forTransactionInputs(#2246). - [BREAKING] Introduce
NoteAttachmentas part ofNoteMetadataand removeauxandexecution_hint(#2249, #2252, #2260, #2268, #2279). - Introduce standard
NetworkAccountTargetattachment for use in network transactions which replacesNoteTag::NetworkAccount(#2257). - Add a foundry test suite for verifying AggLayer contracts compatibility (#2312).
- Added
AccountSchemaCommitmentcomponent to expose account storage schema commitments (#2253). - Added an
AccountBuilderextension trait to help build the schema commitment; addedAccountComponentMetadatatoAccountComponent(#2269). - Added
miden::standards::access::ownablestandard module for component ownership management, and integrated it into thenetwork_fungiblefaucet (including new tests). (#2228). - [BREAKING] Add
leaf_valuetoCLAIMnote inputs (#2290).
- Added proc-macro
WordWrapperto ease implementation ofWord-wrapping types (#2071). - [BREAKING] Added
BlockBodyandBlockProofstructs in preparation for validator signatures and deferred block proving (#2012). - [BREAKING] Renamed
TransactionEventintoTransactionEventIdand split event handling into data extraction and handling logic (#2071). - Split tx progress events out into a separate enum (#2103).
- Added
note::get_network_account_tagprocedure (#2120). - [BREAKING] Updated MINT note to support both private and public output note creation (#2123).
- [BREAKING] Removed
AccountComponentTemplatein favor of instantiating components viaAccountComponent::from_package(#2127). - [BREAKING] Added public key to, remove proof commitment from,
BlockHeader, and add signing functionality throughBlockSignertrait (#2128). - [BREAKING] Added fee to
TransactionHeader(#2131). - Created
NullifierLeafValuenewtype wrapper (#2136). - [BREAKING] Increased
MAX_INPUTS_PER_NOTEfrom 128 to 1024 (#2139). - Added the ability to get full public key from
TransactionAuthenticator(#2145). - Added
TokenSymbol::from_static_strconst function for compile-time token symbol validation (#2148). - [BREAKING] Migrated to
miden-vmv0.20 andmiden-cryptov0.19 (#2158). - [BREAKING] Renamed
AccountProcedureInfointoAccountProcedureRootand remove storage offset and size (#2162). - [BREAKING] Made
AccountProcedureIndexMapconstruction infallible (#2163). - [BREAKING] Renamed
tracked_procedure_roots_slottotrigger_procedure_roots_slotin ACL auth components for naming consistency (#2166). - [BREAKING] Refactored
miden-objectsandmiden-libintomiden-protocolandmiden-standards(#2184, #2191, #2197, #2255). - Added
From<&ExecutedTransaction> for TransactionHeaderimplementation (#2178). - [BREAKING] Refactored
AccountStorageDeltato use a newStorageSlotDeltatype (#2182). - [BREAKING] Removed OLD_MAP_ROOT from being returned when calling
native_account::set_map_item(#2194). - [BREAKING] Refactored account component templates into
StorageSchema(#2193). - Added
StorageSchema::commitment()(#2244). - [BREAKING] Refactored account component templates into
AccountStorageSchema(#2193). - [BREAKING] Refactor note tags to be arbitrary
u32values and drop previous validation (#2219). - [BREAKING] Refactored
InitStorageDatato support native types (#2230). - Refactored to no longer pad the note inputs on insertion into advice map (#2232).
- Added
StorageSchema::commitment()(#2244). - [BREAKING]
RpoFalcon512was renamed toFalcon512Rpoeverywhere, including procedure and file names (#2264). - [BREAKING] Removed top-level error exports from
miden-protocolcrate (the are still accessible undermiden_protocol::errors).
- Added the standard library's precompile registry to
TransactionVerifier(#2116).
- Added
ecdsa_k256_keccak::PublicKeyas a valid template type (#2097). - [BREAKING] Fix advice inputs in transaction inputs not being propagated through (#2099).
- Add
Sgeneric toNullifierTreeto allow usage withLargeSmts (#1353). - [BREAKING] Pre-fetch note and fee asset witnesses before transaction execution (#2113).
- Added
create_mint_noteandcreate_burn_notehelper functions for creating standardized MINT and BURN notes (#2061). - [BREAKING] Fix ECDSA signature preparation in
Signature::to_prepared_signature()method (#2074). - Skip value slot normalization for new account's deltas (#2075).
- Skip value and map slot normalization for new account's deltas (#2075, #2077).
- Added
AuthEcdsaK256KeccakandAuthEcdsaK256KeccakMultisigauth components (#2083).
- Made
InitStorageData::map_entries()public (#2055). - Enabled handling of empty maps in account component templates (#2056).
- Changed auth components to increment nonce if it is zero (#2060).
- Fixed incorrect detection of note inputs length during note creation (#2066).
- Added
prove_dummyAPIs onLocalTransactionProver(#1674). - Added
update_signers_and_thresholdprocedure to update owner public keys and threshold config in multisig authentication component (#1707). - Added
add_signaturehelper to simplify loading signatures into advice map (#1725). - Added
build_recipientprocedure tomiden::notemodule (#1807). - Added
prove_dummyAPIs onLocalBatchProverandLocalBlockProver(#1811). - Added
get_native_idandget_native_nonceprocedures to themidenlibrary (#1844). - Enabled lazy loading of assets during transaction execution (#1848).
- Added lazy loading of the native asset (#1855).
- [BREAKING] Enabled lazy loading of storage map entries during transaction execution (#1857).
- [BREAKING] Enabled lazy loading of foreign accounts during transaction execution (#1873).
- [BREAKING] Move account seed into
PartialAccount(#1875, #2003). - Added
get_initial_itemandget_map_item_initprocedures tomiden::accountmodule for accessing initial storage state (#1883). - Updated
rpo_falcon512::verify_signaturesto useaccount::get_map_item_init(#1885). - [BREAKING] Enabled lazy loading of assets and storage map items for foreign accounts during transaction execution (#1888).
- [BREAKING] Represent new accounts as account deltas (#1896).
- Implement
SlotNamefor named storage slots (#1932) - [BREAKING] Removed
get_falcon_signaturefrommiden-txcrate (#1924). - Created a
Signaturewrapper to simplify the preparation of "native" signatures for use in the VM (#1924). - Added per-procedure approval thresholds to
AuthRpoFalcon512Multisigauth component (#1968). - Implemented
input_note::get_senderandactive_note::get_metadataprocedures inmidenlib (#1933). - Added
Addressserialization and deserialization (#1937). - Added
StorageMap::{num_entries, num_leaves}to retrieve the number of entries in a storage map (#1935). - Added
AssetVault::{num_assets, num_leaves, inner_nodes}(#1939). - [BREAKING] Enabled computing the transaction ID from the data in a
TransactionHeader(#1973). - Added
account::get_initial_balanceprocedure tomidenlib (#1959). - [BREAKING] Changed
AccounttoPartialAccountconversion to generally track only minimal data (#1963). - Added
MastArtifact,PackageExport,PackageManifest,AttributeSet,QualifiedProcedureName,SectionandSectionIdto re-export section (#1984 and #2015). - [BREAKING] Enable computing the transaction ID from the data in a
TransactionHeader([#1973]0xMiden#1973). - [BREAKING] Introduce
VaultKeynewtype wrapper for asset vault keys ([#1978]0xMiden#1978). - [BREAKING] Introduce
AssetVaultKeynewtype wrapper for asset vault keys (#1978, #2024). - Added
network_fungible_faucetandMINT&BURNnotes (#1925) - Removed
create_p2id_noteandcreate_p2any_notemethods fromMockChainBuilder, users should useadd_p2id_noteandadd_p2any_noteinstead (#1990). - [BREAKING] Introduced
AuthSchemeandPublicKeyenums inmiden-objects::account::authmodule (#1994). - [BREAKING] Added
get_note_script()method toDataStoretrait to enable lazy loading of note scripts during transaction execution (#1995). - Added
AccountTree::apply_mutations_with_reversions(#2002). - [BREAKING] Change
AccountTreeto be generic overtrait AccountTreeBackendimplementations (#2006). - Added
Displaytrait forAddressInterface(#2016). - Added
has_procedureprocedure to themiden::accountmodule (#2017). - Re-add bech32 encoding for
AccountId(#2018). - [BREAKING] Separate account APIs in
miden::accountintoactive_accountandnative_account(#2026). - [BREAKING] Remove
miden::account::get_native_nonceprocedure (#2026). - [BREAKING] Refactor
Addressto make routing parameters optional (#2032, #2047). - [BREAKING] Refactor
PartialVault,PartialStorageMap,PartialAccountTreeandPartialNullifierTreeto allow construction from a root (#2042). - Added duplicate approver validation to
AuthRpoFalcon512MultisigConfig(#2046). - Added
encryption_keytoRoutingParameters(#2050). - [BREAKING] Added
EcdsaK256Keccakvariant to auth enums (#2052). - Implemented storage map templates, which can be initialized through key/value lists provided via
InitStorageDataTOML (#2053).
- [BREAKING] Incremented MSRV to 1.90.
- [BREAKING] Migrated to
miden-vmv0.18 andmiden-cryptov0.17 (#1832). - [BREAKING] Removed
MockChain::add_pending_p2id_notein favor of usingMockChainBuilder(#1842). - [BREAKING] Removed versioning of the transaction kernel, leaving only one latest version (#1793).
- [BREAKING] Moved
miden::asset::{create_fungible_asset, create_non_fungible_asset}procedures tomiden::faucet(#1850). - [BREAKING] Removed versioning of the transaction kernel, leaving only one latest version (#1793).
- Added
AccountComponent::from_package()method to create components frommiden-mast-package::Package(#1802). - [BREAKING] Removed some of the
notekernel procedures and useinput_noteprocedures instead (#1834). - [BREAKING] Replaced
AccountwithPartialAccountinTransactionInputs(#1840). - [BREAKING] Renamed
Account::init_commitmenttoAccount::initial_commitment(#1840). - [BREAKING] Renamed the
is_onchainmethod tohas_public_stateforAccountId,AccountIdPrefix,Account,AccountInterfaceandAccountStorageMode(#1846). - [BREAKING] Moved
NetworkIdfrom account ID to address module (#1851). - Removed
ProvenTransactionExt(#1867). - [BREAKING] Renamed the
is_onchainmethod tohas_public_stateforAccountId,AccountIdPrefix,Account,AccountInterfaceandAccountStorageMode(#1846). - [BREAKING] Moved
miden::asset::{create_fungible_asset, create_non_fungible_asset}procedures tomiden::faucet(#1850). - [BREAKING] Moved
NetworkIdfrom account ID to address module (#1851). - [BREAKING] Moved
TransactionKernelErrorto miden-tx (#1859). - [BREAKING] Changed
PartialStorageMapto track the correct set of key+value pairings (#1878, #1921). - Change terminology of "current note" to "active note" (#1863).
- [BREAKING] Moved and rename
miden::tx::{add_asset_to_note, create_note}procedures tomiden::output_note::{add_asset, create}(#1874). - Merge
bench-proverintobench-txcrate (#1894). - Replace
eqwusages withexec.word::test_eqandexec.word::eq, removeis_key_greaterandis_key_lessfromlink_mapmodule (#1897). - [BREAKING] Make AssetVault and PartialVault APIs more type safe (#1916).
- [BREAKING] Remove
MockChain::add_pending_noteto simplify mock chain internals (#1903). - [BREAKING] Moved active note procedures from
miden::notetomiden::active_notemodule (#1901). - [BREAKING] Removed account_seed from AccountFile (#1917).
- [BREAKING] Renamed
TransactionInputstoTransactionExecutionInputsand make a newTransactionInputsstruct which does not containInputNotes<InputNote>(#1934). - [BREAKING] Refactored
TransactionInputsand removeTransactionWitness(#1934). - Simplify
MockChaininternals and rework its documentation (#1942). - [BREAKING] Changed the signature of TransactionAuthenticator to return the native signature (#1945).
- [BREAKING] Renamed
MockChainBuilder::add_notetoadd_output_note(#1946). - Dynamically lookup all masm
EventIds from source (#1954). - [BREAKING] Return
ExecutionOutputfromTransactionContext::execute_code(#1955). - [BREAKING] Renamed
get_item_initandget_map_item_inittoget_initial_itemandget_initial_map_itemrespectively (#1959). - Update the type signature syntax in the
account_componentsmodule (#1971). - [BREAKING] Assert nonce is non-zero after the auth procedure (#1982).
- [BREAKING] Removed
RngfromBasicAuthenticator(#1994). - [BREAKING] Changed the outputs of the
output_note::add_assetprocedure: now the values that are the same as the passed parameters are dropped (#2031). - [BREAKING] Upgraded VM to 0.19 (#2042).
- Add new
can_consumemethod to theNoteConsumptionChecker(#1928).
- Updated
miden-vmdependencies to0.17.2patch version. (#1905)
- Added Serialize and Deserialize Traits on
SigningInputs(#1858).
- Fixed foreign account inputs not being loaded in
LocalTransactionProver(#1866).
- Added
AddressInterface::Unspecifiedto represent default addresses (#1801).
- Added arguments to the auth procedure (#1501).
- [BREAKING] Refactored
SWAPnote & added option to select the visibility of the associated payback note (#1539). - Added multi-signature authentication component as standard authentication component (#1599).
- Added
account_compute_delta_commitment,input_note_get_assets_info,tx_get_num_input_notes, andtx_get_num_output_notesprocedures to the transaction kernel (#1609). - [BREAKING] Refactor
TransactionAuthenticatorto support arbitrary data signing (#1616). - Implemented new
from_unauthenticated_notesconstructor forInputNotes(#1629). - Added
output_note_get_assets_infoprocedure to the transaction kernel (#1638). - Pass the full
TransactionSummarytoTransactionAuthenticator(#1618). - Added
PartialBlockchain::num_tracked_blocks()(#1643). - Removed
TransactionScript::compile&NoteScript::compilemethods in favor ofScriptBuilder(#1665). - Added
get_initial_code_commitment,get_initial_storage_commitmentandget_initial_vault_rootprocedures tomiden::accountmodule (#1667). - Added
input_note_get_recipient,output_note_get_recipient,input_note_get_metadata,output_note_get_metadataprocedures to the transaction kernel (#1648). - Added
input_notes::get_assetsandoutput_notes::get_assetsprocedures tomidenlibrary (#1648). - Added issuance accessor for fungible faucet accounts. (#1660).
- Added multi-signature authentication component as standard authentication component (#1599).
- Added
FeeParameterstoBlockHeaderand automatically compute and remove fees from account in the transaction kernel epilogue (#1652, #1654, #1659, #1664, #1775). - Added
Addresstype to represent account-id based addresses (#1713, #1750). - [BREAKING] Consolidated to a single async interface and drop
#[maybe_async]usage (#1666). - [BREAKING] Made transaction execution and transaction authentication asynchronous (#1699).
- [BREAKING] Return dedicated insufficient fee error from transaction host if account balance is too low (#1744).
- Added
asset_vault::peek_balance(#1745). - Added
get_auth_schememethod toAccountComponentInterfaceandAccountInterfacefor better authentication scheme extraction (#1759). - Added
AddressInterfacetype to represent the interface of the account to which anAddresspoints (#1761). - Document
midenlibrary procedures and the context from which they can be called (#1799). - Add
Addresstype to represent account-id based addresses (#1713). - Document
Addressin Miden book (#1792). - Add
asset_vault::peek_balance(#1745). - Add
get_auth_schememethod toAccountComponentInterfaceandAccountInterfacefor better authentication scheme extraction (#1759). - Add
CustomNetworkIdinNetworkID(#1787).
- [BREAKING] Incremented MSRV to 1.88.
- Refactored account documentation into multiple sections (#1523).
- Implemented
WellKnownComponentsenum (#1532). - [BREAKING] Remove pending account APIs on
MockChainand introduceMockChainBuilderto simplify mock chain creation (#1557). - Made
ExecutedTransactionimplementSendfor easier consumption (#1560). - [BREAKING]
Digestwas removed in favor ofWord(#1564). - [BREAKING] Upgraded Miden VM to
0.16,miden-cryptoto0.15andwinterfellcrates to0.13(#1564, #1594). - [BREAKING] Renamed
{NoteInclusionProof, AccountWitness}::inner_nodestoauthenticated_nodes(#1564). - [BREAKING] Renamed
{TransactionId, NoteId, Nullifier}::inner->as_word(#1571). - Replaced
MerklePathwithSparseMerklePathinNoteInclusionProof(#1572) . - [BREAKING] Renamed authentication components to include "auth" prefix for clarity (#1575).
- [BREAKING] Split
TransactionHostintoTransactionProverHostandTransactionExecutorHost(#1581). - Added
TransactionEvent::Unauthorizedto enable aborting the transaction execution to get its transaction summary for signing purposes (#1596, #1634, #1651). - [BREAKING] Implemented
SequentialCommitforAccountDeltaand renamedAccountDelta::commitment()toAccountDelta::to_commitment()(#1603). - Added robustness check to
create_swap_note: error ifrequested_asset!=offered_asset(#1604). - [BREAKING] Changed
account::incr_nonceto always increment the nonce by one, disallow incrementing more than once and return the new nonce after incrementing (#1608, #1633). - Added
AccountTree::contains_account_id_prefix()andAccountTree::id_prefix_to_smt_key()(#1610). - Added functions for pruning
PartialBlockchain(#1619). - [BREAKING] Disallowed calling the auth procedure explicitly (from outside the epilogue) (#1622).
- [BREAKING] Included account delta commitment in signing message for the
RpoFalcon512family of account components (#1624). - [BREAKING] Renamed
TransactionEvent::FalconSigToStacktoTransactionEvent::AuthRequest(#1626). - [BREAKING] Made the naming of the transaction script arguments consistent (#1632).
- [BREAKING] Moved
TransactionProverHostandTransactionExecutorHostfrom dynamic dispatch to generics (#1037) - [BREAKING] Changed
PartialStorageandPartialVaultto usePartialSmtinstead of separate merkle proofs (#1590). - [BREAKING] Moved transaction inputs insertion out of transaction hosts (#1639)
- Implemented serialization for
MockChain(#1642). - [BREAKING] Reduced
FungibleAsset::MAX_AMOUNTby a small fraction which allows using felt-based arithmetic in the fungible asset account delta (#1681). - Avoid modifying an asset vault when adding a fungible asset with amount zero and the asset does not already exist (#1668).
- [BREAKING] Updated
NoteConsumptionChecker::check_notes_consumabilityandTransactionExecutor::try_execute_notesto returnNoteConsumptionInfocontaining lists ofNoterather thanNoteId(#1680). - Refactored epilogue to run as much code as possible before fees are computed (#1698).
- Refactored epilogue to run as much code as possible before fees are computed (#1698, #1705).
- [BREAKING] Removed note script utils and rename
note::add_note_assets_to_accounttonote::add_assets_to_account(#1694). - Refactor
contracts::auth::basicinto a reusable library procedureauth::rpo_falcon512(#1712). - [BREAKING] Refactored
FungibleAsset::subto be more similar toFungibleAsset::add(#1720). - Update
NoteConsumptionChecker::check_notes_consumabilityto use iterative elimination strategy to find a set of executable notes (#1721). - [BREAKING] Moved
IncrNonceAuthComponent,ConditionalAuthComponentandAccountMockComponenttomiden-lib(#1722). - [BREAKING] Split
AccountCode::mock_libraryinto an account and faucet library (#1732, #1733). - [BREAKING] Refactored
AccountError::AssumptionViolatedintoAccountError::Other(#1743). - [BREAKING] Removed
PartialVault::{new, add}to guarantee the vault tracks valid assets (#1747). - [BREAKING] Changed owner of
Arc<dyn SourceManagerSyncand unify usage over manually+Send+Syncbounds (#1749). - [BREAKING] Removed account ID bech32 encoding. Use
Address::{from_bech32, to_bech32}instead (#1762). - [BREAKING] Updated
account::get_storage_commitmentprocedure toaccount::compute_storage_commitment(#1763). - Implemented caching for the account storage commitment ((#1763)).
- [BREAKING] Merge the current and initial account code commitment procedures into one (#1776).
- Added
TransactionExecutorError::InsufficientFeevariant(#1786). - [BREAKING] Made source manager an instance variable of the
TransactionExecutor(#1788).
- Added
NoAuthcomponent to the set of standard components (#1620).
- Added
bench-provercrate to benchmark proving times (#1378). - Allowed NOOP transactions and state-updating transactions against the same account in the same block (#1393).
- Added P2IDE standard note (#1421).
- [BREAKING] Implemented transaction script arguments for the
TransactionScript(#1406). - [BREAKING] Implemented in-kernel account delta tracking (#1471, #1404, #1460, #1481, #1491).
- Add
with_auth_componenttoAccountBuilder(#1480). - Added
ScriptBuilderto streamline building note & transaction scripts (#1507). - Added procedure
was_procedure_calledtomiden::accountlibrary module (#1521). - Enabled loading MASM source files into
TransactionKernel::assemblerfor better errors (#1527).
- [BREAKING] Refactored
NoteTagto an enum (#1322). - [BREAKING] Removed
AccountIdAnchorfrom account ID generation process (#1391). - Implemented map based on a sorted linked list in transaction kernel library (#1396, #1428, #1478).
- Added shutdown configuration options to the
miden-proving-serviceproxy (#1405). - Added support for workers configuration in the proxy with environment variables (#1412).
- Implemented
DisplayforNoteType(#1420). - [BREAKING] Removed
NoteExecutionModefromfrom_account_id(#1422). - [BREAKING] Refactored transaction kernel advice inputs (#1425).
- [BREAKING] Moved transaction script argument from
TransactionScripttoTransactionArgs. (#1426). - [BREAKING] Removed transaction inputs from
TransactionScript. (#1426). - Removed miden-proving-service binary crate and miden-proving-service-client crate (#1427).
- Removed doc update checks on CI (#1435).
- [BREAKING] Introduced
ScriptMastForestStoreand refactor MAST forest provisioning in theTransactionExecutor(#1438). - [BREAKING] Allowed list of keys in
AccountFile(#1451). - [BREAKING]
TransactionHost::newnow expects&PartialAccountinsteadAccountHeader(#1452). - Load account and input notes advice maps into the advice provider before executing them (#1452).
- Added support for private accounts in
MockChain(#1453). - Improved error message quality in
CodeExecutor::runandTransactionContext::execute_code(#1458). - Temporarily bumped ACCOUNT_UPDATE_MAX_SIZE to 256 KiB for compiler testing (#1464).
- [BREAKING]
TransactionExecutornow holds plain references instead ofArcfor its trait objects (#1469). - [BREAKING] Store account ID in account delta (#1493).
- [BREAKING] Removed P2IDR and replace with P2IDE (#1483).
- [BREAKING] Refactored nonce in delta from
Option<Felt>toFelt(#1492). - Normalized account deltas to avoid including no-op updates (#1496).
- Added
Note::is_network_note()accessor (#1485). - [BREAKING] Refactored account authentication to require a procedure containing
auth__in its name (#1480). - [BREAKING] Updated handling of the shared modules (#1490).
- [BREAKING] Refactored transaction to output
ACCOUNT_UPDATE_COMMITMENT(#1500). - Added a new constructor for
TransactionExecutorthat acceptsExecutionOptions(#1502). - [BREAKING] Introduced errors in
MockChainAPI (#1508). - [BREAKING]
TransactionAdviceInputscannot returnErranymore (#1517). - Implemented serialization for
LexicographicWord(#1524). - Made
Account:increment_nonce()method public (#1533). - Defined the commitment to an empty account delta as
EMPTY_WORD(#1528). - [BREAKING] Renamed
account_get_current_commitmenttoaccount_compute_current_commitmentand include the latest storage commitment in the returned commitment (#1529). - [BREAKING] Remove
create_notefromBasicWallet, expose it andadd_asset_to_noteinmiden::tx(#1525). - Add a new auth component
RpoFalcon512Acl(#1531). - [BREAKING] Change
BasicFungibleFaucetto useRpoFalcon512Aclfor authentication (#1531). - Introduce
MockChainmethods for executing at an older block (#1541). - [BREAKING] Change authentication component procedure name prefix from
auth__*toauth_*(#1861).
- [BREAKING] Forbid the execution of the empty transactions (#1459).
- Added
symbol(),decimals(), andmax_supply()accessors to theTokenSymbolstruct.
- Refactor proving service client errors (#1448)
- Add TLS support to
miden-proving-service-client(#1447)
- Refreshed Cargo.lock file.
- Added pretty print for
AccountCode(#1273). - Add iterators over concrete asset types in
NoteAssets(#1346). - Add the ability to create
BasicFungibleFaucetfromAccount(#1376).
- [BREAKING] Hash keys in storage maps before insertion into the SMT (#1250).
- Fix error when creating accounts with empty storage (#1307).
- [BREAKING] Move the number of note inputs to the separate memory address (#1327).
- [BREAKING] Change Token Symbol encoding (#1334).
- [BREAKING] Refactored how foreign account inputs are passed to
TransactionExecutor(#1229). - [BREAKING] Add
TransactionHeaderand include it in batches and blocks (#1247). - Add
AccountTreeandPartialAccountTreewrappers and enforce ID prefix uniqueness (#1254, #1301). - Added getter for proof security level in
ProvenBatchandProvenBlock(#1259). - [BREAKING] Replaced the
ProvenBatch::new_uncheckedwith theProvenBatch::newmethod to initialize the struct with validations (#1260). - [BREAKING] Add
AccountStorageMode::Networkfor network accounts (#1275, #1349). - Added support for environment variables to set up the
miden-proving-serviceworker (#1281). - Added field identifier structs for component metadata (#1292).
- Move
NullifierTreeandBlockChainfrom node to base (#1304). - Rename
ChainMmrtoPartialBlockchain(#1305). - Add safe
PartialBlockchainconstructor (#1308). - [BREAKING] Move
MockChainandTransactionContextto newmiden-testingcrate (#1309). - [BREAKING] Add support for private notes in
MockChain(#1310). - Generalized account-related inputs to the transaction kernel (#1311).
- [BREAKING] Refactor
MockChainto use batch and block provers (#1315). - [BREAKING] Upgrade VM to 0.14 and refactor transaction kernel error extraction (#1353).
- [BREAKING] Update MSRV to 1.87.
- Version check always fails (#1300).
- Added a retry strategy for worker's health check (#1255).
- Added a status endpoint for the
miden-proving-serviceworker and proxy (#1255).
- [BREAKING] Changed
TransactionArgsAPI to acceptAsRef<NoteRecipient>for extending the advice map in relation to output notes (#1251).
- Added an endpoint to the
miden-proving-serviceto update the workers (#1107). - [BREAKING] Added the
get_block_timestampprocedure to themidenlibrary (#1138). - Implemented
AccountInterfacestructure (#1171). - Implement user-facing bech32 encoding for
AccountIds (#1185). - Implemented
execute_tx_view_scriptprocedure for theTransactionExecutor(#1197). - Enabled nested FPI calls (#1227).
- Implement
check_notes_consumabilityprocedure for theTransactionExecutor(#1269).
- [BREAKING] Moved
generatedmodule frommiden-proving-service-clientcrate totx_prover::generatedhierarchy (#1102). - Renamed the protobuf file of the transaction prover to
tx_prover.proto(#1110). - [BREAKING] Renamed
AccountDatatoAccountFile(#1116). - Implement transaction batch prover in Rust (#1112).
- Added the
is_non_fungible_asset_issuedprocedure to themidenlibrary (#1125). - [BREAKING] Refactored config file for
miden-proving-serviceto be based on environment variables (#1120). - Added block number as a public input to the transaction kernel. Updated prologue logic to validate the global input block number is consistent with the commitment block number (#1126).
- Made NoteFile and AccountFile more consistent (#1133).
- [BREAKING] Implement most block constraints in
ProposedBlock(#1123, #1141). - Added serialization for
ProposedBatch,BatchId,BatchNoteTreeandProvenBatch(#1140). - Added
prefixtoNullifier(#1153). - [BREAKING] Implemented a
RemoteBatchProver.miden-proving-serviceworkers can prove batches (#1142). - [BREAKING] Implement
LocalBlockProverand renameBlocktoProvenBlock(#1152, #1168, #1172). - [BREAKING] Added native types to
AccountComponentTemplate(#1124). - Implemented
RemoteBlockProver.miden-proving-serviceworkers can prove blocks (#1169). - Used
Smt::with_entriesto error on duplicates inStorageMap::with_entries(#1167). - [BREAKING] Added
InitStorageData::from_toml(), improved storage entry validations inAccountComponentMetadata(#1170). - [BREAKING] Rework miden-lib error codes into categories (#1196).
- [BREAKING] Moved the
TransactionScriptBuilderfrommiden-clienttomiden-base(#1206). - [BREAKING] Enable timestamp customization on
MockChain::seal_block(#1208). - [BREAKING] Renamed constants and comments:
OnChain->PublicandOffChain->Private(#1218). - [BREAKING] Replace "hash" with "commitment" in
BlockHeader::{prev_hash, chain_root, kernel_root, tx_hash, proof_hash, sub_hash, hash}(#1209, #1221, #1226). - [BREAKING] Incremented minimum supported Rust version to 1.85.
- [BREAKING] Change advice for Falcon signature verification (#1183).
- Added
infolog level by default in the proving service (#1200). - Made Prometheus metrics optional in the proving service proxy via the
enable_metricsconfiguration option (#1200). - Improved logging in the proving service proxy for better diagnostics (#1200).
- Fixed issues with the proving service proxy's signal handling and port binding (#1200).
- [BREAKING] Simplified worker update configuration by using a single URL parameter instead of separate host and port (#1249).
- Added serialization for
ExecutedTransaction(#1113).
- Added missing doc comments (#1100).
- Fixed setting of supporting types when instantiating
AccountComponentfrom templates (#1103).
- [BREAKING] Extend
AccountIdto twoFelts and require block hash in derivation (#982). - Introduced
AccountComponentTemplatewith TOML serialization and templating (#1015, #1027). - Introduce
AccountIdBuilderto simplifyAccountIdgeneration in tests (#1045). - [BREAKING] Migrate to the element-addressable memory (#1084).
- Implemented serialization for
AccountHeader(#996). - Updated Pingora crates to 0.4 and added polling time to the configuration file (#997).
- Added support for
miden-tx-proverproxy to update workers on a running proxy (#989). - Refactored
miden-tx-proverproxy load balancing strategy (#976). - [BREAKING] Implemented better error display when queues are full in the prover service (#967).
- [BREAKING] Removed
AccountBuilder::build_testingand makeAccount::initialize_from_componentsprivate (#969). - [BREAKING] Added error messages to errors and implement
core::error::Error(#974). - Implemented new
digest!macro (#984). - Added Format Guidebook to the
miden-libcrate (#987). - Added conversion from
AccounttoAccountDeltafor initial account state representation as delta (#983). - [BREAKING] Added
miden::note::get_script_hashprocedure (#995). - [BREAKING] Refactor error messages in
miden-libandmiden-txand usethiserror2.0 (#1005, #1090). - Added health check endpoints to the prover service (#1006).
- Removed workers list from the proxy configuration file (#1018).
- Added tracing to the
miden-tx-proverCLI (#1014). - Added metrics to the
miden-tx-proverproxy (#1017). - Implemented
to_hexforAccountIdPrefixandepoch_block_numforBlockHeader(#1039). - [BREAKING] Updated the names and values of the kernel procedure offsets and corresponding kernel procedures (#1037).
- Introduce
AccountIdErrorand make account ID byte representations (u128,[u8; 15]) consistent (#1055). - Refactor
AccountIdandAccountIdPrefixinto version wrappers (#1058). - Remove multi-threaded account seed generation due to single-threaded generation being faster (#1061).
- Made
AccountIdErrorpublic (#1067). - Made
BasicFungibleFaucet::MAX_DECIMALSpublic (#1063). - [BREAKING] Removed
miden-tx-provercrate and createdmiden-proving-serviceandmiden-proving-service-client(#1047). - Removed deduplicate
masmprocedures across kernel and miden lib to a sharedutilmodule (#1070). - [BREAKING] Added
BlockNumberstruct (#1043, #1080, #1082). - [BREAKING] Removed
GENESIS_BLOCKpublic constant (#1088). - Add CI check for unused dependencies (#1075).
- Added storage placeholder types and support for templated map (#1074).
- [BREAKING] Move crates into
crates/and rename plural modules to singular (#1091).
- Avoid writing to the filesystem during docs.rs build (#970).
- [BREAKING] Added CLI for the transaction prover services both the workers and the proxy (#955).
- Fixed
AccountId::new_with_type_and_mode()(#958). - Updated the ABI for the assembly procedures (#971).
- Created a proving service that receives
TransactionWitnessand returns the proof using gRPC (#881). - Implemented ability to invoke procedures against the foreign account (#882, #890, #896).
- Implemented kernel procedure to set transaction expiration block delta (#897).
- [BREAKING] Introduce a new way to build
Accounts fromAccountComponents (#941). - [BREAKING] Introduce an
AccountBuilder(#952).
- [BREAKING] Changed
TransactionExecutorandTransactionHostto use trait objects (#897). - Made note scripts public (#880).
- Implemented serialization for
TransactionWitness,ChainMmr,TransactionInputsandTransactionArgs(#888). - [BREAKING] Renamed the
TransactionProverstruct toLocalTransactionProverand added theTransactionProvertrait (#865). - Implemented
Display,TryFrom<&str>andFromStrforAccountStorageMode(#861). - Implemented offset based storage access (#843).
- [BREAKING]
AccountStorageTypeenum was renamed toAccountStorageModealong with its variants (#854). - [BREAKING]
AccountStubstructure was renamed toAccountHeader(#855). - [BREAKING] Kernel procedures now have to be invoked using
dynexecinstruction (#803). - Refactored
AccountStoragefromSmtto sequential hash (#846). - [BREAKING] Refactored batch/block note trees (#834).
- Set all procedures storage offsets of faucet accounts to
1(#875). - Added
AccountStorageHeader(#876). - Implemented generation of transaction kernel procedure hashes in build.rs (#887).
- [BREAKING]
send_assetprocedure was removed from the basic wallet (#829). - [BREAKING] Updated limits, introduced additional limits (#889).
- Introduced
AccountDeltamaximum size limit of 32 KiB (#889). - [BREAKING] Moved
MAX_NUM_FOREIGN_ACCOUNTSintomiden-objects(#904). - Implemented
storage_size, updated storage bounds (#886). - [BREAKING] Auto-generate
KERNEL_ERRORSlist from the transaction kernel's MASM files and rework error constant names (#906). - Implement
SerializableforFungibleAsset(#907). - [BREAKING] Changed
TransactionProvertrait to bemaybe_async_traitbased on theasyncfeature (#913). - [BREAKING] Changed type of
EMPTY_STORAGE_MAP_ROOTconstant toRpoDigst, which references constant frommiden-crypto(#916). - Added
RemoteTransactionProverstruct tomiden-tx-prover(#921). - [BREAKING] Migrated to v0.11 version of Miden VM (#929).
- Added
total_cyclesandtrace_lengthto theTransactionMeasurements(#953). - Added ability to load libraries into
TransactionExecutorandLocalTransactionProver(#954).
- Implemented
PrettyPrintandDisplayforNoteScript.
- [BREAKING] Increase of nonce does not require changes in account state any more (#796).
- Changed
AccountCodeprocedures from merkle tree to sequential hash + added storage_offset support (#763). - Implemented merging of account deltas (#797).
- Implemented
create_noteandmove_asset_into_notebasic wallet procedures (#808). - Made
miden_lib::notes::build_swap_tag()function public (#817). - [BREAKING] Changed the
NoteFile::NoteDetailstype to struct and added aafter_block_numfield (#823).
- Renamed "consumed" and "created" notes into "input" and "output" respectively (#791).
- [BREAKING] Renamed
NoteType::OffChainintoNoteType::Private. - [BREAKING] Renamed public accessors of the
Blockstruct to match the updated fields (#791). - [BREAKING] Changed the
TransactionArgsto useAdviceInputs(#793). - Setters in
memorymodule don't drop the settingWordanymore (#795). - Added
CHANGELOG.mdwarning message on CI (#799). - Added high-level methods for
MockChainand related structures (#807). - [BREAKING] Renamed
NoteExecutionHinttoNoteExecutionModeand added newNoteExecutionHinttoNoteMetadata(#812, #816). - [BREAKING] Changed the interface of the
miden::tx::add_asset_to_note(#808). - [BREAKING] Refactored and simplified
NoteOriginandNoteInclusionProofstructs (#810, #814). - [BREAKING] Refactored account storage and vault deltas (#822).
- Added serialization and equality comparison for
TransactionScript(#824). - [BREAKING] Migrated to Miden VM v0.10 (#826).
- Added conversions for
NoteExecutionHint(#827). - [BREAKING] Removed
serde-based serialization frommiden-objectstructs (#838).
- [BREAKING] Introduce
OutputNote::Partialvariant (#698). - [BREAKING] Added support for input notes with delayed verification of inclusion proofs (#724, #732, #759, #770, #772).
- Added new
NoteFileobject to represent serialized notes (#721). - Added transaction IDs to the
Blockstruct (#734). - Added ability for users to set the aux field when creating a note (#752).
- Replaced
cargo-makewith justmakefor running tasks (#696). - [BREAKING] Split
Accountstruct constructor intonew()andfrom_parts()(#699). - Generalized
build_recipient_hashprocedure to build recipient hash for custom notes (#706). - [BREAKING] Changed the encoding of inputs notes in the advice map for consumed notes (#707).
- Created additional
emitevents for kernel related.masmprocedures (#708). - Implemented
build_recipient_hashprocedure to build recipient hash for custom notes (#710). - Removed the
mockcrate in favor of having mock code behind thetestingflag in remaining crates (#711). - [BREAKING] Created
authmodule forTransactionAuthenticatorand other related objects (#714). - Added validation for the output stack to make sure it was properly cleaned (#717).
- Made
DataStoreconditionally async usingwinter-maybe-async(#725). - Changed note pointer from Memory
note_ptrtonote_index(#728). - [BREAKING] Changed rng to mutable reference in note creation functions (#733).
- [BREAKING] Replaced
ToNullifiertrait withToInputNoteCommitments, which includes thenote_idfor delayed note authentication (#732). - Added
Option<NoteTag>toNoteFile(#741). - Fixed documentation and added
make docCI job (#746). - Updated and improved .pre-commit-config.yaml file (#748).
- Created
get_serial_numberprocedure to get the serial num of the currently processed note (#760). - [BREAKING] Added support for conversion from
NullifiertoInputNoteCommitment, commitment header return reference (#774). - Added
compute_inputs_hashprocedure for hash computation of the arbitrary number of note inputs (#750).
- Replaced
cargo-makewith justmakefor running tasks (#696). - Made
DataStoreconditionally async usingwinter-maybe-async(#725) - Fixed
StorageMaps implementation and included into apply_delta (#745)
- Introduce the
miden-bench-txcrate used for transactions benchmarking (#577). - [BREAKING] Removed the transaction script root output from the transaction kernel (#608).
- [BREAKING] Refactored account update details, moved
Blocktomiden-objects(#618, #621). - [BREAKING] Made
TransactionExecutorgeneric overTransactionAuthenticator(#628). - [BREAKING] Changed type of
versionandtimestampfields tou32, movedversionto the beginning of block header (#639). - [BREAKING] Renamed
NoteEnvelopeintoNoteHeaderand introducedNoteDetails(#664). - [BREAKING] Updated
create_swap_note()procedure to returnNoteDetailsand defined SWAP note tag format (#665). - Implemented
OutputNoteBuilder(#669). - [BREAKING] Added support for full details of private notes, renamed
OutputNotevariants and changed their meaning (#673). - [BREAKING] Added
add_asset_to_noteprocedure to the transaction kernel (#674). - Made
TransactionArgs::add_expected_output_note()more flexible (#681). - [BREAKING] Enabled support for notes without assets and refactored
create_noteprocedure in the transaction kernel (#686).
- Fixed handling of debug mode in
TransactionExecutor(#627)
- Added
with_debug_mode()methods toTransactionCompilerandTransactionExecutor(#562).
- [BREAKING] Return a reference to
NoteMetadatafrom output notes (#593). - Add more type conversions for
NoteType(#597). - Fix note input padding for expected output notes (#598).
- [BREAKING] Implement support for public accounts (#481, #485, #538).
- [BREAKING] Implement support for public notes (#515, #540, #572).
- Improved
ProvenTransactionvalidation (#532). - [BREAKING] Updated
no-stdsetup (#533). - Improved
ProvenTransactionserialization (#543). - Implemented note tree wrapper structs (#560).
- [BREAKING] Migrated to v0.9 version of Miden VM (#567).
- [BREAKING] Added account storage type parameter to
create_basic_walletandcreate_basic_fungible_faucet(miden-lib crate only) (#587). - Removed serialization of source locations from account code (#590).
- Added
BlockHeader::mock()method (#511)
- Initial release.