diff --git a/Cargo.lock b/Cargo.lock index 424880598..f77b462ba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,9 +14,9 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.24.2" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" dependencies = [ "cpp_demangle", "fallible-iterator", @@ -149,9 +149,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "anymap2" @@ -350,7 +350,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c7bf8143dfc3c0258df908843e169b5cc5fcf76c7718bd66135ef4a9cd558c5" dependencies = [ - "semver 1.0.26", + "semver 1.0.23", "serde", "serde_json", "topological-sort", @@ -427,6 +427,12 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "bech32" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" + [[package]] name = "beef" version = "0.5.2" @@ -598,7 +604,7 @@ dependencies = [ "clap", "futures", "heck 0.5.0", - "indexmap 2.8.0", + "indexmap 2.7.1", "libc", "log", "p256", @@ -606,7 +612,7 @@ dependencies = [ "pretty_env_logger", "rand_core 0.6.4", "rpassword", - "semver 1.0.26", + "semver 1.0.23", "serde", "serde_json", "shell-escape", @@ -636,11 +642,11 @@ dependencies = [ "clap", "dirs", "futures", - "indexmap 2.8.0", + "indexmap 2.7.1", "libc", "log", "owo-colors", - "semver 1.0.26", + "semver 1.0.23", "serde", "tokio", "tokio-util", @@ -655,14 +661,14 @@ dependencies = [ [[package]] name = "cargo-config2" -version = "0.1.32" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dc3749a36e0423c991f1e7a3e4ab0c36a1f489658313db4b187d401d79cc461" +checksum = "1124054becb9262cc15c5e96e82f0d782f2aed3a3034d1f71a6385a6fa9e9595" dependencies = [ + "home", "serde", "serde_derive", "toml_edit", - "windows-sys 0.59.0", ] [[package]] @@ -685,7 +691,7 @@ dependencies = [ "heck 0.5.0", "home", "ignore", - "indexmap 2.8.0", + "indexmap 2.7.1", "indicatif", "liquid", "liquid-core", @@ -698,7 +704,7 @@ dependencies = [ "remove_dir_all", "rhai", "sanitize-filename", - "semver 1.0.26", + "semver 1.0.23", "serde", "tempfile", "thiserror 2.0.11", @@ -738,12 +744,12 @@ dependencies = [ [[package]] name = "cargo-util" -version = "0.2.18" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "932c5376dc904ef005f0d229a5edc1116f40a78a18d30cdc992ec5acbeffd4d9" +checksum = "cc680c90073156fb5280c0c0127b779eef1f6292e41f7d6621acba3041e81c7d" dependencies = [ "anyhow", - "core-foundation 0.10.0", + "core-foundation 0.9.4", "filetime", "hex", "ignore", @@ -756,7 +762,7 @@ dependencies = [ "tempfile", "tracing", "walkdir", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -765,7 +771,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f905f68f8cb8a8182592d9858a5895360f0a5b08b6901fdb10498fb91829804" dependencies = [ - "semver 1.0.26", + "semver 1.0.23", "serde", "serde-untagged", "serde-value", @@ -777,13 +783,13 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.19.2" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +checksum = "8769706aad5d996120af43197bf46ef6ad0fda35216b4505f926a365a232d924" dependencies = [ "camino", "cargo-platform", - "semver 1.0.26", + "semver 1.0.23", "serde", "serde_json", "thiserror 2.0.11", @@ -1727,9 +1733,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -1742,9 +1748,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -1752,15 +1758,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -1769,9 +1775,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" @@ -1788,9 +1794,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", @@ -1799,21 +1805,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -1869,9 +1875,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi", "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", ] [[package]] @@ -1888,9 +1896,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.31.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" dependencies = [ "fallible-iterator", "stable_deref_trait", @@ -2149,9 +2157,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" @@ -2189,7 +2197,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.8.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -2339,9 +2347,9 @@ checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "human-panic" -version = "2.0.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80b84a66a325082740043a6c28bbea400c129eac0d3a27673a1de971e44bf1f7" +checksum = "1c5a08ed290eac04006e21e63d32e90086b6182c7cd0452d10f4264def1fec9a" dependencies = [ "anstream", "anstyle", @@ -2640,9 +2648,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.8.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown 0.15.2", @@ -2810,10 +2818,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -3201,6 +3210,7 @@ dependencies = [ name = "miden" version = "0.0.7" dependencies = [ + "miden-base", "miden-base-sys", "miden-sdk-alloc", "miden-stdlib-sys", @@ -3212,7 +3222,18 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72269e041e915d6c34325a8906f08a8ff6ec9b92c79ae07f3a0de8c3588694b5" dependencies = [ - "miden-core", + "miden-core 0.13.0", + "thiserror 2.0.11", + "winter-air", + "winter-prover", +] + +[[package]] +name = "miden-air" +version = "0.14.0" +source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=614cd7f9b52f45238b0ab59c71ebb49325051e5d#614cd7f9b52f45238b0ab59c71ebb49325051e5d" +dependencies = [ + "miden-core 0.14.0", "thiserror 2.0.11", "winter-air", "winter-prover", @@ -3220,14 +3241,31 @@ dependencies = [ [[package]] name = "miden-assembly" -version = "0.13.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75d1cb02d807c2481f365feca966bedb74c66c765923d04c3c23ea678afaf148" +checksum = "ce5680a0e75470389b65cc00900422ad7e1aa7972477c75ff88f63c3a01671e9" +dependencies = [ + "aho-corasick", + "lalrpop", + "lalrpop-util", + "miden-core 0.13.0", + "miden-miette", + "rustc_version 0.4.1", + "smallvec", + "thiserror 2.0.11", + "tracing", + "unicode-width 0.2.0", +] + +[[package]] +name = "miden-assembly" +version = "0.14.0" +source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=614cd7f9b52f45238b0ab59c71ebb49325051e5d#614cd7f9b52f45238b0ab59c71ebb49325051e5d" dependencies = [ "aho-corasick", "lalrpop", "lalrpop-util", - "miden-core", + "miden-core 0.14.0", "miden-miette", "rustc_version 0.4.1", "smallvec", @@ -3236,19 +3274,61 @@ dependencies = [ "unicode-width 0.2.0", ] +[[package]] +name = "miden-base" +version = "0.0.7" +dependencies = [ + "miden-base-macros", + "miden-base-sys", + "miden-stdlib-sys", +] + +[[package]] +name = "miden-base-macros" +version = "0.0.7" +dependencies = [ + "expect-test", + "miden-base", + "miden-objects", + "proc-macro2", + "quote", + "semver 1.0.23", + "syn", + "toml", +] + [[package]] name = "miden-base-sys" version = "0.0.7" dependencies = [ - "miden-assembly", + "miden-assembly 0.14.0", "miden-stdlib-sys", ] [[package]] name = "miden-core" -version = "0.13.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7d408e01421b5df2e4cfaf1a91efefe3fb5b729f1c99b668d3a69eec0044a6b" +checksum = "e8ba125a31e9ec0e732f47e639525c753973e553126cfc46cc63674049ea4134" +dependencies = [ + "lock_api", + "loom", + "memchr", + "miden-crypto", + "miden-formatting", + "miden-miette", + "num-derive", + "num-traits", + "parking_lot", + "thiserror 2.0.11", + "winter-math", + "winter-utils", +] + +[[package]] +name = "miden-core" +version = "0.14.0" +source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=614cd7f9b52f45238b0ab59c71ebb49325051e5d#614cd7f9b52f45238b0ab59c71ebb49325051e5d" dependencies = [ "lock_api", "loom", @@ -3308,10 +3388,11 @@ dependencies = [ "filetime", "glob", "log", - "miden-assembly", - "miden-core", + "miden-assembly 0.14.0", + "miden-core 0.14.0", "miden-mast-package", - "miden-processor", + "miden-objects", + "miden-processor 0.14.0", "midenc-codegen-masm", "midenc-compile", "midenc-debug", @@ -3329,13 +3410,12 @@ dependencies = [ [[package]] name = "miden-mast-package" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ea780c817aff71d763d5941120808f40f914f99ee71b24498e445c572c81ca" +version = "0.14.0" +source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=614cd7f9b52f45238b0ab59c71ebb49325051e5d#614cd7f9b52f45238b0ab59c71ebb49325051e5d" dependencies = [ "derive_more", - "miden-assembly", - "miden-core", + "miden-assembly 0.14.0", + "miden-core 0.14.0", ] [[package]] @@ -3380,14 +3460,46 @@ dependencies = [ "syn", ] +[[package]] +name = "miden-objects" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea350fdd6d025d2e4791ac0769bfbc04afca404fbb20f918354dcc758debd4c" +dependencies = [ + "bech32", + "getrandom 0.3.2", + "miden-assembly 0.13.0", + "miden-core 0.13.0", + "miden-crypto", + "miden-processor 0.13.0", + "miden-verifier", + "semver 1.0.23", + "serde", + "thiserror 2.0.11", + "toml", +] + [[package]] name = "miden-processor" -version = "0.13.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e70b053c587014396d06be3502e3952777923bee11729b7514c060fdc0d2c8" +checksum = "2e5f362138a7bfe6c20246de651e848566843a0d5062cc4a7a8ebff6bd14668d" dependencies = [ - "miden-air", - "miden-core", + "miden-air 0.13.0", + "miden-core 0.13.0", + "thiserror 2.0.11", + "tracing", + "winter-prover", +] + +[[package]] +name = "miden-processor" +version = "0.14.0" +source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=614cd7f9b52f45238b0ab59c71ebb49325051e5d#614cd7f9b52f45238b0ab59c71ebb49325051e5d" +dependencies = [ + "miden-air 0.14.0", + "miden-core 0.14.0", + "miden-miette", "thiserror 2.0.11", "tracing", "winter-prover", @@ -3399,12 +3511,11 @@ version = "0.0.7" [[package]] name = "miden-stdlib" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e59c4dd1079bffe8407694b386ae781feaf1f7acb9d1cefa858578bc99cad4" +version = "0.14.0" +source = "git+https://github.com/0xPolygonMiden/miden-vm?rev=614cd7f9b52f45238b0ab59c71ebb49325051e5d#614cd7f9b52f45238b0ab59c71ebb49325051e5d" dependencies = [ - "miden-assembly", - "miden-core", + "miden-assembly 0.14.0", + "miden-core 0.14.0", ] [[package]] @@ -3431,6 +3542,19 @@ dependencies = [ "syn", ] +[[package]] +name = "miden-verifier" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ae6636d1e7a9d78a973fd59ffcfd87964eee235ecdf3264569add5ff89b0d91" +dependencies = [ + "miden-air 0.13.0", + "miden-core 0.13.0", + "thiserror 2.0.11", + "tracing", + "winter-verifier", +] + [[package]] name = "midenc" version = "0.0.7" @@ -3448,10 +3572,10 @@ dependencies = [ "expect-test", "inventory", "log", - "miden-assembly", - "miden-core", + "miden-assembly 0.14.0", + "miden-core 0.14.0", "miden-mast-package", - "miden-processor", + "miden-processor 0.14.0", "miden-thiserror", "midenc-dialect-arith", "midenc-dialect-cf", @@ -3474,7 +3598,7 @@ dependencies = [ "clap", "inventory", "log", - "miden-assembly", + "miden-assembly 0.14.0", "miden-mast-package", "miden-thiserror", "midenc-codegen-masm", @@ -3496,10 +3620,10 @@ dependencies = [ "futures", "glob", "log", - "miden-assembly", - "miden-core", + "miden-assembly 0.14.0", + "miden-core 0.14.0", "miden-mast-package", - "miden-processor", + "miden-processor 0.14.0", "miden-thiserror", "midenc-codegen-masm", "midenc-dialect-hir", @@ -3588,9 +3712,9 @@ dependencies = [ "cranelift-entity", "expect-test", "gimli", - "indexmap 2.8.0", + "indexmap 2.7.1", "log", - "miden-core", + "miden-core 0.14.0", "miden-thiserror", "midenc-dialect-arith", "midenc-dialect-cf", @@ -3617,7 +3741,7 @@ dependencies = [ "intrusive-collections", "inventory", "log", - "miden-core", + "miden-core 0.14.0", "miden-thiserror", "midenc-hir-macros", "midenc-hir-symbol", @@ -3626,7 +3750,7 @@ dependencies = [ "pretty_assertions", "rustc-demangle", "rustc-hash", - "semver 1.0.26", + "semver 1.0.23", "smallvec", ] @@ -3711,9 +3835,9 @@ dependencies = [ "clap", "inventory", "log", - "miden-assembly", + "miden-assembly 0.14.0", "miden-base-sys", - "miden-core", + "miden-core 0.14.0", "miden-mast-package", "miden-stdlib", "miden-thiserror", @@ -4318,7 +4442,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.8.0", + "indexmap 2.7.1", ] [[package]] @@ -4503,9 +4627,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -4704,9 +4828,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.40" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -5071,7 +5195,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.26", + "semver 1.0.23", ] [[package]] @@ -5294,9 +5418,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" dependencies = [ "serde", ] @@ -5402,7 +5526,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.8.0", + "indexmap 2.7.1", "serde", "serde_derive", "serde_json", @@ -5428,7 +5552,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.8.0", + "indexmap 2.7.1", "itoa", "ryu", "serde", @@ -5730,9 +5854,9 @@ checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" [[package]] name = "syn" -version = "2.0.100" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -6056,9 +6180,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.14" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -6073,7 +6197,7 @@ version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ - "indexmap 2.8.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", @@ -6095,7 +6219,7 @@ version = "0.22.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf" dependencies = [ - "indexmap 2.8.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", @@ -6473,7 +6597,7 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f98505d42b5289563c6d659f625b6789a97980166508bd00862c4328bf41c261" dependencies = [ - "indexmap 2.8.0", + "indexmap 2.7.1", "itertools 0.12.1", "serde", "serde_with", @@ -6496,7 +6620,7 @@ dependencies = [ "dialoguer", "dirs", "futures-util", - "indexmap 2.8.0", + "indexmap 2.7.1", "itertools 0.12.1", "keyring", "libc", @@ -6506,7 +6630,7 @@ dependencies = [ "ptree", "reqwest", "secrecy", - "semver 1.0.26", + "semver 1.0.23", "serde", "serde_json", "sha256", @@ -6577,11 +6701,11 @@ dependencies = [ "anyhow", "base64 0.21.7", "hex", - "indexmap 2.8.0", + "indexmap 2.7.1", "pbjson-types", "prost", "prost-types", - "semver 1.0.26", + "semver 1.0.23", "serde", "serde_with", "thiserror 1.0.63", @@ -6598,7 +6722,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b8d8110b6800c43422676201a6a62167769b015ca29a8fcab67d789ac8b9c63" dependencies = [ "anyhow", - "indexmap 2.8.0", + "indexmap 2.7.1", "prost", "thiserror 1.0.63", "warg-crypto", @@ -6628,24 +6752,24 @@ checksum = "dcd9f21bbde82ba59e415a8725e6ad0d0d7e9e460b1a3ccbca5bdee952c1a324" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", "syn", @@ -6666,9 +6790,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6676,9 +6800,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", @@ -6689,9 +6813,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-compose" @@ -6702,7 +6829,7 @@ dependencies = [ "anyhow", "heck 0.4.1", "im-rc", - "indexmap 2.8.0", + "indexmap 2.7.1", "log", "petgraph", "serde", @@ -6770,7 +6897,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1ef51bd442042a2a7b562dddb6016ead52c4abab254c376dcffc83add2c9c34" dependencies = [ "anyhow", - "indexmap 2.8.0", + "indexmap 2.7.1", "serde", "serde_derive", "serde_json", @@ -6786,7 +6913,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c93c9e49fa2749be3c5ab28ad4be03167294915cd3b2ded3f04f760cef5cfb86" dependencies = [ "anyhow", - "indexmap 2.8.0", + "indexmap 2.7.1", "serde", "serde_derive", "serde_json", @@ -6805,7 +6932,7 @@ dependencies = [ "anyhow", "auditable-serde", "flate2", - "indexmap 2.8.0", + "indexmap 2.7.1", "serde", "serde_derive", "serde_json", @@ -6861,7 +6988,7 @@ dependencies = [ "futures-util", "http", "reqwest", - "semver 1.0.26", + "semver 1.0.23", "serde", "serde_json", "sha2", @@ -6891,8 +7018,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" dependencies = [ "bitflags 2.6.0", - "indexmap 2.8.0", - "semver 1.0.26", + "indexmap 2.7.1", + "semver 1.0.23", ] [[package]] @@ -6904,8 +7031,8 @@ dependencies = [ "ahash", "bitflags 2.6.0", "hashbrown 0.14.5", - "indexmap 2.8.0", - "semver 1.0.26", + "indexmap 2.7.1", + "semver 1.0.23", ] [[package]] @@ -6916,8 +7043,8 @@ checksum = "04f17a5917c2ddd3819e84c661fae0d6ba29d7b9c1f0e96c708c65a9c4188e11" dependencies = [ "bitflags 2.6.0", "hashbrown 0.15.2", - "indexmap 2.8.0", - "semver 1.0.26", + "indexmap 2.7.1", + "semver 1.0.23", ] [[package]] @@ -6928,8 +7055,8 @@ checksum = "0f51cad774fb3c9461ab9bccc9c62dfb7388397b5deda31bf40e8108ccd678b2" dependencies = [ "bitflags 2.6.0", "hashbrown 0.15.2", - "indexmap 2.8.0", - "semver 1.0.26", + "indexmap 2.7.1", + "semver 1.0.23", "serde", ] @@ -7361,6 +7488,19 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d47518e6931955dcac73a584cacb04550b82ab2f45c72880cbbbdbe13adb63c" +[[package]] +name = "winter-verifier" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e340716f24960b7ff3713029149fe5e52f9c0dae152101528ec5847d92d73e4" +dependencies = [ + "winter-air", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-utils", +] + [[package]] name = "wit-bindgen-core" version = "0.41.0" @@ -7389,7 +7529,7 @@ checksum = "9d0809dc5ba19e2e98661bf32fc0addc5a3ca5bf3a6a7083aa6ba484085ff3ce" dependencies = [ "anyhow", "heck 0.5.0", - "indexmap 2.8.0", + "indexmap 2.7.1", "prettyplease", "syn", "wasm-metadata 0.227.1", @@ -7405,7 +7545,7 @@ checksum = "4b8479a29d81c063264c3ab89d496787ef78f8345317a2dcf6dece0f129e5fcd" dependencies = [ "anyhow", "bitflags 2.6.0", - "indexmap 2.8.0", + "indexmap 2.7.1", "log", "serde", "serde_derive", @@ -7424,7 +7564,7 @@ checksum = "923637fe647372efbbb654757f8c884ba280924477e1d265eca7e35d4cdcea8b" dependencies = [ "anyhow", "bitflags 2.6.0", - "indexmap 2.8.0", + "indexmap 2.7.1", "log", "serde", "serde_derive", @@ -7443,7 +7583,7 @@ checksum = "635c3adc595422cbf2341a17fb73a319669cc8d33deed3a48368a841df86b676" dependencies = [ "anyhow", "bitflags 2.6.0", - "indexmap 2.8.0", + "indexmap 2.7.1", "log", "serde", "serde_derive", @@ -7462,9 +7602,9 @@ checksum = "ca004bb251010fe956f4a5b9d4bf86b4e415064160dd6669569939e8cbf2504f" dependencies = [ "anyhow", "id-arena", - "indexmap 2.8.0", + "indexmap 2.7.1", "log", - "semver 1.0.26", + "semver 1.0.23", "serde", "serde_derive", "serde_json", @@ -7480,9 +7620,9 @@ checksum = "e3477d8d0acb530d76beaa8becbdb1e3face08929db275f39934963eb4f716f8" dependencies = [ "anyhow", "id-arena", - "indexmap 2.8.0", + "indexmap 2.7.1", "log", - "semver 1.0.26", + "semver 1.0.23", "serde", "serde_derive", "serde_json", @@ -7498,9 +7638,9 @@ checksum = "ddf445ed5157046e4baf56f9138c124a0824d4d1657e7204d71886ad8ce2fc11" dependencies = [ "anyhow", "id-arena", - "indexmap 2.8.0", + "indexmap 2.7.1", "log", - "semver 1.0.26", + "semver 1.0.23", "serde", "serde_derive", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index c2b6169c2..a58968eb7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -89,15 +89,29 @@ smallvec = { version = "1.14", default-features = false, features = [ thiserror = { package = "miden-thiserror", version = "1.0" } toml = { version = "0.8", features = ["preserve_order"] } miden-formatting = { version = "0.1", default-features = false } -miden-assembly = { version = "0.13.0", default-features = false } -miden-core = { version = "0.13.0", default-features = false, features = [ + +# miden-assembly = { version = "0.13.0", default-features = false } +# miden-core = { version = "0.13.0", default-features = false, features = [ +# "diagnostics", +# ] } +# miden-processor = { version = "0.13.0", default-features = false } +# miden-stdlib = { version = "0.13.0", default-features = false, features = [ +# "with-debug-info", +# ] } +# miden-mast-package = { version = "0.13.0", default-features = false } + +# use the VM from the next branch with merged +# https://github.com/0xPolygonMiden/miden-vm/pull/1731 +miden-assembly = { version = "0.14.0", default-features = false, git = "https://github.com/0xPolygonMiden/miden-vm", rev = "614cd7f9b52f45238b0ab59c71ebb49325051e5d" } +miden-core = { version = "0.14.0", default-features = false, features = [ "diagnostics", -] } -miden-processor = { version = "0.13.0", default-features = false } -miden-stdlib = { version = "0.13.0", default-features = false, features = [ +], git = "https://github.com/0xPolygonMiden/miden-vm", rev = "614cd7f9b52f45238b0ab59c71ebb49325051e5d" } +miden-processor = { version = "0.14.0", default-features = false, git = "https://github.com/0xPolygonMiden/miden-vm", rev = "614cd7f9b52f45238b0ab59c71ebb49325051e5d" } +miden-stdlib = { version = "0.14.0", default-features = false, features = [ "with-debug-info", -] } -miden-mast-package = { version = "0.13.0", default-features = false } +], git = "https://github.com/0xPolygonMiden/miden-vm", rev = "614cd7f9b52f45238b0ab59c71ebb49325051e5d" } +miden-mast-package = { version = "0.14.0", default-features = false, git = "https://github.com/0xPolygonMiden/miden-vm", rev = "614cd7f9b52f45238b0ab59c71ebb49325051e5d" } + # This is here for convenience if we need to quickly use a git ref of the VM crates #miden-assembly = { version = "0.11.0", git = "https://github.com/0xPolygonMiden/miden-vm", rev = "4d23f948bbf0c8fb7cd7ecba80bb02d37c1724bb" } midenc-codegen-masm = { version = "0.0.7", path = "codegen/masm" } @@ -122,6 +136,17 @@ cargo-miden = { version = "0.0.7", path = "tools/cargo-miden" } miden-integration-tests = { version = "0.0.0", path = "tests/integration" } wat = "1.0.69" tokio = { version = "1.39.2", features = ["rt", "time", "macros"] } +syn = { version = "2.0", features = [ + "full", + "parsing", + "derive", + "extra-traits", + "printing", +] } +proc-macro2 = "1.0" +quote = "1.0" + +semver = { version = "1.0", default-features = false } [profile.dev] lto = false diff --git a/examples/storage-example/Cargo.lock b/examples/storage-example/Cargo.lock index aba44b7bf..ce7dc6241 100644 --- a/examples/storage-example/Cargo.lock +++ b/examples/storage-example/Cargo.lock @@ -2,40 +2,1811 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "bech32" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "blake3" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "675f87afced0413c9bb02843499dbbd3882a237645883f71a2b59644a6d2f753" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "cc" +version = "1.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crunchy" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dissimilar" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8975ffdaa0ef3661bfe02dbdcc06c9f829dfafe6a3c474de366a8d5e44276921" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-sink", + "futures-task", + "pin-project-lite", + "pin-utils", +] + +[[package]] +name = "generator" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +dependencies = [ + "cfg-if", + "libc", + "log", + "rustversion", + "windows", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", +] + +[[package]] +name = "glob" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax 0.8.5", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" + +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags", + "libc", +] + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" + +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "miden" version = "0.0.7" dependencies = [ + "miden-base", "miden-base-sys", "miden-sdk-alloc", "miden-stdlib-sys", ] [[package]] -name = "miden-base-sys" +name = "miden-air" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72269e041e915d6c34325a8906f08a8ff6ec9b92c79ae07f3a0de8c3588694b5" +dependencies = [ + "miden-core", + "thiserror 2.0.12", + "winter-air", + "winter-prover", +] + +[[package]] +name = "miden-assembly" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce5680a0e75470389b65cc00900422ad7e1aa7972477c75ff88f63c3a01671e9" +dependencies = [ + "aho-corasick", + "lalrpop", + "lalrpop-util", + "miden-core", + "miden-miette", + "rustc_version 0.4.1", + "smallvec", + "thiserror 2.0.12", + "tracing", + "unicode-width 0.2.0", +] + +[[package]] +name = "miden-base" version = "0.0.7" dependencies = [ + "miden-base-macros", + "miden-base-sys", "miden-stdlib-sys", ] [[package]] -name = "miden-sdk-alloc" +name = "miden-base-macros" version = "0.0.7" +dependencies = [ + "miden-objects", + "proc-macro2", + "quote", + "semver 1.0.26", + "syn", + "toml", +] [[package]] -name = "miden-stdlib-sys" +name = "miden-base-sys" version = "0.0.7" +dependencies = [ + "miden-stdlib-sys", +] [[package]] -name = "storage-example" -version = "0.1.0" +name = "miden-core" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8ba125a31e9ec0e732f47e639525c753973e553126cfc46cc63674049ea4134" dependencies = [ - "miden", - "wit-bindgen-rt", + "lock_api", + "loom", + "memchr", + "miden-crypto", + "miden-formatting", + "miden-miette", + "num-derive", + "num-traits", + "thiserror 2.0.12", + "winter-math", + "winter-utils", ] [[package]] -name = "wit-bindgen-rt" -version = "0.28.0" +name = "miden-crypto" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a37bd9274cb2d4754b915d624447ec0dce9105d174361841c0826efc79ceb9" +checksum = "d521a9d5fa949d60e4029e55ff1da892561b298ed636afb5f71d0dde0925bf57" +dependencies = [ + "blake3", + "glob", + "num", + "num-complex", + "rand", + "rand_core", + "sha3", + "thiserror 2.0.12", + "winter-crypto", + "winter-math", + "winter-utils", +] + +[[package]] +name = "miden-formatting" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e392e0a8c34b32671012b439de35fa8987bf14f0f8aac279b97f8b8cc6e263b" +dependencies = [ + "unicode-width 0.1.14", +] + +[[package]] +name = "miden-miette" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eef536978f24a179d94fa2a41e4f92b28e7d8aab14b8d23df28ad2a3d7098b20" +dependencies = [ + "cfg-if", + "futures", + "indenter", + "lazy_static", + "miden-miette-derive", + "owo-colors", + "regex", + "rustc_version 0.2.3", + "rustversion", + "serde_json", + "spin", + "strip-ansi-escapes", + "syn", + "textwrap", + "thiserror 2.0.12", + "trybuild", + "unicode-width 0.1.14", +] + +[[package]] +name = "miden-miette-derive" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86a905f3ea65634dd4d1041a4f0fd0a3e77aa4118341d265af1a94339182222f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "miden-objects" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea350fdd6d025d2e4791ac0769bfbc04afca404fbb20f918354dcc758debd4c" +dependencies = [ + "bech32", + "getrandom 0.3.2", + "miden-assembly", + "miden-core", + "miden-crypto", + "miden-processor", + "miden-verifier", + "semver 1.0.26", + "thiserror 2.0.12", +] + +[[package]] +name = "miden-processor" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e5f362138a7bfe6c20246de651e848566843a0d5062cc4a7a8ebff6bd14668d" +dependencies = [ + "miden-air", + "miden-core", + "thiserror 2.0.12", + "tracing", + "winter-prover", +] + +[[package]] +name = "miden-sdk-alloc" +version = "0.0.7" + +[[package]] +name = "miden-stdlib-sys" +version = "0.0.7" + +[[package]] +name = "miden-verifier" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ae6636d1e7a9d78a973fd59ffcfd87964eee235ecdf3264569add5ff89b0d91" +dependencies = [ + "miden-air", + "miden-core", + "thiserror 2.0.12", + "tracing", + "winter-verifier", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "once_cell" +version = "1.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "owo-colors" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_core", + "zerocopy", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" + +[[package]] +name = "redox_syscall" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver 1.0.26", +] + +[[package]] +name = "rustversion" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" + +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "storage-example" +version = "0.1.0" +dependencies = [ + "miden", + "wit-bindgen-rt 0.28.0", +] + +[[package]] +name = "string_cache" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "938d512196766101d333398efde81bc1f37b00cb42c2f8350e5df639f040bbbe" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "strip-ansi-escapes" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025" +dependencies = [ + "vte", +] + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "target-triple" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width 0.2.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "toml" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "trybuild" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ae08be68c056db96f0e6c6dd820727cca756ced9e1f4cc7fdd20e2a55e23898" +dependencies = [ + "dissimilar", + "glob", + "serde", + "serde_derive", + "serde_json", + "target-triple", + "termcolor", + "toml", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vte" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" +dependencies = [ + "memchr", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt 0.39.0", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core", + "windows-targets", +] + +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result", + "windows-strings", + "windows-targets", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" +dependencies = [ + "memchr", +] + +[[package]] +name = "winter-air" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d7fbdcaa53d220b84811199790c1dda77c025533cdd27715cf1625af2b4027a" +dependencies = [ + "libm", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-utils", +] + +[[package]] +name = "winter-crypto" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32247cde9f43e5bbd05362caa7274608790ea69b14f7c81cd509aae7127c5ff2" +dependencies = [ + "blake3", + "sha3", + "winter-math", + "winter-utils", +] + +[[package]] +name = "winter-fri" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b346b0eea2292986a1193bfc70dd2dbcdbb6adb3e5110b71d18c6f1077df10" +dependencies = [ + "winter-crypto", + "winter-math", + "winter-utils", +] + +[[package]] +name = "winter-math" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "326dfe4bfa4072b7c909133a88f8807820d3e49e5dfd246f67981771f74a0ed3" +dependencies = [ + "winter-utils", +] + +[[package]] +name = "winter-maybe-async" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaa132be74e602b707f1dab5a69c38496445e54ee940e7c281c02b15007241bd" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "winter-prover" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "426be0767a25150af20a241a6ae46bad1bf2f7da86393d897e5ec9967124f760" +dependencies = [ + "tracing", + "winter-air", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-maybe-async", + "winter-utils", +] + +[[package]] +name = "winter-utils" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d47518e6931955dcac73a584cacb04550b82ab2f45c72880cbbbdbe13adb63c" + +[[package]] +name = "winter-verifier" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e340716f24960b7ff3713029149fe5e52f9c0dae152101528ec5847d92d73e4" +dependencies = [ + "winter-air", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-utils", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a37bd9274cb2d4754b915d624447ec0dce9105d174361841c0826efc79ceb9" + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "zerocopy" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/examples/storage-example/Cargo.toml b/examples/storage-example/Cargo.toml index 751c440e1..35fd9f1ca 100644 --- a/examples/storage-example/Cargo.toml +++ b/examples/storage-example/Cargo.toml @@ -1,5 +1,6 @@ [package] name = "storage-example" +description = "A simple example of a Miden account storage API" version = "0.1.0" edition = "2021" @@ -15,6 +16,9 @@ wit-bindgen-rt = "0.28" [package.metadata.component] package = "miden:storage-example" +[package.metadata.miden] +supported-types = ["RegularAccountUpdatableCode"] + [package.metadata.component.target.dependencies] "miden:base" = { path = "../../tests/rust-apps-wasm/rust-sdk/wit-sdk/miden.wit" } "miden:core-import" = { path = "../../tests/rust-apps-wasm/rust-sdk/wit-sdk/miden-core-import.wit" } diff --git a/examples/storage-example/src/lib.rs b/examples/storage-example/src/lib.rs index 4aa14f8ce..b959c7702 100644 --- a/examples/storage-example/src/lib.rs +++ b/examples/storage-example/src/lib.rs @@ -19,26 +19,46 @@ fn my_panic(_info: &core::panic::PanicInfo) -> ! { use bindings::exports::miden::storage_example::*; -bindings::export!(MyFoo with_types_in bindings); +bindings::export!(MyAccount with_types_in bindings); mod bindings; -use miden::{storage, Felt, Word}; +use miden::{component, CoreAsset, Felt, StorageMap, StorageMapAccess, Value, ValueAccess, Word}; -struct MyFoo; +#[component] +struct MyAccount { + #[storage( + slot(0), + description = "test value", + type = "auth::rpo_falcon512::pub_key" + )] + owner_public_key: Value, -impl foo::Guest for MyFoo { - fn test_storage_item(index: u8, value: Word) -> Felt { - let (_new_root, _old_value) = storage::set_item(index, value); - let retrieved_value = storage::get_item(index); - assert_eq!(value, retrieved_value); - retrieved_value[0] + #[storage(slot(1), description = "test map")] + asset_qty_map: StorageMap, +} + +// // generated by the `component` and `storage` attribute macros +// impl Default for MyAccount { +// fn default() -> Self { +// Self { +// owner_public_key: Value { slot: 0 }, +// asset_qty_map: StorageMap { slot: 1 }, +// } +// } +// } + +impl foo::Guest for MyAccount { + fn set_asset_qty(pub_key: Word, asset: CoreAsset, qty: Felt) { + let my_account = MyAccount::default(); + let owner_key: Word = my_account.owner_public_key.read(); + if pub_key == owner_key { + my_account.asset_qty_map.set(asset, qty); + } } - fn test_storage_map_item(index: u8, key: Word, value: Word) -> Felt { - let (_old_map_root, _old_map_value) = storage::set_map_item(index, key, value); - let retrieved_map_value = storage::get_map_item(index, key); - assert_eq!(value, retrieved_map_value); - retrieved_map_value[0] + fn get_asset_qty(asset: CoreAsset) -> Felt { + let my_account = MyAccount::default(); + my_account.asset_qty_map.get(&asset) } } diff --git a/examples/storage-example/wit/storage-example.wit b/examples/storage-example/wit/storage-example.wit index d312de5da..402f82d5b 100644 --- a/examples/storage-example/wit/storage-example.wit +++ b/examples/storage-example/wit/storage-example.wit @@ -3,10 +3,10 @@ package miden:storage-example@1.0.0; use miden:base/core-types@1.0.0; interface foo { - use core-types.{felt, word}; + use core-types.{felt, word, core-asset}; - test-storage-item: func(index: u8, value: word) -> felt; - test-storage-map-item: func(index: u8, key: word, value: word) -> felt; + set-asset-qty: func(pub-key: word, asset: core-asset, qty: felt); + get-asset-qty: func(asset: core-asset) -> felt; } world foo-world { diff --git a/frontend/wasm/src/code_translator/tests.rs b/frontend/wasm/src/code_translator/tests.rs index b145a3af3..99bf7506e 100644 --- a/frontend/wasm/src/code_translator/tests.rs +++ b/frontend/wasm/src/code_translator/tests.rs @@ -24,7 +24,7 @@ fn check_op(wat_op: &str, expected_ir: expect_test::ExpectFile) { )"#, ); let wasm = wat::parse_str(wat).unwrap(); - let world_ref = translate(&wasm, &WasmTranslationConfig::default(), context.clone()) + let output = translate(&wasm, &WasmTranslationConfig::default(), context.clone()) .map_err(|e| { if let Some(labels) = e.labels() { for label in labels { @@ -36,9 +36,9 @@ fn check_op(wat_op: &str, expected_ir: expect_test::ExpectFile) { }) .unwrap(); - let world = world_ref.borrow(); + let component = output.component.borrow(); let mut w = String::new(); - world + component .as_operation() .prewalk(|op: &Operation| { if let Some(_function) = op.downcast_ref::() { diff --git a/frontend/wasm/src/component/build_ir.rs b/frontend/wasm/src/component/build_ir.rs index bc359fbfe..67704d841 100644 --- a/frontend/wasm/src/component/build_ir.rs +++ b/frontend/wasm/src/component/build_ir.rs @@ -6,7 +6,7 @@ use midenc_session::{diagnostics::Report, Session}; use super::{translator::ComponentTranslator, ComponentTypesBuilder, ParsedRootComponent}; use crate::{ component::ComponentParser, error::WasmResult, supported_component_model_features, - WasmTranslationConfig, + FrontendOutput, WasmTranslationConfig, }; fn parse<'data>( @@ -28,7 +28,7 @@ pub fn translate_component( wasm: &[u8], config: &WasmTranslationConfig, context: Rc, -) -> WasmResult { +) -> WasmResult { let (mut component_types_builder, mut parsed_root_component) = parse(config, wasm, context.session())?; let dialect = context.get_or_register_dialect::(); diff --git a/frontend/wasm/src/component/parser.rs b/frontend/wasm/src/component/parser.rs index 41181fb75..9c4922873 100644 --- a/frontend/wasm/src/component/parser.rs +++ b/frontend/wasm/src/component/parser.rs @@ -434,7 +434,10 @@ impl<'a, 'data> ComponentParser<'a, 'data> { // debug. other => { self.validator.payload(&other).into_diagnostic()?; - unsupported_diag!(&self.session.diagnostics, "unsupported section {other:?}"); + unsupported_diag!( + &self.session.diagnostics, + "unsupported component section {other:?}" + ); } } @@ -606,12 +609,16 @@ impl<'a, 'data> ComponentParser<'a, 'data> { // module and actual function translation is deferred until this // entire process has completed. self.validator.module_section(&range).into_diagnostic()?; - let parsed_module = ModuleEnvironment::new( + let module_environment = ModuleEnvironment::new( self.config, self.validator, self.types.module_types_builder_mut(), - ) - .parse(parser, &component[range.start..range.end], &self.session.diagnostics)?; + ); + let parsed_module = module_environment.parse( + parser, + &component[range.start..range.end], + &self.session.diagnostics, + )?; let static_idx = self.static_modules.push(parsed_module); self.result.initializers.push(LocalInitializer::ModuleStatic(static_idx)); // Set a fallback name for the newly added parsed module to be used if diff --git a/frontend/wasm/src/component/translator.rs b/frontend/wasm/src/component/translator.rs index c3c6eb259..1beb1e940 100644 --- a/frontend/wasm/src/component/translator.rs +++ b/frontend/wasm/src/component/translator.rs @@ -4,7 +4,7 @@ use cranelift_entity::PrimaryMap; use midenc_hir::{ self as hir2, diagnostics::Report, - dialects::builtin::{self, ComponentBuilder, ComponentRef, ModuleBuilder, World, WorldBuilder}, + dialects::builtin::{self, ComponentBuilder, ModuleBuilder, World, WorldBuilder}, interner::Symbol, smallvec, BuilderExt, CallConv, Context, FunctionType, FxHashMap, Ident, SymbolNameComponent, SymbolPath, @@ -32,7 +32,7 @@ use crate::{ module_translation_state::ModuleTranslationState, types::{EntityIndex, FuncIndex}, }, - unsupported_diag, WasmTranslationConfig, + unsupported_diag, FrontendOutput, WasmTranslationConfig, }; /// A translator from the linearized Wasm component model to the Miden IR component @@ -100,14 +100,30 @@ impl<'a> ComponentTranslator<'a> { mut self, root_component: &'a ParsedComponent, types: &mut ComponentTypesBuilder, - ) -> WasmResult { + ) -> WasmResult { let mut frame = ComponentFrame::new(root_component.types_ref(), FxHashMap::default()); for init in &root_component.initializers { self.initializer(&mut frame, types, init)?; } - Ok(self.result.component) + let account_component_metadata_bytes_vec: Vec> = self + .nested_modules + .into_iter() + .flat_map(|t| t.1.account_component_metadata_bytes.map(|slice| slice.to_vec())) + .collect(); + assert!( + account_component_metadata_bytes_vec.len() <= 1, + "unexpected multiple core Wasm module to have account component metadata section", + ); + let account_component_metadata_bytes = + account_component_metadata_bytes_vec.first().map(ToOwned::to_owned); + + let output = FrontendOutput { + component: self.result.component, + account_component_metadata_bytes, + }; + Ok(output) } fn initializer( diff --git a/frontend/wasm/src/lib.rs b/frontend/wasm/src/lib.rs index a9a5e4723..c024c6588 100644 --- a/frontend/wasm/src/lib.rs +++ b/frontend/wasm/src/lib.rs @@ -31,17 +31,29 @@ use wasmparser::WasmFeatures; pub use self::{config::*, error::WasmError}; +/// The output of the frontend Wasm translation stage +pub struct FrontendOutput { + /// The IR component translated from the Wasm + pub component: builtin::ComponentRef, + /// The serialized AccountComponentMetadata (name, description, storage layout, etc.) + pub account_component_metadata_bytes: Option>, +} + /// Translate a valid Wasm core module or Wasm Component Model binary into Miden /// IR Component pub fn translate( wasm: &[u8], config: &WasmTranslationConfig, context: Rc, -) -> WasmResult { +) -> WasmResult { if wasm[4..8] == [0x01, 0x00, 0x00, 0x00] { // Wasm core module // see https://github.com/WebAssembly/component-model/blob/main/design/mvp/Binary.md#component-definitions - translate_module_as_component(wasm, config, context) + let component = translate_module_as_component(wasm, config, context)?; + Ok(FrontendOutput { + component, + account_component_metadata_bytes: None, + }) } else { translate_component(wasm, config, context) } diff --git a/frontend/wasm/src/miden_abi/tx_kernel/account.rs b/frontend/wasm/src/miden_abi/tx_kernel/account.rs index a7b3d1dba..9e42704f7 100644 --- a/frontend/wasm/src/miden_abi/tx_kernel/account.rs +++ b/frontend/wasm/src/miden_abi/tx_kernel/account.rs @@ -16,10 +16,10 @@ pub(crate) const MODULE_PREFIX: &[SymbolNameComponent] = &[ pub const ADD_ASSET: &str = "add_asset"; pub const REMOVE_ASSET: &str = "remove_asset"; pub const GET_ID: &str = "get_id"; -pub const GET_STORAGE_ITEM: &str = "get_storage_item"; -pub const SET_STORAGE_ITEM: &str = "set_storage_item"; -pub const GET_STORAGE_MAP_ITEM: &str = "get_storage_map_item"; -pub const SET_STORAGE_MAP_ITEM: &str = "set_storage_map_item"; +pub const GET_STORAGE_ITEM: &str = "get_item"; +pub const SET_STORAGE_ITEM: &str = "set_item"; +pub const GET_STORAGE_MAP_ITEM: &str = "get_map_item"; +pub const SET_STORAGE_MAP_ITEM: &str = "set_map_item"; pub(crate) fn signatures() -> ModuleFunctionTypeMap { let mut m: ModuleFunctionTypeMap = Default::default(); diff --git a/frontend/wasm/src/module/module_env.rs b/frontend/wasm/src/module/module_env.rs index 3d2c39f4c..7ce0cd5d7 100644 --- a/frontend/wasm/src/module/module_env.rs +++ b/frontend/wasm/src/module/module_env.rs @@ -76,6 +76,9 @@ pub struct ParsedModule<'data> { /// When we're parsing the code section this will be incremented so we know /// which function is currently being defined. code_index: u32, + + /// The serialized AccountComponentMetadata (name, description, storage layout, etc.) + pub account_component_metadata_bytes: Option<&'data [u8]>, } /// Contains function data: byte code and its offset in the module. @@ -210,13 +213,24 @@ impl<'a, 'data> ModuleEnvironment<'a, 'data> { log::warn!("failed to parse name section {:?}", e); } } - Payload::CustomSection(s) => self.dwarf_section(&s), + Payload::CustomSection(s) if s.name().starts_with(".debug_") => self.dwarf_section(&s), + Payload::CustomSection(s) if s.name() == "rodata,miden_account" => { + self.result.account_component_metadata_bytes = Some(s.data()); + } + Payload::CustomSection { .. } => { + // ignore any other custom sections + } + // It's expected that validation will probably reject other // payloads such as `UnknownSection` or those related to the // component model. other => { self.validator.payload(&other).into_diagnostic()?; - unsupported_diag!(diagnostics, "wasm error: unsupported section {:?}", other); + unsupported_diag!( + diagnostics, + "wasm error: unsupported module section {:?}", + other + ); } } Ok(()) @@ -718,9 +732,6 @@ impl<'a, 'data> ModuleEnvironment<'a, 'data> { fn dwarf_section(&mut self, section: &CustomSectionReader<'data>) { let name = section.name(); - if !name.starts_with(".debug_") { - return; - } if !self.config.generate_native_debuginfo && !self.config.parse_wasm_debuginfo { self.result.has_unparsed_debuginfo = true; return; diff --git a/hir-macros/Cargo.toml b/hir-macros/Cargo.toml index c9311110c..061008eb1 100644 --- a/hir-macros/Cargo.toml +++ b/hir-macros/Cargo.toml @@ -19,9 +19,6 @@ proc-macro = true [dependencies] darling = { version = "0.20", features = ["diagnostics"] } Inflector.workspace = true -proc-macro2 = "1.0" -quote = "1.0" - -[dependencies.syn] -version = "2.0" -features = ["full", "parsing", "derive", "extra-traits", "printing"] +proc-macro2.workspace = true +quote.workspace = true +syn.workspace = true diff --git a/hir/Cargo.toml b/hir/Cargo.toml index b3a0b7435..6b2bd4668 100644 --- a/hir/Cargo.toml +++ b/hir/Cargo.toml @@ -33,7 +33,7 @@ midenc-hir-macros.workspace = true midenc-session.workspace = true rustc-hash.workspace = true rustc-demangle = "0.1.19" -semver = { version = "1.0", default-features = false } +semver.workspace = true smallvec.workspace = true thiserror.workspace = true diff --git a/midenc-compile/src/stages/assemble.rs b/midenc-compile/src/stages/assemble.rs index d09a7bec3..f4c61d321 100644 --- a/midenc-compile/src/stages/assemble.rs +++ b/midenc-compile/src/stages/assemble.rs @@ -86,9 +86,12 @@ fn build_package(mast: MastArtifact, outputs: &CodegenOutput, session: &Session) } } + let account_component_metadata_bytes = outputs.account_component_metadata_bytes.clone(); + miden_mast_package::Package { name, mast, manifest, + account_component_metadata_bytes, } } diff --git a/midenc-compile/src/stages/codegen.rs b/midenc-compile/src/stages/codegen.rs index e9f609878..aa3f27ac8 100644 --- a/midenc-compile/src/stages/codegen.rs +++ b/midenc-compile/src/stages/codegen.rs @@ -18,6 +18,8 @@ pub struct CodegenOutput { pub component: Arc, pub link_libraries: Vec>, pub link_packages: BTreeMap>, + /// The serialized AccountComponentMetadata (name, description, storage layout, etc.) + pub account_component_metadata_bytes: Option>, } /// Perform code generation on the possibly-linked output of previous stages @@ -76,6 +78,7 @@ impl Stage for CodegenStage { component: Arc::from(masm_component), link_libraries, link_packages, + account_component_metadata_bytes: linker_output.account_component_metadata_bytes, }) } } diff --git a/midenc-compile/src/stages/link.rs b/midenc-compile/src/stages/link.rs index 3f5f30f80..697a77fc1 100644 --- a/midenc-compile/src/stages/link.rs +++ b/midenc-compile/src/stages/link.rs @@ -1,5 +1,6 @@ use alloc::{borrow::ToOwned, collections::BTreeMap, sync::Arc, vec::Vec}; +use midenc_frontend_wasm::FrontendOutput; use midenc_hir::{interner::Symbol, BuilderExt, OpBuilder, SourceSpan}; #[cfg(feature = "std")] use midenc_session::Path; @@ -16,6 +17,8 @@ pub struct LinkOutput { pub world: builtin::WorldRef, /// The IR component which is the primary input being compiled pub component: builtin::ComponentRef, + /// The serialized AccountComponentMetadata (name, description, storage layout, etc.) + pub account_component_metadata_bytes: Option>, /// The set of Miden Assembly sources to be provided to the assembler to satisfy link-time /// dependencies pub masm: Vec>, @@ -116,7 +119,10 @@ impl Stage for LinkStage { // Parse and translate the component WebAssembly using the constructed World let component_wasm = component_wasm.ok_or_else(|| Report::msg("expected at least one wasm input"))?; - let component = match component_wasm { + let FrontendOutput { + component, + account_component_metadata_bytes, + } = match component_wasm { #[cfg(feature = "std")] InputType::Real(path) => parse_hir_from_wasm_file(&path, world, context.clone())?, #[cfg(not(feature = "std"))] @@ -134,6 +140,7 @@ impl Stage for LinkStage { let mut link_output = LinkOutput { world, component, + account_component_metadata_bytes, masm, mast: Vec::with_capacity(context.session().options.link_libraries.len()), packages, @@ -161,7 +168,7 @@ fn parse_hir_from_wasm_file( path: &Path, world: builtin::WorldRef, context: Rc, -) -> CompilerResult { +) -> CompilerResult { use std::io::Read; log::debug!("parsing hir from wasm at {}", path.display()); @@ -183,12 +190,12 @@ fn parse_hir_from_wasm_bytes( bytes: &[u8], context: Rc, config: &wasm::WasmTranslationConfig, -) -> CompilerResult { - let component = wasm::translate(bytes, config, context.clone())?; +) -> CompilerResult { + let outpub = wasm::translate(bytes, config, context.clone())?; log::debug!( "parsed hir component from wasm bytes with first module name: {}", - component.borrow().id() + outpub.component.borrow().id() ); - Ok(component) + Ok(outpub) } diff --git a/midenc-debug/src/config.rs b/midenc-debug/src/config.rs index b8f2dfd31..3f9cc5d7f 100644 --- a/midenc-debug/src/config.rs +++ b/midenc-debug/src/config.rs @@ -187,7 +187,7 @@ where /* enable_tracing= */ true, /* enable_debugging= */ true, ) - .map(|exec_opts| exec_opts.with_debugging()) + .map(|exec_opts| exec_opts.with_debugging(true)) .map_err(|err| serde::de::Error::custom(format!("invalid execution options: {err}"))) }) } diff --git a/midenc-debug/src/exec/state.rs b/midenc-debug/src/exec/state.rs index 9d4e2ca88..894f95275 100644 --- a/midenc-debug/src/exec/state.rs +++ b/midenc-debug/src/exec/state.rs @@ -93,7 +93,9 @@ impl DebugExecutor { let chiplets0 = chiplets.clone(); let get_state_at = move |context, clk| chiplets0.memory.get_state_at(context, clk); let chiplets1 = chiplets.clone(); - let get_word = move |context, addr| chiplets1.memory.get_word(context, addr); + let get_word = move |context, addr| { + chiplets1.memory.get_word(context, addr).map_err(ExecutionError::MemoryError) + }; let get_value = move |context, addr| chiplets.memory.get_value(context, addr); let memory = MemoryChiplet { diff --git a/sdk/base-macros/Cargo.toml b/sdk/base-macros/Cargo.toml new file mode 100644 index 000000000..390d507de --- /dev/null +++ b/sdk/base-macros/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "miden-base-macros" +description = "Provides proc macro support for Miden rollup SDK" +version.workspace = true +rust-version.workspace = true +authors.workspace = true +repository.workspace = true +categories.workspace = true +keywords.workspace = true +license.workspace = true +readme.workspace = true +edition.workspace = true + +[lib] +proc-macro = true + +[dependencies] +proc-macro2.workspace = true +quote.workspace = true +miden-objects = { version = "0.8", default-features = false } +semver.workspace = true +toml.workspace = true +syn.workspace = true + +[dev-dependencies] +miden-base = { version = "0.0.7", path = "../base" } +miden-objects = { version = "0.8", features = ["std"] } +expect-test.workspace = true diff --git a/sdk/base-macros/src/account_component_metadata.rs b/sdk/base-macros/src/account_component_metadata.rs new file mode 100644 index 000000000..dd9702e9c --- /dev/null +++ b/sdk/base-macros/src/account_component_metadata.rs @@ -0,0 +1,103 @@ +use std::collections::BTreeSet; + +use miden_objects::account::{ + AccountComponentMetadata, AccountType, MapRepresentation, StorageEntry, StorageValueName, + TemplateType, WordRepresentation, +}; +use semver::Version; + +pub struct AccountComponentMetadataBuilder { + /// The human-readable name of the component. + name: String, + + /// A brief description of what this component is and how it works. + description: String, + + /// The version of the component using semantic versioning. + /// This can be used to track and manage component upgrades. + version: Version, + + /// A set of supported target account types for this component. + supported_types: BTreeSet, + + /// A list of storage entries defining the component's storage layout and initialization + /// values. + storage: Vec, +} + +impl AccountComponentMetadataBuilder { + /// Adds a supported account type to this component metadata. + pub fn add_supported_type(&mut self, account_type: AccountType) { + self.supported_types.insert(account_type); + } + + pub fn new(name: String, version: Version, description: String) -> Self { + AccountComponentMetadataBuilder { + name, + description, + version, + supported_types: BTreeSet::new(), + storage: Vec::new(), + } + } + + pub fn add_storage_entry( + &mut self, + name: &str, + description: Option, + slot: u8, + field_type: &syn::Type, + field_type_attr: Option, + ) { + let type_path = if let syn::Type::Path(type_path) = field_type { + type_path + } else { + panic!("failed to get type path {:?}", field_type) + }; + + if let Some(segment) = type_path.path.segments.last() { + let type_name = segment.ident.to_string(); + let storage_value_name = + StorageValueName::new(name).expect("well formed storage value name"); + match type_name.as_str() { + "StorageMap" => { + let mut map_repr = MapRepresentation::new(vec![], storage_value_name); + if let Some(description) = description { + map_repr = map_repr.with_description(description); + } + self.storage.push(StorageEntry::new_map(slot, map_repr)); + } + "Value" => { + let r#type = if let Some(field_type) = field_type_attr { + TemplateType::new(&field_type) + .unwrap_or_else(|_| panic!("well formed attribute type {field_type}")) + } else { + TemplateType::native_word() + }; + self.storage.push(StorageEntry::new_value( + slot, + WordRepresentation::Template { + r#type, + name: storage_value_name, + description, + }, + )); + } + _ => panic!("unexpected field type: {}", type_name), + } + } else { + panic!("failed to get last segment of the type path {:?}", type_path) + } + } + + pub fn build(self) -> AccountComponentMetadata { + AccountComponentMetadata::new( + self.name, + self.description, + self.version, + self.supported_types, + self.storage, + ) + .expect("failed to build AccountComponentMetadata") + } +} diff --git a/sdk/base-macros/src/lib.rs b/sdk/base-macros/src/lib.rs new file mode 100644 index 000000000..480b74788 --- /dev/null +++ b/sdk/base-macros/src/lib.rs @@ -0,0 +1,400 @@ +#![feature(proc_macro_span)] + +use std::{fs, str::FromStr}; + +use account_component_metadata::AccountComponentMetadataBuilder; +use miden_objects::{account::AccountType, utils::Serializable}; +use proc_macro::Span; +use proc_macro2::Literal; +use quote::quote; +use semver::Version; +use syn::{parse_macro_input, spanned::Spanned}; +use toml::Value; + +extern crate proc_macro; + +mod account_component_metadata; + +struct CargoMetadata { + name: String, + version: Version, + description: String, + /// Custom Miden field: list of supported account types + supported_types: Vec, +} + +struct StorageAttributeArgs { + slot: u8, + description: Option, + type_attr: Option, +} + +/// Finds and parses Cargo.toml to extract package metadata. +fn get_package_metadata(call_site_span: Span) -> Result { + let source_file_path = call_site_span.source_file().path(); + let Some(mut current_dir) = source_file_path.parent() else { + // call_site is empty under rust-analyzer + // return some CargoMetadata to make rust-analyzer happy + return Ok(CargoMetadata { + name: String::new(), + version: Version::new(0, 0, 1), + description: String::new(), + supported_types: vec![], + }); + }; + + let cargo_toml_path = loop { + let potential_path = current_dir.join("Cargo.toml"); + if potential_path.is_file() { + break potential_path; + } + match current_dir.parent() { + Some(parent) => current_dir = parent, + None => { + return Err(syn::Error::new( + call_site_span.into(), + format!( + "Could not find Cargo.toml searching upwards from {}", + source_file_path.display() + ), + )) + } + } + }; + + let cargo_toml_content = fs::read_to_string(&cargo_toml_path).map_err(|e| { + syn::Error::new( + call_site_span.into(), + format!("Failed to read {}: {}", cargo_toml_path.display(), e), + ) + })?; + let cargo_toml: Value = cargo_toml_content.parse::().map_err(|e| { + syn::Error::new( + call_site_span.into(), + format!("Failed to parse {}: {}", cargo_toml_path.display(), e), + ) + })?; + + let package_table = cargo_toml.get("package").ok_or_else(|| { + syn::Error::new( + call_site_span.into(), + format!( + "Cargo.toml ({}) does not contain a [package] table", + cargo_toml_path.display() + ), + ) + })?; + + let name = package_table + .get("name") + .and_then(|n| n.as_str()) + .map(String::from) + .ok_or_else(|| { + syn::Error::new( + call_site_span.into(), + format!("Missing 'name' field in [package] table of {}", cargo_toml_path.display()), + ) + })?; + + let version_str = package_table + .get("version") + .and_then(|v| v.as_str()) + .or_else(|| { + let base = env!("CARGO_MANIFEST_DIR"); + if base.ends_with(cargo_toml_path.parent().unwrap().to_str().unwrap()) { + // Special case for tests within this crate where version.workspace = true + Some("0.0.0") + } else { + None + } + }) + .ok_or_else(|| { + syn::Error::new( + call_site_span.into(), + format!( + "Missing 'version' field in [package] table of {} (version.workspace = true \ + is not yet supported for external crates)", + cargo_toml_path.display() + ), + ) + })?; + + let version = Version::parse(version_str).map_err(|e| { + syn::Error::new( + call_site_span.into(), + format!( + "Failed to parse version '{}' from {}: {}", + version_str, + cargo_toml_path.display(), + e + ), + ) + })?; + + let description = package_table + .get("description") + .and_then(|d| d.as_str()) + .map(String::from) + .unwrap_or_default(); + + let supported_types = cargo_toml + .get("package") + .and_then(|pkg| pkg.get("metadata")) + .and_then(|m| m.get("miden")) + .and_then(|m| m.get("supported-types")) + .and_then(|st| st.as_array()) + .map(|arr| { + arr.iter() + .filter_map(|v| v.as_str().map(|s| s.to_string())) + .collect::>() + }) + .unwrap_or_default(); + + Ok(CargoMetadata { + name, + version, + description, + supported_types, + }) +} + +/// Parses the arguments inside a `#[storage(...)]` attribute. +fn parse_storage_attribute( + attr: &syn::Attribute, +) -> Result, syn::Error> { + if !attr.path().is_ident("storage") { + return Ok(None); + } + + let mut slot_value = None; + let mut description_value = None; + let mut type_value = None; + + let list = match &attr.meta { + syn::Meta::List(list) => list, + _ => return Err(syn::Error::new(attr.span(), "Expected #[storage(...)]")), + }; + + // Use a custom parser with parse_args_with to handle mixed formats + let parser = syn::meta::parser(|meta| { + if meta.path.is_ident("slot") { + // Handle slot(N) format + // meta.input is the token stream *inside* the parentheses + let value_stream; + syn::parenthesized!(value_stream in meta.input); + let lit: syn::LitInt = value_stream.parse()?; + slot_value = Some(lit.base10_parse::()?); + Ok(()) + } else if meta.path.is_ident("description") { + // Handle description = "..." format + let value = meta.value()?; + let lit: syn::LitStr = value.parse()?; + description_value = Some(lit.value()); + Ok(()) + } else if meta.path.is_ident("type") { + // Handle type = "..." format + let value = meta.value()?; + let lit: syn::LitStr = value.parse()?; + type_value = Some(lit.value()); + Ok(()) + } else { + Err(meta.error("unrecognized storage attribute argument")) + } + }); + + list.parse_args_with(parser)?; + + let slot = slot_value.ok_or_else(|| { + syn::Error::new(attr.span(), "missing required `slot(N)` argument in `storage` attribute") + })?; + + Ok(Some(StorageAttributeArgs { + slot, + description: description_value, + type_attr: type_value, + })) +} + +/// Processes struct fields, extracts storage info, updates metadata, and generates Default impl parts. +fn process_fields( + fields: &mut syn::FieldsNamed, + builder: &mut AccountComponentMetadataBuilder, +) -> Result, syn::Error> { + let mut field_inits = Vec::new(); + let mut errors = Vec::new(); + + for field in fields.named.iter_mut() { + let field_name = field.ident.as_ref().expect("Named field must have an identifier"); + let field_type = &field.ty; + let mut storage_args = None; + let mut attr_indices_to_remove = Vec::new(); + + for (attr_idx, attr) in field.attrs.iter().enumerate() { + match parse_storage_attribute(attr) { + Ok(Some(args)) => { + if storage_args.is_some() { + errors.push(syn::Error::new(attr.span(), "duplicate `storage` attribute")); + } + storage_args = Some(args); + attr_indices_to_remove.push(attr_idx); + } + Ok(None) => { /* Not a storage attribute */ } + Err(e) => errors.push(e), + } + } + + // Remove storage attributes from the original struct definition + for (removed_count, idx_to_remove) in attr_indices_to_remove.into_iter().enumerate() { + field.attrs.remove(idx_to_remove - removed_count); + } + + if let Some(args) = storage_args { + let slot = args.slot; + field_inits.push(quote! { + #field_name: #field_type { slot: #slot } + }); + + builder.add_storage_entry( + &field_name.to_string(), + args.description, + args.slot, + field_type, + args.type_attr, + ); + } else { + // We require all fields to have `#[storage]`. + errors + .push(syn::Error::new(field.span(), "field is missing the `#[storage]` attribute")); + } + } + + if let Some(first_error) = errors.into_iter().next() { + Err(first_error) + } else { + Ok(field_inits) + } +} + +/// Generates the `impl Default for #struct_name { ... }` block. +fn generate_default_impl( + struct_name: &syn::Ident, + field_inits: &[proc_macro2::TokenStream], +) -> proc_macro2::TokenStream { + quote! { + impl Default for #struct_name { + fn default() -> Self { + Self { + #(#field_inits),* + } + } + } + } +} + +/// Generates the static byte array containing serialized metadata with the `#[link_section]` attribute. +fn generate_link_section(metadata_bytes: &[u8]) -> proc_macro2::TokenStream { + let link_section_bytes_len = metadata_bytes.len(); + let encoded_bytes_str = Literal::byte_string(metadata_bytes); + + quote! { + #[unsafe( + // to test it in the integration(this crate) tests the section name needs to make mach-o section + // specifier happy and to have "segment and section separated by comma" + link_section = "rodata,miden_account" + )] + #[doc(hidden)] + #[allow(clippy::octal_escapes)] + pub static __MIDEN_ACCOUNT_COMPONENT_METADATA_BYTES: [u8; #link_section_bytes_len] = *#encoded_bytes_str; + } +} + +/// Account component procedural macro. +/// +/// Derives `Default` for the struct and generates AccountComponentTemplate, serializes it into a +/// static byte array `__MIDEN_ACCOUNT_COMPONENT_METADATA_BYTES` containing serialized metadata +/// placed in a specific link section. +/// +/// ``` +/// #[component] +/// struct TestComponent { +/// #[storage( +/// slot(0), +/// description = "test value", +/// type = "auth::rpo_falcon512::pub_key" +/// )] +/// owner_public_key: Value, +/// +/// #[storage(slot(1), description = "test map")] +/// foo_map: StorageMap, +/// +/// #[storage(slot(2))] +/// without_description: Value, +/// } +/// ``` +#[proc_macro_attribute] +pub fn component( + _attr: proc_macro::TokenStream, + item: proc_macro::TokenStream, +) -> proc_macro::TokenStream { + let call_site_span = Span::call_site(); + + // Contains the struct with #[storage] attributes removed + let mut input_struct = parse_macro_input!(item as syn::ItemStruct); + let struct_name = &input_struct.ident; + + // Ensure the struct has named fields + let fields = match &mut input_struct.fields { + syn::Fields::Named(fields) => fields, + _ => { + return syn::Error::new( + input_struct.fields.span(), + "The `component` macro only supports structs with named fields.", + ) + .to_compile_error() + .into(); + } + }; + + let metadata = match get_package_metadata(call_site_span) { + Ok(m) => m, + Err(e) => return e.to_compile_error().into(), + }; + + let mut acc_builder = + AccountComponentMetadataBuilder::new(metadata.name, metadata.version, metadata.description); + + // Populate supported account types from Cargo.toml + for st in &metadata.supported_types { + match AccountType::from_str(st) { + Ok(at) => acc_builder.add_supported_type(at), + Err(err) => { + return syn::Error::new( + call_site_span.into(), + format!("Invalid account type '{}' in supported-types: {}", st, err), + ) + .to_compile_error() + .into() + } + } + } + + // Process fields: extract storage info, generate Default parts, update builder + let field_inits = match process_fields(fields, &mut acc_builder) { + Ok(inits) => inits, + Err(e) => return e.to_compile_error().into(), + }; + + let default_impl = generate_default_impl(struct_name, &field_inits); + + let acc_component_metadata_bytes = acc_builder.build().to_bytes(); + + let link_section = generate_link_section(&acc_component_metadata_bytes); + + let output = quote! { + #input_struct + #default_impl + #link_section + }; + + proc_macro::TokenStream::from(output) +} diff --git a/sdk/base-sys/masm/miden/account.masm b/sdk/base-sys/masm/miden/account.masm index 2655e49f8..5e99756b1 100644 --- a/sdk/base-sys/masm/miden/account.masm +++ b/sdk/base-sys/masm/miden/account.masm @@ -14,3 +14,26 @@ export.get_id push.1 assertz end + +export.get_item + push.1 + assertz +end + +export.set_item + push.1 + assertz +end + +export.get_map_item + push.1 + assertz +end + + +export.set_map_item + push.1 + assertz +end + + diff --git a/sdk/base-sys/src/bindings/storage.rs b/sdk/base-sys/src/bindings/storage.rs index ba51efdc3..6542673be 100644 --- a/sdk/base-sys/src/bindings/storage.rs +++ b/sdk/base-sys/src/bindings/storage.rs @@ -1,22 +1,24 @@ use miden_stdlib_sys::{Felt, Word}; +use super::StorageCommitmentRoot; + #[allow(improper_ctypes)] #[link(wasm_import_module = "miden:core-import/account@1.0.0")] extern "C" { - #[link_name = "get-storage-item"] + #[link_name = "get-item"] pub fn extern_get_storage_item(index: Felt, ptr: *mut Word); - #[link_name = "set-storage-item"] + #[link_name = "set-item"] pub fn extern_set_storage_item( index: Felt, v0: Felt, v1: Felt, v2: Felt, v3: Felt, - ptr: *mut (Word, Word), + ptr: *mut (StorageCommitmentRoot, Word), ); - #[link_name = "get-storage-map-item"] + #[link_name = "get-map-item"] pub fn extern_get_storage_map_item( index: Felt, k0: Felt, @@ -26,7 +28,7 @@ extern "C" { ptr: *mut Word, ); - #[link_name = "set-storage-map-item"] + #[link_name = "set-map-item"] pub fn extern_set_storage_map_item( index: Felt, k0: Felt, @@ -37,7 +39,7 @@ extern "C" { v1: Felt, v2: Felt, v3: Felt, - ptr: *mut (Word, Word), + ptr: *mut (StorageCommitmentRoot, Word), ); } @@ -73,9 +75,9 @@ pub fn get_item(index: u8) -> Word { /// /// Panics if: /// - the index of the item is out of bounds. -pub fn set_item(index: u8, value: Word) -> (Word, Word) { +pub fn set_item(index: u8, value: Word) -> (StorageCommitmentRoot, Word) { unsafe { - let mut ret_area = ::core::mem::MaybeUninit::<(Word, Word)>::uninit(); + let mut ret_area = ::core::mem::MaybeUninit::<(StorageCommitmentRoot, Word)>::uninit(); extern_set_storage_item( index.into(), value[0], @@ -101,7 +103,7 @@ pub fn set_item(index: u8, value: Word) -> (Word, Word) { /// Panics if: /// - the index for the map is out of bounds, meaning > 255. /// - the slot item at index is not a map. -pub fn get_map_item(index: u8, key: Word) -> Word { +pub fn get_map_item(index: u8, key: &Word) -> Word { unsafe { let mut ret_area = ::core::mem::MaybeUninit::::uninit(); extern_get_storage_map_item( @@ -131,9 +133,9 @@ pub fn get_map_item(index: u8, key: Word) -> Word { /// Panics if: /// - the index for the map is out of bounds, meaning > 255. /// - the slot item at index is not a map. -pub fn set_map_item(index: u8, key: Word, value: Word) -> (Word, Word) { +pub fn set_map_item(index: u8, key: Word, value: Word) -> (StorageCommitmentRoot, Word) { unsafe { - let mut ret_area = ::core::mem::MaybeUninit::<(Word, Word)>::uninit(); + let mut ret_area = ::core::mem::MaybeUninit::<(StorageCommitmentRoot, Word)>::uninit(); extern_set_storage_map_item( index.into(), key[0], diff --git a/sdk/base-sys/src/bindings/types.rs b/sdk/base-sys/src/bindings/types.rs index 7cc07e1be..2a668a8ca 100644 --- a/sdk/base-sys/src/bindings/types.rs +++ b/sdk/base-sys/src/bindings/types.rs @@ -27,8 +27,26 @@ impl CoreAsset { CoreAsset { inner: word.into() } } - pub fn as_word(&self) -> Word { - self.inner + pub fn as_word(&self) -> &Word { + &self.inner + } +} + +impl From for CoreAsset { + fn from(value: Word) -> Self { + Self::new(value) + } +} + +impl From for Word { + fn from(val: CoreAsset) -> Self { + val.inner + } +} + +impl AsRef for CoreAsset { + fn as_ref(&self) -> &Word { + &self.inner } } @@ -49,3 +67,6 @@ pub struct NoteId(pub(crate) Felt); pub struct NoteType { pub inner: Felt, } + +#[repr(transparent)] +pub struct StorageCommitmentRoot(Word); diff --git a/sdk/base/Cargo.toml b/sdk/base/Cargo.toml new file mode 100644 index 000000000..bc6615d38 --- /dev/null +++ b/sdk/base/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "miden-base" +description = "Miden rollup Rust SDK" +version.workspace = true +rust-version.workspace = true +authors.workspace = true +repository.workspace = true +categories.workspace = true +keywords.workspace = true +license.workspace = true +readme.workspace = true +edition.workspace = true + +[dependencies] +miden-base-sys = { version = "0.0.7", path = "../base-sys", features = [ + "bindings", +] } +miden-stdlib-sys = { version = "0.0.7", path = "../stdlib-sys" } +miden-base-macros = { version = "0.0.7", path = "../base-macros" } diff --git a/sdk/base/src/lib.rs b/sdk/base/src/lib.rs new file mode 100644 index 000000000..9f714e799 --- /dev/null +++ b/sdk/base/src/lib.rs @@ -0,0 +1,6 @@ +#![no_std] + +mod types; + +pub use miden_base_macros::component; +pub use types::*; diff --git a/sdk/base/src/types/mod.rs b/sdk/base/src/types/mod.rs new file mode 100644 index 000000000..21ee2dffa --- /dev/null +++ b/sdk/base/src/types/mod.rs @@ -0,0 +1,3 @@ +mod storage; + +pub use storage::*; diff --git a/sdk/base/src/types/storage.rs b/sdk/base/src/types/storage.rs new file mode 100644 index 000000000..4037c78f5 --- /dev/null +++ b/sdk/base/src/types/storage.rs @@ -0,0 +1,60 @@ +use miden_base_sys::bindings::{storage, StorageCommitmentRoot}; +use miden_stdlib_sys::Word; + +pub trait ValueAccess { + fn read(&self) -> V; + fn write(&self, value: V) -> (StorageCommitmentRoot, V); +} + +pub struct Value { + pub slot: u8, +} + +impl + From> ValueAccess for Value { + /// Returns an item value from the account storage. + #[inline(always)] + fn read(&self) -> V { + storage::get_item(self.slot).into() + } + + /// Sets an item `value` in the account storage and returns (new_root, old_value) + /// Where: + /// - new_root is the new storage commitment. + /// - old_value is the previous value of the item. + #[inline(always)] + fn write(&self, value: V) -> (StorageCommitmentRoot, V) { + let (root, old_word) = storage::set_item(self.slot, value.into()); + (root, old_word.into()) + } +} + +pub trait StorageMapAccess { + /// Returns a map item value for `key` from the account storage. + fn get(&self, key: &K) -> V; + /// Sets a map item `value` for `key` in the account storage and returns (old_root, old_value) + fn set(&self, key: K, value: V) -> (StorageCommitmentRoot, V); +} + +pub struct StorageMap { + pub slot: u8, +} + +impl + AsRef, V: From + Into> StorageMapAccess + for StorageMap +{ + /// Returns a map item value from the account storage. + #[inline(always)] + fn get(&self, key: &K) -> V { + storage::get_map_item(self.slot, key.as_ref()).into() + } + + /// Sets a map item `value` in the account storage and returns (old_root, old_value) + /// Where: + /// - old_root is the old map root. + /// - old_value is the previous value of the item. + #[inline(always)] + fn set(&self, key: K, value: V) -> (StorageCommitmentRoot, V) { + let (root, old_word) = storage::set_map_item(self.slot, key.into(), value.into()); + (root, old_word.into()) + } +} diff --git a/sdk/sdk/Cargo.toml b/sdk/sdk/Cargo.toml index de6848f3b..5ea69f91d 100644 --- a/sdk/sdk/Cargo.toml +++ b/sdk/sdk/Cargo.toml @@ -17,4 +17,7 @@ crate-type = ["rlib"] [dependencies] miden-sdk-alloc = { version = "0.0.7", path = "../alloc" } miden-stdlib-sys = { version = "0.0.7", path = "../stdlib-sys" } -miden-base-sys = { version = "0.0.7", path = "../base-sys", features = ["bindings"] } +miden-base-sys = { version = "0.0.7", path = "../base-sys", features = [ + "bindings", +] } +miden-base = { version = "0.0.7", path = "../base" } diff --git a/sdk/sdk/src/lib.rs b/sdk/sdk/src/lib.rs index a9fee999a..9efa5d4f7 100644 --- a/sdk/sdk/src/lib.rs +++ b/sdk/sdk/src/lib.rs @@ -1,6 +1,7 @@ #![no_std] #![deny(warnings)] +pub use miden_base::*; pub use miden_base_sys::bindings::*; pub use miden_sdk_alloc::BumpAlloc; pub use miden_stdlib_sys::*; diff --git a/sdk/stdlib-sys/src/intrinsics/word.rs b/sdk/stdlib-sys/src/intrinsics/word.rs index 0b65bf554..454290a24 100644 --- a/sdk/stdlib-sys/src/intrinsics/word.rs +++ b/sdk/stdlib-sys/src/intrinsics/word.rs @@ -1,8 +1,9 @@ use core::ops::{Index, IndexMut}; use super::felt::Felt; +use crate::felt; -#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug)] +#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Debug)] #[repr(C, align(32))] pub struct Word { pub inner: (Felt, Felt, Felt, Felt), @@ -27,6 +28,18 @@ impl From for [Felt; 4] { [word.inner.0, word.inner.1, word.inner.2, word.inner.3] } } +impl From for Word { + fn from(value: Felt) -> Self { + Word { + inner: (felt!(0), felt!(0), felt!(0), value), + } + } +} +impl From for Felt { + fn from(value: Word) -> Self { + value.inner.3 + } +} impl Index for Word { type Output = Felt; @@ -53,3 +66,9 @@ impl IndexMut for Word { } } } + +impl AsRef for Word { + fn as_ref(&self) -> &Word { + self + } +} diff --git a/tests/integration/Cargo.toml b/tests/integration/Cargo.toml index 1da7fa456..be32d51a8 100644 --- a/tests/integration/Cargo.toml +++ b/tests/integration/Cargo.toml @@ -40,6 +40,7 @@ sha2 = "0.10" walkdir = "2.5.0" [dev-dependencies] +miden-objects = { version = "0.8", features = ["std"] } blake3 = "1.5" concat-idents = "1.1" miden-core.workspace = true diff --git a/tests/integration/expected/examples/storage_example.hir b/tests/integration/expected/examples/storage_example.hir index 949b62d93..b93bf86c6 100644 --- a/tests/integration/expected/examples/storage_example.hir +++ b/tests/integration/expected/examples/storage_example.hir @@ -1,874 +1,752 @@ builtin.component miden:storage-example/foo@1.0.0 { builtin.module public @storage_example { - private builtin.function @miden_base_sys::bindings::storage::extern_get_storage_item(v677: felt, v678: i32) { - ^block85(v677: felt, v678: i32): - v679, v680, v681, v682 = hir.exec @miden/account/get_storage_item(v677) : felt, felt, felt, felt - v683 = hir.bitcast v678 : u32; - v684 = hir.int_to_ptr v683 : ptr; - hir.store v684, v679; - v685 = arith.constant 4 : u32; - v686 = arith.add v683, v685 : u32 #[overflow = checked]; - v687 = hir.int_to_ptr v686 : ptr; - hir.store v687, v680; - v688 = arith.constant 8 : u32; - v689 = arith.add v683, v688 : u32 #[overflow = checked]; - v690 = hir.int_to_ptr v689 : ptr; - hir.store v690, v681; - v691 = arith.constant 12 : u32; - v692 = arith.add v683, v691 : u32 #[overflow = checked]; - v693 = hir.int_to_ptr v692 : ptr; - hir.store v693, v682; + private builtin.function @miden_base_sys::bindings::storage::extern_get_storage_item(v0: felt, v1: i32) { + ^block5(v0: felt, v1: i32): + v2, v3, v4, v5 = hir.exec @miden/account/get_item(v0) : felt, felt, felt, felt + v6 = hir.bitcast v1 : u32; + v7 = hir.int_to_ptr v6 : ptr; + hir.store v7, v2; + v8 = arith.constant 4 : u32; + v9 = arith.add v6, v8 : u32 #[overflow = checked]; + v10 = hir.int_to_ptr v9 : ptr; + hir.store v10, v3; + v11 = arith.constant 8 : u32; + v12 = arith.add v6, v11 : u32 #[overflow = checked]; + v13 = hir.int_to_ptr v12 : ptr; + hir.store v13, v4; + v14 = arith.constant 12 : u32; + v15 = arith.add v6, v14 : u32 #[overflow = checked]; + v16 = hir.int_to_ptr v15 : ptr; + hir.store v16, v5; builtin.ret ; }; - private builtin.function @miden_base_sys::bindings::storage::extern_set_storage_item(v694: felt, v695: felt, v696: felt, v697: felt, v698: felt, v699: i32) { - ^block89(v694: felt, v695: felt, v696: felt, v697: felt, v698: felt, v699: i32): - v700, v701, v702, v703, v704, v705, v706, v707 = hir.exec @miden/account/set_storage_item(v694, v695, v696, v697, v698) : felt, felt, felt, felt, felt, felt, felt, felt - v708 = hir.bitcast v699 : u32; - v709 = hir.int_to_ptr v708 : ptr; - hir.store v709, v700; - v710 = arith.constant 4 : u32; - v711 = arith.add v708, v710 : u32 #[overflow = checked]; - v712 = hir.int_to_ptr v711 : ptr; - hir.store v712, v701; - v713 = arith.constant 8 : u32; - v714 = arith.add v708, v713 : u32 #[overflow = checked]; - v715 = hir.int_to_ptr v714 : ptr; - hir.store v715, v702; - v716 = arith.constant 12 : u32; - v717 = arith.add v708, v716 : u32 #[overflow = checked]; - v718 = hir.int_to_ptr v717 : ptr; - hir.store v718, v703; - v719 = arith.constant 16 : u32; - v720 = arith.add v708, v719 : u32 #[overflow = checked]; - v721 = hir.int_to_ptr v720 : ptr; - hir.store v721, v704; - v722 = arith.constant 20 : u32; - v723 = arith.add v708, v722 : u32 #[overflow = checked]; - v724 = hir.int_to_ptr v723 : ptr; - hir.store v724, v705; - v725 = arith.constant 24 : u32; - v726 = arith.add v708, v725 : u32 #[overflow = checked]; - v727 = hir.int_to_ptr v726 : ptr; - hir.store v727, v706; - v728 = arith.constant 28 : u32; - v729 = arith.add v708, v728 : u32 #[overflow = checked]; - v730 = hir.int_to_ptr v729 : ptr; - hir.store v730, v707; - builtin.ret ; - }; - - private builtin.function @miden_base_sys::bindings::storage::extern_get_storage_map_item(v731: felt, v732: felt, v733: felt, v734: felt, v735: felt, v736: i32) { - ^block91(v731: felt, v732: felt, v733: felt, v734: felt, v735: felt, v736: i32): - v737, v738, v739, v740 = hir.exec @miden/account/get_storage_map_item(v731, v732, v733, v734, v735) : felt, felt, felt, felt - v741 = hir.bitcast v736 : u32; - v742 = hir.int_to_ptr v741 : ptr; - hir.store v742, v737; - v743 = arith.constant 4 : u32; - v744 = arith.add v741, v743 : u32 #[overflow = checked]; - v745 = hir.int_to_ptr v744 : ptr; - hir.store v745, v738; - v746 = arith.constant 8 : u32; - v747 = arith.add v741, v746 : u32 #[overflow = checked]; - v748 = hir.int_to_ptr v747 : ptr; - hir.store v748, v739; - v749 = arith.constant 12 : u32; - v750 = arith.add v741, v749 : u32 #[overflow = checked]; - v751 = hir.int_to_ptr v750 : ptr; - hir.store v751, v740; + private builtin.function @miden_base_sys::bindings::storage::extern_get_storage_map_item(v17: felt, v18: felt, v19: felt, v20: felt, v21: felt, v22: i32) { + ^block9(v17: felt, v18: felt, v19: felt, v20: felt, v21: felt, v22: i32): + v23, v24, v25, v26 = hir.exec @miden/account/get_map_item(v17, v18, v19, v20, v21) : felt, felt, felt, felt + v27 = hir.bitcast v22 : u32; + v28 = hir.int_to_ptr v27 : ptr; + hir.store v28, v23; + v29 = arith.constant 4 : u32; + v30 = arith.add v27, v29 : u32 #[overflow = checked]; + v31 = hir.int_to_ptr v30 : ptr; + hir.store v31, v24; + v32 = arith.constant 8 : u32; + v33 = arith.add v27, v32 : u32 #[overflow = checked]; + v34 = hir.int_to_ptr v33 : ptr; + hir.store v34, v25; + v35 = arith.constant 12 : u32; + v36 = arith.add v27, v35 : u32 #[overflow = checked]; + v37 = hir.int_to_ptr v36 : ptr; + hir.store v37, v26; builtin.ret ; }; - private builtin.function @miden_base_sys::bindings::storage::extern_set_storage_map_item(v752: felt, v753: felt, v754: felt, v755: felt, v756: felt, v757: felt, v758: felt, v759: felt, v760: felt, v761: i32) { - ^block93(v752: felt, v753: felt, v754: felt, v755: felt, v756: felt, v757: felt, v758: felt, v759: felt, v760: felt, v761: i32): - v762, v763, v764, v765, v766, v767, v768, v769 = hir.exec @miden/account/set_storage_map_item(v752, v753, v754, v755, v756, v757, v758, v759, v760) : felt, felt, felt, felt, felt, felt, felt, felt - v770 = hir.bitcast v761 : u32; - v771 = hir.int_to_ptr v770 : ptr; - hir.store v771, v762; - v772 = arith.constant 4 : u32; - v773 = arith.add v770, v772 : u32 #[overflow = checked]; - v774 = hir.int_to_ptr v773 : ptr; - hir.store v774, v763; - v775 = arith.constant 8 : u32; - v776 = arith.add v770, v775 : u32 #[overflow = checked]; - v777 = hir.int_to_ptr v776 : ptr; - hir.store v777, v764; - v778 = arith.constant 12 : u32; - v779 = arith.add v770, v778 : u32 #[overflow = checked]; - v780 = hir.int_to_ptr v779 : ptr; - hir.store v780, v765; - v781 = arith.constant 16 : u32; - v782 = arith.add v770, v781 : u32 #[overflow = checked]; - v783 = hir.int_to_ptr v782 : ptr; - hir.store v783, v766; - v784 = arith.constant 20 : u32; - v785 = arith.add v770, v784 : u32 #[overflow = checked]; - v786 = hir.int_to_ptr v785 : ptr; - hir.store v786, v767; - v787 = arith.constant 24 : u32; - v788 = arith.add v770, v787 : u32 #[overflow = checked]; - v789 = hir.int_to_ptr v788 : ptr; - hir.store v789, v768; - v790 = arith.constant 28 : u32; - v791 = arith.add v770, v790 : u32 #[overflow = checked]; - v792 = hir.int_to_ptr v791 : ptr; - hir.store v792, v769; + private builtin.function @miden_base_sys::bindings::storage::extern_set_storage_map_item(v38: felt, v39: felt, v40: felt, v41: felt, v42: felt, v43: felt, v44: felt, v45: felt, v46: felt, v47: i32) { + ^block11(v38: felt, v39: felt, v40: felt, v41: felt, v42: felt, v43: felt, v44: felt, v45: felt, v46: felt, v47: i32): + v48, v49, v50, v51, v52, v53, v54, v55 = hir.exec @miden/account/set_map_item(v38, v39, v40, v41, v42, v43, v44, v45, v46) : felt, felt, felt, felt, felt, felt, felt, felt + v56 = hir.bitcast v47 : u32; + v57 = hir.int_to_ptr v56 : ptr; + hir.store v57, v48; + v58 = arith.constant 4 : u32; + v59 = arith.add v56, v58 : u32 #[overflow = checked]; + v60 = hir.int_to_ptr v59 : ptr; + hir.store v60, v49; + v61 = arith.constant 8 : u32; + v62 = arith.add v56, v61 : u32 #[overflow = checked]; + v63 = hir.int_to_ptr v62 : ptr; + hir.store v63, v50; + v64 = arith.constant 12 : u32; + v65 = arith.add v56, v64 : u32 #[overflow = checked]; + v66 = hir.int_to_ptr v65 : ptr; + hir.store v66, v51; + v67 = arith.constant 16 : u32; + v68 = arith.add v56, v67 : u32 #[overflow = checked]; + v69 = hir.int_to_ptr v68 : ptr; + hir.store v69, v52; + v70 = arith.constant 20 : u32; + v71 = arith.add v56, v70 : u32 #[overflow = checked]; + v72 = hir.int_to_ptr v71 : ptr; + hir.store v72, v53; + v73 = arith.constant 24 : u32; + v74 = arith.add v56, v73 : u32 #[overflow = checked]; + v75 = hir.int_to_ptr v74 : ptr; + hir.store v75, v54; + v76 = arith.constant 28 : u32; + v77 = arith.add v56, v76 : u32 #[overflow = checked]; + v78 = hir.int_to_ptr v77 : ptr; + hir.store v78, v55; builtin.ret ; }; private builtin.function @__wasm_call_ctors() { - ^block96: + ^block14: builtin.ret ; }; - private builtin.function @::eq(v793: i32, v794: i32) -> i32 { - ^block98(v793: i32, v794: i32): - v798 = hir.bitcast v793 : u32; - v799 = arith.constant 4 : u32; - v800 = arith.mod v798, v799 : u32; - hir.assertz v800 #[code = 250]; - v801 = hir.int_to_ptr v798 : ptr; - v802 = hir.load v801 : felt; - v803 = hir.bitcast v794 : u32; - v1379 = arith.constant 4 : u32; - v805 = arith.mod v803, v1379 : u32; - hir.assertz v805 #[code = 250]; - v806 = hir.int_to_ptr v803 : ptr; - v807 = hir.load v806 : felt; - v796 = arith.constant 0 : i32; - v810 = arith.constant 1 : i32; - v808 = arith.eq v802, v807 : i1; - v809 = hir.cast v808 : i32; - v811 = arith.neq v809, v810 : i1; - v812 = arith.zext v811 : u32; - v813 = hir.bitcast v812 : i32; - v815 = arith.neq v813, v796 : i1; - v1357 = scf.if v815 : i32 { - ^block100: - v1378 = arith.constant 0 : i32; - scf.yield v1378; - } else { - ^block101: - v1377 = arith.constant 4 : u32; - v816 = hir.bitcast v793 : u32; - v818 = arith.add v816, v1377 : u32 #[overflow = checked]; - v1376 = arith.constant 4 : u32; - v820 = arith.mod v818, v1376 : u32; - hir.assertz v820 #[code = 250]; - v821 = hir.int_to_ptr v818 : ptr; - v822 = hir.load v821 : felt; - v1375 = arith.constant 4 : u32; - v823 = hir.bitcast v794 : u32; - v825 = arith.add v823, v1375 : u32 #[overflow = checked]; - v1374 = arith.constant 4 : u32; - v827 = arith.mod v825, v1374 : u32; - hir.assertz v827 #[code = 250]; - v828 = hir.int_to_ptr v825 : ptr; - v829 = hir.load v828 : felt; - v1372 = arith.constant 0 : i32; - v1373 = arith.constant 1 : i32; - v830 = arith.eq v822, v829 : i1; - v831 = hir.cast v830 : i32; - v833 = arith.neq v831, v1373 : i1; - v834 = arith.zext v833 : u32; - v835 = hir.bitcast v834 : i32; - v837 = arith.neq v835, v1372 : i1; - v1359 = scf.if v837 : i32 { - ^block161: - v1371 = arith.constant 0 : i32; - scf.yield v1371; - } else { - ^block102: - v839 = arith.constant 8 : u32; - v838 = hir.bitcast v793 : u32; - v840 = arith.add v838, v839 : u32 #[overflow = checked]; - v1370 = arith.constant 4 : u32; - v842 = arith.mod v840, v1370 : u32; - hir.assertz v842 #[code = 250]; - v843 = hir.int_to_ptr v840 : ptr; - v844 = hir.load v843 : felt; - v1369 = arith.constant 8 : u32; - v845 = hir.bitcast v794 : u32; - v847 = arith.add v845, v1369 : u32 #[overflow = checked]; - v1368 = arith.constant 4 : u32; - v849 = arith.mod v847, v1368 : u32; - hir.assertz v849 #[code = 250]; - v850 = hir.int_to_ptr v847 : ptr; - v851 = hir.load v850 : felt; - v1366 = arith.constant 0 : i32; - v1367 = arith.constant 1 : i32; - v852 = arith.eq v844, v851 : i1; - v853 = hir.cast v852 : i32; - v855 = arith.neq v853, v1367 : i1; - v856 = arith.zext v855 : u32; - v857 = hir.bitcast v856 : i32; - v859 = arith.neq v857, v1366 : i1; - v1360 = scf.if v859 : i32 { - ^block160: - v1365 = arith.constant 0 : i32; - scf.yield v1365; - } else { - ^block103: - v861 = arith.constant 12 : u32; - v860 = hir.bitcast v793 : u32; - v862 = arith.add v860, v861 : u32 #[overflow = checked]; - v1364 = arith.constant 4 : u32; - v864 = arith.mod v862, v1364 : u32; - hir.assertz v864 #[code = 250]; - v865 = hir.int_to_ptr v862 : ptr; - v866 = hir.load v865 : felt; - v1363 = arith.constant 12 : u32; - v867 = hir.bitcast v794 : u32; - v869 = arith.add v867, v1363 : u32 #[overflow = checked]; - v1362 = arith.constant 4 : u32; - v871 = arith.mod v869, v1362 : u32; - hir.assertz v871 #[code = 250]; - v872 = hir.int_to_ptr v869 : ptr; - v873 = hir.load v872 : felt; - v1361 = arith.constant 1 : i32; - v874 = arith.eq v866, v873 : i1; - v875 = hir.cast v874 : i32; - v877 = arith.eq v875, v1361 : i1; - v878 = arith.zext v877 : u32; - v879 = hir.bitcast v878 : i32; - scf.yield v879; - }; - scf.yield v1360; - }; - scf.yield v1359; - }; - builtin.ret v1357; - }; - private builtin.function @storage_example::bindings::__link_custom_section_describing_imports() { - ^block104: + ^block16: builtin.ret ; }; - private builtin.function @__rustc::__rust_alloc(v881: i32, v882: i32) -> i32 { - ^block106(v881: i32, v882: i32): - v884 = arith.constant 1048612 : i32; - v885 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/::alloc(v884, v882, v881) : i32 - builtin.ret v885; + private builtin.function @__rustc::__rust_alloc(v79: i32, v80: i32) -> i32 { + ^block18(v79: i32, v80: i32): + v82 = arith.constant 1048612 : i32; + v83 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/::alloc(v82, v80, v79) : i32 + builtin.ret v83; }; - private builtin.function @__rustc::__rust_realloc(v886: i32, v887: i32, v888: i32, v889: i32) -> i32 { - ^block108(v886: i32, v887: i32, v888: i32, v889: i32): - v891 = arith.constant 1048612 : i32; - v892 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/::alloc(v891, v888, v889) : i32 - v1388 = arith.constant 0 : i32; - v893 = arith.constant 0 : i32; - v894 = arith.eq v892, v893 : i1; - v895 = arith.zext v894 : u32; - v896 = hir.bitcast v895 : i32; - v898 = arith.neq v896, v1388 : i1; - v1383 = scf.if v898 : i32 { - ^block110: - scf.yield v892; + private builtin.function @__rustc::__rust_realloc(v84: i32, v85: i32, v86: i32, v87: i32) -> i32 { + ^block20(v84: i32, v85: i32, v86: i32, v87: i32): + v89 = arith.constant 1048612 : i32; + v90 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/::alloc(v89, v86, v87) : i32 + v576 = arith.constant 0 : i32; + v91 = arith.constant 0 : i32; + v92 = arith.eq v90, v91 : i1; + v93 = arith.zext v92 : u32; + v94 = hir.bitcast v93 : i32; + v96 = arith.neq v94, v576 : i1; + v571 = scf.if v96 : i32 { + ^block22: + scf.yield v90; } else { - ^block111: - v1387 = arith.constant 0 : i32; - v900 = hir.bitcast v887 : u32; - v899 = hir.bitcast v889 : u32; - v901 = arith.lt v899, v900 : i1; - v902 = arith.zext v901 : u32; - v903 = hir.bitcast v902 : i32; - v905 = arith.neq v903, v1387 : i1; - v906 = cf.select v905, v889, v887 : i32; - v1385 = arith.constant 0 : i32; - v1386 = arith.constant 0 : i32; - v908 = arith.eq v906, v1386 : i1; - v909 = arith.zext v908 : u32; - v910 = hir.bitcast v909 : i32; - v912 = arith.neq v910, v1385 : i1; - v1384 = scf.if v912 : i32 { - ^block165: - scf.yield v892; + ^block23: + v575 = arith.constant 0 : i32; + v98 = hir.bitcast v85 : u32; + v97 = hir.bitcast v87 : u32; + v99 = arith.lt v97, v98 : i1; + v100 = arith.zext v99 : u32; + v101 = hir.bitcast v100 : i32; + v103 = arith.neq v101, v575 : i1; + v104 = cf.select v103, v87, v85 : i32; + v573 = arith.constant 0 : i32; + v574 = arith.constant 0 : i32; + v106 = arith.eq v104, v574 : i1; + v107 = arith.zext v106 : u32; + v108 = hir.bitcast v107 : i32; + v110 = arith.neq v108, v573 : i1; + v572 = scf.if v110 : i32 { + ^block73: + scf.yield v90; } else { - ^block112: - v913 = hir.bitcast v906 : u32; - v914 = hir.bitcast v892 : u32; - v915 = hir.int_to_ptr v914 : ptr; - v916 = hir.bitcast v886 : u32; - v917 = hir.int_to_ptr v916 : ptr; - hir.mem_cpy v917, v915, v913; - scf.yield v892; + ^block24: + v111 = hir.bitcast v104 : u32; + v112 = hir.bitcast v90 : u32; + v113 = hir.int_to_ptr v112 : ptr; + v114 = hir.bitcast v84 : u32; + v115 = hir.int_to_ptr v114 : ptr; + hir.mem_cpy v115, v113, v111; + scf.yield v90; }; - scf.yield v1384; + scf.yield v572; }; - builtin.ret v1383; + builtin.ret v571; }; - public builtin.function @miden:storage-example/foo@1.0.0#test-storage-item(v919: i32, v920: felt, v921: felt, v922: felt, v923: felt) -> felt { - ^block113(v919: i32, v920: felt, v921: felt, v922: felt, v923: felt): - v926 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr - v927 = hir.bitcast v926 : ptr; - v928 = hir.load v927 : i32; - v931 = arith.constant -32 : i32; - v929 = arith.constant 96 : i32; - v930 = arith.sub v928, v929 : i32 #[overflow = wrapping]; - v932 = arith.band v930, v931 : i32; - v933 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr - v934 = hir.bitcast v933 : ptr; - hir.store v934, v932; + public builtin.function @miden:storage-example/foo@1.0.0#set-asset-qty(v117: felt, v118: felt, v119: felt, v120: felt, v121: felt, v122: felt, v123: felt, v124: felt, v125: felt) { + ^block25(v117: felt, v118: felt, v119: felt, v120: felt, v121: felt, v122: felt, v123: felt, v124: felt, v125: felt): + v127 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr + v128 = hir.bitcast v127 : ptr; + v129 = hir.load v128 : i32; + v132 = arith.constant -32 : i32; + v130 = arith.constant 128 : i32; + v131 = arith.sub v129, v130 : i32 #[overflow = wrapping]; + v133 = arith.band v131, v132 : i32; + v134 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr + v135 = hir.bitcast v134 : ptr; + hir.store v135, v133; hir.exec @miden:storage-example/foo@1.0.0/storage_example/wit_bindgen_rt::run_ctors_once() - v936 = arith.constant 12 : u32; - v935 = hir.bitcast v932 : u32; - v937 = arith.add v935, v936 : u32 #[overflow = checked]; - v938 = arith.constant 4 : u32; - v939 = arith.mod v937, v938 : u32; - hir.assertz v939 #[code = 250]; - v940 = hir.int_to_ptr v937 : ptr; - hir.store v940, v923; - v942 = arith.constant 8 : u32; - v941 = hir.bitcast v932 : u32; - v943 = arith.add v941, v942 : u32 #[overflow = checked]; - v1397 = arith.constant 4 : u32; - v945 = arith.mod v943, v1397 : u32; - hir.assertz v945 #[code = 250]; - v946 = hir.int_to_ptr v943 : ptr; - hir.store v946, v922; - v1396 = arith.constant 4 : u32; - v947 = hir.bitcast v932 : u32; - v949 = arith.add v947, v1396 : u32 #[overflow = checked]; - v1395 = arith.constant 4 : u32; - v951 = arith.mod v949, v1395 : u32; - hir.assertz v951 #[code = 250]; - v952 = hir.int_to_ptr v949 : ptr; - hir.store v952, v921; - v953 = hir.bitcast v932 : u32; - v1394 = arith.constant 4 : u32; - v955 = arith.mod v953, v1394 : u32; - hir.assertz v955 #[code = 250]; - v956 = hir.int_to_ptr v953 : ptr; - hir.store v956, v920; - v957 = arith.constant 32 : i32; - v958 = arith.add v932, v957 : i32 #[overflow = wrapping]; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::set_item(v958, v919, v932) - v1393 = arith.constant 32 : i32; - v960 = arith.add v932, v1393 : i32 #[overflow = wrapping]; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::get_item(v960, v919) - v1392 = arith.constant 32 : i32; - v962 = arith.add v932, v1392 : i32 #[overflow = wrapping]; - v963 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/::eq(v932, v962) : i32 - v925 = arith.constant 0 : i32; - v965 = arith.neq v963, v925 : i1; - cf.cond_br v965 ^block115, ^block116; - ^block115: - v967 = arith.constant 32 : u32; - v966 = hir.bitcast v932 : u32; - v968 = arith.add v966, v967 : u32 #[overflow = checked]; - v1391 = arith.constant 4 : u32; - v970 = arith.mod v968, v1391 : u32; - hir.assertz v970 #[code = 250]; - v971 = hir.int_to_ptr v968 : ptr; - v972 = hir.load v971 : felt; - v973 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr - v974 = hir.bitcast v973 : ptr; - hir.store v974, v928; - builtin.ret v972; - ^block116: - ub.unreachable ; + v137 = arith.constant 12 : u32; + v136 = hir.bitcast v133 : u32; + v138 = arith.add v136, v137 : u32 #[overflow = checked]; + v139 = arith.constant 4 : u32; + v140 = arith.mod v138, v139 : u32; + hir.assertz v140 #[code = 250]; + v141 = hir.int_to_ptr v138 : ptr; + hir.store v141, v124; + v143 = arith.constant 8 : u32; + v142 = hir.bitcast v133 : u32; + v144 = arith.add v142, v143 : u32 #[overflow = checked]; + v602 = arith.constant 4 : u32; + v146 = arith.mod v144, v602 : u32; + hir.assertz v146 #[code = 250]; + v147 = hir.int_to_ptr v144 : ptr; + hir.store v147, v123; + v601 = arith.constant 4 : u32; + v148 = hir.bitcast v133 : u32; + v150 = arith.add v148, v601 : u32 #[overflow = checked]; + v600 = arith.constant 4 : u32; + v152 = arith.mod v150, v600 : u32; + hir.assertz v152 #[code = 250]; + v153 = hir.int_to_ptr v150 : ptr; + hir.store v153, v122; + v154 = hir.bitcast v133 : u32; + v599 = arith.constant 4 : u32; + v156 = arith.mod v154, v599 : u32; + hir.assertz v156 #[code = 250]; + v157 = hir.int_to_ptr v154 : ptr; + hir.store v157, v121; + v126 = arith.constant 0 : i32; + v158 = arith.constant 32 : i32; + v159 = arith.add v133, v158 : i32 #[overflow = wrapping]; + hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::get_item(v159, v126) + v162 = arith.constant 44 : u32; + v161 = hir.bitcast v133 : u32; + v163 = arith.add v161, v162 : u32 #[overflow = checked]; + v598 = arith.constant 4 : u32; + v165 = arith.mod v163, v598 : u32; + hir.assertz v165 #[code = 250]; + v166 = hir.int_to_ptr v163 : ptr; + v167 = hir.load v166 : felt; + v169 = arith.constant 40 : u32; + v168 = hir.bitcast v133 : u32; + v170 = arith.add v168, v169 : u32 #[overflow = checked]; + v597 = arith.constant 4 : u32; + v172 = arith.mod v170, v597 : u32; + hir.assertz v172 #[code = 250]; + v173 = hir.int_to_ptr v170 : ptr; + v174 = hir.load v173 : felt; + v176 = arith.constant 36 : u32; + v175 = hir.bitcast v133 : u32; + v177 = arith.add v175, v176 : u32 #[overflow = checked]; + v596 = arith.constant 4 : u32; + v179 = arith.mod v177, v596 : u32; + hir.assertz v179 #[code = 250]; + v180 = hir.int_to_ptr v177 : ptr; + v181 = hir.load v180 : felt; + v183 = arith.constant 32 : u32; + v182 = hir.bitcast v133 : u32; + v184 = arith.add v182, v183 : u32 #[overflow = checked]; + v595 = arith.constant 4 : u32; + v186 = arith.mod v184, v595 : u32; + hir.assertz v186 #[code = 250]; + v187 = hir.int_to_ptr v184 : ptr; + v188 = hir.load v187 : felt; + v594 = arith.constant 0 : i32; + v191 = arith.constant 1 : i32; + v189 = arith.eq v117, v188 : i1; + v190 = hir.cast v189 : i32; + v192 = arith.neq v190, v191 : i1; + v193 = arith.zext v192 : u32; + v194 = hir.bitcast v193 : i32; + v196 = arith.neq v194, v594 : i1; + v579 = scf.if v196 : i32 { + ^block79: + scf.yield v129; + } else { + ^block28: + v592 = arith.constant 0 : i32; + v593 = arith.constant 1 : i32; + v197 = arith.eq v118, v181 : i1; + v198 = hir.cast v197 : i32; + v200 = arith.neq v198, v593 : i1; + v201 = arith.zext v200 : u32; + v202 = hir.bitcast v201 : i32; + v204 = arith.neq v202, v592 : i1; + v581 = scf.if v204 : i32 { + ^block78: + scf.yield v129; + } else { + ^block29: + v590 = arith.constant 0 : i32; + v591 = arith.constant 1 : i32; + v205 = arith.eq v119, v174 : i1; + v206 = hir.cast v205 : i32; + v208 = arith.neq v206, v591 : i1; + v209 = arith.zext v208 : u32; + v210 = hir.bitcast v209 : i32; + v212 = arith.neq v210, v590 : i1; + v583 = scf.if v212 : i32 { + ^block77: + scf.yield v129; + } else { + ^block30: + v588 = arith.constant 0 : i32; + v589 = arith.constant 1 : i32; + v213 = arith.eq v120, v167 : i1; + v214 = hir.cast v213 : i32; + v216 = arith.neq v214, v589 : i1; + v217 = arith.zext v216 : u32; + v218 = hir.bitcast v217 : i32; + v220 = arith.neq v218, v588 : i1; + v584 = scf.if v220 : i32 { + ^block76: + scf.yield v129; + } else { + ^block31: + v221 = arith.constant 96 : i32; + v222 = arith.add v133, v221 : i32 #[overflow = wrapping]; + hir.exec @miden:storage-example/foo@1.0.0/storage_example/>::from(v222, v125) + v585 = arith.constant 96 : i32; + v227 = arith.add v133, v585 : i32 #[overflow = wrapping]; + v586 = arith.constant 1 : i32; + v587 = arith.constant 32 : i32; + v224 = arith.add v133, v587 : i32 #[overflow = wrapping]; + hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::set_map_item(v224, v586, v133, v227) + scf.yield v129; + }; + scf.yield v584; + }; + scf.yield v583; + }; + scf.yield v581; + }; + v229 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr + v230 = hir.bitcast v229 : ptr; + hir.store v230, v579; + builtin.ret ; }; - public builtin.function @miden:storage-example/foo@1.0.0#test-storage-map-item(v975: i32, v976: felt, v977: felt, v978: felt, v979: felt, v980: felt, v981: felt, v982: felt, v983: felt) -> felt { - ^block117(v975: i32, v976: felt, v977: felt, v978: felt, v979: felt, v980: felt, v981: felt, v982: felt, v983: felt): - v986 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr - v987 = hir.bitcast v986 : ptr; - v988 = hir.load v987 : i32; - v991 = arith.constant -32 : i32; - v989 = arith.constant 128 : i32; - v990 = arith.sub v988, v989 : i32 #[overflow = wrapping]; - v992 = arith.band v990, v991 : i32; - v993 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr - v994 = hir.bitcast v993 : ptr; - hir.store v994, v992; + public builtin.function @miden:storage-example/foo@1.0.0#get-asset-qty(v231: felt, v232: felt, v233: felt, v234: felt) -> felt { + ^block32(v231: felt, v232: felt, v233: felt, v234: felt): + v237 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr + v238 = hir.bitcast v237 : ptr; + v239 = hir.load v238 : i32; + v242 = arith.constant -32 : i32; + v240 = arith.constant 64 : i32; + v241 = arith.sub v239, v240 : i32 #[overflow = wrapping]; + v243 = arith.band v241, v242 : i32; + v244 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr + v245 = hir.bitcast v244 : ptr; + hir.store v245, v243; hir.exec @miden:storage-example/foo@1.0.0/storage_example/wit_bindgen_rt::run_ctors_once() - v996 = arith.constant 12 : u32; - v995 = hir.bitcast v992 : u32; - v997 = arith.add v995, v996 : u32 #[overflow = checked]; - v998 = arith.constant 4 : u32; - v999 = arith.mod v997, v998 : u32; - hir.assertz v999 #[code = 250]; - v1000 = hir.int_to_ptr v997 : ptr; - hir.store v1000, v979; - v1002 = arith.constant 8 : u32; - v1001 = hir.bitcast v992 : u32; - v1003 = arith.add v1001, v1002 : u32 #[overflow = checked]; - v1411 = arith.constant 4 : u32; - v1005 = arith.mod v1003, v1411 : u32; - hir.assertz v1005 #[code = 250]; - v1006 = hir.int_to_ptr v1003 : ptr; - hir.store v1006, v978; - v1410 = arith.constant 4 : u32; - v1007 = hir.bitcast v992 : u32; - v1009 = arith.add v1007, v1410 : u32 #[overflow = checked]; - v1409 = arith.constant 4 : u32; - v1011 = arith.mod v1009, v1409 : u32; - hir.assertz v1011 #[code = 250]; - v1012 = hir.int_to_ptr v1009 : ptr; - hir.store v1012, v977; - v1013 = hir.bitcast v992 : u32; - v1408 = arith.constant 4 : u32; - v1015 = arith.mod v1013, v1408 : u32; - hir.assertz v1015 #[code = 250]; - v1016 = hir.int_to_ptr v1013 : ptr; - hir.store v1016, v976; - v1018 = arith.constant 44 : u32; - v1017 = hir.bitcast v992 : u32; - v1019 = arith.add v1017, v1018 : u32 #[overflow = checked]; - v1407 = arith.constant 4 : u32; - v1021 = arith.mod v1019, v1407 : u32; - hir.assertz v1021 #[code = 250]; - v1022 = hir.int_to_ptr v1019 : ptr; - hir.store v1022, v983; - v1024 = arith.constant 40 : u32; - v1023 = hir.bitcast v992 : u32; - v1025 = arith.add v1023, v1024 : u32 #[overflow = checked]; - v1406 = arith.constant 4 : u32; - v1027 = arith.mod v1025, v1406 : u32; - hir.assertz v1027 #[code = 250]; - v1028 = hir.int_to_ptr v1025 : ptr; - hir.store v1028, v982; - v1030 = arith.constant 36 : u32; - v1029 = hir.bitcast v992 : u32; - v1031 = arith.add v1029, v1030 : u32 #[overflow = checked]; - v1405 = arith.constant 4 : u32; - v1033 = arith.mod v1031, v1405 : u32; - hir.assertz v1033 #[code = 250]; - v1034 = hir.int_to_ptr v1031 : ptr; - hir.store v1034, v981; - v1036 = arith.constant 32 : u32; - v1035 = hir.bitcast v992 : u32; - v1037 = arith.add v1035, v1036 : u32 #[overflow = checked]; - v1404 = arith.constant 4 : u32; - v1039 = arith.mod v1037, v1404 : u32; - hir.assertz v1039 #[code = 250]; - v1040 = hir.int_to_ptr v1037 : ptr; - hir.store v1040, v980; - v1043 = arith.constant 32 : i32; - v1044 = arith.add v992, v1043 : i32 #[overflow = wrapping]; - v1041 = arith.constant 64 : i32; - v1042 = arith.add v992, v1041 : i32 #[overflow = wrapping]; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::set_map_item(v1042, v975, v992, v1044) - v1403 = arith.constant 64 : i32; - v1046 = arith.add v992, v1403 : i32 #[overflow = wrapping]; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::get_map_item(v1046, v975, v992) - v1401 = arith.constant 64 : i32; - v1050 = arith.add v992, v1401 : i32 #[overflow = wrapping]; - v1402 = arith.constant 32 : i32; - v1048 = arith.add v992, v1402 : i32 #[overflow = wrapping]; - v1051 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/::eq(v1048, v1050) : i32 - v985 = arith.constant 0 : i32; - v1053 = arith.neq v1051, v985 : i1; - cf.cond_br v1053 ^block119, ^block120; - ^block119: - v1055 = arith.constant 64 : u32; - v1054 = hir.bitcast v992 : u32; - v1056 = arith.add v1054, v1055 : u32 #[overflow = checked]; - v1400 = arith.constant 4 : u32; - v1058 = arith.mod v1056, v1400 : u32; - hir.assertz v1058 #[code = 250]; - v1059 = hir.int_to_ptr v1056 : ptr; - v1060 = hir.load v1059 : felt; - v1061 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr - v1062 = hir.bitcast v1061 : ptr; - hir.store v1062, v988; - builtin.ret v1060; - ^block120: - ub.unreachable ; + v247 = arith.constant 12 : u32; + v246 = hir.bitcast v243 : u32; + v248 = arith.add v246, v247 : u32 #[overflow = checked]; + v249 = arith.constant 4 : u32; + v250 = arith.mod v248, v249 : u32; + hir.assertz v250 #[code = 250]; + v251 = hir.int_to_ptr v248 : ptr; + hir.store v251, v234; + v253 = arith.constant 8 : u32; + v252 = hir.bitcast v243 : u32; + v254 = arith.add v252, v253 : u32 #[overflow = checked]; + v607 = arith.constant 4 : u32; + v256 = arith.mod v254, v607 : u32; + hir.assertz v256 #[code = 250]; + v257 = hir.int_to_ptr v254 : ptr; + hir.store v257, v233; + v606 = arith.constant 4 : u32; + v258 = hir.bitcast v243 : u32; + v260 = arith.add v258, v606 : u32 #[overflow = checked]; + v605 = arith.constant 4 : u32; + v262 = arith.mod v260, v605 : u32; + hir.assertz v262 #[code = 250]; + v263 = hir.int_to_ptr v260 : ptr; + hir.store v263, v232; + v264 = hir.bitcast v243 : u32; + v604 = arith.constant 4 : u32; + v266 = arith.mod v264, v604 : u32; + hir.assertz v266 #[code = 250]; + v267 = hir.int_to_ptr v264 : ptr; + hir.store v267, v231; + v270 = arith.constant 1 : i32; + v268 = arith.constant 32 : i32; + v269 = arith.add v243, v268 : i32 #[overflow = wrapping]; + hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::get_map_item(v269, v270, v243) + v272 = arith.constant 44 : u32; + v271 = hir.bitcast v243 : u32; + v273 = arith.add v271, v272 : u32 #[overflow = checked]; + v603 = arith.constant 4 : u32; + v275 = arith.mod v273, v603 : u32; + hir.assertz v275 #[code = 250]; + v276 = hir.int_to_ptr v273 : ptr; + v277 = hir.load v276 : felt; + v278 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr + v279 = hir.bitcast v278 : ptr; + hir.store v279, v239; + builtin.ret v277; }; - public builtin.function @cabi_realloc_wit_bindgen_0_28_0(v1063: i32, v1064: i32, v1065: i32, v1066: i32) -> i32 { - ^block121(v1063: i32, v1064: i32, v1065: i32, v1066: i32): - v1068 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/wit_bindgen_rt::cabi_realloc(v1063, v1064, v1065, v1066) : i32 - builtin.ret v1068; + public builtin.function @cabi_realloc_wit_bindgen_0_28_0(v280: i32, v281: i32, v282: i32, v283: i32) -> i32 { + ^block34(v280: i32, v281: i32, v282: i32, v283: i32): + v285 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/wit_bindgen_rt::cabi_realloc(v280, v281, v282, v283) : i32 + builtin.ret v285; }; - private builtin.function @wit_bindgen_rt::cabi_realloc(v1069: i32, v1070: i32, v1071: i32, v1072: i32) -> i32 { - ^block123(v1069: i32, v1070: i32, v1071: i32, v1072: i32): - v1074 = arith.constant 0 : i32; - v1075 = arith.neq v1070, v1074 : i1; - v1422, v1423, v1424 = scf.if v1075 : i32, i32, u32 { - ^block127: - v1090 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/__rustc::__rust_realloc(v1069, v1070, v1071, v1072) : i32 - v1413 = arith.constant 0 : u32; - v1417 = ub.poison i32 : i32; - scf.yield v1090, v1417, v1413; + private builtin.function @wit_bindgen_rt::cabi_realloc(v286: i32, v287: i32, v288: i32, v289: i32) -> i32 { + ^block36(v286: i32, v287: i32, v288: i32, v289: i32): + v291 = arith.constant 0 : i32; + v292 = arith.neq v287, v291 : i1; + v618, v619, v620 = scf.if v292 : i32, i32, u32 { + ^block40: + v307 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/__rustc::__rust_realloc(v286, v287, v288, v289) : i32 + v609 = arith.constant 0 : u32; + v613 = ub.poison i32 : i32; + scf.yield v307, v613, v609; } else { - ^block128: - v1447 = arith.constant 0 : i32; - v1448 = arith.constant 0 : i32; - v1077 = arith.eq v1072, v1448 : i1; - v1078 = arith.zext v1077 : u32; - v1079 = hir.bitcast v1078 : i32; - v1081 = arith.neq v1079, v1447 : i1; - v1433, v1434, v1435 = scf.if v1081 : i32, i32, u32 { - ^block172: - v1418 = arith.constant 1 : u32; - v1446 = ub.poison i32 : i32; - scf.yield v1446, v1071, v1418; + ^block41: + v643 = arith.constant 0 : i32; + v644 = arith.constant 0 : i32; + v294 = arith.eq v289, v644 : i1; + v295 = arith.zext v294 : u32; + v296 = hir.bitcast v295 : i32; + v298 = arith.neq v296, v643 : i1; + v629, v630, v631 = scf.if v298 : i32, i32, u32 { + ^block84: + v614 = arith.constant 1 : u32; + v642 = ub.poison i32 : i32; + scf.yield v642, v288, v614; } else { - ^block129: - v1089 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/__rustc::__rust_alloc(v1072, v1071) : i32 - v1444 = arith.constant 0 : u32; - v1445 = ub.poison i32 : i32; - scf.yield v1089, v1445, v1444; + ^block42: + v306 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/__rustc::__rust_alloc(v289, v288) : i32 + v640 = arith.constant 0 : u32; + v641 = ub.poison i32 : i32; + scf.yield v306, v641, v640; }; - scf.yield v1433, v1434, v1435; + scf.yield v629, v630, v631; }; - v1429, v1430 = scf.index_switch v1424 : i32, u32 + v625, v626 = scf.index_switch v620 : i32, u32 case 0 { - ^block126: - v1442 = arith.constant 0 : i32; - v1093 = arith.neq v1422, v1442 : i1; - v1431, v1432 = scf.if v1093 : i32, u32 { - ^block173: - v1441 = arith.constant 0 : u32; - scf.yield v1422, v1441; + ^block39: + v638 = arith.constant 0 : i32; + v310 = arith.neq v618, v638 : i1; + v627, v628 = scf.if v310 : i32, u32 { + ^block85: + v637 = arith.constant 0 : u32; + scf.yield v618, v637; } else { - ^block130: - v1439 = arith.constant 1 : u32; - v1440 = ub.poison i32 : i32; - scf.yield v1440, v1439; + ^block43: + v635 = arith.constant 1 : u32; + v636 = ub.poison i32 : i32; + scf.yield v636, v635; }; - scf.yield v1431, v1432; + scf.yield v627, v628; } default { - ^block179: - v1443 = arith.constant 0 : u32; - scf.yield v1423, v1443; + ^block91: + v639 = arith.constant 0 : u32; + scf.yield v619, v639; }; - v1438 = arith.constant 0 : u32; - v1437 = arith.eq v1430, v1438 : i1; - cf.cond_br v1437 ^block174, ^block175; - ^block174: - builtin.ret v1429; - ^block175: + v634 = arith.constant 0 : u32; + v633 = arith.eq v626, v634 : i1; + cf.cond_br v633 ^block86, ^block87; + ^block86: + builtin.ret v625; + ^block87: ub.unreachable ; }; private builtin.function @wit_bindgen_rt::run_ctors_once() { - ^block131: - v1097 = arith.constant 1048617 : u32; - v1452 = arith.constant 0 : u32; - v1098 = arith.add v1452, v1097 : u32 #[overflow = checked]; - v1099 = hir.int_to_ptr v1098 : ptr; - v1100 = hir.load v1099 : u8; - v1095 = arith.constant 0 : i32; - v1101 = arith.zext v1100 : u32; - v1102 = hir.bitcast v1101 : i32; - v1104 = arith.neq v1102, v1095 : i1; - scf.if v1104{ - ^block133: + ^block44: + v314 = arith.constant 1048617 : u32; + v648 = arith.constant 0 : u32; + v315 = arith.add v648, v314 : u32 #[overflow = checked]; + v316 = hir.int_to_ptr v315 : ptr; + v317 = hir.load v316 : u8; + v312 = arith.constant 0 : i32; + v318 = arith.zext v317 : u32; + v319 = hir.bitcast v318 : i32; + v321 = arith.neq v319, v312 : i1; + scf.if v321{ + ^block46: scf.yield ; } else { - ^block134: + ^block47: hir.exec @miden:storage-example/foo@1.0.0/storage_example/__wasm_call_ctors() - v1450 = arith.constant 1 : u8; - v1454 = arith.constant 1048617 : u32; - v1455 = arith.constant 0 : u32; - v1111 = arith.add v1455, v1454 : u32 #[overflow = checked]; - v1112 = hir.int_to_ptr v1111 : ptr; - hir.store v1112, v1450; + v646 = arith.constant 1 : u8; + v650 = arith.constant 1048617 : u32; + v651 = arith.constant 0 : u32; + v328 = arith.add v651, v650 : u32 #[overflow = checked]; + v329 = hir.int_to_ptr v328 : ptr; + hir.store v329, v646; scf.yield ; }; builtin.ret ; }; - private builtin.function @::alloc(v1113: i32, v1114: i32, v1115: i32) -> i32 { - ^block135(v1113: i32, v1114: i32, v1115: i32): - v1118 = arith.constant 32 : i32; - v1117 = arith.constant 0 : i32; - v1457 = arith.constant 32 : u32; - v1120 = hir.bitcast v1114 : u32; - v1122 = arith.gt v1120, v1457 : i1; - v1123 = arith.zext v1122 : u32; - v1124 = hir.bitcast v1123 : i32; - v1126 = arith.neq v1124, v1117 : i1; - v1127 = cf.select v1126, v1114, v1118 : i32; - v1494 = arith.constant 0 : i32; - v1128 = arith.constant -1 : i32; - v1129 = arith.add v1127, v1128 : i32 #[overflow = wrapping]; - v1130 = arith.band v1127, v1129 : i32; - v1132 = arith.neq v1130, v1494 : i1; - v1466, v1467 = scf.if v1132 : i32, u32 { - ^block184: - v1458 = arith.constant 0 : u32; - v1462 = ub.poison i32 : i32; - scf.yield v1462, v1458; + private builtin.function @::alloc(v330: i32, v331: i32, v332: i32) -> i32 { + ^block48(v330: i32, v331: i32, v332: i32): + v335 = arith.constant 32 : i32; + v334 = arith.constant 0 : i32; + v653 = arith.constant 32 : u32; + v337 = hir.bitcast v331 : u32; + v339 = arith.gt v337, v653 : i1; + v340 = arith.zext v339 : u32; + v341 = hir.bitcast v340 : i32; + v343 = arith.neq v341, v334 : i1; + v344 = cf.select v343, v331, v335 : i32; + v690 = arith.constant 0 : i32; + v345 = arith.constant -1 : i32; + v346 = arith.add v344, v345 : i32 #[overflow = wrapping]; + v347 = arith.band v344, v346 : i32; + v349 = arith.neq v347, v690 : i1; + v662, v663 = scf.if v349 : i32, u32 { + ^block96: + v654 = arith.constant 0 : u32; + v658 = ub.poison i32 : i32; + scf.yield v658, v654; } else { - ^block138: - v1134 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/core::ptr::alignment::Alignment::max(v1114, v1127) : i32 - v1493 = arith.constant 0 : i32; - v1133 = arith.constant -2147483648 : i32; - v1135 = arith.sub v1133, v1134 : i32 #[overflow = wrapping]; - v1137 = hir.bitcast v1135 : u32; - v1136 = hir.bitcast v1115 : u32; - v1138 = arith.gt v1136, v1137 : i1; - v1139 = arith.zext v1138 : u32; - v1140 = hir.bitcast v1139 : i32; - v1142 = arith.neq v1140, v1493 : i1; - v1470, v1471 = scf.if v1142 : i32, u32 { - ^block183: - v1491 = arith.constant 0 : u32; - v1492 = ub.poison i32 : i32; - scf.yield v1492, v1491; + ^block51: + v351 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/core::ptr::alignment::Alignment::max(v331, v344) : i32 + v689 = arith.constant 0 : i32; + v350 = arith.constant -2147483648 : i32; + v352 = arith.sub v350, v351 : i32 #[overflow = wrapping]; + v354 = hir.bitcast v352 : u32; + v353 = hir.bitcast v332 : u32; + v355 = arith.gt v353, v354 : i1; + v356 = arith.zext v355 : u32; + v357 = hir.bitcast v356 : i32; + v359 = arith.neq v357, v689 : i1; + v666, v667 = scf.if v359 : i32, u32 { + ^block95: + v687 = arith.constant 0 : u32; + v688 = ub.poison i32 : i32; + scf.yield v688, v687; } else { - ^block139: - v1489 = arith.constant 0 : i32; - v1148 = arith.sub v1489, v1134 : i32 #[overflow = wrapping]; - v1490 = arith.constant -1 : i32; - v1144 = arith.add v1115, v1134 : i32 #[overflow = wrapping]; - v1146 = arith.add v1144, v1490 : i32 #[overflow = wrapping]; - v1149 = arith.band v1146, v1148 : i32; - v1150 = hir.bitcast v1113 : u32; - v1151 = arith.constant 4 : u32; - v1152 = arith.mod v1150, v1151 : u32; - hir.assertz v1152 #[code = 250]; - v1153 = hir.int_to_ptr v1150 : ptr; - v1154 = hir.load v1153 : i32; - v1488 = arith.constant 0 : i32; - v1156 = arith.neq v1154, v1488 : i1; - v1472, v1473, v1474, v1475 = scf.if v1156 : i32, i32, i32, i32 { - ^block182: - v1487 = arith.constant 0 : i32; - scf.yield v1113, v1149, v1134, v1487; + ^block52: + v685 = arith.constant 0 : i32; + v365 = arith.sub v685, v351 : i32 #[overflow = wrapping]; + v686 = arith.constant -1 : i32; + v361 = arith.add v332, v351 : i32 #[overflow = wrapping]; + v363 = arith.add v361, v686 : i32 #[overflow = wrapping]; + v366 = arith.band v363, v365 : i32; + v367 = hir.bitcast v330 : u32; + v368 = arith.constant 4 : u32; + v369 = arith.mod v367, v368 : u32; + hir.assertz v369 #[code = 250]; + v370 = hir.int_to_ptr v367 : ptr; + v371 = hir.load v370 : i32; + v684 = arith.constant 0 : i32; + v373 = arith.neq v371, v684 : i1; + v668, v669, v670, v671 = scf.if v373 : i32, i32, i32, i32 { + ^block94: + v683 = arith.constant 0 : i32; + scf.yield v330, v366, v351, v683; } else { - ^block141: - v1157 = hir.exec @intrinsics/mem/heap_base() : i32 - v1158 = hir.mem_size : u32; - v1164 = hir.bitcast v1113 : u32; - v1486 = arith.constant 4 : u32; - v1166 = arith.mod v1164, v1486 : u32; - hir.assertz v1166 #[code = 250]; - v1456 = arith.constant 16 : u32; - v1161 = arith.shl v1158, v1456 : u32; - v1162 = hir.bitcast v1161 : i32; - v1163 = arith.add v1157, v1162 : i32 #[overflow = wrapping]; - v1167 = hir.int_to_ptr v1164 : ptr; - hir.store v1167, v1163; - v1485 = arith.constant 0 : i32; - scf.yield v1113, v1149, v1134, v1485; + ^block54: + v374 = hir.exec @intrinsics/mem/heap_base() : i32 + v375 = hir.mem_size : u32; + v381 = hir.bitcast v330 : u32; + v682 = arith.constant 4 : u32; + v383 = arith.mod v381, v682 : u32; + hir.assertz v383 #[code = 250]; + v652 = arith.constant 16 : u32; + v378 = arith.shl v375, v652 : u32; + v379 = hir.bitcast v378 : i32; + v380 = arith.add v374, v379 : i32 #[overflow = wrapping]; + v384 = hir.int_to_ptr v381 : ptr; + hir.store v384, v380; + v681 = arith.constant 0 : i32; + scf.yield v330, v366, v351, v681; }; - v1170 = hir.bitcast v1472 : u32; - v1484 = arith.constant 4 : u32; - v1172 = arith.mod v1170, v1484 : u32; - hir.assertz v1172 #[code = 250]; - v1173 = hir.int_to_ptr v1170 : ptr; - v1174 = hir.load v1173 : i32; - v1483 = arith.constant 0 : i32; - v1178 = hir.bitcast v1473 : u32; - v1168 = arith.constant 268435456 : i32; - v1175 = arith.sub v1168, v1174 : i32 #[overflow = wrapping]; - v1177 = hir.bitcast v1175 : u32; - v1179 = arith.lt v1177, v1178 : i1; - v1180 = arith.zext v1179 : u32; - v1181 = hir.bitcast v1180 : i32; - v1183 = arith.neq v1181, v1483 : i1; - v1476, v1477 = scf.if v1183 : i32, u32 { - ^block142: - v1463 = arith.constant 1 : u32; - scf.yield v1475, v1463; + v387 = hir.bitcast v668 : u32; + v680 = arith.constant 4 : u32; + v389 = arith.mod v387, v680 : u32; + hir.assertz v389 #[code = 250]; + v390 = hir.int_to_ptr v387 : ptr; + v391 = hir.load v390 : i32; + v679 = arith.constant 0 : i32; + v395 = hir.bitcast v669 : u32; + v385 = arith.constant 268435456 : i32; + v392 = arith.sub v385, v391 : i32 #[overflow = wrapping]; + v394 = hir.bitcast v392 : u32; + v396 = arith.lt v394, v395 : i1; + v397 = arith.zext v396 : u32; + v398 = hir.bitcast v397 : i32; + v400 = arith.neq v398, v679 : i1; + v672, v673 = scf.if v400 : i32, u32 { + ^block55: + v659 = arith.constant 1 : u32; + scf.yield v671, v659; } else { - ^block143: - v1185 = hir.bitcast v1472 : u32; - v1482 = arith.constant 4 : u32; - v1187 = arith.mod v1185, v1482 : u32; - hir.assertz v1187 #[code = 250]; - v1184 = arith.add v1174, v1473 : i32 #[overflow = wrapping]; - v1188 = hir.int_to_ptr v1185 : ptr; - hir.store v1188, v1184; - v1481 = arith.constant 1 : u32; - v1190 = arith.add v1174, v1474 : i32 #[overflow = wrapping]; - scf.yield v1190, v1481; + ^block56: + v402 = hir.bitcast v668 : u32; + v678 = arith.constant 4 : u32; + v404 = arith.mod v402, v678 : u32; + hir.assertz v404 #[code = 250]; + v401 = arith.add v391, v669 : i32 #[overflow = wrapping]; + v405 = hir.int_to_ptr v402 : ptr; + hir.store v405, v401; + v677 = arith.constant 1 : u32; + v407 = arith.add v391, v670 : i32 #[overflow = wrapping]; + scf.yield v407, v677; }; - scf.yield v1476, v1477; + scf.yield v672, v673; }; - scf.yield v1470, v1471; + scf.yield v666, v667; }; - v1480 = arith.constant 0 : u32; - v1479 = arith.eq v1467, v1480 : i1; - cf.cond_br v1479 ^block137, ^block186(v1466); - ^block137: + v676 = arith.constant 0 : u32; + v675 = arith.eq v663, v676 : i1; + cf.cond_br v675 ^block50, ^block98(v662); + ^block50: ub.unreachable ; - ^block186(v1459: i32): - builtin.ret v1459; + ^block98(v655: i32): + builtin.ret v655; }; - private builtin.function @miden_base_sys::bindings::storage::get_item(v1193: i32, v1194: i32) { - ^block144(v1193: i32, v1194: i32): - v1195 = arith.constant 255 : i32; - v1196 = arith.band v1194, v1195 : i32; - v1197 = hir.bitcast v1196 : felt; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::extern_get_storage_item(v1197, v1193) + private builtin.function @miden_base_sys::bindings::storage::get_item(v410: i32, v411: i32) { + ^block57(v410: i32, v411: i32): + v412 = arith.constant 255 : i32; + v413 = arith.band v411, v412 : i32; + v414 = hir.bitcast v413 : felt; + hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::extern_get_storage_item(v414, v410) builtin.ret ; }; - private builtin.function @miden_base_sys::bindings::storage::set_item(v1198: i32, v1199: i32, v1200: i32) { - ^block146(v1198: i32, v1199: i32, v1200: i32): - v1204 = hir.bitcast v1200 : u32; - v1205 = arith.constant 4 : u32; - v1206 = arith.mod v1204, v1205 : u32; - hir.assertz v1206 #[code = 250]; - v1207 = hir.int_to_ptr v1204 : ptr; - v1208 = hir.load v1207 : felt; - v1498 = arith.constant 4 : u32; - v1209 = hir.bitcast v1200 : u32; - v1211 = arith.add v1209, v1498 : u32 #[overflow = checked]; - v1497 = arith.constant 4 : u32; - v1213 = arith.mod v1211, v1497 : u32; - hir.assertz v1213 #[code = 250]; - v1214 = hir.int_to_ptr v1211 : ptr; - v1215 = hir.load v1214 : felt; - v1217 = arith.constant 8 : u32; - v1216 = hir.bitcast v1200 : u32; - v1218 = arith.add v1216, v1217 : u32 #[overflow = checked]; - v1496 = arith.constant 4 : u32; - v1220 = arith.mod v1218, v1496 : u32; - hir.assertz v1220 #[code = 250]; - v1221 = hir.int_to_ptr v1218 : ptr; - v1222 = hir.load v1221 : felt; - v1224 = arith.constant 12 : u32; - v1223 = hir.bitcast v1200 : u32; - v1225 = arith.add v1223, v1224 : u32 #[overflow = checked]; - v1495 = arith.constant 4 : u32; - v1227 = arith.mod v1225, v1495 : u32; - hir.assertz v1227 #[code = 250]; - v1228 = hir.int_to_ptr v1225 : ptr; - v1229 = hir.load v1228 : felt; - v1201 = arith.constant 255 : i32; - v1202 = arith.band v1199, v1201 : i32; - v1203 = hir.bitcast v1202 : felt; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::extern_set_storage_item(v1203, v1208, v1215, v1222, v1229, v1198) + private builtin.function @miden_base_sys::bindings::storage::get_map_item(v415: i32, v416: i32, v417: i32) { + ^block59(v415: i32, v416: i32, v417: i32): + v421 = hir.bitcast v417 : u32; + v422 = arith.constant 4 : u32; + v423 = arith.mod v421, v422 : u32; + hir.assertz v423 #[code = 250]; + v424 = hir.int_to_ptr v421 : ptr; + v425 = hir.load v424 : felt; + v694 = arith.constant 4 : u32; + v426 = hir.bitcast v417 : u32; + v428 = arith.add v426, v694 : u32 #[overflow = checked]; + v693 = arith.constant 4 : u32; + v430 = arith.mod v428, v693 : u32; + hir.assertz v430 #[code = 250]; + v431 = hir.int_to_ptr v428 : ptr; + v432 = hir.load v431 : felt; + v434 = arith.constant 8 : u32; + v433 = hir.bitcast v417 : u32; + v435 = arith.add v433, v434 : u32 #[overflow = checked]; + v692 = arith.constant 4 : u32; + v437 = arith.mod v435, v692 : u32; + hir.assertz v437 #[code = 250]; + v438 = hir.int_to_ptr v435 : ptr; + v439 = hir.load v438 : felt; + v441 = arith.constant 12 : u32; + v440 = hir.bitcast v417 : u32; + v442 = arith.add v440, v441 : u32 #[overflow = checked]; + v691 = arith.constant 4 : u32; + v444 = arith.mod v442, v691 : u32; + hir.assertz v444 #[code = 250]; + v445 = hir.int_to_ptr v442 : ptr; + v446 = hir.load v445 : felt; + v418 = arith.constant 255 : i32; + v419 = arith.band v416, v418 : i32; + v420 = hir.bitcast v419 : felt; + hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::extern_get_storage_map_item(v420, v425, v432, v439, v446, v415) builtin.ret ; }; - private builtin.function @miden_base_sys::bindings::storage::get_map_item(v1230: i32, v1231: i32, v1232: i32) { - ^block148(v1230: i32, v1231: i32, v1232: i32): - v1236 = hir.bitcast v1232 : u32; - v1237 = arith.constant 4 : u32; - v1238 = arith.mod v1236, v1237 : u32; - hir.assertz v1238 #[code = 250]; - v1239 = hir.int_to_ptr v1236 : ptr; - v1240 = hir.load v1239 : felt; - v1502 = arith.constant 4 : u32; - v1241 = hir.bitcast v1232 : u32; - v1243 = arith.add v1241, v1502 : u32 #[overflow = checked]; - v1501 = arith.constant 4 : u32; - v1245 = arith.mod v1243, v1501 : u32; - hir.assertz v1245 #[code = 250]; - v1246 = hir.int_to_ptr v1243 : ptr; - v1247 = hir.load v1246 : felt; - v1249 = arith.constant 8 : u32; - v1248 = hir.bitcast v1232 : u32; - v1250 = arith.add v1248, v1249 : u32 #[overflow = checked]; - v1500 = arith.constant 4 : u32; - v1252 = arith.mod v1250, v1500 : u32; - hir.assertz v1252 #[code = 250]; - v1253 = hir.int_to_ptr v1250 : ptr; - v1254 = hir.load v1253 : felt; - v1256 = arith.constant 12 : u32; - v1255 = hir.bitcast v1232 : u32; - v1257 = arith.add v1255, v1256 : u32 #[overflow = checked]; - v1499 = arith.constant 4 : u32; - v1259 = arith.mod v1257, v1499 : u32; - hir.assertz v1259 #[code = 250]; - v1260 = hir.int_to_ptr v1257 : ptr; - v1261 = hir.load v1260 : felt; - v1233 = arith.constant 255 : i32; - v1234 = arith.band v1231, v1233 : i32; - v1235 = hir.bitcast v1234 : felt; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::extern_get_storage_map_item(v1235, v1240, v1247, v1254, v1261, v1230) + private builtin.function @miden_base_sys::bindings::storage::set_map_item(v447: i32, v448: i32, v449: i32, v450: i32) { + ^block61(v447: i32, v448: i32, v449: i32, v450: i32): + v454 = hir.bitcast v449 : u32; + v455 = arith.constant 4 : u32; + v456 = arith.mod v454, v455 : u32; + hir.assertz v456 #[code = 250]; + v457 = hir.int_to_ptr v454 : ptr; + v458 = hir.load v457 : felt; + v705 = arith.constant 4 : u32; + v459 = hir.bitcast v449 : u32; + v461 = arith.add v459, v705 : u32 #[overflow = checked]; + v704 = arith.constant 4 : u32; + v463 = arith.mod v461, v704 : u32; + hir.assertz v463 #[code = 250]; + v464 = hir.int_to_ptr v461 : ptr; + v465 = hir.load v464 : felt; + v467 = arith.constant 8 : u32; + v466 = hir.bitcast v449 : u32; + v468 = arith.add v466, v467 : u32 #[overflow = checked]; + v703 = arith.constant 4 : u32; + v470 = arith.mod v468, v703 : u32; + hir.assertz v470 #[code = 250]; + v471 = hir.int_to_ptr v468 : ptr; + v472 = hir.load v471 : felt; + v474 = arith.constant 12 : u32; + v473 = hir.bitcast v449 : u32; + v475 = arith.add v473, v474 : u32 #[overflow = checked]; + v702 = arith.constant 4 : u32; + v477 = arith.mod v475, v702 : u32; + hir.assertz v477 #[code = 250]; + v478 = hir.int_to_ptr v475 : ptr; + v479 = hir.load v478 : felt; + v480 = hir.bitcast v450 : u32; + v701 = arith.constant 4 : u32; + v482 = arith.mod v480, v701 : u32; + hir.assertz v482 #[code = 250]; + v483 = hir.int_to_ptr v480 : ptr; + v484 = hir.load v483 : felt; + v700 = arith.constant 4 : u32; + v485 = hir.bitcast v450 : u32; + v487 = arith.add v485, v700 : u32 #[overflow = checked]; + v699 = arith.constant 4 : u32; + v489 = arith.mod v487, v699 : u32; + hir.assertz v489 #[code = 250]; + v490 = hir.int_to_ptr v487 : ptr; + v491 = hir.load v490 : felt; + v698 = arith.constant 8 : u32; + v492 = hir.bitcast v450 : u32; + v494 = arith.add v492, v698 : u32 #[overflow = checked]; + v697 = arith.constant 4 : u32; + v496 = arith.mod v494, v697 : u32; + hir.assertz v496 #[code = 250]; + v497 = hir.int_to_ptr v494 : ptr; + v498 = hir.load v497 : felt; + v696 = arith.constant 12 : u32; + v499 = hir.bitcast v450 : u32; + v501 = arith.add v499, v696 : u32 #[overflow = checked]; + v695 = arith.constant 4 : u32; + v503 = arith.mod v501, v695 : u32; + hir.assertz v503 #[code = 250]; + v504 = hir.int_to_ptr v501 : ptr; + v505 = hir.load v504 : felt; + v451 = arith.constant 255 : i32; + v452 = arith.band v448, v451 : i32; + v453 = hir.bitcast v452 : felt; + hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::extern_set_storage_map_item(v453, v458, v465, v472, v479, v484, v491, v498, v505, v447) builtin.ret ; }; - private builtin.function @miden_base_sys::bindings::storage::set_map_item(v1262: i32, v1263: i32, v1264: i32, v1265: i32) { - ^block150(v1262: i32, v1263: i32, v1264: i32, v1265: i32): - v1269 = hir.bitcast v1264 : u32; - v1270 = arith.constant 4 : u32; - v1271 = arith.mod v1269, v1270 : u32; - hir.assertz v1271 #[code = 250]; - v1272 = hir.int_to_ptr v1269 : ptr; - v1273 = hir.load v1272 : felt; - v1513 = arith.constant 4 : u32; - v1274 = hir.bitcast v1264 : u32; - v1276 = arith.add v1274, v1513 : u32 #[overflow = checked]; - v1512 = arith.constant 4 : u32; - v1278 = arith.mod v1276, v1512 : u32; - hir.assertz v1278 #[code = 250]; - v1279 = hir.int_to_ptr v1276 : ptr; - v1280 = hir.load v1279 : felt; - v1282 = arith.constant 8 : u32; - v1281 = hir.bitcast v1264 : u32; - v1283 = arith.add v1281, v1282 : u32 #[overflow = checked]; - v1511 = arith.constant 4 : u32; - v1285 = arith.mod v1283, v1511 : u32; - hir.assertz v1285 #[code = 250]; - v1286 = hir.int_to_ptr v1283 : ptr; - v1287 = hir.load v1286 : felt; - v1289 = arith.constant 12 : u32; - v1288 = hir.bitcast v1264 : u32; - v1290 = arith.add v1288, v1289 : u32 #[overflow = checked]; - v1510 = arith.constant 4 : u32; - v1292 = arith.mod v1290, v1510 : u32; - hir.assertz v1292 #[code = 250]; - v1293 = hir.int_to_ptr v1290 : ptr; - v1294 = hir.load v1293 : felt; - v1295 = hir.bitcast v1265 : u32; - v1509 = arith.constant 4 : u32; - v1297 = arith.mod v1295, v1509 : u32; - hir.assertz v1297 #[code = 250]; - v1298 = hir.int_to_ptr v1295 : ptr; - v1299 = hir.load v1298 : felt; - v1508 = arith.constant 4 : u32; - v1300 = hir.bitcast v1265 : u32; - v1302 = arith.add v1300, v1508 : u32 #[overflow = checked]; - v1507 = arith.constant 4 : u32; - v1304 = arith.mod v1302, v1507 : u32; - hir.assertz v1304 #[code = 250]; - v1305 = hir.int_to_ptr v1302 : ptr; - v1306 = hir.load v1305 : felt; - v1506 = arith.constant 8 : u32; - v1307 = hir.bitcast v1265 : u32; - v1309 = arith.add v1307, v1506 : u32 #[overflow = checked]; - v1505 = arith.constant 4 : u32; - v1311 = arith.mod v1309, v1505 : u32; - hir.assertz v1311 #[code = 250]; - v1312 = hir.int_to_ptr v1309 : ptr; - v1313 = hir.load v1312 : felt; - v1504 = arith.constant 12 : u32; - v1314 = hir.bitcast v1265 : u32; - v1316 = arith.add v1314, v1504 : u32 #[overflow = checked]; - v1503 = arith.constant 4 : u32; - v1318 = arith.mod v1316, v1503 : u32; - hir.assertz v1318 #[code = 250]; - v1319 = hir.int_to_ptr v1316 : ptr; - v1320 = hir.load v1319 : felt; - v1266 = arith.constant 255 : i32; - v1267 = arith.band v1263, v1266 : i32; - v1268 = hir.bitcast v1267 : felt; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::extern_set_storage_map_item(v1268, v1273, v1280, v1287, v1294, v1299, v1306, v1313, v1320, v1262) + private builtin.function @>::from(v506: i32, v507: felt) { + ^block63(v506: i32, v507: felt): + v516 = arith.constant 12 : u32; + v515 = hir.bitcast v506 : u32; + v517 = arith.add v515, v516 : u32 #[overflow = checked]; + v518 = arith.constant 4 : u32; + v519 = arith.mod v517, v518 : u32; + hir.assertz v519 #[code = 250]; + v520 = hir.int_to_ptr v517 : ptr; + hir.store v520, v507; + v522 = arith.constant 8 : u32; + v521 = hir.bitcast v506 : u32; + v523 = arith.add v521, v522 : u32 #[overflow = checked]; + v714 = arith.constant 4 : u32; + v525 = arith.mod v523, v714 : u32; + hir.assertz v525 #[code = 250]; + v708 = arith.constant 0 : felt; + v526 = hir.int_to_ptr v523 : ptr; + hir.store v526, v708; + v713 = arith.constant 4 : u32; + v527 = hir.bitcast v506 : u32; + v529 = arith.add v527, v713 : u32 #[overflow = checked]; + v712 = arith.constant 4 : u32; + v531 = arith.mod v529, v712 : u32; + hir.assertz v531 #[code = 250]; + v711 = arith.constant 0 : felt; + v532 = hir.int_to_ptr v529 : ptr; + hir.store v532, v711; + v533 = hir.bitcast v506 : u32; + v710 = arith.constant 4 : u32; + v535 = arith.mod v533, v710 : u32; + hir.assertz v535 #[code = 250]; + v709 = arith.constant 0 : felt; + v536 = hir.int_to_ptr v533 : ptr; + hir.store v536, v709; builtin.ret ; }; - private builtin.function @core::ptr::alignment::Alignment::max(v1321: i32, v1322: i32) -> i32 { - ^block152(v1321: i32, v1322: i32): - v1329 = arith.constant 0 : i32; - v1325 = hir.bitcast v1322 : u32; - v1324 = hir.bitcast v1321 : u32; - v1326 = arith.gt v1324, v1325 : i1; - v1327 = arith.zext v1326 : u32; - v1328 = hir.bitcast v1327 : i32; - v1330 = arith.neq v1328, v1329 : i1; - v1331 = cf.select v1330, v1321, v1322 : i32; - builtin.ret v1331; + private builtin.function @core::ptr::alignment::Alignment::max(v537: i32, v538: i32) -> i32 { + ^block65(v537: i32, v538: i32): + v545 = arith.constant 0 : i32; + v541 = hir.bitcast v538 : u32; + v540 = hir.bitcast v537 : u32; + v542 = arith.gt v540, v541 : i1; + v543 = arith.zext v542 : u32; + v544 = hir.bitcast v543 : i32; + v546 = arith.neq v544, v545 : i1; + v547 = cf.select v546, v537, v538 : i32; + builtin.ret v547; }; - public builtin.function @cabi_realloc(v1332: i32, v1333: i32, v1334: i32, v1335: i32) -> i32 { - ^block154(v1332: i32, v1333: i32, v1334: i32, v1335: i32): - v1337 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/cabi_realloc_wit_bindgen_0_28_0(v1332, v1333, v1334, v1335) : i32 - builtin.ret v1337; + public builtin.function @cabi_realloc(v548: i32, v549: i32, v550: i32, v551: i32) -> i32 { + ^block67(v548: i32, v549: i32, v550: i32, v551: i32): + v553 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/cabi_realloc_wit_bindgen_0_28_0(v548, v549, v550, v551) : i32 + builtin.ret v553; }; builtin.global_variable private @#__stack_pointer : i32 { @@ -878,15 +756,15 @@ builtin.component miden:storage-example/foo@1.0.0 { builtin.segment readonly @1048576 = 0x000000020000000100000001000000010000000100000001000000010000000100000001; }; - public builtin.function @test-storage-item(v1338: i32, v1339: felt, v1340: felt, v1341: felt, v1342: felt) -> felt { - ^block156(v1338: i32, v1339: felt, v1340: felt, v1341: felt, v1342: felt): - v1343 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden:storage-example/foo@1.0.0#test-storage-item(v1338, v1339, v1340, v1341, v1342) : felt - builtin.ret v1343; + public builtin.function @set-asset-qty(v554: felt, v555: felt, v556: felt, v557: felt, v558: felt, v559: felt, v560: felt, v561: felt, v562: felt) { + ^block69(v554: felt, v555: felt, v556: felt, v557: felt, v558: felt, v559: felt, v560: felt, v561: felt, v562: felt): + hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden:storage-example/foo@1.0.0#set-asset-qty(v554, v555, v556, v557, v558, v559, v560, v561, v562) + builtin.ret ; }; - public builtin.function @test-storage-map-item(v1344: i32, v1345: felt, v1346: felt, v1347: felt, v1348: felt, v1349: felt, v1350: felt, v1351: felt, v1352: felt) -> felt { - ^block158(v1344: i32, v1345: felt, v1346: felt, v1347: felt, v1348: felt, v1349: felt, v1350: felt, v1351: felt, v1352: felt): - v1353 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden:storage-example/foo@1.0.0#test-storage-map-item(v1344, v1345, v1346, v1347, v1348, v1349, v1350, v1351, v1352) : felt - builtin.ret v1353; + public builtin.function @get-asset-qty(v563: felt, v564: felt, v565: felt, v566: felt) -> felt { + ^block71(v563: felt, v564: felt, v565: felt, v566: felt): + v567 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden:storage-example/foo@1.0.0#get-asset-qty(v563, v564, v565, v566) : felt + builtin.ret v567; }; }; \ No newline at end of file diff --git a/tests/integration/expected/examples/storage_example.masm b/tests/integration/expected/examples/storage_example.masm new file mode 100644 index 000000000..aff64c2ee --- /dev/null +++ b/tests/integration/expected/examples/storage_example.masm @@ -0,0 +1,1123 @@ +# mod miden:storage-example/foo@1.0.0 + +export.set-asset-qty + exec.::miden:storage-example/foo@1.0.0::storage_example::miden:storage-example/foo@1.0.0#set-asset-qty +end + +export.get-asset-qty + exec.::miden:storage-example/foo@1.0.0::storage_example::miden:storage-example/foo@1.0.0#get-asset-qty +end + +export.init + push.2162688 + exec.::intrinsics::mem::heap_init + push.5121323707957172480 + push.16385291266171272914 + push.3612753469884014922 + push.8597705872349702967 + adv.push_mapval + push.262144 + push.3 + exec.::std::mem::pipe_preimage_to_memory + drop + push.1048576 + u32assert + mem_store.262144 +end + +# mod miden:storage-example/foo@1.0.0::storage_example + +proc.miden_base_sys::bindings::storage::extern_get_storage_item + exec.::miden::account::get_item + movup.4 + dup.0 + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.4 + dup.1 + swap.1 + add + u32assert + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.8 + dup.1 + swap.1 + add + u32assert + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.12 + add + u32assert + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt +end + +proc.miden_base_sys::bindings::storage::extern_get_storage_map_item + exec.::miden::account::get_map_item + movup.4 + dup.0 + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.4 + dup.1 + swap.1 + add + u32assert + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.8 + dup.1 + swap.1 + add + u32assert + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.12 + add + u32assert + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt +end + +proc.miden_base_sys::bindings::storage::extern_set_storage_map_item + exec.::miden::account::set_map_item + movup.8 + dup.0 + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.4 + dup.1 + swap.1 + add + u32assert + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.8 + dup.1 + swap.1 + add + u32assert + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.12 + dup.1 + swap.1 + add + u32assert + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.16 + dup.1 + swap.1 + add + u32assert + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.20 + dup.1 + swap.1 + add + u32assert + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.24 + dup.1 + swap.1 + add + u32assert + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.28 + add + u32assert + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt +end + +proc.__wasm_call_ctors + nop +end + +proc.storage_example::bindings::__link_custom_section_describing_imports + nop +end + +proc.__rustc::__rust_alloc + push.1048612 + movup.2 + swap.1 + exec.::miden:storage-example/foo@1.0.0::storage_example::::alloc +end + +proc.__rustc::__rust_realloc + push.1048612 + dup.4 + swap.2 + swap.4 + swap.1 + exec.::miden:storage-example/foo@1.0.0::storage_example::::alloc + push.0 + push.0 + dup.2 + swap.1 + eq + neq + if.true + movdn.3 + drop + drop + drop + else + push.0 + dup.2 + dup.5 + swap.1 + u32lt + neq + swap.1 + swap.4 + swap.1 + cdrop + push.0 + push.0 + dup.2 + swap.1 + eq + neq + if.true + drop + drop + else + dup.2 + movup.2 + push.0 + dup.3 + push.0 + gte + while.true + dup.2 + dup.1 + push.1 + u32overflowing_madd + assertz + dup.2 + dup.2 + push.1 + u32overflowing_madd + assertz + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_sw + push.128 + u32and + swap.1 + u32divmod.4 + swap.1 + dup.2 + dup.2 + dup.2 + exec.::intrinsics::mem::load_sw + push.4294967040 + u32and + movup.5 + u32or + movdn.4 + exec.::intrinsics::mem::store_sw + u32wrapping_add.1 + dup.0 + dup.4 + u32gte + end + dropw + end + end +end + +export.miden:storage-example/foo@1.0.0#set-asset-qty + push.1048576 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_sw + push.4294967264 + push.128 + dup.2 + swap.1 + u32wrapping_sub + u32and + push.1048576 + dup.1 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_sw + exec.::miden:storage-example/foo@1.0.0::storage_example::wit_bindgen_rt::run_ctors_once + push.12 + dup.1 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + movup.10 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.8 + dup.1 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + movup.9 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.4 + dup.1 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + movup.8 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + dup.0 + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + movup.7 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.0 + push.32 + dup.2 + swap.1 + u32wrapping_add + exec.::miden:storage-example/foo@1.0.0::storage_example::miden_base_sys::bindings::storage::get_item + push.44 + dup.1 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.40 + dup.2 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.36 + dup.3 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.32 + dup.4 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.0 + push.1 + movup.8 + movup.3 + eq + neq + neq + if.true + dropw + movdn.4 + dropw + else + push.0 + push.1 + movup.7 + movup.3 + eq + neq + neq + if.true + drop + drop + drop + movdn.3 + drop + drop + drop + else + push.0 + push.1 + movup.6 + movup.3 + eq + neq + neq + if.true + drop + drop + movdn.2 + drop + drop + else + push.0 + push.1 + movup.5 + movup.3 + eq + neq + neq + if.true + drop + swap.1 + drop + else + push.96 + dup.1 + swap.1 + u32wrapping_add + movup.3 + swap.1 + exec.::miden:storage-example/foo@1.0.0::storage_example::>::from + push.96 + dup.1 + swap.1 + u32wrapping_add + push.1 + push.32 + dup.3 + swap.1 + u32wrapping_add + movup.2 + swap.3 + movdn.2 + exec.::miden:storage-example/foo@1.0.0::storage_example::miden_base_sys::bindings::storage::set_map_item + end + end + end + end + push.1048576 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_sw +end + +export.miden:storage-example/foo@1.0.0#get-asset-qty + push.1048576 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_sw + push.4294967264 + push.64 + dup.2 + swap.1 + u32wrapping_sub + u32and + push.1048576 + dup.1 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_sw + exec.::miden:storage-example/foo@1.0.0::storage_example::wit_bindgen_rt::run_ctors_once + push.12 + dup.1 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + movup.6 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.8 + dup.1 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + movup.5 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.4 + dup.1 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + movup.4 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + dup.0 + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + movup.3 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.1 + push.32 + dup.2 + swap.1 + u32wrapping_add + dup.2 + swap.2 + swap.1 + exec.::miden:storage-example/foo@1.0.0::storage_example::miden_base_sys::bindings::storage::get_map_item + push.44 + swap.1 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.1048576 + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_sw +end + +export.cabi_realloc_wit_bindgen_0_28_0 + exec.::miden:storage-example/foo@1.0.0::storage_example::wit_bindgen_rt::cabi_realloc +end + +proc.wit_bindgen_rt::cabi_realloc + push.0 + dup.2 + swap.1 + neq + if.true + exec.::miden:storage-example/foo@1.0.0::storage_example::__rustc::__rust_realloc + push.0 + push.3735929054 + movup.2 + else + drop + drop + push.0 + push.0 + dup.3 + swap.1 + eq + neq + if.true + swap.1 + drop + push.1 + push.3735929054 + movup.2 + swap.1 + else + swap.1 + exec.::miden:storage-example/foo@1.0.0::storage_example::__rustc::__rust_alloc + push.0 + push.3735929054 + movup.2 + end + end + movup.2 + eq.0 + if.true + swap.1 + drop + push.0 + dup.1 + swap.1 + neq + if.true + push.0 + swap.1 + else + drop + push.1 + push.3735929054 + end + else + drop + push.0 + swap.1 + end + push.0 + movup.2 + swap.1 + eq + if.true + nop + else + drop + push.0 + assert + end +end + +proc.wit_bindgen_rt::run_ctors_once + push.1048617 + push.0 + add + u32assert + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_sw + push.128 + u32and + push.0 + swap.1 + neq + if.true + nop + else + exec.::miden:storage-example/foo@1.0.0::storage_example::__wasm_call_ctors + push.1 + push.1048617 + push.0 + add + u32assert + u32divmod.4 + swap.1 + dup.2 + dup.2 + dup.2 + exec.::intrinsics::mem::load_sw + push.4294967040 + u32and + movup.5 + u32or + movdn.4 + exec.::intrinsics::mem::store_sw + end +end + +proc.::alloc + push.32 + push.0 + push.32 + dup.4 + swap.1 + u32gt + neq + dup.3 + swap.1 + cdrop + push.0 + push.4294967295 + dup.2 + swap.1 + u32wrapping_add + dup.2 + swap.1 + u32and + neq + if.true + dropw + push.0 + push.3735929054 + else + movup.2 + exec.::miden:storage-example/foo@1.0.0::storage_example::core::ptr::alignment::Alignment::max + push.0 + push.2147483648 + dup.2 + u32wrapping_sub + dup.4 + swap.1 + u32gt + neq + if.true + drop + drop + drop + push.0 + push.3735929054 + else + push.0 + dup.1 + swap.1 + u32wrapping_sub + push.4294967295 + movup.4 + dup.3 + u32wrapping_add + u32wrapping_add + u32and + dup.2 + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_sw + push.0 + neq + if.true + push.0 + swap.3 + else + exec.::intrinsics::mem::heap_base + exec.::intrinsics::mem::memory_size + dup.4 + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + push.16 + movup.2 + swap.1 + u32shl + movup.2 + swap.1 + u32wrapping_add + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_sw + push.0 + swap.3 + end + dup.0 + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_sw + push.0 + dup.3 + push.268435456 + dup.3 + u32wrapping_sub + swap.1 + u32lt + neq + if.true + dropw + push.1 + swap.1 + else + movup.4 + drop + swap.1 + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + dup.1 + movup.3 + u32wrapping_add + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_sw + push.1 + swap.1 + movup.2 + u32wrapping_add + end + end + end + push.0 + movup.2 + swap.1 + eq + if.true + drop + push.0 + assert + else + nop + end +end + +proc.miden_base_sys::bindings::storage::get_item + push.255 + movup.2 + swap.1 + u32and + exec.::miden:storage-example/foo@1.0.0::storage_example::miden_base_sys::bindings::storage::extern_get_storage_item +end + +proc.miden_base_sys::bindings::storage::get_map_item + dup.2 + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.4 + dup.4 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.8 + dup.5 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.12 + movup.6 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.255 + movup.6 + swap.1 + u32and + movup.2 + swap.3 + movdn.2 + swap.1 + swap.4 + swap.1 + exec.::miden:storage-example/foo@1.0.0::storage_example::miden_base_sys::bindings::storage::extern_get_storage_map_item +end + +proc.miden_base_sys::bindings::storage::set_map_item + dup.2 + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.4 + dup.4 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.8 + dup.5 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.12 + movup.6 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + dup.6 + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.4 + dup.8 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.8 + dup.9 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.12 + movup.10 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::load_felt + push.255 + movup.10 + swap.1 + u32and + movup.4 + swap.5 + movdn.4 + movup.3 + swap.6 + movdn.3 + movup.2 + swap.7 + movdn.2 + swap.1 + swap.8 + swap.1 + exec.::miden:storage-example/foo@1.0.0::storage_example::miden_base_sys::bindings::storage::extern_set_storage_map_item +end + +proc.>::from + push.12 + dup.1 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + movup.2 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.8 + dup.1 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + push.0 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.4 + dup.1 + add + u32assert + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + push.0 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt + push.4 + dup.1 + swap.1 + u32mod + u32assert + assertz.err=250 + push.0 + swap.1 + u32divmod.4 + swap.1 + exec.::intrinsics::mem::store_felt +end + +proc.core::ptr::alignment::Alignment::max + push.0 + dup.2 + dup.2 + swap.1 + u32gt + neq + cdrop +end + +export.cabi_realloc + exec.::miden:storage-example/foo@1.0.0::storage_example::cabi_realloc_wit_bindgen_0_28_0 +end + diff --git a/tests/integration/expected/examples/storage_example.wat b/tests/integration/expected/examples/storage_example.wat index 73b785268..f5bb1036e 100644 --- a/tests/integration/expected/examples/storage_example.wat +++ b/tests/integration/expected/examples/storage_example.wat @@ -10,19 +10,19 @@ (instance (type (;0;) (func (param "a" f32) (param "b" f32) (result bool))) (export (;0;) "eq" (func (type 0))) + (type (;1;) (func (param "a" u32) (result f32))) + (export (;1;) "from-u32" (func (type 1))) ) ) (import "miden:core-import/intrinsics-felt@1.0.0" (instance (;1;) (type 1))) (type (;2;) (instance (type (;0;) (func (param "index" f32) (param "result-ptr" s32))) - (export (;0;) "get-storage-item" (func (type 0))) - (type (;1;) (func (param "index" f32) (param "value0" f32) (param "value1" f32) (param "value2" f32) (param "value3" f32) (param "result-ptr" s32))) - (export (;1;) "set-storage-item" (func (type 1))) - (type (;2;) (func (param "index" f32) (param "key0" f32) (param "key1" f32) (param "key2" f32) (param "key3" f32) (param "result-ptr" s32))) - (export (;2;) "get-storage-map-item" (func (type 2))) - (type (;3;) (func (param "index" f32) (param "key0" f32) (param "key1" f32) (param "key2" f32) (param "key3" f32) (param "value0" f32) (param "value1" f32) (param "value2" f32) (param "value3" f32) (param "result-ptr" s32))) - (export (;3;) "set-storage-map-item" (func (type 3))) + (export (;0;) "get-item" (func (type 0))) + (type (;1;) (func (param "index" f32) (param "key0" f32) (param "key1" f32) (param "key2" f32) (param "key3" f32) (param "result-ptr" s32))) + (export (;1;) "get-map-item" (func (type 1))) + (type (;2;) (func (param "index" f32) (param "key0" f32) (param "key1" f32) (param "key2" f32) (param "key3" f32) (param "value0" f32) (param "value1" f32) (param "value2" f32) (param "value3" f32) (param "result-ptr" s32))) + (export (;2;) "set-map-item" (func (type 2))) ) ) (import "miden:core-import/account@1.0.0" (instance (;2;) (type 2))) @@ -33,6 +33,8 @@ (type (;2;) (tuple 1 1 1 1)) (type (;3;) (record (field "inner" 2))) (export (;4;) "word" (type (eq 3))) + (type (;5;) (record (field "inner" 4))) + (export (;6;) "core-asset" (type (eq 5))) ) ) (import "miden:base/core-types@1.0.0" (instance (;3;) (type 3))) @@ -42,79 +44,41 @@ (type (;2;) (func (param f32 i32))) (type (;3;) (func (param f32 f32 f32 f32 f32 i32))) (type (;4;) (func (param f32 f32 f32 f32 f32 f32 f32 f32 f32 i32))) - (type (;5;) (func)) - (type (;6;) (func (param i32 i32) (result i32))) - (type (;7;) (func (param i32 i32 i32 i32) (result i32))) - (type (;8;) (func (param i32 f32 f32 f32 f32) (result f32))) - (type (;9;) (func (param i32 f32 f32 f32 f32 f32 f32 f32 f32) (result f32))) - (type (;10;) (func (param i32 i32 i32) (result i32))) - (type (;11;) (func (param i32 i32))) - (type (;12;) (func (param i32 i32 i32))) - (type (;13;) (func (param i32 i32 i32 i32))) + (type (;5;) (func (param i32) (result f32))) + (type (;6;) (func)) + (type (;7;) (func (param i32 i32) (result i32))) + (type (;8;) (func (param i32 i32 i32 i32) (result i32))) + (type (;9;) (func (param f32 f32 f32 f32 f32 f32 f32 f32 f32))) + (type (;10;) (func (param f32 f32 f32 f32) (result f32))) + (type (;11;) (func (param i32 i32 i32) (result i32))) + (type (;12;) (func (param i32 i32))) + (type (;13;) (func (param i32 i32 i32))) + (type (;14;) (func (param i32 i32 i32 i32))) + (type (;15;) (func (param i32 f32))) (import "miden:core-import/intrinsics-felt@1.0.0" "eq" (func $miden_stdlib_sys::intrinsics::felt::extern_eq (;0;) (type 0))) (import "miden:core-import/intrinsics-mem@1.0.0" "heap-base" (func $miden_sdk_alloc::heap_base (;1;) (type 1))) - (import "miden:core-import/account@1.0.0" "get-storage-item" (func $miden_base_sys::bindings::storage::extern_get_storage_item (;2;) (type 2))) - (import "miden:core-import/account@1.0.0" "set-storage-item" (func $miden_base_sys::bindings::storage::extern_set_storage_item (;3;) (type 3))) - (import "miden:core-import/account@1.0.0" "get-storage-map-item" (func $miden_base_sys::bindings::storage::extern_get_storage_map_item (;4;) (type 3))) - (import "miden:core-import/account@1.0.0" "set-storage-map-item" (func $miden_base_sys::bindings::storage::extern_set_storage_map_item (;5;) (type 4))) + (import "miden:core-import/account@1.0.0" "get-item" (func $miden_base_sys::bindings::storage::extern_get_storage_item (;2;) (type 2))) + (import "miden:core-import/account@1.0.0" "get-map-item" (func $miden_base_sys::bindings::storage::extern_get_storage_map_item (;3;) (type 3))) + (import "miden:core-import/account@1.0.0" "set-map-item" (func $miden_base_sys::bindings::storage::extern_set_storage_map_item (;4;) (type 4))) + (import "miden:core-import/intrinsics-felt@1.0.0" "from-u32" (func $miden_stdlib_sys::intrinsics::felt::extern_from_u32 (;5;) (type 5))) (table (;0;) 3 3 funcref) (memory (;0;) 17) (global $__stack_pointer (;0;) (mut i32) i32.const 1048576) (export "memory" (memory 0)) - (export "miden:storage-example/foo@1.0.0#test-storage-item" (func $miden:storage-example/foo@1.0.0#test-storage-item)) - (export "miden:storage-example/foo@1.0.0#test-storage-map-item" (func $miden:storage-example/foo@1.0.0#test-storage-map-item)) + (export "miden:storage-example/foo@1.0.0#set-asset-qty" (func $miden:storage-example/foo@1.0.0#set-asset-qty)) + (export "miden:storage-example/foo@1.0.0#get-asset-qty" (func $miden:storage-example/foo@1.0.0#get-asset-qty)) (export "cabi_realloc_wit_bindgen_0_28_0" (func $cabi_realloc_wit_bindgen_0_28_0)) (export "cabi_realloc" (func $cabi_realloc)) (elem (;0;) (i32.const 1) func $storage_example::bindings::__link_custom_section_describing_imports $cabi_realloc) - (func $__wasm_call_ctors (;6;) (type 5)) - (func $::eq (;7;) (type 6) (param i32 i32) (result i32) - (local i32) - i32.const 0 - local.set 2 - block ;; label = @1 - local.get 0 - f32.load - local.get 1 - f32.load - call $miden_stdlib_sys::intrinsics::felt::extern_eq - i32.const 1 - i32.ne - br_if 0 (;@1;) - local.get 0 - f32.load offset=4 - local.get 1 - f32.load offset=4 - call $miden_stdlib_sys::intrinsics::felt::extern_eq - i32.const 1 - i32.ne - br_if 0 (;@1;) - local.get 0 - f32.load offset=8 - local.get 1 - f32.load offset=8 - call $miden_stdlib_sys::intrinsics::felt::extern_eq - i32.const 1 - i32.ne - br_if 0 (;@1;) - local.get 0 - f32.load offset=12 - local.get 1 - f32.load offset=12 - call $miden_stdlib_sys::intrinsics::felt::extern_eq - i32.const 1 - i32.eq - local.set 2 - end - local.get 2 - ) - (func $storage_example::bindings::__link_custom_section_describing_imports (;8;) (type 5)) - (func $__rustc::__rust_alloc (;9;) (type 6) (param i32 i32) (result i32) + (func $__wasm_call_ctors (;6;) (type 6)) + (func $storage_example::bindings::__link_custom_section_describing_imports (;7;) (type 6)) + (func $__rustc::__rust_alloc (;8;) (type 7) (param i32 i32) (result i32) i32.const 1048612 local.get 1 local.get 0 call $::alloc ) - (func $__rustc::__rust_realloc (;10;) (type 7) (param i32 i32 i32 i32) (result i32) + (func $__rustc::__rust_realloc (;9;) (type 8) (param i32 i32 i32 i32) (result i32) block ;; label = @1 i32.const 1048612 local.get 2 @@ -139,136 +103,133 @@ end local.get 2 ) - (func $miden:storage-example/foo@1.0.0#test-storage-item (;11;) (type 8) (param i32 f32 f32 f32 f32) (result f32) + (func $miden:storage-example/foo@1.0.0#set-asset-qty (;10;) (type 9) (param f32 f32 f32 f32 f32 f32 f32 f32 f32) (local i32 i32) global.get $__stack_pointer - local.tee 5 - local.set 6 - local.get 5 - i32.const 96 + local.tee 9 + local.set 10 + local.get 9 + i32.const 128 i32.sub i32.const -32 i32.and - local.tee 5 + local.tee 9 global.set $__stack_pointer call $wit_bindgen_rt::run_ctors_once - local.get 5 - local.get 4 + local.get 9 + local.get 7 f32.store offset=12 - local.get 5 - local.get 3 + local.get 9 + local.get 6 f32.store offset=8 + local.get 9 local.get 5 - local.get 2 f32.store offset=4 - local.get 5 - local.get 1 + local.get 9 + local.get 4 f32.store - local.get 5 - i32.const 32 - i32.add - local.get 0 - local.get 5 - call $miden_base_sys::bindings::storage::set_item - local.get 5 + local.get 9 i32.const 32 i32.add - local.get 0 + i32.const 0 call $miden_base_sys::bindings::storage::get_item + local.get 9 + f32.load offset=44 + local.set 5 + local.get 9 + f32.load offset=40 + local.set 6 + local.get 9 + f32.load offset=36 + local.set 7 block ;; label = @1 + local.get 0 + local.get 9 + f32.load offset=32 + call $miden_stdlib_sys::intrinsics::felt::extern_eq + i32.const 1 + i32.ne + br_if 0 (;@1;) + local.get 1 + local.get 7 + call $miden_stdlib_sys::intrinsics::felt::extern_eq + i32.const 1 + i32.ne + br_if 0 (;@1;) + local.get 2 + local.get 6 + call $miden_stdlib_sys::intrinsics::felt::extern_eq + i32.const 1 + i32.ne + br_if 0 (;@1;) + local.get 3 local.get 5 - local.get 5 + call $miden_stdlib_sys::intrinsics::felt::extern_eq + i32.const 1 + i32.ne + br_if 0 (;@1;) + local.get 9 + i32.const 96 + i32.add + local.get 8 + call $>::from + local.get 9 i32.const 32 i32.add - call $::eq - br_if 0 (;@1;) - unreachable + i32.const 1 + local.get 9 + local.get 9 + i32.const 96 + i32.add + call $miden_base_sys::bindings::storage::set_map_item end - local.get 5 - f32.load offset=32 - local.set 4 - local.get 6 + local.get 10 global.set $__stack_pointer - local.get 4 ) - (func $miden:storage-example/foo@1.0.0#test-storage-map-item (;12;) (type 9) (param i32 f32 f32 f32 f32 f32 f32 f32 f32) (result f32) + (func $miden:storage-example/foo@1.0.0#get-asset-qty (;11;) (type 10) (param f32 f32 f32 f32) (result f32) (local i32 i32) global.get $__stack_pointer - local.tee 9 - local.set 10 - local.get 9 - i32.const 128 + local.tee 4 + i32.const 64 i32.sub i32.const -32 i32.and - local.tee 9 + local.tee 5 global.set $__stack_pointer call $wit_bindgen_rt::run_ctors_once - local.get 9 - local.get 4 - f32.store offset=12 - local.get 9 + local.get 5 local.get 3 - f32.store offset=8 - local.get 9 + f32.store offset=12 + local.get 5 local.get 2 - f32.store offset=4 - local.get 9 + f32.store offset=8 + local.get 5 local.get 1 - f32.store - local.get 9 - local.get 8 - f32.store offset=44 - local.get 9 - local.get 7 - f32.store offset=40 - local.get 9 - local.get 6 - f32.store offset=36 - local.get 9 + f32.store offset=4 local.get 5 - f32.store offset=32 - local.get 9 - i32.const 64 - i32.add local.get 0 - local.get 9 - local.get 9 + f32.store + local.get 5 i32.const 32 i32.add - call $miden_base_sys::bindings::storage::set_map_item - local.get 9 - i32.const 64 - i32.add - local.get 0 - local.get 9 + i32.const 1 + local.get 5 call $miden_base_sys::bindings::storage::get_map_item - block ;; label = @1 - local.get 9 - i32.const 32 - i32.add - local.get 9 - i32.const 64 - i32.add - call $::eq - br_if 0 (;@1;) - unreachable - end - local.get 9 - f32.load offset=64 - local.set 4 - local.get 10 - global.set $__stack_pointer + local.get 5 + f32.load offset=44 + local.set 3 local.get 4 + global.set $__stack_pointer + local.get 3 ) - (func $cabi_realloc_wit_bindgen_0_28_0 (;13;) (type 7) (param i32 i32 i32 i32) (result i32) + (func $cabi_realloc_wit_bindgen_0_28_0 (;12;) (type 8) (param i32 i32 i32 i32) (result i32) local.get 0 local.get 1 local.get 2 local.get 3 call $wit_bindgen_rt::cabi_realloc ) - (func $wit_bindgen_rt::cabi_realloc (;14;) (type 7) (param i32 i32 i32 i32) (result i32) + (func $wit_bindgen_rt::cabi_realloc (;13;) (type 8) (param i32 i32 i32 i32) (result i32) block ;; label = @1 block ;; label = @2 block ;; label = @3 @@ -299,7 +260,7 @@ end local.get 2 ) - (func $wit_bindgen_rt::run_ctors_once (;15;) (type 5) + (func $wit_bindgen_rt::run_ctors_once (;14;) (type 6) block ;; label = @1 i32.const 0 i32.load8_u offset=1048617 @@ -310,7 +271,7 @@ i32.store8 offset=1048617 end ) - (func $::alloc (;16;) (type 10) (param i32 i32 i32) (result i32) + (func $::alloc (;15;) (type 11) (param i32 i32 i32) (result i32) (local i32 i32) block ;; label = @1 local.get 1 @@ -382,7 +343,7 @@ end unreachable ) - (func $miden_base_sys::bindings::storage::get_item (;17;) (type 11) (param i32 i32) + (func $miden_base_sys::bindings::storage::get_item (;16;) (type 12) (param i32 i32) local.get 1 i32.const 255 i32.and @@ -390,23 +351,7 @@ local.get 0 call $miden_base_sys::bindings::storage::extern_get_storage_item ) - (func $miden_base_sys::bindings::storage::set_item (;18;) (type 12) (param i32 i32 i32) - local.get 1 - i32.const 255 - i32.and - f32.reinterpret_i32 - local.get 2 - f32.load - local.get 2 - f32.load offset=4 - local.get 2 - f32.load offset=8 - local.get 2 - f32.load offset=12 - local.get 0 - call $miden_base_sys::bindings::storage::extern_set_storage_item - ) - (func $miden_base_sys::bindings::storage::get_map_item (;19;) (type 12) (param i32 i32 i32) + (func $miden_base_sys::bindings::storage::get_map_item (;17;) (type 13) (param i32 i32 i32) local.get 1 i32.const 255 i32.and @@ -422,7 +367,7 @@ local.get 0 call $miden_base_sys::bindings::storage::extern_get_storage_map_item ) - (func $miden_base_sys::bindings::storage::set_map_item (;20;) (type 13) (param i32 i32 i32 i32) + (func $miden_base_sys::bindings::storage::set_map_item (;18;) (type 14) (param i32 i32 i32 i32) local.get 1 i32.const 255 i32.and @@ -446,7 +391,31 @@ local.get 0 call $miden_base_sys::bindings::storage::extern_set_storage_map_item ) - (func $core::ptr::alignment::Alignment::max (;21;) (type 6) (param i32 i32) (result i32) + (func $>::from (;19;) (type 15) (param i32 f32) + (local f32 f32 f32) + i32.const 0 + call $miden_stdlib_sys::intrinsics::felt::extern_from_u32 + local.set 2 + i32.const 0 + call $miden_stdlib_sys::intrinsics::felt::extern_from_u32 + local.set 3 + i32.const 0 + call $miden_stdlib_sys::intrinsics::felt::extern_from_u32 + local.set 4 + local.get 0 + local.get 1 + f32.store offset=12 + local.get 0 + local.get 4 + f32.store offset=8 + local.get 0 + local.get 3 + f32.store offset=4 + local.get 0 + local.get 2 + f32.store + ) + (func $core::ptr::alignment::Alignment::max (;20;) (type 7) (param i32 i32) (result i32) local.get 0 local.get 1 local.get 0 @@ -454,7 +423,7 @@ i32.gt_u select ) - (func $cabi_realloc (;22;) (type 7) (param i32 i32 i32 i32) (result i32) + (func $cabi_realloc (;21;) (type 8) (param i32 i32 i32 i32) (result i32) local.get 0 local.get 1 local.get 2 @@ -462,30 +431,31 @@ call $cabi_realloc_wit_bindgen_0_28_0 ) (data $.rodata (;0;) (i32.const 1048576) "\01\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00") + (@custom "rodata,miden_account" (after data) "\1fstorage-example_A simple example of a Miden account storage API\0b0.1.0\03\01\05\00\00\00!owner_public_key\01\15test value9auth::rpo_falcon512::pub_key\01\01\01\1basset_qty_map\01\11test map") ) (alias export 1 "eq" (func (;0;))) (core func (;0;) (canon lower (func 0))) + (alias export 1 "from-u32" (func (;1;))) + (core func (;1;) (canon lower (func 1))) (core instance (;0;) (export "eq" (func 0)) + (export "from-u32" (func 1)) ) - (alias export 0 "heap-base" (func (;1;))) - (core func (;1;) (canon lower (func 1))) + (alias export 0 "heap-base" (func (;2;))) + (core func (;2;) (canon lower (func 2))) (core instance (;1;) - (export "heap-base" (func 1)) + (export "heap-base" (func 2)) ) - (alias export 2 "get-storage-item" (func (;2;))) - (core func (;2;) (canon lower (func 2))) - (alias export 2 "set-storage-item" (func (;3;))) + (alias export 2 "get-item" (func (;3;))) (core func (;3;) (canon lower (func 3))) - (alias export 2 "get-storage-map-item" (func (;4;))) + (alias export 2 "get-map-item" (func (;4;))) (core func (;4;) (canon lower (func 4))) - (alias export 2 "set-storage-map-item" (func (;5;))) + (alias export 2 "set-map-item" (func (;5;))) (core func (;5;) (canon lower (func 5))) (core instance (;2;) - (export "get-storage-item" (func 2)) - (export "set-storage-item" (func 3)) - (export "get-storage-map-item" (func 4)) - (export "set-storage-map-item" (func 5)) + (export "get-item" (func 3)) + (export "get-map-item" (func 4)) + (export "set-map-item" (func 5)) ) (core instance (;3;) (instantiate 0 (with "miden:core-import/intrinsics-felt@1.0.0" (instance 0)) @@ -495,44 +465,53 @@ ) (alias core export 3 "memory" (core memory (;0;))) (alias export 3 "word" (type (;4;))) - (alias export 3 "felt" (type (;5;))) - (type (;6;) (func (param "index" u8) (param "value" 4) (result 5))) - (alias core export 3 "miden:storage-example/foo@1.0.0#test-storage-item" (core func (;6;))) + (alias export 3 "core-asset" (type (;5;))) + (alias export 3 "felt" (type (;6;))) + (type (;7;) (func (param "pub-key" 4) (param "asset" 5) (param "qty" 6))) + (alias core export 3 "miden:storage-example/foo@1.0.0#set-asset-qty" (core func (;6;))) (alias core export 3 "cabi_realloc" (core func (;7;))) - (func (;6;) (type 6) (canon lift (core func 6))) - (type (;7;) (func (param "index" u8) (param "key" 4) (param "value" 4) (result 5))) - (alias core export 3 "miden:storage-example/foo@1.0.0#test-storage-map-item" (core func (;8;))) - (func (;7;) (type 7) (canon lift (core func 8))) - (alias export 3 "felt" (type (;8;))) - (alias export 3 "word" (type (;9;))) + (func (;6;) (type 7) (canon lift (core func 6))) + (type (;8;) (func (param "asset" 5) (result 6))) + (alias core export 3 "miden:storage-example/foo@1.0.0#get-asset-qty" (core func (;8;))) + (func (;7;) (type 8) (canon lift (core func 8))) + (alias export 3 "felt" (type (;9;))) + (alias export 3 "word" (type (;10;))) + (alias export 3 "core-asset" (type (;11;))) (component (;0;) (type (;0;) (record (field "inner" f32))) (import "import-type-felt" (type (;1;) (eq 0))) (type (;2;) (tuple 1 1 1 1)) (type (;3;) (record (field "inner" 2))) (import "import-type-word" (type (;4;) (eq 3))) - (import "import-type-word0" (type (;5;) (eq 4))) - (import "import-type-felt0" (type (;6;) (eq 1))) - (type (;7;) (func (param "index" u8) (param "value" 5) (result 6))) - (import "import-func-test-storage-item" (func (;0;) (type 7))) - (type (;8;) (func (param "index" u8) (param "key" 5) (param "value" 5) (result 6))) - (import "import-func-test-storage-map-item" (func (;1;) (type 8))) - (export (;9;) "felt" (type 1)) - (export (;10;) "word" (type 4)) - (type (;11;) (func (param "index" u8) (param "value" 10) (result 9))) - (export (;2;) "test-storage-item" (func 0) (func (type 11))) - (type (;12;) (func (param "index" u8) (param "key" 10) (param "value" 10) (result 9))) - (export (;3;) "test-storage-map-item" (func 1) (func (type 12))) + (type (;5;) (record (field "inner" 4))) + (import "import-type-core-asset" (type (;6;) (eq 5))) + (import "import-type-word0" (type (;7;) (eq 4))) + (import "import-type-core-asset0" (type (;8;) (eq 6))) + (import "import-type-felt0" (type (;9;) (eq 1))) + (type (;10;) (func (param "pub-key" 7) (param "asset" 8) (param "qty" 9))) + (import "import-func-set-asset-qty" (func (;0;) (type 10))) + (type (;11;) (func (param "asset" 8) (result 9))) + (import "import-func-get-asset-qty" (func (;1;) (type 11))) + (export (;12;) "felt" (type 1)) + (export (;13;) "word" (type 4)) + (export (;14;) "core-asset" (type 6)) + (type (;15;) (func (param "pub-key" 13) (param "asset" 14) (param "qty" 12))) + (export (;2;) "set-asset-qty" (func 0) (func (type 15))) + (type (;16;) (func (param "asset" 14) (result 12))) + (export (;3;) "get-asset-qty" (func 1) (func (type 16))) ) (instance (;4;) (instantiate 0 - (with "import-func-test-storage-item" (func 6)) - (with "import-func-test-storage-map-item" (func 7)) - (with "import-type-felt" (type 8)) - (with "import-type-word" (type 9)) + (with "import-func-set-asset-qty" (func 6)) + (with "import-func-get-asset-qty" (func 7)) + (with "import-type-felt" (type 9)) + (with "import-type-word" (type 10)) + (with "import-type-core-asset" (type 11)) (with "import-type-word0" (type 4)) - (with "import-type-felt0" (type 5)) + (with "import-type-core-asset0" (type 5)) + (with "import-type-felt0" (type 6)) ) ) (export (;5;) "miden:storage-example/foo@1.0.0" (instance 4)) + (@custom "description" "A simple example of a Miden account storage API") (@custom "version" "0.1.0") ) diff --git a/tests/integration/expected/examples/storage_example_unoptimized.hir b/tests/integration/expected/examples/storage_example_unoptimized.hir deleted file mode 100644 index 704afe3fc..000000000 --- a/tests/integration/expected/examples/storage_example_unoptimized.hir +++ /dev/null @@ -1,868 +0,0 @@ -builtin.component miden:storage-example/foo@1.0.0 { - builtin.module public @storage_example { - private builtin.function @miden_base_sys::bindings::storage::extern_get_storage_item(v0: felt, v1: i32) { - ^block5(v0: felt, v1: i32): - v2, v3, v4, v5 = hir.exec @miden/account/get_storage_item(v0) : felt, felt, felt, felt - v6 = hir.bitcast v1 : u32; - v7 = hir.int_to_ptr v6 : ptr; - hir.store v7, v2; - v8 = arith.constant 4 : u32; - v9 = arith.add v6, v8 : u32 #[overflow = checked]; - v10 = hir.int_to_ptr v9 : ptr; - hir.store v10, v3; - v11 = arith.constant 8 : u32; - v12 = arith.add v6, v11 : u32 #[overflow = checked]; - v13 = hir.int_to_ptr v12 : ptr; - hir.store v13, v4; - v14 = arith.constant 12 : u32; - v15 = arith.add v6, v14 : u32 #[overflow = checked]; - v16 = hir.int_to_ptr v15 : ptr; - hir.store v16, v5; - cf.br ^block8; - ^block8: - builtin.ret ; - }; - - private builtin.function @miden_base_sys::bindings::storage::extern_set_storage_item(v17: felt, v18: felt, v19: felt, v20: felt, v21: felt, v22: i32) { - ^block9(v17: felt, v18: felt, v19: felt, v20: felt, v21: felt, v22: i32): - v23, v24, v25, v26, v27, v28, v29, v30 = hir.exec @miden/account/set_storage_item(v17, v18, v19, v20, v21) : felt, felt, felt, felt, felt, felt, felt, felt - v31 = hir.bitcast v22 : u32; - v32 = hir.int_to_ptr v31 : ptr; - hir.store v32, v23; - v33 = arith.constant 4 : u32; - v34 = arith.add v31, v33 : u32 #[overflow = checked]; - v35 = hir.int_to_ptr v34 : ptr; - hir.store v35, v24; - v36 = arith.constant 8 : u32; - v37 = arith.add v31, v36 : u32 #[overflow = checked]; - v38 = hir.int_to_ptr v37 : ptr; - hir.store v38, v25; - v39 = arith.constant 12 : u32; - v40 = arith.add v31, v39 : u32 #[overflow = checked]; - v41 = hir.int_to_ptr v40 : ptr; - hir.store v41, v26; - v42 = arith.constant 16 : u32; - v43 = arith.add v31, v42 : u32 #[overflow = checked]; - v44 = hir.int_to_ptr v43 : ptr; - hir.store v44, v27; - v45 = arith.constant 20 : u32; - v46 = arith.add v31, v45 : u32 #[overflow = checked]; - v47 = hir.int_to_ptr v46 : ptr; - hir.store v47, v28; - v48 = arith.constant 24 : u32; - v49 = arith.add v31, v48 : u32 #[overflow = checked]; - v50 = hir.int_to_ptr v49 : ptr; - hir.store v50, v29; - v51 = arith.constant 28 : u32; - v52 = arith.add v31, v51 : u32 #[overflow = checked]; - v53 = hir.int_to_ptr v52 : ptr; - hir.store v53, v30; - cf.br ^block10; - ^block10: - builtin.ret ; - }; - - private builtin.function @miden_base_sys::bindings::storage::extern_get_storage_map_item(v54: felt, v55: felt, v56: felt, v57: felt, v58: felt, v59: i32) { - ^block11(v54: felt, v55: felt, v56: felt, v57: felt, v58: felt, v59: i32): - v60, v61, v62, v63 = hir.exec @miden/account/get_storage_map_item(v54, v55, v56, v57, v58) : felt, felt, felt, felt - v64 = hir.bitcast v59 : u32; - v65 = hir.int_to_ptr v64 : ptr; - hir.store v65, v60; - v66 = arith.constant 4 : u32; - v67 = arith.add v64, v66 : u32 #[overflow = checked]; - v68 = hir.int_to_ptr v67 : ptr; - hir.store v68, v61; - v69 = arith.constant 8 : u32; - v70 = arith.add v64, v69 : u32 #[overflow = checked]; - v71 = hir.int_to_ptr v70 : ptr; - hir.store v71, v62; - v72 = arith.constant 12 : u32; - v73 = arith.add v64, v72 : u32 #[overflow = checked]; - v74 = hir.int_to_ptr v73 : ptr; - hir.store v74, v63; - cf.br ^block12; - ^block12: - builtin.ret ; - }; - - private builtin.function @miden_base_sys::bindings::storage::extern_set_storage_map_item(v75: felt, v76: felt, v77: felt, v78: felt, v79: felt, v80: felt, v81: felt, v82: felt, v83: felt, v84: i32) { - ^block13(v75: felt, v76: felt, v77: felt, v78: felt, v79: felt, v80: felt, v81: felt, v82: felt, v83: felt, v84: i32): - v85, v86, v87, v88, v89, v90, v91, v92 = hir.exec @miden/account/set_storage_map_item(v75, v76, v77, v78, v79, v80, v81, v82, v83) : felt, felt, felt, felt, felt, felt, felt, felt - v93 = hir.bitcast v84 : u32; - v94 = hir.int_to_ptr v93 : ptr; - hir.store v94, v85; - v95 = arith.constant 4 : u32; - v96 = arith.add v93, v95 : u32 #[overflow = checked]; - v97 = hir.int_to_ptr v96 : ptr; - hir.store v97, v86; - v98 = arith.constant 8 : u32; - v99 = arith.add v93, v98 : u32 #[overflow = checked]; - v100 = hir.int_to_ptr v99 : ptr; - hir.store v100, v87; - v101 = arith.constant 12 : u32; - v102 = arith.add v93, v101 : u32 #[overflow = checked]; - v103 = hir.int_to_ptr v102 : ptr; - hir.store v103, v88; - v104 = arith.constant 16 : u32; - v105 = arith.add v93, v104 : u32 #[overflow = checked]; - v106 = hir.int_to_ptr v105 : ptr; - hir.store v106, v89; - v107 = arith.constant 20 : u32; - v108 = arith.add v93, v107 : u32 #[overflow = checked]; - v109 = hir.int_to_ptr v108 : ptr; - hir.store v109, v90; - v110 = arith.constant 24 : u32; - v111 = arith.add v93, v110 : u32 #[overflow = checked]; - v112 = hir.int_to_ptr v111 : ptr; - hir.store v112, v91; - v113 = arith.constant 28 : u32; - v114 = arith.add v93, v113 : u32 #[overflow = checked]; - v115 = hir.int_to_ptr v114 : ptr; - hir.store v115, v92; - cf.br ^block14; - ^block14: - builtin.ret ; - }; - - private builtin.function @__wasm_call_ctors() { - ^block16: - cf.br ^block17; - ^block17: - builtin.ret ; - }; - - private builtin.function @::eq(v116: i32, v117: i32) -> i32 { - ^block18(v116: i32, v117: i32): - v119 = arith.constant 0 : i32; - v120 = arith.constant 0 : i32; - v121 = hir.bitcast v116 : u32; - v122 = arith.constant 4 : u32; - v123 = arith.mod v121, v122 : u32; - hir.assertz v123 #[code = 250]; - v124 = hir.int_to_ptr v121 : ptr; - v125 = hir.load v124 : felt; - v126 = hir.bitcast v117 : u32; - v127 = arith.constant 4 : u32; - v128 = arith.mod v126, v127 : u32; - hir.assertz v128 #[code = 250]; - v129 = hir.int_to_ptr v126 : ptr; - v130 = hir.load v129 : felt; - v131 = arith.eq v125, v130 : i1; - v132 = hir.cast v131 : i32; - v133 = arith.constant 1 : i32; - v134 = arith.neq v132, v133 : i1; - v135 = arith.zext v134 : u32; - v136 = hir.bitcast v135 : i32; - v137 = arith.constant 0 : i32; - v138 = arith.neq v136, v137 : i1; - cf.cond_br v138 ^block20(v120), ^block21; - ^block19(v118: i32): - builtin.ret v118; - ^block20(v203: i32): - cf.br ^block19(v203); - ^block21: - v139 = hir.bitcast v116 : u32; - v140 = arith.constant 4 : u32; - v141 = arith.add v139, v140 : u32 #[overflow = checked]; - v142 = arith.constant 4 : u32; - v143 = arith.mod v141, v142 : u32; - hir.assertz v143 #[code = 250]; - v144 = hir.int_to_ptr v141 : ptr; - v145 = hir.load v144 : felt; - v146 = hir.bitcast v117 : u32; - v147 = arith.constant 4 : u32; - v148 = arith.add v146, v147 : u32 #[overflow = checked]; - v149 = arith.constant 4 : u32; - v150 = arith.mod v148, v149 : u32; - hir.assertz v150 #[code = 250]; - v151 = hir.int_to_ptr v148 : ptr; - v152 = hir.load v151 : felt; - v153 = arith.eq v145, v152 : i1; - v154 = hir.cast v153 : i32; - v155 = arith.constant 1 : i32; - v156 = arith.neq v154, v155 : i1; - v157 = arith.zext v156 : u32; - v158 = hir.bitcast v157 : i32; - v159 = arith.constant 0 : i32; - v160 = arith.neq v158, v159 : i1; - cf.cond_br v160 ^block20(v120), ^block22; - ^block22: - v161 = hir.bitcast v116 : u32; - v162 = arith.constant 8 : u32; - v163 = arith.add v161, v162 : u32 #[overflow = checked]; - v164 = arith.constant 4 : u32; - v165 = arith.mod v163, v164 : u32; - hir.assertz v165 #[code = 250]; - v166 = hir.int_to_ptr v163 : ptr; - v167 = hir.load v166 : felt; - v168 = hir.bitcast v117 : u32; - v169 = arith.constant 8 : u32; - v170 = arith.add v168, v169 : u32 #[overflow = checked]; - v171 = arith.constant 4 : u32; - v172 = arith.mod v170, v171 : u32; - hir.assertz v172 #[code = 250]; - v173 = hir.int_to_ptr v170 : ptr; - v174 = hir.load v173 : felt; - v175 = arith.eq v167, v174 : i1; - v176 = hir.cast v175 : i32; - v177 = arith.constant 1 : i32; - v178 = arith.neq v176, v177 : i1; - v179 = arith.zext v178 : u32; - v180 = hir.bitcast v179 : i32; - v181 = arith.constant 0 : i32; - v182 = arith.neq v180, v181 : i1; - cf.cond_br v182 ^block20(v120), ^block23; - ^block23: - v183 = hir.bitcast v116 : u32; - v184 = arith.constant 12 : u32; - v185 = arith.add v183, v184 : u32 #[overflow = checked]; - v186 = arith.constant 4 : u32; - v187 = arith.mod v185, v186 : u32; - hir.assertz v187 #[code = 250]; - v188 = hir.int_to_ptr v185 : ptr; - v189 = hir.load v188 : felt; - v190 = hir.bitcast v117 : u32; - v191 = arith.constant 12 : u32; - v192 = arith.add v190, v191 : u32 #[overflow = checked]; - v193 = arith.constant 4 : u32; - v194 = arith.mod v192, v193 : u32; - hir.assertz v194 #[code = 250]; - v195 = hir.int_to_ptr v192 : ptr; - v196 = hir.load v195 : felt; - v197 = arith.eq v189, v196 : i1; - v198 = hir.cast v197 : i32; - v199 = arith.constant 1 : i32; - v200 = arith.eq v198, v199 : i1; - v201 = arith.zext v200 : u32; - v202 = hir.bitcast v201 : i32; - cf.br ^block20(v202); - }; - - private builtin.function @storage_example::bindings::__link_custom_section_describing_imports() { - ^block24: - cf.br ^block25; - ^block25: - builtin.ret ; - }; - - private builtin.function @__rustc::__rust_alloc(v204: i32, v205: i32) -> i32 { - ^block26(v204: i32, v205: i32): - v207 = arith.constant 1048612 : i32; - v208 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/::alloc(v207, v205, v204) : i32 - cf.br ^block27(v208); - ^block27(v206: i32): - builtin.ret v206; - }; - - private builtin.function @__rustc::__rust_realloc(v209: i32, v210: i32, v211: i32, v212: i32) -> i32 { - ^block28(v209: i32, v210: i32, v211: i32, v212: i32): - v214 = arith.constant 1048612 : i32; - v215 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/::alloc(v214, v211, v212) : i32 - v216 = arith.constant 0 : i32; - v217 = arith.eq v215, v216 : i1; - v218 = arith.zext v217 : u32; - v219 = hir.bitcast v218 : i32; - v220 = arith.constant 0 : i32; - v221 = arith.neq v219, v220 : i1; - cf.cond_br v221 ^block30(v215), ^block31; - ^block29(v213: i32): - builtin.ret v213; - ^block30(v241: i32): - cf.br ^block29(v241); - ^block31: - v222 = hir.bitcast v212 : u32; - v223 = hir.bitcast v210 : u32; - v224 = arith.lt v222, v223 : i1; - v225 = arith.zext v224 : u32; - v226 = hir.bitcast v225 : i32; - v227 = arith.constant 0 : i32; - v228 = arith.neq v226, v227 : i1; - v229 = cf.select v228, v212, v210 : i32; - v230 = arith.constant 0 : i32; - v231 = arith.eq v229, v230 : i1; - v232 = arith.zext v231 : u32; - v233 = hir.bitcast v232 : i32; - v234 = arith.constant 0 : i32; - v235 = arith.neq v233, v234 : i1; - cf.cond_br v235 ^block30(v215), ^block32; - ^block32: - v236 = hir.bitcast v229 : u32; - v237 = hir.bitcast v215 : u32; - v238 = hir.int_to_ptr v237 : ptr; - v239 = hir.bitcast v209 : u32; - v240 = hir.int_to_ptr v239 : ptr; - hir.mem_cpy v240, v238, v236; - cf.br ^block30(v215); - }; - - public builtin.function @miden:storage-example/foo@1.0.0#test-storage-item(v242: i32, v243: felt, v244: felt, v245: felt, v246: felt) -> felt { - ^block33(v242: i32, v243: felt, v244: felt, v245: felt, v246: felt): - v248 = arith.constant 0 : i32; - v249 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr - v250 = hir.bitcast v249 : ptr; - v251 = hir.load v250 : i32; - v252 = arith.constant 96 : i32; - v253 = arith.sub v251, v252 : i32 #[overflow = wrapping]; - v254 = arith.constant -32 : i32; - v255 = arith.band v253, v254 : i32; - v256 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr - v257 = hir.bitcast v256 : ptr; - hir.store v257, v255; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/wit_bindgen_rt::run_ctors_once() - v258 = hir.bitcast v255 : u32; - v259 = arith.constant 12 : u32; - v260 = arith.add v258, v259 : u32 #[overflow = checked]; - v261 = arith.constant 4 : u32; - v262 = arith.mod v260, v261 : u32; - hir.assertz v262 #[code = 250]; - v263 = hir.int_to_ptr v260 : ptr; - hir.store v263, v246; - v264 = hir.bitcast v255 : u32; - v265 = arith.constant 8 : u32; - v266 = arith.add v264, v265 : u32 #[overflow = checked]; - v267 = arith.constant 4 : u32; - v268 = arith.mod v266, v267 : u32; - hir.assertz v268 #[code = 250]; - v269 = hir.int_to_ptr v266 : ptr; - hir.store v269, v245; - v270 = hir.bitcast v255 : u32; - v271 = arith.constant 4 : u32; - v272 = arith.add v270, v271 : u32 #[overflow = checked]; - v273 = arith.constant 4 : u32; - v274 = arith.mod v272, v273 : u32; - hir.assertz v274 #[code = 250]; - v275 = hir.int_to_ptr v272 : ptr; - hir.store v275, v244; - v276 = hir.bitcast v255 : u32; - v277 = arith.constant 4 : u32; - v278 = arith.mod v276, v277 : u32; - hir.assertz v278 #[code = 250]; - v279 = hir.int_to_ptr v276 : ptr; - hir.store v279, v243; - v280 = arith.constant 32 : i32; - v281 = arith.add v255, v280 : i32 #[overflow = wrapping]; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::set_item(v281, v242, v255) - v282 = arith.constant 32 : i32; - v283 = arith.add v255, v282 : i32 #[overflow = wrapping]; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::get_item(v283, v242) - v284 = arith.constant 32 : i32; - v285 = arith.add v255, v284 : i32 #[overflow = wrapping]; - v286 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/::eq(v255, v285) : i32 - v287 = arith.constant 0 : i32; - v288 = arith.neq v286, v287 : i1; - cf.cond_br v288 ^block35, ^block36; - ^block34(v247: felt): - builtin.ret v247; - ^block35: - v289 = hir.bitcast v255 : u32; - v290 = arith.constant 32 : u32; - v291 = arith.add v289, v290 : u32 #[overflow = checked]; - v292 = arith.constant 4 : u32; - v293 = arith.mod v291, v292 : u32; - hir.assertz v293 #[code = 250]; - v294 = hir.int_to_ptr v291 : ptr; - v295 = hir.load v294 : felt; - v296 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr - v297 = hir.bitcast v296 : ptr; - hir.store v297, v251; - cf.br ^block34(v295); - ^block36: - ub.unreachable ; - }; - - public builtin.function @miden:storage-example/foo@1.0.0#test-storage-map-item(v298: i32, v299: felt, v300: felt, v301: felt, v302: felt, v303: felt, v304: felt, v305: felt, v306: felt) -> felt { - ^block37(v298: i32, v299: felt, v300: felt, v301: felt, v302: felt, v303: felt, v304: felt, v305: felt, v306: felt): - v308 = arith.constant 0 : i32; - v309 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr - v310 = hir.bitcast v309 : ptr; - v311 = hir.load v310 : i32; - v312 = arith.constant 128 : i32; - v313 = arith.sub v311, v312 : i32 #[overflow = wrapping]; - v314 = arith.constant -32 : i32; - v315 = arith.band v313, v314 : i32; - v316 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr - v317 = hir.bitcast v316 : ptr; - hir.store v317, v315; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/wit_bindgen_rt::run_ctors_once() - v318 = hir.bitcast v315 : u32; - v319 = arith.constant 12 : u32; - v320 = arith.add v318, v319 : u32 #[overflow = checked]; - v321 = arith.constant 4 : u32; - v322 = arith.mod v320, v321 : u32; - hir.assertz v322 #[code = 250]; - v323 = hir.int_to_ptr v320 : ptr; - hir.store v323, v302; - v324 = hir.bitcast v315 : u32; - v325 = arith.constant 8 : u32; - v326 = arith.add v324, v325 : u32 #[overflow = checked]; - v327 = arith.constant 4 : u32; - v328 = arith.mod v326, v327 : u32; - hir.assertz v328 #[code = 250]; - v329 = hir.int_to_ptr v326 : ptr; - hir.store v329, v301; - v330 = hir.bitcast v315 : u32; - v331 = arith.constant 4 : u32; - v332 = arith.add v330, v331 : u32 #[overflow = checked]; - v333 = arith.constant 4 : u32; - v334 = arith.mod v332, v333 : u32; - hir.assertz v334 #[code = 250]; - v335 = hir.int_to_ptr v332 : ptr; - hir.store v335, v300; - v336 = hir.bitcast v315 : u32; - v337 = arith.constant 4 : u32; - v338 = arith.mod v336, v337 : u32; - hir.assertz v338 #[code = 250]; - v339 = hir.int_to_ptr v336 : ptr; - hir.store v339, v299; - v340 = hir.bitcast v315 : u32; - v341 = arith.constant 44 : u32; - v342 = arith.add v340, v341 : u32 #[overflow = checked]; - v343 = arith.constant 4 : u32; - v344 = arith.mod v342, v343 : u32; - hir.assertz v344 #[code = 250]; - v345 = hir.int_to_ptr v342 : ptr; - hir.store v345, v306; - v346 = hir.bitcast v315 : u32; - v347 = arith.constant 40 : u32; - v348 = arith.add v346, v347 : u32 #[overflow = checked]; - v349 = arith.constant 4 : u32; - v350 = arith.mod v348, v349 : u32; - hir.assertz v350 #[code = 250]; - v351 = hir.int_to_ptr v348 : ptr; - hir.store v351, v305; - v352 = hir.bitcast v315 : u32; - v353 = arith.constant 36 : u32; - v354 = arith.add v352, v353 : u32 #[overflow = checked]; - v355 = arith.constant 4 : u32; - v356 = arith.mod v354, v355 : u32; - hir.assertz v356 #[code = 250]; - v357 = hir.int_to_ptr v354 : ptr; - hir.store v357, v304; - v358 = hir.bitcast v315 : u32; - v359 = arith.constant 32 : u32; - v360 = arith.add v358, v359 : u32 #[overflow = checked]; - v361 = arith.constant 4 : u32; - v362 = arith.mod v360, v361 : u32; - hir.assertz v362 #[code = 250]; - v363 = hir.int_to_ptr v360 : ptr; - hir.store v363, v303; - v364 = arith.constant 64 : i32; - v365 = arith.add v315, v364 : i32 #[overflow = wrapping]; - v366 = arith.constant 32 : i32; - v367 = arith.add v315, v366 : i32 #[overflow = wrapping]; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::set_map_item(v365, v298, v315, v367) - v368 = arith.constant 64 : i32; - v369 = arith.add v315, v368 : i32 #[overflow = wrapping]; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::get_map_item(v369, v298, v315) - v370 = arith.constant 32 : i32; - v371 = arith.add v315, v370 : i32 #[overflow = wrapping]; - v372 = arith.constant 64 : i32; - v373 = arith.add v315, v372 : i32 #[overflow = wrapping]; - v374 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/::eq(v371, v373) : i32 - v375 = arith.constant 0 : i32; - v376 = arith.neq v374, v375 : i1; - cf.cond_br v376 ^block39, ^block40; - ^block38(v307: felt): - builtin.ret v307; - ^block39: - v377 = hir.bitcast v315 : u32; - v378 = arith.constant 64 : u32; - v379 = arith.add v377, v378 : u32 #[overflow = checked]; - v380 = arith.constant 4 : u32; - v381 = arith.mod v379, v380 : u32; - hir.assertz v381 #[code = 250]; - v382 = hir.int_to_ptr v379 : ptr; - v383 = hir.load v382 : felt; - v384 = builtin.global_symbol @miden:storage-example/foo@1.0.0/storage_example/__stack_pointer : ptr - v385 = hir.bitcast v384 : ptr; - hir.store v385, v311; - cf.br ^block38(v383); - ^block40: - ub.unreachable ; - }; - - public builtin.function @cabi_realloc_wit_bindgen_0_28_0(v386: i32, v387: i32, v388: i32, v389: i32) -> i32 { - ^block41(v386: i32, v387: i32, v388: i32, v389: i32): - v391 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/wit_bindgen_rt::cabi_realloc(v386, v387, v388, v389) : i32 - cf.br ^block42(v391); - ^block42(v390: i32): - builtin.ret v390; - }; - - private builtin.function @wit_bindgen_rt::cabi_realloc(v392: i32, v393: i32, v394: i32, v395: i32) -> i32 { - ^block43(v392: i32, v393: i32, v394: i32, v395: i32): - v397 = arith.constant 0 : i32; - v398 = arith.neq v393, v397 : i1; - cf.cond_br v398 ^block47, ^block48; - ^block44(v396: i32): - builtin.ret v396; - ^block45(v417: i32): - cf.br ^block44(v417); - ^block46(v414: i32): - v415 = arith.constant 0 : i32; - v416 = arith.neq v414, v415 : i1; - cf.cond_br v416 ^block45(v414), ^block50; - ^block47: - v413 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/__rustc::__rust_realloc(v392, v393, v394, v395) : i32 - cf.br ^block46(v413); - ^block48: - v399 = arith.constant 0 : i32; - v400 = arith.eq v395, v399 : i1; - v401 = arith.zext v400 : u32; - v402 = hir.bitcast v401 : i32; - v403 = arith.constant 0 : i32; - v404 = arith.neq v402, v403 : i1; - cf.cond_br v404 ^block45(v394), ^block49; - ^block49: - v405 = arith.constant 0 : i32; - v406 = hir.bitcast v405 : u32; - v407 = arith.constant 1048616 : u32; - v408 = arith.add v406, v407 : u32 #[overflow = checked]; - v409 = hir.int_to_ptr v408 : ptr; - v410 = hir.load v409 : u8; - v411 = arith.zext v410 : u32; - v412 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/__rustc::__rust_alloc(v395, v394) : i32 - cf.br ^block46(v412); - ^block50: - ub.unreachable ; - }; - - private builtin.function @wit_bindgen_rt::run_ctors_once() { - ^block51: - v418 = arith.constant 0 : i32; - v419 = hir.bitcast v418 : u32; - v420 = arith.constant 1048617 : u32; - v421 = arith.add v419, v420 : u32 #[overflow = checked]; - v422 = hir.int_to_ptr v421 : ptr; - v423 = hir.load v422 : u8; - v424 = arith.zext v423 : u32; - v425 = hir.bitcast v424 : i32; - v426 = arith.constant 0 : i32; - v427 = arith.neq v425, v426 : i1; - cf.cond_br v427 ^block53, ^block54; - ^block52: - builtin.ret ; - ^block53: - cf.br ^block52; - ^block54: - hir.exec @miden:storage-example/foo@1.0.0/storage_example/__wasm_call_ctors() - v428 = arith.constant 0 : i32; - v429 = arith.constant 1 : i32; - v430 = hir.bitcast v429 : u32; - v431 = arith.trunc v430 : u8; - v432 = hir.bitcast v428 : u32; - v433 = arith.constant 1048617 : u32; - v434 = arith.add v432, v433 : u32 #[overflow = checked]; - v435 = hir.int_to_ptr v434 : ptr; - hir.store v435, v431; - cf.br ^block53; - }; - - private builtin.function @::alloc(v436: i32, v437: i32, v438: i32) -> i32 { - ^block55(v436: i32, v437: i32, v438: i32): - v440 = arith.constant 0 : i32; - v441 = arith.constant 32 : i32; - v442 = arith.constant 32 : i32; - v443 = hir.bitcast v437 : u32; - v444 = hir.bitcast v442 : u32; - v445 = arith.gt v443, v444 : i1; - v446 = arith.zext v445 : u32; - v447 = hir.bitcast v446 : i32; - v448 = arith.constant 0 : i32; - v449 = arith.neq v447, v448 : i1; - v450 = cf.select v449, v437, v441 : i32; - v451 = arith.constant -1 : i32; - v452 = arith.add v450, v451 : i32 #[overflow = wrapping]; - v453 = arith.band v450, v452 : i32; - v454 = arith.constant 0 : i32; - v455 = arith.neq v453, v454 : i1; - cf.cond_br v455 ^block57, ^block58; - ^block56(v439: i32): - - ^block57: - ub.unreachable ; - ^block58: - v456 = arith.constant -2147483648 : i32; - v457 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/core::ptr::alignment::Alignment::max(v437, v450) : i32 - v458 = arith.sub v456, v457 : i32 #[overflow = wrapping]; - v459 = hir.bitcast v438 : u32; - v460 = hir.bitcast v458 : u32; - v461 = arith.gt v459, v460 : i1; - v462 = arith.zext v461 : u32; - v463 = hir.bitcast v462 : i32; - v464 = arith.constant 0 : i32; - v465 = arith.neq v463, v464 : i1; - cf.cond_br v465 ^block57, ^block59; - ^block59: - v466 = arith.constant 0 : i32; - v467 = arith.add v438, v457 : i32 #[overflow = wrapping]; - v468 = arith.constant -1 : i32; - v469 = arith.add v467, v468 : i32 #[overflow = wrapping]; - v470 = arith.constant 0 : i32; - v471 = arith.sub v470, v457 : i32 #[overflow = wrapping]; - v472 = arith.band v469, v471 : i32; - v473 = hir.bitcast v436 : u32; - v474 = arith.constant 4 : u32; - v475 = arith.mod v473, v474 : u32; - hir.assertz v475 #[code = 250]; - v476 = hir.int_to_ptr v473 : ptr; - v477 = hir.load v476 : i32; - v478 = arith.constant 0 : i32; - v479 = arith.neq v477, v478 : i1; - cf.cond_br v479 ^block60(v436, v472, v457, v466), ^block61; - ^block60(v492: i32, v499: i32, v512: i32, v515: i32): - v491 = arith.constant 268435456 : i32; - v493 = hir.bitcast v492 : u32; - v494 = arith.constant 4 : u32; - v495 = arith.mod v493, v494 : u32; - hir.assertz v495 #[code = 250]; - v496 = hir.int_to_ptr v493 : ptr; - v497 = hir.load v496 : i32; - v498 = arith.sub v491, v497 : i32 #[overflow = wrapping]; - v500 = hir.bitcast v498 : u32; - v501 = hir.bitcast v499 : u32; - v502 = arith.lt v500, v501 : i1; - v503 = arith.zext v502 : u32; - v504 = hir.bitcast v503 : i32; - v505 = arith.constant 0 : i32; - v506 = arith.neq v504, v505 : i1; - cf.cond_br v506 ^block62(v515), ^block63; - ^block61: - v480 = hir.exec @intrinsics/mem/heap_base() : i32 - v481 = hir.mem_size : u32; - v482 = arith.constant 16 : i32; - v483 = hir.bitcast v482 : u32; - v484 = arith.shl v481, v483 : u32; - v485 = hir.bitcast v484 : i32; - v486 = arith.add v480, v485 : i32 #[overflow = wrapping]; - v487 = hir.bitcast v436 : u32; - v488 = arith.constant 4 : u32; - v489 = arith.mod v487, v488 : u32; - hir.assertz v489 #[code = 250]; - v490 = hir.int_to_ptr v487 : ptr; - hir.store v490, v486; - cf.br ^block60(v436, v472, v457, v466); - ^block62(v514: i32): - builtin.ret v514; - ^block63: - v507 = arith.add v497, v499 : i32 #[overflow = wrapping]; - v508 = hir.bitcast v492 : u32; - v509 = arith.constant 4 : u32; - v510 = arith.mod v508, v509 : u32; - hir.assertz v510 #[code = 250]; - v511 = hir.int_to_ptr v508 : ptr; - hir.store v511, v507; - v513 = arith.add v497, v512 : i32 #[overflow = wrapping]; - cf.br ^block62(v513); - }; - - private builtin.function @miden_base_sys::bindings::storage::get_item(v516: i32, v517: i32) { - ^block64(v516: i32, v517: i32): - v518 = arith.constant 255 : i32; - v519 = arith.band v517, v518 : i32; - v520 = hir.bitcast v519 : felt; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::extern_get_storage_item(v520, v516) - cf.br ^block65; - ^block65: - builtin.ret ; - }; - - private builtin.function @miden_base_sys::bindings::storage::set_item(v521: i32, v522: i32, v523: i32) { - ^block66(v521: i32, v522: i32, v523: i32): - v524 = arith.constant 255 : i32; - v525 = arith.band v522, v524 : i32; - v526 = hir.bitcast v525 : felt; - v527 = hir.bitcast v523 : u32; - v528 = arith.constant 4 : u32; - v529 = arith.mod v527, v528 : u32; - hir.assertz v529 #[code = 250]; - v530 = hir.int_to_ptr v527 : ptr; - v531 = hir.load v530 : felt; - v532 = hir.bitcast v523 : u32; - v533 = arith.constant 4 : u32; - v534 = arith.add v532, v533 : u32 #[overflow = checked]; - v535 = arith.constant 4 : u32; - v536 = arith.mod v534, v535 : u32; - hir.assertz v536 #[code = 250]; - v537 = hir.int_to_ptr v534 : ptr; - v538 = hir.load v537 : felt; - v539 = hir.bitcast v523 : u32; - v540 = arith.constant 8 : u32; - v541 = arith.add v539, v540 : u32 #[overflow = checked]; - v542 = arith.constant 4 : u32; - v543 = arith.mod v541, v542 : u32; - hir.assertz v543 #[code = 250]; - v544 = hir.int_to_ptr v541 : ptr; - v545 = hir.load v544 : felt; - v546 = hir.bitcast v523 : u32; - v547 = arith.constant 12 : u32; - v548 = arith.add v546, v547 : u32 #[overflow = checked]; - v549 = arith.constant 4 : u32; - v550 = arith.mod v548, v549 : u32; - hir.assertz v550 #[code = 250]; - v551 = hir.int_to_ptr v548 : ptr; - v552 = hir.load v551 : felt; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::extern_set_storage_item(v526, v531, v538, v545, v552, v521) - cf.br ^block67; - ^block67: - builtin.ret ; - }; - - private builtin.function @miden_base_sys::bindings::storage::get_map_item(v553: i32, v554: i32, v555: i32) { - ^block68(v553: i32, v554: i32, v555: i32): - v556 = arith.constant 255 : i32; - v557 = arith.band v554, v556 : i32; - v558 = hir.bitcast v557 : felt; - v559 = hir.bitcast v555 : u32; - v560 = arith.constant 4 : u32; - v561 = arith.mod v559, v560 : u32; - hir.assertz v561 #[code = 250]; - v562 = hir.int_to_ptr v559 : ptr; - v563 = hir.load v562 : felt; - v564 = hir.bitcast v555 : u32; - v565 = arith.constant 4 : u32; - v566 = arith.add v564, v565 : u32 #[overflow = checked]; - v567 = arith.constant 4 : u32; - v568 = arith.mod v566, v567 : u32; - hir.assertz v568 #[code = 250]; - v569 = hir.int_to_ptr v566 : ptr; - v570 = hir.load v569 : felt; - v571 = hir.bitcast v555 : u32; - v572 = arith.constant 8 : u32; - v573 = arith.add v571, v572 : u32 #[overflow = checked]; - v574 = arith.constant 4 : u32; - v575 = arith.mod v573, v574 : u32; - hir.assertz v575 #[code = 250]; - v576 = hir.int_to_ptr v573 : ptr; - v577 = hir.load v576 : felt; - v578 = hir.bitcast v555 : u32; - v579 = arith.constant 12 : u32; - v580 = arith.add v578, v579 : u32 #[overflow = checked]; - v581 = arith.constant 4 : u32; - v582 = arith.mod v580, v581 : u32; - hir.assertz v582 #[code = 250]; - v583 = hir.int_to_ptr v580 : ptr; - v584 = hir.load v583 : felt; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::extern_get_storage_map_item(v558, v563, v570, v577, v584, v553) - cf.br ^block69; - ^block69: - builtin.ret ; - }; - - private builtin.function @miden_base_sys::bindings::storage::set_map_item(v585: i32, v586: i32, v587: i32, v588: i32) { - ^block70(v585: i32, v586: i32, v587: i32, v588: i32): - v589 = arith.constant 255 : i32; - v590 = arith.band v586, v589 : i32; - v591 = hir.bitcast v590 : felt; - v592 = hir.bitcast v587 : u32; - v593 = arith.constant 4 : u32; - v594 = arith.mod v592, v593 : u32; - hir.assertz v594 #[code = 250]; - v595 = hir.int_to_ptr v592 : ptr; - v596 = hir.load v595 : felt; - v597 = hir.bitcast v587 : u32; - v598 = arith.constant 4 : u32; - v599 = arith.add v597, v598 : u32 #[overflow = checked]; - v600 = arith.constant 4 : u32; - v601 = arith.mod v599, v600 : u32; - hir.assertz v601 #[code = 250]; - v602 = hir.int_to_ptr v599 : ptr; - v603 = hir.load v602 : felt; - v604 = hir.bitcast v587 : u32; - v605 = arith.constant 8 : u32; - v606 = arith.add v604, v605 : u32 #[overflow = checked]; - v607 = arith.constant 4 : u32; - v608 = arith.mod v606, v607 : u32; - hir.assertz v608 #[code = 250]; - v609 = hir.int_to_ptr v606 : ptr; - v610 = hir.load v609 : felt; - v611 = hir.bitcast v587 : u32; - v612 = arith.constant 12 : u32; - v613 = arith.add v611, v612 : u32 #[overflow = checked]; - v614 = arith.constant 4 : u32; - v615 = arith.mod v613, v614 : u32; - hir.assertz v615 #[code = 250]; - v616 = hir.int_to_ptr v613 : ptr; - v617 = hir.load v616 : felt; - v618 = hir.bitcast v588 : u32; - v619 = arith.constant 4 : u32; - v620 = arith.mod v618, v619 : u32; - hir.assertz v620 #[code = 250]; - v621 = hir.int_to_ptr v618 : ptr; - v622 = hir.load v621 : felt; - v623 = hir.bitcast v588 : u32; - v624 = arith.constant 4 : u32; - v625 = arith.add v623, v624 : u32 #[overflow = checked]; - v626 = arith.constant 4 : u32; - v627 = arith.mod v625, v626 : u32; - hir.assertz v627 #[code = 250]; - v628 = hir.int_to_ptr v625 : ptr; - v629 = hir.load v628 : felt; - v630 = hir.bitcast v588 : u32; - v631 = arith.constant 8 : u32; - v632 = arith.add v630, v631 : u32 #[overflow = checked]; - v633 = arith.constant 4 : u32; - v634 = arith.mod v632, v633 : u32; - hir.assertz v634 #[code = 250]; - v635 = hir.int_to_ptr v632 : ptr; - v636 = hir.load v635 : felt; - v637 = hir.bitcast v588 : u32; - v638 = arith.constant 12 : u32; - v639 = arith.add v637, v638 : u32 #[overflow = checked]; - v640 = arith.constant 4 : u32; - v641 = arith.mod v639, v640 : u32; - hir.assertz v641 #[code = 250]; - v642 = hir.int_to_ptr v639 : ptr; - v643 = hir.load v642 : felt; - hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden_base_sys::bindings::storage::extern_set_storage_map_item(v591, v596, v603, v610, v617, v622, v629, v636, v643, v585) - cf.br ^block71; - ^block71: - builtin.ret ; - }; - - private builtin.function @core::ptr::alignment::Alignment::max(v644: i32, v645: i32) -> i32 { - ^block72(v644: i32, v645: i32): - v647 = hir.bitcast v644 : u32; - v648 = hir.bitcast v645 : u32; - v649 = arith.gt v647, v648 : i1; - v650 = arith.zext v649 : u32; - v651 = hir.bitcast v650 : i32; - v652 = arith.constant 0 : i32; - v653 = arith.neq v651, v652 : i1; - v654 = cf.select v653, v644, v645 : i32; - cf.br ^block73(v654); - ^block73(v646: i32): - builtin.ret v646; - }; - - public builtin.function @cabi_realloc(v655: i32, v656: i32, v657: i32, v658: i32) -> i32 { - ^block74(v655: i32, v656: i32, v657: i32, v658: i32): - v660 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/cabi_realloc_wit_bindgen_0_28_0(v655, v656, v657, v658) : i32 - cf.br ^block75(v660); - ^block75(v659: i32): - builtin.ret v659; - }; - - builtin.global_variable private @#__stack_pointer : i32 { - builtin.ret_imm 1048576; - }; - - builtin.segment readonly @1048576 = 0x000000020000000100000001000000010000000100000001000000010000000100000001; - }; - - public builtin.function @test-storage-item(v661: i32, v662: felt, v663: felt, v664: felt, v665: felt) -> felt { - ^block76(v661: i32, v662: felt, v663: felt, v664: felt, v665: felt): - v666 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden:storage-example/foo@1.0.0#test-storage-item(v661, v662, v663, v664, v665) : felt - cf.br ^block77; - ^block77: - builtin.ret v666; - }; - - public builtin.function @test-storage-map-item(v667: i32, v668: felt, v669: felt, v670: felt, v671: felt, v672: felt, v673: felt, v674: felt, v675: felt) -> felt { - ^block78(v667: i32, v668: felt, v669: felt, v670: felt, v671: felt, v672: felt, v673: felt, v674: felt, v675: felt): - v676 = hir.exec @miden:storage-example/foo@1.0.0/storage_example/miden:storage-example/foo@1.0.0#test-storage-map-item(v667, v668, v669, v670, v671, v672, v673, v674, v675) : felt - cf.br ^block79; - ^block79: - builtin.ret v676; - }; -}; \ No newline at end of file diff --git a/tests/integration/src/rust_masm_tests/examples.rs b/tests/integration/src/rust_masm_tests/examples.rs index 28bd132cb..45b435fb6 100644 --- a/tests/integration/src/rust_masm_tests/examples.rs +++ b/tests/integration/src/rust_masm_tests/examples.rs @@ -1,6 +1,8 @@ use std::collections::VecDeque; -use expect_test::expect_file; +use expect_test::{expect, expect_file}; +use miden_core::utils::Deserializable; +use miden_objects::account::AccountComponentMetadata; use midenc_debug::{Executor, ToMidenRepr}; use midenc_frontend_wasm::WasmTranslationConfig; use midenc_hir::{Felt, Immediate, Op, SymbolTable}; @@ -16,12 +18,34 @@ fn storage_example() { CompilerTest::rust_source_cargo_miden("../../examples/storage-example", config, []); test.expect_wasm(expect_file!["../../expected/examples/storage_example.wat"]); - test.expect_ir_unoptimized(expect_file![ - "../../expected/examples/storage_example_unoptimized.hir" - ]); test.expect_ir(expect_file!["../../expected/examples/storage_example.hir"]); - // test.expect_masm(expect_file!["../../expected/examples/storage_example.masm"]); - // let _package = test.compiled_package(); + test.expect_masm(expect_file!["../../expected/examples/storage_example.masm"]); + let package = test.compiled_package(); + let account_component_metadata_bytes = + package.as_ref().account_component_metadata_bytes.clone().unwrap(); + let toml = AccountComponentMetadata::read_from_bytes(&account_component_metadata_bytes) + .unwrap() + .as_toml() + .unwrap(); + expect![[r#" + name = "storage-example" + description = "A simple example of a Miden account storage API" + version = "0.1.0" + supported-types = ["RegularAccountUpdatableCode"] + + [[storage]] + name = "owner_public_key" + description = "test value" + slot = 0 + type = "auth::rpo_falcon512::pub_key" + + [[storage]] + name = "asset_qty_map" + description = "test map" + slot = 1 + values = [] + "#]] + .assert_eq(&toml); } #[test] diff --git a/tests/integration/src/testing/setup.rs b/tests/integration/src/testing/setup.rs index d9113c874..bbb96c6de 100644 --- a/tests/integration/src/testing/setup.rs +++ b/tests/integration/src/testing/setup.rs @@ -98,6 +98,7 @@ pub fn build_empty_component_for_test(context: Rc) -> LinkOutput { masm: Default::default(), mast: Default::default(), packages: Default::default(), + account_component_metadata_bytes: None, }; link_output .link_libraries_from(context.session()) diff --git a/tests/rust-apps-wasm/rust-sdk/add/Cargo.lock b/tests/rust-apps-wasm/rust-sdk/add/Cargo.lock index ba19d4734..0c4fcf879 100644 --- a/tests/rust-apps-wasm/rust-sdk/add/Cargo.lock +++ b/tests/rust-apps-wasm/rust-sdk/add/Cargo.lock @@ -2,15 +2,538 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "bech32" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "blake3" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34a796731680be7931955498a16a10b2270c7762963d5d570fdbfe02dcbf314f" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "cc" +version = "1.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crunchy" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dissimilar" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8975ffdaa0ef3661bfe02dbdcc06c9f829dfafe6a3c474de366a8d5e44276921" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-sink", + "futures-task", + "pin-project-lite", + "pin-utils", +] + +[[package]] +name = "generator" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +dependencies = [ + "cfg-if", + "libc", + "log", + "rustversion", + "windows", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", +] + +[[package]] +name = "glob" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax 0.8.5", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" + +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags", + "libc", +] + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "miden" version = "0.0.7" dependencies = [ + "miden-base", "miden-base-sys", "miden-sdk-alloc", "miden-stdlib-sys", ] +[[package]] +name = "miden-air" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72269e041e915d6c34325a8906f08a8ff6ec9b92c79ae07f3a0de8c3588694b5" +dependencies = [ + "miden-core", + "thiserror 2.0.12", + "winter-air", + "winter-prover", +] + +[[package]] +name = "miden-assembly" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce5680a0e75470389b65cc00900422ad7e1aa7972477c75ff88f63c3a01671e9" +dependencies = [ + "aho-corasick", + "lalrpop", + "lalrpop-util", + "miden-core", + "miden-miette", + "rustc_version 0.4.1", + "smallvec", + "thiserror 2.0.12", + "tracing", + "unicode-width 0.2.0", +] + +[[package]] +name = "miden-base" +version = "0.0.7" +dependencies = [ + "miden-base-macros", + "miden-base-sys", + "miden-stdlib-sys", +] + +[[package]] +name = "miden-base-macros" +version = "0.0.7" +dependencies = [ + "miden-objects", + "proc-macro2", + "quote", + "semver 1.0.26", + "syn", + "toml", +] + [[package]] name = "miden-base-sys" version = "0.0.7" @@ -18,6 +541,119 @@ dependencies = [ "miden-stdlib-sys", ] +[[package]] +name = "miden-core" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8ba125a31e9ec0e732f47e639525c753973e553126cfc46cc63674049ea4134" +dependencies = [ + "lock_api", + "loom", + "memchr", + "miden-crypto", + "miden-formatting", + "miden-miette", + "num-derive", + "num-traits", + "thiserror 2.0.12", + "winter-math", + "winter-utils", +] + +[[package]] +name = "miden-crypto" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d521a9d5fa949d60e4029e55ff1da892561b298ed636afb5f71d0dde0925bf57" +dependencies = [ + "blake3", + "glob", + "num", + "num-complex", + "rand", + "rand_core", + "sha3", + "thiserror 2.0.12", + "winter-crypto", + "winter-math", + "winter-utils", +] + +[[package]] +name = "miden-formatting" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e392e0a8c34b32671012b439de35fa8987bf14f0f8aac279b97f8b8cc6e263b" +dependencies = [ + "unicode-width 0.1.14", +] + +[[package]] +name = "miden-miette" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eef536978f24a179d94fa2a41e4f92b28e7d8aab14b8d23df28ad2a3d7098b20" +dependencies = [ + "cfg-if", + "futures", + "indenter", + "lazy_static", + "miden-miette-derive", + "owo-colors", + "regex", + "rustc_version 0.2.3", + "rustversion", + "serde_json", + "spin", + "strip-ansi-escapes", + "syn", + "textwrap", + "thiserror 2.0.12", + "trybuild", + "unicode-width 0.1.14", +] + +[[package]] +name = "miden-miette-derive" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86a905f3ea65634dd4d1041a4f0fd0a3e77aa4118341d265af1a94339182222f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "miden-objects" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea350fdd6d025d2e4791ac0769bfbc04afca404fbb20f918354dcc758debd4c" +dependencies = [ + "bech32", + "getrandom 0.3.2", + "miden-assembly", + "miden-core", + "miden-crypto", + "miden-processor", + "miden-verifier", + "semver 1.0.26", + "thiserror 2.0.12", +] + +[[package]] +name = "miden-processor" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e5f362138a7bfe6c20246de651e848566843a0d5062cc4a7a8ebff6bd14668d" +dependencies = [ + "miden-air", + "miden-core", + "thiserror 2.0.12", + "tracing", + "winter-prover", +] + [[package]] name = "miden-sdk-alloc" version = "0.0.7" @@ -27,8 +663,1143 @@ name = "miden-stdlib-sys" version = "0.0.7" [[package]] -name = "pure-rust-add" -version = "0.1.0" +name = "miden-verifier" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ae6636d1e7a9d78a973fd59ffcfd87964eee235ecdf3264569add5ff89b0d91" dependencies = [ - "miden", + "miden-air", + "miden-core", + "thiserror 2.0.12", + "tracing", + "winter-verifier", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "owo-colors" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "pure-rust-add" +version = "0.1.0" +dependencies = [ + "miden", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_core", + "zerocopy", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" + +[[package]] +name = "redox_syscall" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver 1.0.26", +] + +[[package]] +name = "rustversion" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" + +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "strip-ansi-escapes" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025" +dependencies = [ + "vte", +] + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "target-triple" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width 0.2.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "toml" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "trybuild" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ae08be68c056db96f0e6c6dd820727cca756ced9e1f4cc7fdd20e2a55e23898" +dependencies = [ + "dissimilar", + "glob", + "serde", + "serde_derive", + "serde_json", + "target-triple", + "termcolor", + "toml", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vte" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" +dependencies = [ + "memchr", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core", + "windows-targets", +] + +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result", + "windows-strings", + "windows-targets", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" +dependencies = [ + "memchr", +] + +[[package]] +name = "winter-air" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d7fbdcaa53d220b84811199790c1dda77c025533cdd27715cf1625af2b4027a" +dependencies = [ + "libm", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-utils", +] + +[[package]] +name = "winter-crypto" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32247cde9f43e5bbd05362caa7274608790ea69b14f7c81cd509aae7127c5ff2" +dependencies = [ + "blake3", + "sha3", + "winter-math", + "winter-utils", +] + +[[package]] +name = "winter-fri" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b346b0eea2292986a1193bfc70dd2dbcdbb6adb3e5110b71d18c6f1077df10" +dependencies = [ + "winter-crypto", + "winter-math", + "winter-utils", +] + +[[package]] +name = "winter-math" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "326dfe4bfa4072b7c909133a88f8807820d3e49e5dfd246f67981771f74a0ed3" +dependencies = [ + "winter-utils", +] + +[[package]] +name = "winter-maybe-async" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaa132be74e602b707f1dab5a69c38496445e54ee940e7c281c02b15007241bd" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "winter-prover" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "426be0767a25150af20a241a6ae46bad1bf2f7da86393d897e5ec9967124f760" +dependencies = [ + "tracing", + "winter-air", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-maybe-async", + "winter-utils", +] + +[[package]] +name = "winter-utils" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d47518e6931955dcac73a584cacb04550b82ab2f45c72880cbbbdbe13adb63c" + +[[package]] +name = "winter-verifier" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e340716f24960b7ff3713029149fe5e52f9c0dae152101528ec5847d92d73e4" +dependencies = [ + "winter-air", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-utils", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "zerocopy" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] diff --git a/tests/rust-apps-wasm/rust-sdk/cross-ctx-account/Cargo.lock b/tests/rust-apps-wasm/rust-sdk/cross-ctx-account/Cargo.lock index 7e6450c13..44a8c08a1 100644 --- a/tests/rust-apps-wasm/rust-sdk/cross-ctx-account/Cargo.lock +++ b/tests/rust-apps-wasm/rust-sdk/cross-ctx-account/Cargo.lock @@ -1,41 +1,1812 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "bech32" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "blake3" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34a796731680be7931955498a16a10b2270c7762963d5d570fdbfe02dcbf314f" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "cc" +version = "1.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] [[package]] name = "cross-ctx-account" version = "0.1.0" dependencies = [ "miden", - "wit-bindgen-rt", + "wit-bindgen-rt 0.28.0", +] + +[[package]] +name = "crunchy" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dissimilar" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8975ffdaa0ef3661bfe02dbdcc06c9f829dfafe6a3c474de366a8d5e44276921" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-sink", + "futures-task", + "pin-project-lite", + "pin-utils", +] + +[[package]] +name = "generator" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +dependencies = [ + "cfg-if", + "libc", + "log", + "rustversion", + "windows", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", +] + +[[package]] +name = "glob" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax 0.8.5", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" + +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags", + "libc", +] + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", ] +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "miden" version = "0.0.7" dependencies = [ + "miden-base", "miden-base-sys", "miden-sdk-alloc", "miden-stdlib-sys", ] [[package]] -name = "miden-base-sys" +name = "miden-air" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72269e041e915d6c34325a8906f08a8ff6ec9b92c79ae07f3a0de8c3588694b5" +dependencies = [ + "miden-core", + "thiserror 2.0.12", + "winter-air", + "winter-prover", +] + +[[package]] +name = "miden-assembly" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce5680a0e75470389b65cc00900422ad7e1aa7972477c75ff88f63c3a01671e9" +dependencies = [ + "aho-corasick", + "lalrpop", + "lalrpop-util", + "miden-core", + "miden-miette", + "rustc_version 0.4.1", + "smallvec", + "thiserror 2.0.12", + "tracing", + "unicode-width 0.2.0", +] + +[[package]] +name = "miden-base" version = "0.0.7" dependencies = [ + "miden-base-macros", + "miden-base-sys", "miden-stdlib-sys", ] [[package]] -name = "miden-sdk-alloc" +name = "miden-base-macros" version = "0.0.7" +dependencies = [ + "miden-objects", + "proc-macro2", + "quote", + "semver 1.0.26", + "syn", + "toml", +] [[package]] -name = "miden-stdlib-sys" +name = "miden-base-sys" version = "0.0.7" +dependencies = [ + "miden-stdlib-sys", +] [[package]] -name = "wit-bindgen-rt" -version = "0.28.0" +name = "miden-core" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a37bd9274cb2d4754b915d624447ec0dce9105d174361841c0826efc79ceb9" +checksum = "e8ba125a31e9ec0e732f47e639525c753973e553126cfc46cc63674049ea4134" +dependencies = [ + "lock_api", + "loom", + "memchr", + "miden-crypto", + "miden-formatting", + "miden-miette", + "num-derive", + "num-traits", + "thiserror 2.0.12", + "winter-math", + "winter-utils", +] + +[[package]] +name = "miden-crypto" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d521a9d5fa949d60e4029e55ff1da892561b298ed636afb5f71d0dde0925bf57" +dependencies = [ + "blake3", + "glob", + "num", + "num-complex", + "rand", + "rand_core", + "sha3", + "thiserror 2.0.12", + "winter-crypto", + "winter-math", + "winter-utils", +] + +[[package]] +name = "miden-formatting" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e392e0a8c34b32671012b439de35fa8987bf14f0f8aac279b97f8b8cc6e263b" +dependencies = [ + "unicode-width 0.1.14", +] + +[[package]] +name = "miden-miette" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eef536978f24a179d94fa2a41e4f92b28e7d8aab14b8d23df28ad2a3d7098b20" +dependencies = [ + "cfg-if", + "futures", + "indenter", + "lazy_static", + "miden-miette-derive", + "owo-colors", + "regex", + "rustc_version 0.2.3", + "rustversion", + "serde_json", + "spin", + "strip-ansi-escapes", + "syn", + "textwrap", + "thiserror 2.0.12", + "trybuild", + "unicode-width 0.1.14", +] + +[[package]] +name = "miden-miette-derive" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86a905f3ea65634dd4d1041a4f0fd0a3e77aa4118341d265af1a94339182222f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "miden-objects" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea350fdd6d025d2e4791ac0769bfbc04afca404fbb20f918354dcc758debd4c" +dependencies = [ + "bech32", + "getrandom 0.3.2", + "miden-assembly", + "miden-core", + "miden-crypto", + "miden-processor", + "miden-verifier", + "semver 1.0.26", + "thiserror 2.0.12", +] + +[[package]] +name = "miden-processor" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e5f362138a7bfe6c20246de651e848566843a0d5062cc4a7a8ebff6bd14668d" +dependencies = [ + "miden-air", + "miden-core", + "thiserror 2.0.12", + "tracing", + "winter-prover", +] + +[[package]] +name = "miden-sdk-alloc" +version = "0.0.7" + +[[package]] +name = "miden-stdlib-sys" +version = "0.0.7" + +[[package]] +name = "miden-verifier" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ae6636d1e7a9d78a973fd59ffcfd87964eee235ecdf3264569add5ff89b0d91" +dependencies = [ + "miden-air", + "miden-core", + "thiserror 2.0.12", + "tracing", + "winter-verifier", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "owo-colors" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_core", + "zerocopy", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" + +[[package]] +name = "redox_syscall" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver 1.0.26", +] + +[[package]] +name = "rustversion" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" + +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "strip-ansi-escapes" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025" +dependencies = [ + "vte", +] + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "target-triple" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width 0.2.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "toml" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "trybuild" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ae08be68c056db96f0e6c6dd820727cca756ced9e1f4cc7fdd20e2a55e23898" +dependencies = [ + "dissimilar", + "glob", + "serde", + "serde_derive", + "serde_json", + "target-triple", + "termcolor", + "toml", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vte" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" +dependencies = [ + "memchr", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt 0.39.0", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core", + "windows-targets", +] + +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result", + "windows-strings", + "windows-targets", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" +dependencies = [ + "memchr", +] + +[[package]] +name = "winter-air" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d7fbdcaa53d220b84811199790c1dda77c025533cdd27715cf1625af2b4027a" +dependencies = [ + "libm", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-utils", +] + +[[package]] +name = "winter-crypto" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32247cde9f43e5bbd05362caa7274608790ea69b14f7c81cd509aae7127c5ff2" +dependencies = [ + "blake3", + "sha3", + "winter-math", + "winter-utils", +] + +[[package]] +name = "winter-fri" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b346b0eea2292986a1193bfc70dd2dbcdbb6adb3e5110b71d18c6f1077df10" +dependencies = [ + "winter-crypto", + "winter-math", + "winter-utils", +] + +[[package]] +name = "winter-math" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "326dfe4bfa4072b7c909133a88f8807820d3e49e5dfd246f67981771f74a0ed3" +dependencies = [ + "winter-utils", +] + +[[package]] +name = "winter-maybe-async" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaa132be74e602b707f1dab5a69c38496445e54ee940e7c281c02b15007241bd" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "winter-prover" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "426be0767a25150af20a241a6ae46bad1bf2f7da86393d897e5ec9967124f760" +dependencies = [ + "tracing", + "winter-air", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-maybe-async", + "winter-utils", +] + +[[package]] +name = "winter-utils" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d47518e6931955dcac73a584cacb04550b82ab2f45c72880cbbbdbe13adb63c" + +[[package]] +name = "winter-verifier" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e340716f24960b7ff3713029149fe5e52f9c0dae152101528ec5847d92d73e4" +dependencies = [ + "winter-air", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-utils", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a37bd9274cb2d4754b915d624447ec0dce9105d174361841c0826efc79ceb9" + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "zerocopy" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/tests/rust-apps-wasm/rust-sdk/p2id-note/Cargo.lock b/tests/rust-apps-wasm/rust-sdk/p2id-note/Cargo.lock index 3dde7e377..60757f482 100644 --- a/tests/rust-apps-wasm/rust-sdk/p2id-note/Cargo.lock +++ b/tests/rust-apps-wasm/rust-sdk/p2id-note/Cargo.lock @@ -1,41 +1,1791 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "bech32" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "blake3" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389a099b34312839e16420d499a9cad9650541715937ffbdd40d36f49e77eeb3" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "cc" +version = "1.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crunchy" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dissimilar" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8975ffdaa0ef3661bfe02dbdcc06c9f829dfafe6a3c474de366a8d5e44276921" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-sink", + "futures-task", + "pin-project-lite", + "pin-utils", +] + +[[package]] +name = "generator" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +dependencies = [ + "cfg-if", + "libc", + "log", + "rustversion", + "windows", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", +] + +[[package]] +name = "glob" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax 0.8.5", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.172" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" + +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags", + "libc", +] + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "miden" version = "0.0.7" dependencies = [ + "miden-base", "miden-base-sys", "miden-sdk-alloc", "miden-stdlib-sys", ] [[package]] -name = "miden-base-sys" +name = "miden-air" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e2e77c57ae798e02553af158c04d467f6479ab798a8c84459d343a89ff9c50" +dependencies = [ + "miden-core", + "thiserror 2.0.12", + "winter-air", + "winter-prover", +] + +[[package]] +name = "miden-assembly" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75d1cb02d807c2481f365feca966bedb74c66c765923d04c3c23ea678afaf148" +dependencies = [ + "aho-corasick", + "lalrpop", + "lalrpop-util", + "miden-core", + "miden-miette", + "rustc_version 0.4.1", + "smallvec", + "thiserror 2.0.12", + "tracing", + "unicode-width 0.2.0", +] + +[[package]] +name = "miden-base" version = "0.0.7" dependencies = [ + "miden-base-macros", + "miden-base-sys", "miden-stdlib-sys", ] [[package]] -name = "miden-sdk-alloc" +name = "miden-base-macros" version = "0.0.7" +dependencies = [ + "miden-objects", + "proc-macro2", + "quote", + "semver 1.0.26", + "syn", + "toml", +] [[package]] -name = "miden-stdlib-sys" +name = "miden-base-sys" version = "0.0.7" +dependencies = [ + "miden-stdlib-sys", +] [[package]] -name = "p2id" -version = "0.1.0" +name = "miden-core" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7d408e01421b5df2e4cfaf1a91efefe3fb5b729f1c99b668d3a69eec0044a6b" dependencies = [ - "miden", - "wit-bindgen-rt", + "lock_api", + "loom", + "memchr", + "miden-crypto", + "miden-formatting", + "miden-miette", + "num-derive", + "num-traits", + "thiserror 2.0.12", + "winter-math", + "winter-utils", ] [[package]] -name = "wit-bindgen-rt" -version = "0.28.0" +name = "miden-crypto" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a37bd9274cb2d4754b915d624447ec0dce9105d174361841c0826efc79ceb9" +checksum = "d521a9d5fa949d60e4029e55ff1da892561b298ed636afb5f71d0dde0925bf57" +dependencies = [ + "blake3", + "glob", + "num", + "num-complex", + "rand", + "rand_core", + "sha3", + "thiserror 2.0.12", + "winter-crypto", + "winter-math", + "winter-utils", +] + +[[package]] +name = "miden-formatting" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e392e0a8c34b32671012b439de35fa8987bf14f0f8aac279b97f8b8cc6e263b" +dependencies = [ + "unicode-width 0.1.14", +] + +[[package]] +name = "miden-miette" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eef536978f24a179d94fa2a41e4f92b28e7d8aab14b8d23df28ad2a3d7098b20" +dependencies = [ + "cfg-if", + "futures", + "indenter", + "lazy_static", + "miden-miette-derive", + "owo-colors", + "regex", + "rustc_version 0.2.3", + "rustversion", + "serde_json", + "spin", + "strip-ansi-escapes", + "syn", + "textwrap", + "thiserror 2.0.12", + "trybuild", + "unicode-width 0.1.14", +] + +[[package]] +name = "miden-miette-derive" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86a905f3ea65634dd4d1041a4f0fd0a3e77aa4118341d265af1a94339182222f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "miden-objects" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea350fdd6d025d2e4791ac0769bfbc04afca404fbb20f918354dcc758debd4c" +dependencies = [ + "bech32", + "getrandom 0.3.2", + "miden-assembly", + "miden-core", + "miden-crypto", + "miden-processor", + "miden-verifier", + "semver 1.0.26", + "thiserror 2.0.12", +] + +[[package]] +name = "miden-processor" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e70b053c587014396d06be3502e3952777923bee11729b7514c060fdc0d2c8" +dependencies = [ + "miden-air", + "miden-core", + "thiserror 2.0.12", + "tracing", + "winter-prover", +] + +[[package]] +name = "miden-sdk-alloc" +version = "0.0.7" + +[[package]] +name = "miden-stdlib-sys" +version = "0.0.7" + +[[package]] +name = "miden-verifier" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ae024b022569d7117891a83cf51ccd5bceeda248f30690b394a6dfc4607061" +dependencies = [ + "miden-air", + "miden-core", + "thiserror 2.0.12", + "tracing", + "winter-verifier", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "owo-colors" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564" + +[[package]] +name = "p2id" +version = "0.1.0" +dependencies = [ + "miden", + "wit-bindgen-rt 0.28.0", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro2" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + +[[package]] +name = "rand" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" + +[[package]] +name = "redox_syscall" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver 1.0.26", +] + +[[package]] +name = "rustversion" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "smallvec" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" + +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "strip-ansi-escapes" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025" +dependencies = [ + "vte", +] + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "target-triple" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width 0.2.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "toml" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "trybuild" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ae08be68c056db96f0e6c6dd820727cca756ced9e1f4cc7fdd20e2a55e23898" +dependencies = [ + "dissimilar", + "glob", + "serde", + "serde_derive", + "serde_json", + "target-triple", + "termcolor", + "toml", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vte" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" +dependencies = [ + "memchr", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt 0.39.0", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core", + "windows-targets", +] + +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result", + "windows-strings", + "windows-targets", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" +dependencies = [ + "memchr", +] + +[[package]] +name = "winter-air" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d7fbdcaa53d220b84811199790c1dda77c025533cdd27715cf1625af2b4027a" +dependencies = [ + "libm", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-utils", +] + +[[package]] +name = "winter-crypto" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32247cde9f43e5bbd05362caa7274608790ea69b14f7c81cd509aae7127c5ff2" +dependencies = [ + "blake3", + "sha3", + "winter-math", + "winter-utils", +] + +[[package]] +name = "winter-fri" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b346b0eea2292986a1193bfc70dd2dbcdbb6adb3e5110b71d18c6f1077df10" +dependencies = [ + "winter-crypto", + "winter-math", + "winter-utils", +] + +[[package]] +name = "winter-math" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "326dfe4bfa4072b7c909133a88f8807820d3e49e5dfd246f67981771f74a0ed3" +dependencies = [ + "winter-utils", +] + +[[package]] +name = "winter-maybe-async" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaa132be74e602b707f1dab5a69c38496445e54ee940e7c281c02b15007241bd" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "winter-prover" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "426be0767a25150af20a241a6ae46bad1bf2f7da86393d897e5ec9967124f760" +dependencies = [ + "tracing", + "winter-air", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-maybe-async", + "winter-utils", +] + +[[package]] +name = "winter-utils" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d47518e6931955dcac73a584cacb04550b82ab2f45c72880cbbbdbe13adb63c" + +[[package]] +name = "winter-verifier" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e340716f24960b7ff3713029149fe5e52f9c0dae152101528ec5847d92d73e4" +dependencies = [ + "winter-air", + "winter-crypto", + "winter-fri", + "winter-math", + "winter-utils", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a37bd9274cb2d4754b915d624447ec0dce9105d174361841c0826efc79ceb9" + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags", +] diff --git a/tests/rust-apps-wasm/rust-sdk/wit-sdk/miden-core-import.wit b/tests/rust-apps-wasm/rust-sdk/wit-sdk/miden-core-import.wit index 10407c473..f0e97175e 100644 --- a/tests/rust-apps-wasm/rust-sdk/wit-sdk/miden-core-import.wit +++ b/tests/rust-apps-wasm/rust-sdk/wit-sdk/miden-core-import.wit @@ -37,13 +37,13 @@ interface account { get-id: func() -> f32; /// Gets an item from the account storage - get-storage-item: func(index: f32, result-ptr: s32); + get-item: func(index: f32, result-ptr: s32); /// Sets an item in the account storage - set-storage-item: func(index: f32, value0: f32, value1: f32, value2: f32, value3: f32, result-ptr: s32); + set-item: func(index: f32, value0: f32, value1: f32, value2: f32, value3: f32, result-ptr: s32); /// Gets a map item from the account storage - get-storage-map-item: func(index: f32, key0: f32, key1: f32, key2: f32, key3: f32, result-ptr: s32); + get-map-item: func(index: f32, key0: f32, key1: f32, key2: f32, key3: f32, result-ptr: s32); /// Sets a map item in the account storage - set-storage-map-item: func(index: f32, key0: f32, key1: f32, key2: f32, key3: f32, value0: f32, value1: f32, value2: f32, value3: f32, result-ptr: s32); + set-map-item: func(index: f32, key0: f32, key1: f32, key2: f32, key3: f32, value0: f32, value1: f32, value2: f32, value3: f32, result-ptr: s32); }