Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,24 @@

## 0.13.0 (TBD)

## 0.12.2 (unreleased)
### Features

### Changes

- [BREAKING] Renamed `TransactionEvent` into `TransactionEventId` and split event handling into data extraction and handling logic ([#2071](https://github.com/0xMiden/miden-base/pull/2071)).

## 0.12.3 (2025-11-15)

- Added `ecdsa_k256_keccak::PublicKey` as a valid template type ([#2097](https://github.com/0xMiden/miden-base/pull/2097)).
- [BREAKING] Fix advice inputs in transaction inputs not being propagated through ([#2099](https://github.com/0xMiden/miden-base/pull/2099)).

## 0.12.2 (2025-11-12)

- Added `create_mint_note` and `create_burn_note` helper functions for creating standardized MINT and BURN notes ([#2061](https://github.com/0xMiden/miden-base/pull/2061)).
- [BREAKING] Fix ECDSA signature preparation in `Signature::to_prepared_signature()` method ([#2074](https://github.com/0xMiden/miden-base/pull/2074)).
- Skip value slot normalization for new account's deltas ([#2075](https://github.com/0xMiden/miden-base/pull/2075)).
- Skip value and map slot normalization for new account's deltas ([#2075](https://github.com/0xMiden/miden-base/pull/2075), [#2077](https://github.com/0xMiden/miden-base/pull/2077)).
- Added `AuthEcdsaK256Keccak` and `AuthEcdsaK256KeccakMultisig` auth components ([#2083](https://github.com/0xMiden/miden-base/pull/2083)).

## 0.12.1 (2025-11-06)

Expand Down
116 changes: 21 additions & 95 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@ miden-air = { default-features = false, version = "0.19" }
miden-assembly = { default-features = false, version = "0.19" }
miden-assembly-syntax = { default-features = false, version = "0.19" }
miden-core = { default-features = false, version = "0.19" }
miden-crypto = { default-features = false, version = "0.18" }
miden-crypto = { default-features = false, version = "0.18.2" }
miden-mast-package = { default-features = false, version = "0.19" }
miden-processor = { default-features = false, version = "0.19" }
miden-prover = { default-features = false, version = "0.19" }
miden-stdlib = { default-features = false, version = "0.19" }
miden-stdlib = { default-features = false, version = "0.19.1" }
miden-utils-sync = { default-features = false, version = "0.19" }
miden-verifier = { default-features = false, version = "0.19" }

Expand Down
42 changes: 42 additions & 0 deletions crates/miden-lib/asm/account_components/ecdsa_k256_keccak.masm
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# The MASM code of the ECDSA K256 Keccak authentication Account Component.
#
# See the `AuthEcdsaK256Keccak` Rust type's documentation for more details.

use miden::auth::ecdsa_k256_keccak
use miden::active_account

type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }

# CONSTANTS
# =================================================================================================

# The slot in this component's storage layout where the public key is stored.
const PUBLIC_KEY_SLOT = 0

#! Authenticate a transaction using the ECDSA signature scheme.
#!
#! It first increments the nonce of the account, independent of whether the account's state has
#! changed or not. Then it computes and signs the following message (in memory order):
#! [ACCOUNT_DELTA_COMMITMENT, INPUT_NOTES_COMMITMENT,
#! OUTPUT_NOTES_COMMITMENT, [0, 0, ref_block_num, final_nonce]]
#!
#! Including the final_nonce is necessary for replay protection. The reference block number is
#! included to commit to the transaction creator's intended reference block of the transaction
#! which determines the fee parameters and therefore the fee amount that is deducted.
#!
#! Inputs: [AUTH_ARGS, pad(12)]
#! Outputs: [pad(16)]
#!
#! Invocation: call
pub proc auth_tx_ecdsa_k256_keccak(auth_args: BeWord)
dropw
# => [pad(16)]

# Fetch public key from storage.
# ---------------------------------------------------------------------------------------------
push.PUBLIC_KEY_SLOT exec.active_account::get_item
# => [PUB_KEY, pad(16)]

exec.ecdsa_k256_keccak::authenticate_transaction
# => [pad(16)]
end
Loading
Loading