Skip to content
Merged
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
e6a3656
feat: add miden-objects crate with canonical Protobuf encodings
kkovaacs Aug 19, 2026
bcc857e
refactor(proto): reshuffle protobuf files
kkovaacs Aug 20, 2026
6eb02c1
fix: add ExecutionProof wrapper
kkovaacs Aug 22, 2026
89597d2
fix: add MastForest wrapper
kkovaacs Aug 22, 2026
f93a28b
fix: cargo shear
kkovaacs Aug 22, 2026
334db64
fix: extract generic PublicKey
kkovaacs Aug 22, 2026
9a76aac
fix: extract generic Signature
kkovaacs Aug 22, 2026
0f30528
fix: remove redundant checks from conversion code
kkovaacs Aug 24, 2026
bbfde6a
fix: fix conversion compile errors after rebase
kkovaacs Aug 24, 2026
e90344c
chore: update CHANGELOG
kkovaacs Aug 19, 2026
7cb15d6
fix: fix compile errors after rebase
kkovaacs Aug 24, 2026
ba87bf7
chore: allow duplicate protobuf build dependencies
kkovaacs Aug 24, 2026
a7a01c0
chore: remove schema tests
kkovaacs Aug 24, 2026
60c3515
fix(objects): adapt conversions to validated constructors
kkovaacs Aug 26, 2026
0a6aec4
refactor(objects): consolidate protobuf primitive types
kkovaacs Aug 26, 2026
2273495
test(objects): cover missing protobuf block numbers
kkovaacs Aug 26, 2026
b88be87
refactor(objects): align protobuf messages with domain types
kkovaacs Aug 26, 2026
f2eaab3
test(objects): cover block body conversion validation
kkovaacs Aug 26, 2026
907ca99
fix(objects): make account conversions lossless
kkovaacs Aug 26, 2026
9cba279
test(objects): cover invalid account nonce conversion
kkovaacs Aug 26, 2026
6a28c5e
perf(account): expose ordered storage patch iteration
kkovaacs Aug 26, 2026
78b08d1
test(account): make storage patch order expectation explicit
kkovaacs Aug 26, 2026
afd5ec5
fix(objects): address protobuf conversion clippy warnings
kkovaacs Aug 26, 2026
e366c4d
refactor(objects): align account witness protobuf with domain type
kkovaacs Aug 26, 2026
5abbf2c
test(objects): decouple account witness error assertion
kkovaacs Aug 26, 2026
a8e9704
test(objects): remove redundant account witness fixture update
kkovaacs Aug 26, 2026
c92d851
fix(objects): adapt block protobuf after rebase
kkovaacs Aug 28, 2026
120ad35
feat(objects): version account header protobuf
kkovaacs Aug 28, 2026
d67c199
feat(objects): version note metadata protobuf
kkovaacs Aug 28, 2026
ead7d63
feat(objects): version block header protobuf
kkovaacs Aug 28, 2026
2e7e098
feat(objects): add PartialSmt protobuf conversions
kkovaacs Aug 31, 2026
7ee8742
refactor(objects): clarify storage slot type conversion
kkovaacs Sep 1, 2026
5f87eb1
refactor(objects): simplify protobuf decoding
kkovaacs Sep 1, 2026
8ad64ae
fix(objects): complete protobuf type elision
kkovaacs Sep 1, 2026
bb4a486
test(objects): clarify invalid partial smt cases
kkovaacs Sep 1, 2026
a599605
refactor: clarify feature check package list
kkovaacs Sep 1, 2026
ed5210d
fix(objects): preserve note attachments error context
kkovaacs Sep 1, 2026
a95c230
refactor(objects): clarify protobuf primitive variants
kkovaacs Sep 2, 2026
5e5c6ec
refactor(objects): structure protobuf asset identifiers
kkovaacs Sep 2, 2026
3e09192
refactor(objects): align protobuf note transactions
kkovaacs Sep 2, 2026
0dea066
fix(objects): remove redundant asset test clones
kkovaacs Sep 2, 2026
3bd0a01
fix(objects): remove legacy protobuf asset schema
kkovaacs Sep 2, 2026
12a6830
refactor(objects): add protobuf account versions
kkovaacs Sep 2, 2026
930d2cb
refactor(objects): flatten protobuf block version
kkovaacs Sep 2, 2026
9081c81
refactor(objects): flatten protobuf note version
kkovaacs Sep 2, 2026
6af016f
refactor(objects): add protobuf asset version
kkovaacs Sep 2, 2026
1b16fd7
Merge remote-tracking branch 'origin/next' into krisztian/protobuf
kkovaacs Sep 2, 2026
354d3ca
fix(objects): adapt partial SMT protobuf to miden-crypto 0.30
kkovaacs Sep 3, 2026
cf1be6e
fix(objects): update execution proof test fixtures
kkovaacs Sep 3, 2026
78cb363
fix(objects): update partial SMT error assertions
kkovaacs Sep 3, 2026
d3ecd67
style(objects): format partial SMT imports
kkovaacs Sep 3, 2026
e679e29
fix(objects): preserve partial SMT depth boundaries
kkovaacs Sep 3, 2026
2e33f42
Merge remote-tracking branch 'origin/next' into krisztian/protobuf
kkovaacs Sep 3, 2026
f4c965d
Merge remote-tracking branch 'origin/next' into krisztian/protobuf
kkovaacs Sep 3, 2026
78985ea
fix(objects): keep note type enum consistent with upstream type
kkovaacs Sep 3, 2026
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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
- [BREAKING] AggLayer bridge and faucet accounts now map note repricing to an initial `FEE_MNGR` role instead of the built-in `ADMIN` role ([#3571](https://github.com/0xMiden/protocol/issues/3571)).
- [BREAKING] AggLayer bridge accounts now map emergency pause to an initial `PAUSER` role, while unpause remains restricted to `ADMIN` ([#3572](https://github.com/0xMiden/protocol/issues/3572)).
- Added the block kernel skeleton, establishing its public input/output contract and the `BlockExecutor` that runs it ([#3703](https://github.com/0xMiden/protocol/pull/3703)).
- Added the `miden-objects` crate with canonical, `no_std`-compatible Protobuf representations and validated conversions for protocol objects exchanged between clients and nodes ([#3707](https://github.com/0xMiden/protocol/pull/3707)).

### Changes

Expand Down
238 changes: 237 additions & 1 deletion Cargo.lock

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

4 changes: 4 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ members = [
"bin/bench-transaction",
"crates/miden-agglayer",
"crates/miden-block-prover",
"crates/miden-objects",
"crates/miden-protocol",
"crates/miden-protocol-build-utils",
"crates/miden-standards",
Expand Down Expand Up @@ -69,6 +70,9 @@ bon = { default-features = false, version = "3" }
criterion = { default-features = false, version = "0.5" }
fs-err = { default-features = false, version = "3" }
primitive-types = { default-features = false, version = "0.14" }
prost = { default-features = false, version = "0.14" }
prost-build = { default-features = false, version = "0.14" }
protox = { default-features = false, version = "0.9" }
rand = { default-features = false, version = "0.10" }
rand_chacha = { default-features = false, version = "0.10" }
regex = { version = "1.11" }
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ We expect to keep making changes (including breaking changes) to all components.
| [miden-agglayer](crates/miden-agglayer) | AggLayer components for the Miden protocol. |
| [miden-block-prover](crates/miden-block-prover) | Block execution and proving tools. |
| [miden-protocol](crates/miden-protocol) | Core protocol components, including the protocol kernels. |
| [miden-objects](crates/miden-objects) | Canonical Protobuf representations for protocol objects exchanged by clients and nodes. |
| [miden-protocol-build-utils](crates/miden-protocol-build-utils) | Build-time MASM helpers. |
| [miden-standards](crates/miden-standards) | Standardized smart contracts. |
| [miden-testing](crates/miden-testing) | Testing tools for Miden transactions, batches, and blocks. |
Expand Down
29 changes: 29 additions & 0 deletions crates/miden-objects/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
[package]
authors.workspace = true
categories = ["encoding", "no-std"]
description = "Canonical Protobuf representations for Miden protocol objects"
edition.workspace = true
homepage.workspace = true
keywords = ["miden", "protobuf", "protocol", "serialization"]
license.workspace = true
name = "miden-objects"
readme = "README.md"
repository.workspace = true
rust-version.workspace = true
version.workspace = true

[features]
default = ["std"]
std = ["miden-protocol/std", "prost/std"]

[dependencies]
miden-protocol = { workspace = true }
prost = { features = ["derive"], workspace = true }

[build-dependencies]
prost = { features = ["derive"], workspace = true }
prost-build = { workspace = true }
protox = { workspace = true }

[dev-dependencies]
miden-protocol = { features = ["testing"], workspace = true }
18 changes: 18 additions & 0 deletions crates/miden-objects/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Miden Objects

Canonical Protobuf representations for values exchanged between Miden clients and nodes.

This crate owns the transport representation and conversions for protocol objects. It does not
define protocol commitments, replace the protocol's native serialization, or define RPC services.
Generated messages are exposed under `miden_objects::proto`.

The crate supports `no_std` consumers when default features are disabled.

RPC crates can use `FILE_DESCRIPTOR_SET` as the import descriptor and apply every entry in
`EXTERN_PATHS` with `prost_build::Config::extern_path`. This makes imported object messages resolve
to the canonical generated types from this crate instead of generating duplicate Rust types in the
RPC crate.

## License

This project is [MIT licensed](../../LICENSE).
Loading
Loading