Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
b6fdcd9
Stringly version
Mirko-von-Leipzig Sep 2, 2026
da9f99c
DSL for reading good
Mirko-von-Leipzig Sep 2, 2026
a0b4a3f
lints
Mirko-von-Leipzig Sep 2, 2026
e824f0f
refactor(objects): derive StorageSlotId protobuf decode
Mirko-von-Leipzig Sep 3, 2026
bb24931
refactor(objects): derive MerklePath protobuf decode
Mirko-von-Leipzig Sep 3, 2026
0514c51
refactor(objects): derive SparseMerklePath protobuf decode
Mirko-von-Leipzig Sep 3, 2026
5b6e461
refactor(objects): derive SmtOpening protobuf decode
Mirko-von-Leipzig Sep 3, 2026
3f5d018
refactor(objects): derive AccountWitness protobuf decode
Mirko-von-Leipzig Sep 3, 2026
a09bf93
refactor(objects): derive PartialAccount protobuf decode
Mirko-von-Leipzig Sep 3, 2026
54b9d79
refactor(objects): derive AdviceInputs protobuf decode
Mirko-von-Leipzig Sep 3, 2026
2a977f2
refactor(objects): derive NoteRecipient protobuf decode
Mirko-von-Leipzig Sep 3, 2026
aed3b88
refactor(objects): derive NoteDetails protobuf decode
Mirko-von-Leipzig Sep 3, 2026
dbb421d
refactor(objects): derive BlockAccountUpdate protobuf decode
Mirko-von-Leipzig Sep 3, 2026
ee78eef
refactor(objects): derive NextProtocolConfig protobuf decode
Mirko-von-Leipzig Sep 3, 2026
fe0fa2c
refactor(objects): derive ValidatorConfig protobuf decode
Mirko-von-Leipzig Sep 3, 2026
ac04502
refactor(objects): derive BatchAccountUpdate protobuf decode
Mirko-von-Leipzig Sep 3, 2026
5118f8d
refactor(objects): derive TxAccountUpdate protobuf decode
Mirko-von-Leipzig Sep 3, 2026
22eb6c1
refactor(objects): derive PublicOutputNote protobuf decode
Mirko-von-Leipzig Sep 3, 2026
c913def
refactor(objects): derive PrivateOutputNote protobuf decode
Mirko-von-Leipzig Sep 3, 2026
7f8a001
refactor(objects): derive TransactionId protobuf decode
Mirko-von-Leipzig Sep 3, 2026
d8b8e89
refactor(objects): derive NoteStorage protobuf decode
Mirko-von-Leipzig Sep 3, 2026
2daeaab
refactor(objects): derive NoteAttachment protobuf decode
Mirko-von-Leipzig Sep 3, 2026
c974d32
refactor(objects): derive NoteAttachments protobuf decode
Mirko-von-Leipzig Sep 3, 2026
0ca17c8
refactor(objects): derive NoteHeader protobuf decode
Mirko-von-Leipzig Sep 3, 2026
4a5889f
refactor(objects): derive MmrDelta protobuf decode
Mirko-von-Leipzig Sep 3, 2026
dd1112d
fix(protobuf): restrict decode derive to messages
Mirko-von-Leipzig Sep 3, 2026
1861ca8
refactor(objects): derive AccountId protobuf decode
Mirko-von-Leipzig Sep 3, 2026
911e55e
fix(protobuf): target configured messages exactly
Mirko-von-Leipzig Sep 3, 2026
3d279a7
refactor(objects): derive AccountStorageHeader protobuf decode
Mirko-von-Leipzig Sep 3, 2026
2e64983
refactor(objects): derive PartialStorageMap protobuf decode
Mirko-von-Leipzig Sep 3, 2026
41458c0
refactor(objects): derive PartialStorage protobuf decode
Mirko-von-Leipzig Sep 3, 2026
03ecd68
refactor(objects): derive PartialVault protobuf decode
Mirko-von-Leipzig Sep 3, 2026
8190061
refactor(objects): derive AccountCode protobuf decode
Mirko-von-Leipzig Sep 3, 2026
c17ae1d
refactor(objects): derive AccountVaultPatch protobuf decode
Mirko-von-Leipzig Sep 3, 2026
f6c59fd
refactor(objects): derive AccountStoragePatch protobuf decode
Mirko-von-Leipzig Sep 3, 2026
1f9eaf8
refactor(objects): derive NoteScript protobuf decode
Mirko-von-Leipzig Sep 3, 2026
6a3e750
refactor(objects): derive BlockBody protobuf decode
Mirko-von-Leipzig Sep 3, 2026
a9d3d47
refactor(objects): derive SignedBlock protobuf decode
Mirko-von-Leipzig Sep 3, 2026
ccfecf4
refactor(objects): derive OutputNoteBatch protobuf decode
Mirko-von-Leipzig Sep 3, 2026
646edc1
refactor(objects): derive TransactionScript protobuf decode
Mirko-von-Leipzig Sep 3, 2026
058df9c
refactor(objects): derive InputNoteCommitment protobuf decode
Mirko-von-Leipzig Sep 3, 2026
00ca74c
refactor(objects): derive ProvenTransaction protobuf decode
Mirko-von-Leipzig Sep 3, 2026
83bf8ac
refactor(objects): derive TransactionHeader protobuf decode
Mirko-von-Leipzig Sep 3, 2026
83dac61
refactor(objects): derive TransactionArgs protobuf decode
Mirko-von-Leipzig Sep 3, 2026
4fc515c
refactor(objects): derive InputNotes protobuf decode
Mirko-von-Leipzig Sep 3, 2026
ce2f56a
refactor(objects): derive TransactionInputsV1 protobuf decode
Mirko-von-Leipzig Sep 3, 2026
80d633c
refactor(objects): derive AssetClass protobuf decode
Mirko-von-Leipzig Sep 3, 2026
5880da8
refactor(objects): derive Asset protobuf decode
Mirko-von-Leipzig Sep 3, 2026
a4de633
refactor(objects): derive AdviceStack protobuf decode
Mirko-von-Leipzig Sep 3, 2026
f3b6b73
refactor(objects): derive AdviceMap protobuf decode
Mirko-von-Leipzig Sep 3, 2026
b520ca9
refactor(objects): derive MerkleStore protobuf decode
Mirko-von-Leipzig Sep 3, 2026
74c5982
feat(protobuf): support tuple decode constructors
Mirko-von-Leipzig Sep 4, 2026
f24097a
feat(protobuf): support pre-decode field validators
Mirko-von-Leipzig Sep 4, 2026
4297165
refactor(objects): derive AccountHeader protobuf decode
Mirko-von-Leipzig Sep 4, 2026
86597ff
refactor(objects): derive AccountPatch protobuf decode
Mirko-von-Leipzig Sep 4, 2026
0a2ff23
fix(protobuf): include required fields in error paths
Mirko-von-Leipzig Sep 4, 2026
a32b4bd
refactor(objects): derive BlockHeader protobuf decode
Mirko-von-Leipzig Sep 4, 2026
996d04d
feat(protobuf): support isomorphic oneof mappings
Mirko-von-Leipzig Sep 4, 2026
d154cb8
refactor(objects): derive OutputNote protobuf decode
Mirko-von-Leipzig Sep 4, 2026
d2e9e77
refactor(objects): derive TransactionInputs protobuf decode
Mirko-von-Leipzig Sep 4, 2026
702dca4
refactor(objects): derive AccountUpdateDetails protobuf decode
Mirko-von-Leipzig Sep 4, 2026
7d9e96f
refactor(objects): derive InputNote protobuf decode
Mirko-von-Leipzig Sep 4, 2026
9e747dd
feat(protobuf): support fallible field decoders
Mirko-von-Leipzig Sep 4, 2026
123f4a9
refactor(objects): derive StorageSlotPatch protobuf decode
Mirko-von-Leipzig Sep 4, 2026
4a1fb1d
feat(protobuf): support fallible oneof variants
Mirko-von-Leipzig Sep 4, 2026
7703c99
refactor(objects): derive SmtLeaf protobuf decode
Mirko-von-Leipzig Sep 4, 2026
02c4b24
feat(protobuf): support enum field mappings
Mirko-von-Leipzig Sep 4, 2026
4161c83
refactor(objects): derive StorageSlotHeader protobuf decode
Mirko-von-Leipzig Sep 4, 2026
84af5aa
refactor(objects): derive AssetId protobuf decode
Mirko-von-Leipzig Sep 4, 2026
35e7dbf
feat(protobuf): support validation-only enum fields
Mirko-von-Leipzig Sep 4, 2026
9669485
refactor(objects): derive account version validation
Mirko-von-Leipzig Sep 4, 2026
60629f1
refactor(objects): derive account patch version validation
Mirko-von-Leipzig Sep 4, 2026
e3b570e
refactor(objects): derive asset version validation
Mirko-von-Leipzig Sep 4, 2026
7dfbb52
refactor(objects): derive block version validation
Mirko-von-Leipzig Sep 4, 2026
d045fd4
refactor(objects): derive public key protobuf decode
Mirko-von-Leipzig Sep 4, 2026
40ddcc7
refactor(objects): derive signature protobuf decode
Mirko-von-Leipzig Sep 4, 2026
6fd7a64
refactor(objects): derive note metadata protobuf decode
Mirko-von-Leipzig Sep 4, 2026
6d14302
feat(protobuf): support constant unit oneof variants
Mirko-von-Leipzig Sep 4, 2026
0228082
refactor(objects): model storage value patch as oneof
Mirko-von-Leipzig Sep 4, 2026
32402c8
refactor(objects): model storage map patch as oneof
Mirko-von-Leipzig Sep 4, 2026
e6d525e
refactor(objects): derive note ID and proof decodes
Mirko-von-Leipzig Sep 4, 2026
a336705
style: apply repository formatting
Mirko-von-Leipzig Sep 4, 2026
d9ce017
refactor(objects): derive transaction input helpers
Mirko-von-Leipzig Sep 4, 2026
f41c63b
refactor(objects): model partial note metadata explicitly
Mirko-von-Leipzig Sep 4, 2026
fb1bbbd
feat(protobuf): support struct literal constructors
Mirko-von-Leipzig Sep 4, 2026
a4e1751
refactor(objects): derive Merkle store node decode
Mirko-von-Leipzig Sep 4, 2026
0d7c032
refactor(objects): derive partial SMT node decodes
Mirko-von-Leipzig Sep 4, 2026
9c85778
refactor(objects): derive partial blockchain decode
Mirko-von-Leipzig Sep 4, 2026
84a80d1
refactor(objects): derive partial SMT decode
Mirko-von-Leipzig Sep 4, 2026
8967b99
refactor(objects): derive Felt protobuf decode
Mirko-von-Leipzig Sep 4, 2026
8abbc45
refactor(objects): derive Word protobuf decode
Mirko-von-Leipzig Sep 4, 2026
fc8a249
refactor(objects): derive execution proof decode
Mirko-von-Leipzig Sep 4, 2026
fc1e8ac
refactor(objects): derive MAST forest decode
Mirko-von-Leipzig Sep 4, 2026
9047789
refactor(objects): derive proven batch decode
Mirko-von-Leipzig Sep 4, 2026
651e6e3
refactor(objects): decode unverified proposed batches
Mirko-von-Leipzig Sep 4, 2026
bc84b95
refactor(objects): decode unverified signed blocks
Mirko-von-Leipzig Sep 4, 2026
9e2072b
refactor(objects): decode unverified partial blockchains
Mirko-von-Leipzig Sep 4, 2026
b4f4b57
refactor(objects): decode unverified transaction inputs
Mirko-von-Leipzig Sep 4, 2026
c7153b4
refactor(objects): use empty private account update marker
Mirko-von-Leipzig Sep 4, 2026
07d83d0
refactor(objects): derive fee parameters protobuf decode
Mirko-von-Leipzig Sep 4, 2026
e01f6dc
refactor(objects): derive block number protobuf decode
Mirko-von-Leipzig Sep 4, 2026
5949450
fix(protocol): disambiguate transaction input constructors
Mirko-von-Leipzig Sep 4, 2026
d3cd51e
refactor(objects): consume protobuf messages when decoding
Mirko-von-Leipzig Sep 4, 2026
6d386b8
refactor(objects): construct block headers directly
Mirko-von-Leipzig Sep 4, 2026
34a8af3
feat(protobuf): derive borrowed encoders
Mirko-von-Leipzig Sep 4, 2026
9f3e440
revert(protobuf): remove encoder derive
Mirko-von-Leipzig Sep 4, 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
22 changes: 22 additions & 0 deletions Cargo.lock

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

48 changes: 29 additions & 19 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ members = [
"crates/miden-agglayer",
"crates/miden-block-prover",
"crates/miden-objects",
"crates/miden-protobuf",
"crates/miden-protobuf-derive",
"crates/miden-protocol",
"crates/miden-protocol-build-utils",
"crates/miden-standards",
Expand Down Expand Up @@ -40,6 +42,8 @@ lto = true
# Workspace crates
miden-agglayer = { default-features = false, path = "crates/miden-agglayer", version = "0.17" }
miden-block-prover = { default-features = false, path = "crates/miden-block-prover", version = "0.17" }
miden-protobuf = { default-features = false, path = "crates/miden-protobuf", version = "0.17" }
miden-protobuf-derive = { path = "crates/miden-protobuf-derive", version = "0.17" }
miden-protocol = { default-features = false, path = "crates/miden-protocol", version = "0.17" }
miden-protocol-build-utils = { default-features = false, path = "crates/miden-protocol-build-utils", version = "0.17" }
miden-standards = { default-features = false, path = "crates/miden-standards", version = "0.17" }
Expand All @@ -64,22 +68,28 @@ miden-utils-sync = { default-features = false, version = "0.30.0" }
miden-verifier = { default-features = false, version = "0.30.0" }

# External dependencies
alloy-sol-types = { default-features = false, version = "1.5" }
anyhow = { default-features = false, features = ["backtrace", "std"], version = "1.0" }
assert_matches = { default-features = false, version = "1.5" }
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" }
rstest = { version = "0.26" }
serde = { default-features = false, version = "1.0" }
serde_json = { default-features = false, version = "1.0" }
thiserror = { default-features = false, version = "2.0" }
tokio = { default-features = false, features = ["sync"], version = "1" }
walkdir = { version = "2.5" }
alloy-sol-types = { default-features = false, version = "1.5" }
anyhow = { default-features = false, features = ["backtrace", "std"], version = "1.0" }
assert_matches = { default-features = false, version = "1.5" }
bon = { default-features = false, version = "3" }
criterion = { default-features = false, version = "0.5" }
fs-err = { default-features = false, version = "3" }
heck = { version = "0.5" }
primitive-types = { default-features = false, version = "0.14" }
proc-macro-crate = { version = "3" }
proc-macro2 = { version = "1" }
prost = { default-features = false, version = "0.14" }
prost-build = { default-features = false, version = "0.14" }
prost-types = { default-features = false, version = "0.14" }
protox = { default-features = false, version = "0.9" }
quote = { version = "1" }
rand = { default-features = false, version = "0.10" }
rand_chacha = { default-features = false, version = "0.10" }
regex = { version = "1.11" }
rstest = { version = "0.26" }
serde = { default-features = false, version = "1.0" }
serde_json = { default-features = false, version = "1.0" }
syn = { features = ["full"], version = "2" }
thiserror = { default-features = false, version = "2.0" }
tokio = { default-features = false, features = ["sync"], version = "1" }
walkdir = { version = "2.5" }
10 changes: 6 additions & 4 deletions crates/miden-objects/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,18 @@ version.workspace = true

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

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

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

[dev-dependencies]
assert_matches = { workspace = true }
Expand Down
Loading