Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
a05e38a
feat(agglayer): store and use metadata hash for bridge-out leaves
claude Mar 11, 2026
c416907
refactor: address self-review feedback on metadata hash
claude Mar 11, 2026
d6d9127
chore: allow CC0-1.0 license in cargo-deny for tiny-keccak
claude Mar 11, 2026
5c717fd
chore: add changelog entry for metadata hash feature
claude Mar 11, 2026
5a2bbd8
refactor: replace tiny-keccak with miden-crypto and alloy-sol-types f…
claude Mar 12, 2026
da64d05
refactor: replace truncate_stack with explicit drops in get_metadata_…
claude Mar 12, 2026
c57ca64
docs: simplify TODO comment and compute METADATA_HASH inline in Solid…
claude Mar 12, 2026
57fd363
chore: consolidate tests
mmagician Mar 13, 2026
6eb0e62
chore: address Copilot review comments
claude Mar 14, 2026
0623afa
Update crates/miden-agglayer/asm/agglayer/faucet/mod.masm
mmagician Mar 14, 2026
5b902f0
fix: explicit pad before FPI call in metadata hash retrieval
claude Mar 14, 2026
6df58ee
fix: explicit pad and reorder FPI setup for metadata hash retrieval
claude Mar 14, 2026
696b0b2
chore: explicit padding comments; load proc-ref before faucet ID
mmagician Mar 15, 2026
a130feb
chore: rearrange mem writing sections
mmagician Mar 15, 2026
f55b3d9
merge: integrate agglayer branch (storage helpers refactor)
claude Mar 15, 2026
24dba22
chore: no need to store faucet ID to mem
mmagician Mar 15, 2026
de38d2f
Apply suggestion from @mmagician
mmagician Mar 15, 2026
7318011
Update deny.toml
mmagician Mar 15, 2026
2347d58
merge agglayer branch
mmagician Mar 17, 2026
8e7380d
refactor: encode token metadata in Solidity test vectors, read from J…
claude Mar 17, 2026
8e38a5e
Merge branch 'agglayer' into mmagician-claude/agglayer-metadata-hash
mmagician Mar 18, 2026
ac582b3
fix: add (4) annotations to word-sized stack comments in bridge_out
claude Mar 18, 2026
1f43497
Merge remote-tracking branch 'origin/agglayer' into mmagician-claude/…
claude Mar 18, 2026
3b7587d
Revert "fix: add (4) annotations to word-sized stack comments in brid…
claude Mar 18, 2026
09079f1
chore: clean up stack comments for storing leaf data
mmagician Mar 19, 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 @@ -25,6 +25,7 @@
- Resolve standard note scripts directly in `TransactionExecutorHost` instead of querying the data store ([#2417](https://github.com/0xMiden/miden-base/pull/2417)).
- Added `DEFAULT_TAG` constant to `miden::standards::note_tag` MASM module ([#2482](https://github.com/0xMiden/miden-base/pull/2482)).
- Added `NoteExecutionHint` variant constants (`NONE`, `ALWAYS`, `AFTER_BLOCK`, `ON_BLOCK_SLOT`) to `miden::standards::note::execution_hint` MASM module ([#2493](https://github.com/0xMiden/miden-base/pull/2493)).
- Added metadata hash storage to AggLayer faucet and FPI retrieval during bridge-out leaf construction ([#2583](https://github.com/0xMiden/protocol/pull/2583)).


### Changes
Expand Down
10 changes: 10 additions & 0 deletions Cargo.lock

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

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,5 @@ rand_chacha = { default-features = false, version = "0.9" }
rstest = { version = "0.26" }
serde = { default-features = false, version = "1.0" }
thiserror = { default-features = false, version = "2.0" }
tiny-keccak = { default-features = false, features = ["keccak"], version = "2.0" }
tokio = { default-features = false, features = ["sync"], version = "1" }
1 change: 1 addition & 0 deletions crates/miden-agglayer/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ miden-utils-sync = { workspace = true }
# Third-party dependencies
primitive-types = { workspace = true }
thiserror = { workspace = true }
tiny-keccak = { workspace = true }

[dev-dependencies]
miden-agglayer = { features = ["testing"], path = "." }
Expand Down
4 changes: 4 additions & 0 deletions crates/miden-agglayer/asm/agglayer/bridge/bridge_config.masm
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,10 @@ end
#!
#! Panics if the note sender is not the bridge admin.
#!
#! TODO: Once the token name is available in faucet storage and abi.encode(string, string, uint8)
#! is implemented in MASM, verify the faucet's metadata_hash against the stored name/symbol/decimals
#! during registration to ensure correctness.
#!
#! Inputs: [faucet_id_prefix, faucet_id_suffix, pad(14)]
#! Outputs: [pad(16)]
#!
Expand Down
28 changes: 24 additions & 4 deletions crates/miden-agglayer/asm/agglayer/bridge/bridge_out.masm
Original file line number Diff line number Diff line change
Expand Up @@ -144,12 +144,32 @@ pub proc bridge_out
exec.write_address_to_memory
# => []

# TODO construct metadata hash
padw padw
# => [METADATA_HASH[8]]
# Fetch metadata hash from the faucet via FPI.
# Reload asset to extract faucet ID for the FPI call.
loc_loadw_be.BRIDGE_OUT_BURN_ASSET_LOC
# => [ASSET]
# ASSET layout: [faucet_id_prefix, faucet_id_suffix, 0, amount]

# Extract faucet ID, drop padding and amount
movup.2 drop movup.2 drop
# => [faucet_id_prefix, faucet_id_suffix]

procref.agglayer_faucet::get_metadata_hash
# => [PROC_MAST_ROOT(4), faucet_id_prefix, faucet_id_suffix]

movup.5 movup.5
# => [faucet_id_prefix, faucet_id_suffix, PROC_MAST_ROOT(4)]

exec.tx::execute_foreign_procedure
# => [METADATA_HASH_LO(4), METADATA_HASH_HI(4), pad(8)]

# Drop 8 trailing padding elements
swapdw dropw dropw
# => [METADATA_HASH_LO(4), METADATA_HASH_HI(4)]

push.LEAF_DATA_START_PTR push.METADATA_HASH_OFFSET add
movdn.8
# => [METADATA_HASH[8], metadata_hash_ptr]
# => [METADATA_HASH_LO(4), METADATA_HASH_HI(4), metadata_hash_ptr]
exec.utils::mem_store_double_word_unaligned

# Explicitly zero the 3 padding felts after METADATA_HASH for
Expand Down
36 changes: 36 additions & 0 deletions crates/miden-agglayer/asm/agglayer/faucet/mod.masm
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ const CONVERSION_INFO_1_SLOT = word("miden::agglayer::faucet::conversion_info_1"
# Slot 2: [addr_felt4, origin_network, scale, 0] — remaining address felt + origin network + scale
const CONVERSION_INFO_2_SLOT = word("miden::agglayer::faucet::conversion_info_2")

# Storage slots for the pre-computed metadata hash (keccak256 of ABI-encoded token metadata).
# The 32-byte hash is split across two value slots, each holding 4 u32 felts.
const METADATA_HASH_LO_SLOT = word("miden::agglayer::faucet::metadata_hash_lo")
const METADATA_HASH_HI_SLOT = word("miden::agglayer::faucet::metadata_hash_hi")

# Memory pointers for piped advice map data
const PROOF_DATA_START_PTR = 0
const LEAF_DATA_START_PTR = 536
Expand Down Expand Up @@ -139,6 +144,37 @@ pub proc get_scale
# => [scale]
end

#! Returns the pre-computed metadata hash (8 u32 felts) from faucet storage.
#!
#! The metadata hash is `keccak256(abi.encode(name, symbol, decimals))` and is stored
#! across two value slots (lo and hi, 4 felts each).
#!
#! Inputs: [pad(16)]
#! Outputs: [METADATA_HASH_LO(4), METADATA_HASH_HI(4), pad(8)]
#!
#! Invocation: call
pub proc get_metadata_hash
push.METADATA_HASH_LO_SLOT[0..2]
exec.active_account::get_item
# => [lo3, lo2, lo1, lo0, pad(16)]

exec.word::reverse
# => [lo0, lo1, lo2, lo3, pad(16)]

push.METADATA_HASH_HI_SLOT[0..2]
exec.active_account::get_item
# => [hi3, hi2, hi1, hi0, lo0, lo1, lo2, lo3, pad(16)]

exec.word::reverse
# => [hi0, hi1, hi2, hi3, lo0, lo1, lo2, lo3, pad(16)]

# Rearrange: move hi below lo
swapw
# => [lo0, lo1, lo2, lo3, hi0, hi1, hi2, hi3, pad(16)]

exec.sys::truncate_stack
end

#! Converts a native Miden asset amount to origin asset data using the stored
#! conversion metadata (origin_token_address, origin_network, and scale).
#!
Expand Down
1 change: 1 addition & 0 deletions crates/miden-agglayer/asm/components/faucet.masm
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@

pub use ::miden::agglayer::faucet::claim
pub use ::miden::agglayer::faucet::asset_to_origin_asset
pub use ::miden::agglayer::faucet::get_metadata_hash
pub use ::miden::agglayer::faucet::burn
Original file line number Diff line number Diff line change
Expand Up @@ -136,72 +136,72 @@
1181416010
],
"leaves": [
"0xe460585d9b2385592b26a34d6908ea58165586cb39e5e6cb365b68246d29d7f8",
"0x5a7295b074b2ffeb07bd8bacbdd97aa97b0b269db43779112ef24b52548a9a2a",
"0xde239e1e8b54de83c9b0e3f32c269b265dd0efcda92c93a2146f44302e604080",
"0x98681050a4c0e39d25f1a44d95b343a05f7139cc882f628c569b3a1ae889f0e6",
"0xd3d70b40cc2a71e9a4996a2afaabcafe93af95ba9de147e3835ccddba2d82fdd",
"0xd46fec5943f6d40c9a68076fbc325daf7763607aaa60ca9be297cade5a1efca5",
"0x4c54e0aab6332cea9a9f867933caee83c6167aa78f663129d10e56cee35aacdd",
"0xf487aba0c467c53aa4fc9a7319817e1448efd774dedb235a1ab95a5dd2592d21",
"0xc734b7fd5abe87f4dff06da98980e19894117e92738e27e8dc0826eb4dee7202",
"0x8bcc65728c792dfaa58c6b63d192c2e37cd3db7c62774e7b40b9b3232597073a",
"0x6dbb052d9082cf78a0464cae809cd6c1be9d5657fc75a0fa1efade46f047aa01",
"0x11ea20a8fb14ed8b5ba47e83935f4dc1c032be3a3a9895a65fabed6e1adbef5c",
"0xd108801a4cfa732a19995a6f930ccdda98e91ce393f55eae7f63781568b44c74",
"0x423b7a7716ba307d27c05a6bbfde03b35c9544dffcf6702f69a205cff40a51da",
"0xed832ce8f80ed861bd13b1104490724dd38ab1c9ff18fd8e02ad13eb287af68f",
"0x6eca57794d8d55ec934427971898952017d87bd2773b64c554629f32f55fc7dc",
"0xc7abf795f5ebe46e9f86ba72d58f38ef535475cc41a11913fa1ec51cf902ee1a",
"0xbffebb2a3584cb6f96af4f8da6f5eea2e64066f0caa4bc6f44abb69b621a2b79",
"0x04de39dc7a9f11eba923271d07b5fda4f6b38012858a9a5a9d8f6557706981bd",
"0xef5e2f249fce6c67f5483b52e87384c6a6f6b5f8f102ecfede50cc9f8dfa78af",
"0x34e1511b36260dd619fcb205311055b87d31bb6440c9fb2a8b272bc1dcb1d699",
"0x0640b605ee9f8d8b38118c8dd1f51ca30f3b3f9037c29e598f39b91326825c46",
"0xfe7de1151f56cc10894b6bd63fc995a741c54d9069ee97247cb28627a4838da8",
"0xf17bb6827fe8873b839ecefe872776f757ca087dd65c2c2882523b71dcd24f05",
"0x7a11106b01c8d98348739c89007dddca673f18e9c38ef2d953315a1a49b23ce0",
"0xa7f0a37834fab9ce2cfbe364ccc4c50c88d48a061f0901889cc4fdc6b088a3ea",
"0xb386fae6a43e096a3d66147212a4fc756f7ed921febb2404f1d060111e4521e8",
"0x98484766860a98231a6834276f1ca84c8cf381e4931d635268b9b7d9db976958",
"0xd5007290e81283abd144a619da55be689e7b3eeb8a8b79f0de5e1f2793b056fe",
"0xac6812ede94056979e789ac4bd7dc5e4e682ea93aaaa1aadb22645ec44e21772",
"0xdc0662d88af437d468ed541ee9088464770bbd149a5ce5b3cdd9e836888c5b9d",
"0x6c8e78ff6214e87c5a791423385e31659921f3bb09376b302dd3933f98f346b4"
"0x583cc77fc2b7280dae7433767e49a7c6d9a33f0410e179814f3aa1dbed9e5383",
"0x39b63728fe06dbc9e883852005cce44a1e6515ed55e8b1dbf3b6758179716f11",
"0xc4971cb8c3f11aedc287a9855739bb007822038c054cb6808e03131c9f91a0f1",
"0x629eb6a1e17d6aea8011061da05909d2f7312467aa8f32738861fb940b157174",
"0xf405ea66eca447509b4ffc555fb9dbcae535b11e55a4331d02819e0ca9984575",
"0xfaa2e8faa0081b6534e90f6fe58e9c5232afe98bcc9f1695e544e02f3569463d",
"0xb89ca15ba6ca7c7a208e24d7353ad31282ef134662f659fac32f27df2ae3320f",
"0x79bdf5742cc5cc4ef8f888a231e367c50b4430a9459541facb343111c92e6bf8",
"0x0822a3dc7f0c51e70dd73014e18df2981c4bde688eec541581558c3de0ad6f65",
"0xbd91e0fa090c5a988b4af55366454b0e66f565f313127d4775bb44e446baa917",
"0xfd3fe60322ffefecdd2e5b9b1ccc99f335dcb63c48bdd4c0694978ff64554abb",
"0xb8f5374c52ea2b64d00f566b798a42fabe4405817327b361cd2e57b17949917a",
"0xd84e6a9f537e1e71ef75ee1b4c9aecaa4f192b65fd3b2c5a276aa82193196c00",
"0xaa746c560d044f6c4ddab4a0553cde8fe6aa95478fe198bcb4b0b9ad3c3b92af",
"0xf9bf642edac2a5f80a899ab3a91aefb6d9afbaf107fa34557c9dc66c6bed4611",
"0xf3b649080b6f226a027260cef334003468ddd40f70f8268b8019613f30f31429",
"0x2e8c2d56396ac75cf085c44ad3939b83f15b3ef886092faaf26373f9083fc49b",
"0x74c483d10393a141f7d1a6d583c324e7b8293f4d8bfa612cfff0a51a8dcd1ddc",
"0x16693082ba7d19cf38216153780011320b4d22133bb541006542f8b24c0bac29",
"0x7132c9fbb1f7ee387c6cdf1ef1554eaa4b791f0de1c2e858a640f3c0e867b1be",
"0x7b0f681fc08c9193034a590e818206c8972887710115677df57113e9b40823cb",
"0xf9513376461d437192b658deaa647a8625e7354f4d59a778114552feaa8b2e70",
"0x4439d51fd28dc9016bbab806805aa36a53fb9a4f02c379b47656d2b4c45c7b39",
"0x3a44b8129f9468dc743ffd55d2cc0390ed565ebaf8955e38a4e8d41714f874c3",
"0xacfc9d4916104a4d0965d1caa24cdf31fa2cf65474f1986175f49ced505d7470",
"0x34a969176d30df0525c1eb1b349d3a24b1a684f5a6f4cf60797d5d213b7007a0",
"0xe16eb94a82b246fa6534867df6ee6217c8b1c850d835d72548d8f85d1504330d",
"0x188e9c5333cc6d9cd5f8c21a71917e22044b1dc6cdc3241ac9187ccd25598884",
"0x2ca6faff026b921ce865e1161688e7debc733c2d699937ce858783ffbca666d8",
"0x0c2819f9ad1daa7dc7a42c0b8c682091dd77c9aa78bbde349b40efd152843b2c",
"0x53c565760b2e54abcf98f888b83a1178a20f47db78aa048738217c0d3e59937b",
"0xc2668ecfa5198b70c0389bc5b71a70f1e2ffe0be832846e1889ad80ee3a8ef34"
],
"origin_token_address": "0x7a6fC3e8b57c6D1924F1A9d0E2b3c4D5e6F70891",
"roots": [
"0xacd6f8510c036081e605dd2c8749d2b7d3b289913514d10af9538cb4b32b7ded",
"0x2d7b622637d38f862a074a0160bc1e54ad7df147ff3374af82777b37021b22e1",
"0xf9bdf29ab9c4cbd2927b759b9f8ddafa90317bdb91f388b8eee08038ff5ded00",
"0x80134ca84d0d742662f3ec22543f4cf33f02dc0b628f51d1df1c521ef3018395",
"0x21d6f3b63306929d624f01ffdbe216acb822bf080bcf04b7e6021db957e7bee4",
"0x7932d55a970d094161976d0b562805779d55a81b08a501983c2b121a0c989a1e",
"0x43f09c6c8a277ee6fbc0e3f8261ba4570f32d1cbfff06bf662aa8e5feeb742bc",
"0x9ae3a76a5c7fcc2af6e3cb937b7e1a4ba397a46029987b06fec29257ba408564",
"0x007e432139766ea419be4aeda41a59e20114c0b772b61e43b3a344fa1c4e1196",
"0xdf60f37334585bc10d67b107b417a14181158ac9828f56a9337684a81e7405d9",
"0xba49ac55a723278ef6cd8f12193a405bc90cd2b6e88f8791f8d48d69fe952104",
"0x4ab8529bce44bcfb8c8e90c9adebebca9e51f44b0e8a048d99bf7717cb58eae7",
"0xf9313f060db170a5287bcc78443267e893f638731dd48a9131b120f9c5833f88",
"0x49a9e6e504f2a6938bbefba42ec2b4930eed298a04eac403af1e0a6286017960",
"0xe318ce76597523c02da0094bcfd970e88c9544c6393d9bfe17d96e2a17f4856d",
"0x00d4099acc3d2a2cdd76f693fb527b218f369bc8e92af4a39328809738497a9d",
"0xf4db3da65c8fda88ad4a1ad1aca66e9260d5230a962791b57d396948a78fe96e",
"0x6813db5a7b4ac98c11d84412df7d6552941d30c7adb95e7025b13d747cf0f3f7",
"0xf1e93cbb96e5fabaee7cbb44f87f44832c9c290a5f85631d8c86493bab6ba0d5",
"0x654a2e78a6e49c969a0fedad0e4372862950ca371406c122779cf62e16dfe7e7",
"0x1a07ce13254cfb6697256a401063d6c43e5a89b8b1945c90bce62c464da1ba27",
"0xedaf2d835d1e6fdd801555835b2cadcd04517f8668f30658019869d0376c6c36",
"0x82adda5fd38a4718f37b2d4fe9fe99b364cced5de9bdfa4c6bdcd118da42c64c",
"0x2d28e62dd13f99153b5e9eb4d68cc1f99a5bd510375f2d1ed522c0062a2d38d7",
"0xd87e80ebe2f69df6735911707780df6b882189db786b5507310249a26d3db69d",
"0x5406d2fbc12edcccd2b8c755b7063ababc760ce23da62032d500a10d49756994",
"0xce99e7d0f9d77226cae034297dfec349d866f892eb753a8c7f5bba4bec52364c",
"0x4419d0e6c47cac3e4fc917f91d878582ed4496bef8e7df219be4d483e496ff0a",
"0xafe2c2b44e58c34576299a201d4918f47d5a48b6fa7a229eaf59e226120b12ac",
"0x9d2989190f9edb660b043a55f3051412280dd7bb7d4d042e3695d3a2b23f5b8d",
"0x18b772e2e093d5f69151c3b6da00d42a2066d1f5980e5f9210ae902f5a5643ca",
"0x6717e563a6c40e1562235c4cbbc2ba0de5be6be07101715e8d3922361b77d394"
"0x8943af888cfe3ea3924601d71a6baacd7b87c826da39e9a682eb285ff5031c1b",
"0x805f8bbc68e3df18db265cfe1fa972faf9e29521978640b34450a8ea8bf7a665",
"0xa0da7520543874392c8332ea2d567ebb4b2b10f6897d34f5404263f0f97b1cb8",
"0x15fd7076633c5dc177f675b9bd39418043177d5cf565f3521a25c502c794f102",
"0x5f3b6ebb3858d5481a1ab0ebc7bf51e66d6dcdaafd861b9e6af088963a5a2282",
"0xce80b3372dd297c3d9cbdce7e0a3b7cf39dabfa03665dc1a2778955935fc06da",
"0xaca8bafe682b461769752c13e7313aa65b83ad1a0019f644a5bdf5e453e1274b",
"0x5453a77465da8cf9803ee6e1ff5960cf96ebd14a2e0cd4299995334ed73e802f",
"0x6bb045a5956579c11c97a673f87292085ba3addda57dcd8c40fbd4db63d8b07f",
"0x4bb0337c1f708b56efc1f0f4279d9ca9c94de2187c406c1619947158d83028ea",
"0x12fac4e9109f79710654946bd345128f8202e403a4ba3fed44efc8d5d0e1cd9e",
"0x2938ec7bc586f16a6cca58e1c3a4b060d135d954649a2abdec9094ebf212fadc",
"0x4d287ab8ab3e87b07528774b18fdb81511402f42d4482bdea43c0a1cbe161128",
"0xa801b801f5018d5e39d7c5aba92e4a4fce13845bab8bf51f198c8165aa20f67d",
"0x343379b96ae9187d4cb8f20706cf4e884f517ef02e3700a9f7500e32f3c14fda",
"0xb18e90e56bbca6ee8a7e653eafef633c01d4e41ef9fdbccfb99c50a5c3ae8f8f",
"0xe2d7f15c9ca938f88337cbcc534475eb6d625cce8fbd24f2389d4874cee21962",
"0x6bb8d1fc420da55e1f42becd9ddd6be0a2b184d7827a410e68314f50bdfc55d5",
"0x4379c4b7761be8fb99d8c33f075d6a8206a15017e7e9a9b41f66eefbac85e99e",
"0x225f99e77a68aad477ae85289bfcf54c86845ab6f5dcb0eea9cb97137a9de128",
"0xcb18011fca44a052414a2f86eb19c63a986868f7cef55f9d1f936e0fd8a1e18a",
"0xbac2a9dbeeeb688616c998fe977f0db04d6021b90fa4e7f0aa1347e8ae8eccef",
"0x94c4018c9810210df4a63db14f1949f6599da6f3c1760efcd4402388a8d9c3b6",
"0x21de8642d818c1ddb0d5f9b5c06a73c1db6c03a753828192a151c08a5e524c80",
"0xd1845fc44e07f7751ab65b05782f1179b5a9212a0f8e980e0e07b56da7663351",
"0xf861aa5ac7127d103e3174753736f3e3110f1317bc1f1c93d638b429ce8a3c9b",
"0xff8c1364e2ff988dbd8780352eeef599341bb010eb48af3019f8540b2b52b90e",
"0xf232b957fa2c9e83120050f8c4324247e12dfbd8f876880383a066f19d018ec6",
"0xd223658da6e25f5362c1abb49484414e4b9594ac7515e0b7d8aabd919866598c",
"0xcf038032ed455f73f04d503cf5796b196dea55d967ec6617f0a1a1623f144ebd",
"0xfa9da8a43eff2ac92f2c3996b2f5b18a92b95a56e61f26bb30ed47122cfc9e9f",
"0x1a17ad0ab073918397c17419deab441d666c0abdeb9f2104c47af4589dd4a2c3"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ contract MMRTestVectors is Test, DepositContractV2 {
uint8 constant LEAF_TYPE = 0;
uint32 constant ORIGIN_NETWORK = 64;
address constant ORIGIN_TOKEN_ADDR = 0x7a6fC3e8b57c6D1924F1A9d0E2b3c4D5e6F70891;
bytes32 constant METADATA_HASH = bytes32(0);
// keccak256(abi.encode("AGG", "AGG", uint8(8)))
bytes32 constant METADATA_HASH = 0xc98c1a2dbf558d2ddf62e6ad8f93f6abfacf0cf446d095fc3f20b628d1144b3d;

// Fixed seed for deterministic "random" destination vectors.
// Keeping this constant ensures everyone regenerates the exact same JSON vectors.
Expand Down
Loading
Loading