diff --git a/.github/workflows/pr_main.yaml b/.github/workflows/pr_main.yaml index 68fae4fb0..1acc5c6b2 100644 --- a/.github/workflows/pr_main.yaml +++ b/.github/workflows/pr_main.yaml @@ -96,7 +96,6 @@ jobs: - name: Run ignored executor tests run: | - make prepare-test-data cargo test --release -p executor test_ethrex -- --ignored cargo test --release -p executor test_ckzg -- --ignored diff --git a/Cargo.lock b/Cargo.lock index 56f65fcf5..a703f8db6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,17 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "addchain" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" -dependencies = [ - "num-bigint 0.3.3", - "num-integer", - "num-traits", -] - [[package]] name = "ahash" version = "0.8.12" @@ -137,7 +126,7 @@ dependencies = [ "fnv", "hashbrown 0.15.5", "itertools 0.13.0", - "num-bigint 0.4.6", + "num-bigint", "num-integer", "num-traits", "zeroize", @@ -157,7 +146,7 @@ dependencies = [ "digest", "educe", "itertools 0.13.0", - "num-bigint 0.4.6", + "num-bigint", "num-traits", "paste", "zeroize", @@ -170,7 +159,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -179,11 +168,11 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" dependencies = [ - "num-bigint 0.4.6", + "num-bigint", "num-traits", "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -211,7 +200,7 @@ dependencies = [ "ark-std", "arrayvec", "digest", - "num-bigint 0.4.6", + "num-bigint", ] [[package]] @@ -222,7 +211,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -235,29 +224,12 @@ dependencies = [ "rand 0.8.5", ] -[[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 = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - [[package]] name = "atty" version = "0.2.14" @@ -317,6 +289,22 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" +[[package]] +name = "bitcoin-io" +version = "0.1.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11301df0b06f22dea7bb1916403fdd88a371031e495c49b8f96931b28189e175" + +[[package]] +name = "bitcoin_hashes" +version = "0.14.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9901a56e133a1fc86eeb1113e2591f45f4682451ca893bff494d2f88918e3f" +dependencies = [ + "bitcoin-io", + "hex-conservative", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -341,20 +329,6 @@ dependencies = [ "wyz", ] -[[package]] -name = "blake3" -version = "1.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", - "cpufeatures", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -367,7 +341,7 @@ dependencies = [ [[package]] name = "bls12_381" version = "0.8.0" -source = "git+https://github.com/lambdaclass/bls12_381?branch=expose-fp-struct#219174187bd78154cec35b0809799fc2c991a579" +source = "git+https://github.com/lambdaclass/bls12_381?branch=expose-affine-constructors#78cad0378b17fc3157b83f514be192bf46edf9a1" dependencies = [ "digest", "ff", @@ -377,18 +351,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "blst" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - [[package]] name = "bumpalo" version = "3.19.1" @@ -421,7 +383,7 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -445,27 +407,6 @@ dependencies = [ "serde", ] -[[package]] -name = "c-kzg" -version = "2.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6648ed1e4ea8e8a1a4a2c78e1cda29a3fd500bc622899c340d8525ea9a76b24a" -dependencies = [ - "blst", - "cc", - "glob", - "hex", - "libc", - "once_cell", - "serde", -] - -[[package]] -name = "camino" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" - [[package]] name = "cast" version = "0.3.0" @@ -570,7 +511,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -634,12 +575,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "constant_time_eq" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" - [[package]] name = "convert_case" version = "0.6.0" @@ -865,7 +800,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.111", + "syn", ] [[package]] @@ -876,19 +811,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core", "quote", - "syn 2.0.111", -] - -[[package]] -name = "datatest-stable" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833306ca7eec4d95844e65f0d7502db43888c5c1006c6c517e8cf51a27d15431" -dependencies = [ - "camino", - "fancy-regex", - "libtest-mimic", - "walkdir", + "syn", ] [[package]] @@ -898,7 +821,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", - "pem-rfc7468", "zeroize", ] @@ -930,7 +852,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.111", + "syn", "unicode-xid", ] @@ -946,17 +868,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - [[package]] name = "dyn-clone" version = "1.0.20" @@ -986,7 +897,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -1007,7 +918,6 @@ dependencies = [ "ff", "generic-array", "group", - "pem-rfc7468", "pkcs8", "rand_core 0.6.4", "sec1", @@ -1032,7 +942,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -1074,12 +984,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "escape8259" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5692dd7b5a1978a5aeb0ce83b7655c58ca8efdcb79d21036ea249da95afec2c6" - [[package]] name = "ethbloom" version = "0.14.1" @@ -1107,31 +1011,10 @@ dependencies = [ "uint", ] -[[package]] -name = "ethrex-blockchain" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" -dependencies = [ - "bytes", - "ethrex-common", - "ethrex-crypto", - "ethrex-metrics", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "rustc-hash", - "thiserror 2.0.17", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "ethrex-common" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ "bytes", "crc32fast", @@ -1141,183 +1024,145 @@ dependencies = [ "ethrex-trie", "hex", "hex-literal", - "k256", - "kzg-rs", + "hex-simd", + "indexmap 2.12.1", "lazy_static", "libc", + "lru", "once_cell", "rayon", "rkyv", "rustc-hash", + "secp256k1", "serde", "serde_json", "sha2", - "sha3", "thiserror 2.0.17", - "tinyvec", "tracing", - "url", ] [[package]] name = "ethrex-crypto" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ - "c-kzg", - "kzg-rs", + "ark-bn254", + "ark-ec", + "ark-ff", + "bls12_381", + "ethereum-types", + "ff", + "hex-literal", + "k256", + "malachite", + "num-bigint", + "p256", + "ripemd", + "secp256k1", + "sha2", "thiserror 2.0.17", "tiny-keccak", ] [[package]] -name = "ethrex-l2-common" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +name = "ethrex-guest-program" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ "bytes", "ethereum-types", "ethrex-common", "ethrex-crypto", + "ethrex-l2-common", "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", "ethrex-vm", "hex", + "rkyv", + "serde", + "serde_with", + "thiserror 2.0.17", +] + +[[package]] +name = "ethrex-l2-common" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "bytes", + "ethereum-types", + "ethrex-common", + "ethrex-crypto", "k256", "lambdaworks-crypto", "rkyv", + "secp256k1", "serde", "serde_with", - "sha3", "thiserror 2.0.17", "tracing", ] [[package]] name = "ethrex-levm" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff", - "bitvec", - "bls12_381", "bytes", - "datatest-stable", "derive_more", "ethrex-common", "ethrex-crypto", "ethrex-rlp", - "k256", - "lambdaworks-math", - "lazy_static", "malachite", - "p256", - "ripemd", + "rayon", "rustc-hash", "serde", - "serde_json", - "sha2", - "sha3", "strum", "thiserror 2.0.17", - "walkdir", -] - -[[package]] -name = "ethrex-metrics" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" -dependencies = [ - "ethrex-common", - "serde", - "serde_json", - "thiserror 2.0.17", - "tracing-subscriber", ] [[package]] name = "ethrex-rlp" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ "bytes", "ethereum-types", - "hex", - "lazy_static", - "snap", - "thiserror 2.0.17", - "tinyvec", -] - -[[package]] -name = "ethrex-storage" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "ethereum-types", - "ethrex-common", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-trie", - "hex", - "lru", - "qfilter", - "rayon", - "rustc-hash", - "serde", - "serde_json", "thiserror 2.0.17", - "tokio", - "tracing", ] [[package]] name = "ethrex-trie" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ "anyhow", "bytes", "crossbeam", - "digest", "ethereum-types", "ethrex-crypto", "ethrex-rlp", - "hex", "lazy_static", + "rayon", "rkyv", "rustc-hash", "serde", - "serde_json", - "smallvec", "thiserror 2.0.17", - "tracing", ] [[package]] name = "ethrex-vm" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ - "bincode", "bytes", "derive_more", "dyn-clone", - "ethereum-types", "ethrex-common", "ethrex-crypto", "ethrex-levm", "ethrex-rlp", - "ethrex-trie", - "lazy_static", "rayon", - "rkyv", + "rustc-hash", "serde", "thiserror 2.0.17", "tracing", @@ -1327,7 +1172,7 @@ dependencies = [ name = "executor" version = "0.1.0" dependencies = [ - "guest_program", + "ethrex-guest-program", "rkyv", "rustc-demangle", "serde", @@ -1336,17 +1181,6 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "fancy-regex" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" -dependencies = [ - "bit-set", - "regex-automata", - "regex-syntax", -] - [[package]] name = "fastrand" version = "2.3.0" @@ -1360,27 +1194,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "bitvec", - "byteorder", - "ff_derive", "rand_core 0.6.4", "subtle", ] -[[package]] -name = "ff_derive" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f10d12652036b0e99197587c6ba87a8fc3031986499973c030d8b44fcc151b60" -dependencies = [ - "addchain", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "find-msvc-tools" version = "0.1.5" @@ -1417,70 +1234,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - [[package]] name = "funty" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[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-macro", - "futures-task", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "gcd" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" - [[package]] name = "generic-array" version = "0.14.7" @@ -1517,12 +1276,6 @@ dependencies = [ "wasip2", ] -[[package]] -name = "glob" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" - [[package]] name = "group" version = "0.13.0" @@ -1534,29 +1287,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "guest_program" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" -dependencies = [ - "bincode", - "bytes", - "ethrex-blockchain", - "ethrex-common", - "ethrex-crypto", - "ethrex-l2-common", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "rkyv", - "serde", - "serde_json", - "serde_with", - "thiserror 2.0.17", -] - [[package]] name = "half" version = "1.8.3" @@ -1628,12 +1358,31 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex-conservative" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" +dependencies = [ + "arrayvec", +] + [[package]] name = "hex-literal" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +[[package]] +name = "hex-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f7685beb53fc20efc2605f32f5d51e9ba18b8ef237961d1760169d2290d3bee" +dependencies = [ + "outref", + "vsimd", +] + [[package]] name = "hmac" version = "0.12.1" @@ -1667,114 +1416,12 @@ dependencies = [ "cc", ] -[[package]] -name = "icu_collections" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" -dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" -dependencies = [ - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" - -[[package]] -name = "icu_properties" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" -dependencies = [ - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" - -[[package]] -name = "icu_provider" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" -dependencies = [ - "displaydoc", - "icu_locale_core", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - [[package]] name = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - [[package]] name = "impl-codec" version = "0.7.1" @@ -1810,7 +1457,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -1871,15 +1518,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.13.0" @@ -1925,7 +1563,7 @@ checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -1961,20 +1599,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "kzg-rs" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9201effeea3fcc93b587904ae2df9ce97e433184b9d6d299e9ebc9830a546636" -dependencies = [ - "ff", - "hex", - "serde_arrays", - "sha2", - "sp1_bls12_381", - "spin", -] - [[package]] name = "lambda-vm-prover" version = "0.1.0" @@ -2017,10 +1641,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "018a95aa873eb49896a858dee0d925c33f3978d073c64b08dd4f2c9b35a017c6" dependencies = [ "getrandom 0.2.16", - "num-bigint 0.4.6", + "num-bigint", "num-traits", "rand 0.8.5", - "rayon", "serde", "serde_json", ] @@ -2053,30 +1676,12 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" -[[package]] -name = "libtest-mimic" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5297962ef19edda4ce33aaa484386e0a5b3d7f2f4e037cbeee00503ef6b29d33" -dependencies = [ - "anstream", - "anstyle", - "clap 4.5.53", - "escape8259", -] - [[package]] name = "linux-raw-sys" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" -[[package]] -name = "litemap" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" - [[package]] name = "log" version = "0.4.29" @@ -2153,7 +1758,7 @@ version = "0.1.0" dependencies = [ "criterion 0.5.1", "getrandom 0.2.16", - "num-bigint 0.4.6", + "num-bigint", "num-traits", "proptest", "rand 0.8.5", @@ -2209,7 +1814,7 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -2227,210 +1832,83 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys", -] - -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "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-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[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-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi 0.5.2", - "libc", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - -[[package]] -name = "oorandom" -version = "11.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" - -[[package]] -name = "os_str_bytes" -version = "6.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2", + "windows-sys", ] [[package]] -name = "p3-baby-bear" -version = "0.2.3-succinct" +name = "num-bigint" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7521838ecab2ddf4f7bc4ceebad06ec02414729598485c1ada516c39900820e8" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "num-bigint 0.4.6", - "p3-field", - "p3-mds", - "p3-poseidon2", - "p3-symmetric", - "rand 0.8.5", - "serde", + "num-integer", + "num-traits", ] [[package]] -name = "p3-dft" -version = "0.2.3-succinct" +name = "num-conv" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46414daedd796f1eefcdc1811c0484e4bced5729486b6eaba9521c572c76761a" -dependencies = [ - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "tracing", -] +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] -name = "p3-field" -version = "0.2.3-succinct" +name = "num-integer" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48948a0516b349e9d1cdb95e7236a6ee010c44e68c5cc78b4b92bf1c4022a0d9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "itertools 0.12.1", - "num-bigint 0.4.6", "num-traits", - "p3-util", - "rand 0.8.5", - "serde", ] [[package]] -name = "p3-matrix" -version = "0.2.3-succinct" +name = "num-traits" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4de3f373589477cb735ea58e125898ed20935e03664b4614c7fac258b3c42f" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ - "itertools 0.12.1", - "p3-field", - "p3-maybe-rayon", - "p3-util", - "rand 0.8.5", - "serde", - "tracing", + "autocfg", ] [[package]] -name = "p3-maybe-rayon" -version = "0.2.3-succinct" +name = "once_cell" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3968ad1160310296eb04f91a5f4edfa38fe1d6b2b8cd6b5c64e6f9b7370979e" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] -name = "p3-mds" -version = "0.2.3-succinct" +name = "once_cell_polyfill" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2356b1ed0add6d5dfbf7a338ce534a6fde827374394a52cec16a0840af6e97c9" -dependencies = [ - "itertools 0.12.1", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-symmetric", - "p3-util", - "rand 0.8.5", -] +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] -name = "p3-poseidon2" -version = "0.2.3-succinct" +name = "oorandom" +version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da1eec7e1b6900581bedd95e76e1ef4975608dd55be9872c9d257a8a9651c3a" -dependencies = [ - "gcd", - "p3-field", - "p3-mds", - "p3-symmetric", - "rand 0.8.5", - "serde", -] +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] -name = "p3-symmetric" -version = "0.2.3-succinct" +name = "os_str_bytes" +version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb439bea1d822623b41ff4b51e3309e80d13cadf8b86d16ffd5e6efb9fdc360" -dependencies = [ - "itertools 0.12.1", - "p3-field", - "serde", -] +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" [[package]] -name = "p3-util" -version = "0.2.3-succinct" +name = "outref" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" + +[[package]] +name = "p256" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c2c2010678b9332b563eaa38364915b585c1a94b5ca61e2c7541c087ddda5c" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" dependencies = [ - "serde", + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", ] [[package]] @@ -2467,7 +1945,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -2476,33 +1954,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - [[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 = "pkcs8" version = "0.10.2" @@ -2556,15 +2013,6 @@ dependencies = [ "portable-atomic", ] -[[package]] -name = "potential_utf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] - [[package]] name = "powerfmt" version = "0.2.0" @@ -2656,16 +2104,7 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", -] - -[[package]] -name = "qfilter" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "746341cd2357c9a4df2d951522b4a8dd1ef553e543119899ad7bf87e938c8fbe" -dependencies = [ - "xxhash-rust", + "syn", ] [[package]] @@ -2809,7 +2248,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -2896,7 +2335,7 @@ checksum = "7c02f8cdd12b307ab69fe0acf4cd2249c7460eb89dce64a0febadf934ebb6a9e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -3020,6 +2459,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "secp256k1" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.5", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" +dependencies = [ + "cc", +] + [[package]] name = "serde" version = "1.0.228" @@ -3041,15 +2500,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "serde_arrays" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a16b99c5ea4fe3daccd14853ad260ec00ea043b2708d1fd1da3106dcd8d9df" -dependencies = [ - "serde", -] - [[package]] name = "serde_cbor" version = "0.11.2" @@ -3077,7 +2527,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -3121,7 +2571,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -3176,76 +2626,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" -[[package]] -name = "slab" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - -[[package]] -name = "snap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" - -[[package]] -name = "sp1-lib" -version = "5.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73b8ff343f2405d5935440e56b7aba5cee6d87303f0051974cbd6f5de502f57" -dependencies = [ - "bincode", - "serde", - "sp1-primitives", -] - -[[package]] -name = "sp1-primitives" -version = "5.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e69a03098f827102c54c31a5e57280eb45b2c085de433b3f702e4f9e3ec1641" -dependencies = [ - "bincode", - "blake3", - "cfg-if", - "hex", - "lazy_static", - "num-bigint 0.4.6", - "p3-baby-bear", - "p3-field", - "p3-poseidon2", - "p3-symmetric", - "serde", - "sha2", -] - -[[package]] -name = "sp1_bls12_381" -version = "0.8.0-sp1-5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac255e1704ebcdeec5e02f6a0ebc4d2e9e6b802161938330b6810c13a610c583" -dependencies = [ - "cfg-if", - "ff", - "group", - "pairing", - "rand_core 0.6.4", - "sp1-lib", - "subtle", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - [[package]] name = "spki" version = "0.7.3" @@ -3256,12 +2636,6 @@ dependencies = [ "der", ] -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - [[package]] name = "stark" version = "0.1.0" @@ -3318,7 +2692,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -3327,17 +2701,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.111" @@ -3349,17 +2712,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - [[package]] name = "sysinfo" version = "0.31.4" @@ -3411,7 +2763,7 @@ checksum = "be35209fd0781c5401458ab66e4f98accf63553e8fae7425503e92fdd319783b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -3446,7 +2798,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -3457,7 +2809,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -3469,15 +2821,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - [[package]] name = "tikv-jemalloc-ctl" version = "0.6.1" @@ -3549,16 +2892,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "tinystr" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" -dependencies = [ - "displaydoc", - "zerovec", -] - [[package]] name = "tinytemplate" version = "1.2.1" @@ -3584,29 +2917,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" -[[package]] -name = "tokio" -version = "1.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" -dependencies = [ - "pin-project-lite", -] - -[[package]] -name = "tokio-util" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "futures-util", - "pin-project-lite", - "tokio", -] - [[package]] name = "toml_datetime" version = "0.7.5+spec-1.1.0" @@ -3657,7 +2967,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -3692,7 +3002,6 @@ dependencies = [ "once_cell", "regex-automata", "sharded-slab", - "smallvec", "thread_local", "tracing", "tracing-core", @@ -3741,25 +3050,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "url" -version = "2.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", - "serde_derive", -] - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - [[package]] name = "utf8parse" version = "0.2.2" @@ -3788,6 +3078,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + [[package]] name = "wait-timeout" version = "0.2.1" @@ -3854,7 +3150,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.111", + "syn", "wasm-bindgen-shared", ] @@ -3948,7 +3244,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -3959,7 +3255,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn", ] [[package]] @@ -4065,12 +3361,6 @@ version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" -[[package]] -name = "writeable" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" - [[package]] name = "wyz" version = "0.5.1" @@ -4080,35 +3370,6 @@ dependencies = [ "tap", ] -[[package]] -name = "xxhash-rust" -version = "0.8.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" - -[[package]] -name = "yoke" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" -dependencies = [ - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", - "synstructure", -] - [[package]] name = "zerocopy" version = "0.8.31" @@ -4126,28 +3387,7 @@ checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", - "synstructure", + "syn", ] [[package]] @@ -4167,38 +3407,5 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", -] - -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", + "syn", ] diff --git a/Makefile b/Makefile index fb4782497..fbdd6f72c 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: deps deps-linux deps-macos prepare-test-data compile-programs-asm compile-programs-rust compile-bench \ +.PHONY: deps deps-linux deps-macos compile-programs-asm compile-programs-rust compile-bench \ compile-programs clean-asm clean-rust clean-bench clean-shared clean test test-asm test-no-compile \ test-asm-no-compile test-rust test-rust-no-compile test-executor flamegraph-prover \ test-fast test-prover test-prover-all test-disk-spill test-math-cuda test-cuda-integration bench-math-cuda bench-prover bench-prover-cuda build check clippy fmt lint @@ -43,9 +43,6 @@ BENCH_PROGRAM_DIRS := $(dir $(wildcard $(BENCH_PROGRAMS_DIR)/*/Cargo.toml)) BENCH_PROGRAMS := $(notdir $(basename $(BENCH_PROGRAM_DIRS:%/=%))) BENCH_ARTIFACTS := $(addprefix $(BENCH_ARTIFACTS_DIR)/, $(addsuffix .elf, $(BENCH_PROGRAMS))) -ETHREX_FILE := executor/tests/ethrex_hoodi.bin -ETHREX_URL := https://lambda.alignedlayer.com/ethrex_hoodi.bin - # Override with: make ... SYSROOT_DIR=$HOME/.lambda-vm-sysroot # to install the sysroot in a user-writable location and avoid sudo. SYSROOT_DIR ?= /opt/lambda-vm-sysroot @@ -63,15 +60,7 @@ ASM_LDFLAGS ?= -fuse-ld=lld -nostdlib -Wl,-e,main # Custom RV64IM target spec location RV64_TARGET_SPEC=$(CURDIR)/executor/programs/riscv64im-lambda-vm-elf.json -.PHONY: test prepare-test-data prepare-sysroot - -prepare-test-data: - @if [ ! -f "$(ETHREX_FILE)" ]; then \ - echo "Downloading ethrex_hoodi.bin..."; \ - curl -L "$(ETHREX_URL)" -o "$(ETHREX_FILE)"; \ - else \ - echo "ethrex_hoodi.bin already exists"; \ - fi +.PHONY: test prepare-sysroot prepare-sysroot: @if [ -d "$(SYSROOT_DIR)/include" ] && [ -d "$(SYSROOT_DIR)/lib" ]; then \ @@ -156,19 +145,19 @@ test-asm: compile-programs-asm test-asm-no-compile test-asm-no-compile: cargo test -p executor --test asm -test-rust: compile-programs-rust prepare-test-data +test-rust: compile-programs-rust cargo test -p executor --test rust test-rust-no-compile: cargo test -p executor --test rust -test-no-compile: prepare-test-data +test-no-compile: cargo test -p executor test-flamegraph: cargo test -p executor --test flamegraph -test: compile-programs prepare-test-data +test: compile-programs cargo test # === Quick test shortcuts === diff --git a/bench_vs/README_ethrex.md b/bench_vs/README_ethrex.md new file mode 100644 index 000000000..417110d3c --- /dev/null +++ b/bench_vs/README_ethrex.md @@ -0,0 +1,97 @@ +# Ethrex Block Benchmarks + +Benchmarks Lambda VM proving a stateless **ethrex** block (Ethereum state +execution) inside the zkVM. The same ethrex guest ELF is proven against +different block inputs: + +| Block | Input fixture | ~Instructions | +|-------|---------------|---------------| +| empty block | `executor/tests/ethrex_empty_block.bin` | ~184k | +| 1 transaction (plain ETH transfer) | `executor/tests/ethrex_simple_tx.bin` | ~4.4M | + +Each input is a serialized `ProgramInput` (the block + its execution witness, +rkyv-encoded) for the ethrex commit pinned in +`executor/programs/rust/ethrex/Cargo.lock`. The guest reads it via +`get_private_input()` and runs ethrex's `execution_program`. + +The timing window is **single-shot end-to-end prove** (ELF load + execution + +trace build + AIR construction + STARK prove); it **excludes** verification. + +--- + +## 1. Running the benchmark locally + +Prereqs: Rust stable + `nightly-2026-02-01`, and the RV64 sysroot (see +[§2](#2-generating-the-ethrex-elf)). The script builds the CLI and reuses an +existing `ethrex.elf` if present, otherwise builds it. + +```bash +# Prove every block in the script's BLOCKS list, print a summary table: +./bench_vs/run_ethrex.sh + +# Write machine-readable reports (markdown + key=value metrics + raw stdout/stderr): +./bench_vs/run_ethrex.sh --report-dir bench_artifacts --no-color +``` + +Output (example): + +``` + Program Lambda (s) Lambda cycles + ---------------------- ---------- ------------- + ethrex empty block 11.549s 183931 + ethrex 1 tx 47.302s 4392951 +``` + +With `--report-dir DIR` it also writes: +- `DIR/ethrex_summary.md` — markdown table +- `DIR/ethrex_metrics.txt` — `_time_s=` / `_cycles=` per block +- `DIR/raw/.stdout` / `.stderr` + +### Adding more blocks +Append one line to the `BLOCKS` array in `bench_vs/run_ethrex.sh` and drop the +fixture into `executor/tests/`: + +```bash +BLOCKS=( + "ethrex empty block|ethrex_empty_block.bin" + "ethrex 1 tx|ethrex_simple_tx.bin" + "ethrex 5 txs|ethrex_5_txs.bin" # <-- new +) +``` + +### Daily run +The nightly workflow `.github/workflows/bench-vs-nightly.yml` calls +`run_ethrex.sh` and posts results to Slack via +`.github/scripts/publish_bench_vs.sh`. Because the script is data-driven, any +block added to `BLOCKS` is picked up automatically; to also show it in the +Slack post, add a line in `publish_bench_vs.sh` (see the `ethrex_line` helper). + +> Note: the nightly currently copies a **cached** `ethrex.elf` onto the runner +> (a temporary step until the sysroot is provisioned there). Refresh that cache +> when the guest or its ethrex dependency changes. + +--- + +## 2. Generating the ethrex ELF + +`ethrex.elf` is **gitignored** (`executor/.gitignore`) and built on demand. The +fixtures (`*.bin`) are small and committed. + +```bash +# One-time: fetch the RV64 sysroot (needed for ethrex's C deps: c-kzg, etc.) +make prepare-sysroot SYSROOT_DIR=$HOME/.lambda-vm-sysroot + +# Build just the ethrex guest ELF (or `make compile-programs-rust` for all): +make executor/program_artifacts/rust/ethrex.elf SYSROOT_DIR=$HOME/.lambda-vm-sysroot +``` + +What the build needs: +- **Toolchains:** `1.94.0` stable (workspace) + `nightly-2026-02-01` with + `rust-src` (the Makefile pins it; builds the guest via `-Z build-std`). +- **clang + lld** for ethrex's C dependencies. +- **Network**, the first time: cargo fetches `guest_program` from + `github.com/lambdaclass/ethrex.git` (commit pinned in the guest `Cargo.lock`). +- **`SYSROOT_DIR` must match** between `prepare-sysroot` and the build. + +The guest source is `executor/programs/rust/ethrex/` (an 11-line `main.rs` that +reads the private input, calls `execution_program`, and commits the output). diff --git a/bench_vs/run_ethrex.sh b/bench_vs/run_ethrex.sh index 23b99f9a1..a79aa5ab6 100755 --- a/bench_vs/run_ethrex.sh +++ b/bench_vs/run_ethrex.sh @@ -32,6 +32,10 @@ NC='\033[0m' BLOCKS=( "ethrex empty block|ethrex_empty_block.bin" "ethrex 1 tx|ethrex_simple_tx.bin" + # ethrex_10_transfers.bin (~42M cycles) executes fine but is too heavy to + # prove on a typical machine (OOMs ~36 GB) — software ecrecover dominates + # (~4M cycles/transfer). Kept as a fixture; add here once ecrecover is a + # precompile or for big-memory/nightly proving. ) # --- Parse args ------------------------------------------------------------- diff --git a/executor/.gitignore b/executor/.gitignore index 55aaf98cf..ed640fbdc 100644 --- a/executor/.gitignore +++ b/executor/.gitignore @@ -1,3 +1,2 @@ /target /program_artifacts/rust -/tests/ethrex_hoodi.bin diff --git a/executor/Cargo.toml b/executor/Cargo.toml index d03fcd15c..bf875ac4b 100644 --- a/executor/Cargo.toml +++ b/executor/Cargo.toml @@ -13,4 +13,7 @@ serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tiny-keccak = { version = "2.0", features = ["keccak"] } rkyv = { version = "0.8.10", features = ["std", "unaligned"] } -guest-program = { git = "https://github.com/lambdaclass/ethrex.git", rev = "a9de3e8b405dbf406cac31b930fd1ffdc216a429", package="guest_program", default-features = false, features = ["c-kzg"] } +# Native reference for the ethrex tests (host-side `execution_program` with +# `NativeCrypto`). Pinned to the same ethrex rev as the guest ELF +# (executor/programs/rust/ethrex) — the open LambdaVM-backend PR branch. +ethrex-guest-program = { git = "https://github.com/lambdaclass/ethrex.git", rev = "156cb8d6a3974f411d71622eecd1b249ee37ff1c", package = "ethrex-guest-program" } diff --git a/executor/programs/rust/ethrex/Cargo.lock b/executor/programs/rust/ethrex/Cargo.lock index 9a528e8de..58fbf4c2e 100644 --- a/executor/programs/rust/ethrex/Cargo.lock +++ b/executor/programs/rust/ethrex/Cargo.lock @@ -2,17 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "addchain" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" -dependencies = [ - "num-bigint 0.3.3", - "num-integer", - "num-traits", -] - [[package]] name = "ahash" version = "0.8.12" @@ -25,15 +14,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "aho-corasick" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" -dependencies = [ - "memchr", -] - [[package]] name = "allocator-api2" version = "0.2.21" @@ -49,61 +29,11 @@ dependencies = [ "libc", ] -[[package]] -name = "anstream" -version = "0.6.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" - -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys", -] - [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "ark-bn254" @@ -131,7 +61,7 @@ dependencies = [ "fnv", "hashbrown 0.15.5", "itertools 0.13.0", - "num-bigint 0.4.6", + "num-bigint", "num-integer", "num-traits", "zeroize", @@ -151,7 +81,7 @@ dependencies = [ "digest", "educe", "itertools 0.13.0", - "num-bigint 0.4.6", + "num-bigint", "num-traits", "paste", "zeroize", @@ -164,7 +94,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -173,11 +103,11 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" dependencies = [ - "num-bigint 0.4.6", + "num-bigint", "num-traits", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -205,7 +135,7 @@ dependencies = [ "ark-std", "arrayvec", "digest", - "num-bigint 0.4.6", + "num-bigint", ] [[package]] @@ -216,7 +146,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -226,37 +156,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.8.6", ] -[[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 = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "base16ct" @@ -283,29 +196,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" [[package]] -name = "bincode" -version = "1.3.3" +name = "bitcoin-io" +version = "0.1.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] +checksum = "11301df0b06f22dea7bb1916403fdd88a371031e495c49b8f96931b28189e175" [[package]] -name = "bit-set" -version = "0.8.0" +name = "bitcoin_hashes" +version = "0.14.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +checksum = "0c9901a56e133a1fc86eeb1113e2591f45f4682451ca893bff494d2f88918e3f" dependencies = [ - "bit-vec", + "bitcoin-io", + "hex-conservative", ] -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - [[package]] name = "bitvec" version = "1.0.1" @@ -318,20 +223,6 @@ dependencies = [ "wyz", ] -[[package]] -name = "blake3" -version = "1.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", - "cpufeatures", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -344,7 +235,7 @@ dependencies = [ [[package]] name = "bls12_381" version = "0.8.0" -source = "git+https://github.com/lambdaclass/bls12_381?branch=expose-fp-struct#219174187bd78154cec35b0809799fc2c991a579" +source = "git+https://github.com/lambdaclass/bls12_381?branch=expose-affine-constructors#78cad0378b17fc3157b83f514be192bf46edf9a1" dependencies = [ "digest", "ff", @@ -355,22 +246,19 @@ dependencies = [ ] [[package]] -name = "blst" -version = "0.3.16" +name = "bs58" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", + "tinyvec", ] [[package]] name = "bumpalo" -version = "3.19.1" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "byte-slice-cast" @@ -398,14 +286,14 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "bytemuck" -version = "1.24.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" [[package]] name = "byteorder" @@ -415,39 +303,18 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" dependencies = [ "serde", ] -[[package]] -name = "c-kzg" -version = "2.1.1" -source = "git+https://github.com/risc0/c-kzg-4844?tag=c-kzg%2Fv2.1.1-risczero.0#1a8fa5497c80eb7f1fecbd7026f9bf86cc63fee2" -dependencies = [ - "blst", - "bytemuck", - "cc", - "glob", - "hex", - "libc", - "once_cell", - "serde", -] - -[[package]] -name = "camino" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" - [[package]] name = "cc" -version = "1.2.53" +version = "1.2.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932" +checksum = "dad887fd958be91b5098c0248def011f4523ab786cd411be668777e55063501f" dependencies = [ "find-msvc-tools", "shlex", @@ -461,9 +328,9 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "chrono" -version = "0.4.43" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ "iana-time-zone", "num-traits", @@ -471,52 +338,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "clap" -version = "4.5.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.5.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "clap_lex" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" - -[[package]] -name = "colorchoice" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" - [[package]] name = "const-default" version = "1.0.0" @@ -531,11 +352,12 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const_format" -version = "0.2.35" +version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" +checksum = "4481a617ad9a412be3b97c5d403fef8ed023103368908b9c50af598ff467cc1e" dependencies = [ "const_format_proc_macros", + "konst", ] [[package]] @@ -549,12 +371,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "constant_time_eq" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" - [[package]] name = "convert_case" version = "0.6.0" @@ -680,9 +496,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.21.3" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" dependencies = [ "darling_core", "darling_macro", @@ -690,39 +506,26 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.21.3" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" dependencies = [ - "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "darling_macro" -version = "0.21.3" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ "darling_core", "quote", - "syn 2.0.114", -] - -[[package]] -name = "datatest-stable" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833306ca7eec4d95844e65f0d7502db43888c5c1006c6c517e8cf51a27d15431" -dependencies = [ - "camino", - "fancy-regex", - "libtest-mimic", - "walkdir", + "syn 2.0.117", ] [[package]] @@ -732,17 +535,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", - "pem-rfc7468", "zeroize", ] [[package]] name = "deranged" -version = "0.5.5" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ - "powerfmt", "serde_core", ] @@ -764,7 +565,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "unicode-xid", ] @@ -780,17 +581,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "dyn-clone" version = "1.0.20" @@ -820,14 +610,14 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "either" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" [[package]] name = "elliptic-curve" @@ -841,7 +631,6 @@ dependencies = [ "ff", "generic-array", "group", - "pem-rfc7468", "pkcs8", "rand_core 0.6.4", "sec1", @@ -884,7 +673,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -893,12 +682,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" -[[package]] -name = "escape8259" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5692dd7b5a1978a5aeb0ce83b7655c58ca8efdcb79d21036ea249da95afec2c6" - [[package]] name = "ethbloom" version = "0.14.1" @@ -930,37 +713,15 @@ dependencies = [ name = "ethrex" version = "0.1.0" dependencies = [ - "c-kzg", - "guest_program", + "ethrex-guest-program", "lambda-vm-syscalls", "rkyv", ] -[[package]] -name = "ethrex-blockchain" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" -dependencies = [ - "bytes", - "ethrex-common", - "ethrex-crypto", - "ethrex-metrics", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "rustc-hash", - "thiserror 2.0.18", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "ethrex-common" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ "bytes", "crc32fast", @@ -970,199 +731,146 @@ dependencies = [ "ethrex-trie", "hex", "hex-literal", - "k256", - "kzg-rs", + "hex-simd", + "indexmap 2.14.0", "lazy_static", "libc", + "lru", "once_cell", - "rayon", "rkyv", "rustc-hash", "serde", "serde_json", "sha2", - "sha3", "thiserror 2.0.18", - "tinyvec", "tracing", - "url", ] [[package]] name = "ethrex-crypto" -version = "9.0.0" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ - "c-kzg", - "kzg-rs", - "lambda-vm-syscalls", + "ark-bn254", + "ark-ec", + "ark-ff", + "bls12_381", + "ethereum-types", + "ff", + "hex-literal", + "k256", + "num-bigint", + "p256", + "ripemd", + "sha2", "thiserror 2.0.18", "tiny-keccak", ] [[package]] -name = "ethrex-l2-common" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +name = "ethrex-guest-program" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ "bytes", "ethereum-types", "ethrex-common", "ethrex-crypto", + "ethrex-l2-common", "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", "ethrex-vm", "hex", "k256", - "lambdaworks-crypto", + "lambda-vm-syscalls", "rkyv", "serde", "serde_with", - "sha3", "thiserror 2.0.18", - "tracing", ] [[package]] -name = "ethrex-levm" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +name = "ethrex-l2-common" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff", - "bitvec", - "bls12_381", "bytes", - "datatest-stable", - "derive_more", + "ethereum-types", "ethrex-common", "ethrex-crypto", - "ethrex-rlp", "k256", - "lambdaworks-math", - "lazy_static", - "malachite", - "p256", - "ripemd", - "rustc-hash", + "lambdaworks-crypto", + "rkyv", + "secp256k1", "serde", - "serde_json", - "sha2", - "sha3", - "strum", + "serde_with", "thiserror 2.0.18", - "walkdir", + "tracing", ] [[package]] -name = "ethrex-metrics" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +name = "ethrex-levm" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ + "bytes", + "derive_more", "ethrex-common", + "ethrex-crypto", + "ethrex-rlp", + "malachite", + "rustc-hash", "serde", - "serde_json", + "strum", "thiserror 2.0.18", - "tracing-subscriber", ] [[package]] name = "ethrex-rlp" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ "bytes", "ethereum-types", - "hex", - "lazy_static", - "snap", "thiserror 2.0.18", - "tinyvec", -] - -[[package]] -name = "ethrex-storage" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "ethereum-types", - "ethrex-common", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-trie", - "hex", - "lru", - "qfilter", - "rayon", - "rustc-hash", - "serde", - "serde_json", - "thiserror 2.0.18", - "tokio", - "tracing", ] [[package]] name = "ethrex-trie" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ "anyhow", "bytes", "crossbeam", - "digest", "ethereum-types", "ethrex-crypto", "ethrex-rlp", - "hex", "lazy_static", + "rayon", "rkyv", "rustc-hash", "serde", - "serde_json", - "smallvec", "thiserror 2.0.18", - "tracing", ] [[package]] name = "ethrex-vm" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" dependencies = [ - "bincode", "bytes", "derive_more", "dyn-clone", - "ethereum-types", "ethrex-common", "ethrex-crypto", "ethrex-levm", "ethrex-rlp", - "ethrex-trie", - "lazy_static", - "rayon", - "rkyv", + "rustc-hash", "serde", "thiserror 2.0.18", "tracing", ] -[[package]] -name = "fancy-regex" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" -dependencies = [ - "bit-set", - "regex-automata", - "regex-syntax", -] - [[package]] name = "ff" version = "0.13.1" @@ -1170,32 +878,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "bitvec", - "byteorder", - "ff_derive", "rand_core 0.6.4", "subtle", ] -[[package]] -name = "ff_derive" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f10d12652036b0e99197587c6ba87a8fc3031986499973c030d8b44fcc151b60" -dependencies = [ - "addchain", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "find-msvc-tools" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "fixed-hash" @@ -1204,7 +895,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand 0.8.6", "rustc-hex", "static_assertions", ] @@ -1227,15 +918,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - [[package]] name = "funty" version = "2.0.0" @@ -1244,53 +926,28 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-core", - "futures-macro", "futures-task", "pin-project-lite", - "pin-utils", "slab", ] -[[package]] -name = "gcd" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" - [[package]] name = "generic-array" version = "0.14.9" @@ -1327,12 +984,6 @@ dependencies = [ "wasip2", ] -[[package]] -name = "glob" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" - [[package]] name = "group" version = "0.13.0" @@ -1344,29 +995,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "guest_program" -version = "9.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=a9de3e8b405dbf406cac31b930fd1ffdc216a429#a9de3e8b405dbf406cac31b930fd1ffdc216a429" -dependencies = [ - "bincode", - "bytes", - "ethrex-blockchain", - "ethrex-common", - "ethrex-crypto", - "ethrex-l2-common", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "rkyv", - "serde", - "serde_json", - "serde_with", - "thiserror 2.0.18", -] - [[package]] name = "hashbrown" version = "0.12.3" @@ -1395,16 +1023,16 @@ dependencies = [ ] [[package]] -name = "heck" -version = "0.5.0" +name = "hashbrown" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" [[package]] -name = "hermit-abi" -version = "0.5.2" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hex" @@ -1412,12 +1040,31 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex-conservative" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" +dependencies = [ + "arrayvec", +] + [[package]] name = "hex-literal" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +[[package]] +name = "hex-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f7685beb53fc20efc2605f32f5d51e9ba18b8ef237961d1760169d2290d3bee" +dependencies = [ + "outref", + "vsimd", +] + [[package]] name = "hmac" version = "0.12.1" @@ -1429,9 +1076,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1451,114 +1098,12 @@ dependencies = [ "cc", ] -[[package]] -name = "icu_collections" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" -dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" -dependencies = [ - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" - -[[package]] -name = "icu_properties" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" -dependencies = [ - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" - -[[package]] -name = "icu_provider" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" -dependencies = [ - "displaydoc", - "icu_locale_core", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - [[package]] name = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - [[package]] name = "impl-codec" version = "0.7.1" @@ -1594,7 +1139,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1610,31 +1155,16 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "serde", "serde_core", ] -[[package]] -name = "is_terminal_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.13.0" @@ -1655,17 +1185,18 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "f2025f20d7a4fa7785846e7b63d10a76d3f1cee98ee5cb79ea59703f95e42162" dependencies = [ - "once_cell", + "cfg-if", + "futures-util", "wasm-bindgen", ] @@ -1685,27 +1216,28 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ "cpufeatures", ] [[package]] -name = "kzg-rs" -version = "0.2.7" +name = "konst" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9201effeea3fcc93b587904ae2df9ce97e433184b9d6d299e9ebc9830a546636" +checksum = "128133ed7824fcd73d6e7b17957c5eb7bacb885649bd8c69708b2331a10bcefb" dependencies = [ - "ff", - "hex", - "serde_arrays", - "sha2", - "sp1_bls12_381", - "spin", + "konst_macro_rules", ] +[[package]] +name = "konst_macro_rules" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4933f3f57a8e9d9da04db23fb153356ecaf00cbd14aee46279c33dc80925c37" + [[package]] name = "lambda-vm-syscalls" version = "0.1.0" @@ -1714,7 +1246,7 @@ dependencies = [ "getrandom 0.2.17", "getrandom 0.3.4", "lazy_static", - "rand 0.9.2", + "rand 0.9.4", "riscv", "thiserror 1.0.69", ] @@ -1726,7 +1258,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58b1a1c1102a5a7fbbda117b79fb3a01e033459c738a3c1642269603484fd1c1" dependencies = [ "lambdaworks-math", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", "serde", "sha2", @@ -1740,10 +1272,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "018a95aa873eb49896a858dee0d925c33f3978d073c64b08dd4f2c9b35a017c6" dependencies = [ "getrandom 0.2.17", - "num-bigint 0.4.6", + "num-bigint", "num-traits", - "rand 0.8.5", - "rayon", + "rand 0.8.6", "serde", "serde_json", ] @@ -1756,51 +1287,33 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.180" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libm" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" - -[[package]] -name = "libtest-mimic" -version = "0.8.1" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5297962ef19edda4ce33aaa484386e0a5b3d7f2f4e037cbeee00503ef6b29d33" -dependencies = [ - "anstream", - "anstyle", - "clap", - "escape8259", -] +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "linked_list_allocator" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afa463f5405ee81cdb9cc2baf37e08ec7e4c8209442b5d72c04cfb2cd6e6286" - -[[package]] -name = "litemap" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "2b23ac50abb8261cb38c6e2a7192d3302e0836dac1628f6a93b82b4fad185897" [[package]] name = "log" -version = "0.4.29" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a" [[package]] name = "lru" -version = "0.16.3" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" dependencies = [ "hashbrown 0.16.1", ] @@ -1851,20 +1364,11 @@ dependencies = [ "malachite-nz", ] -[[package]] -name = "matchers" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" -dependencies = [ - "regex-automata", -] - [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" [[package]] name = "munge" @@ -1883,27 +1387,7 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", -] - -[[package]] -name = "nu-ansi-term" -version = "0.50.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", + "syn 2.0.117", ] [[package]] @@ -1918,9 +1402,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] name = "num-integer" @@ -1940,27 +1424,17 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] -name = "once_cell_polyfill" -version = "1.70.2" +name = "outref" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" +checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" [[package]] name = "p256" @@ -1974,118 +1448,6 @@ dependencies = [ "sha2", ] -[[package]] -name = "p3-baby-bear" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7521838ecab2ddf4f7bc4ceebad06ec02414729598485c1ada516c39900820e8" -dependencies = [ - "num-bigint 0.4.6", - "p3-field", - "p3-mds", - "p3-poseidon2", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-dft" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46414daedd796f1eefcdc1811c0484e4bced5729486b6eaba9521c572c76761a" -dependencies = [ - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "tracing", -] - -[[package]] -name = "p3-field" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48948a0516b349e9d1cdb95e7236a6ee010c44e68c5cc78b4b92bf1c4022a0d9" -dependencies = [ - "itertools 0.12.1", - "num-bigint 0.4.6", - "num-traits", - "p3-util", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-matrix" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4de3f373589477cb735ea58e125898ed20935e03664b4614c7fac258b3c42f" -dependencies = [ - "itertools 0.12.1", - "p3-field", - "p3-maybe-rayon", - "p3-util", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-maybe-rayon" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3968ad1160310296eb04f91a5f4edfa38fe1d6b2b8cd6b5c64e6f9b7370979e" - -[[package]] -name = "p3-mds" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2356b1ed0add6d5dfbf7a338ce534a6fde827374394a52cec16a0840af6e97c9" -dependencies = [ - "itertools 0.12.1", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-symmetric", - "p3-util", - "rand 0.8.5", -] - -[[package]] -name = "p3-poseidon2" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da1eec7e1b6900581bedd95e76e1ef4975608dd55be9872c9d257a8a9651c3a" -dependencies = [ - "gcd", - "p3-field", - "p3-mds", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-symmetric" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb439bea1d822623b41ff4b51e3309e80d13cadf8b86d16ffd5e6efb9fdc360" -dependencies = [ - "itertools 0.12.1", - "p3-field", - "serde", -] - -[[package]] -name = "p3-util" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c2c2010678b9332b563eaa38364915b585c1a94b5ca61e2c7541c087ddda5c" -dependencies = [ - "serde", -] - [[package]] name = "pairing" version = "0.23.0" @@ -2117,44 +1479,23 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] -name = "percent-encoding" -version = "2.3.2" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[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" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkcs8" @@ -2166,15 +1507,6 @@ dependencies = [ "spki", ] -[[package]] -name = "potential_utf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] - [[package]] name = "powerfmt" version = "0.2.0" @@ -2214,18 +1546,18 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.105" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -2247,23 +1579,14 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", -] - -[[package]] -name = "qfilter" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "746341cd2357c9a4df2d951522b4a8dd1ef553e543119899ad7bf87e938c8fbe" -dependencies = [ - "xxhash-rust", + "syn 2.0.117", ] [[package]] name = "quote" -version = "1.0.43" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -2291,9 +1614,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -2302,9 +1625,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.5", @@ -2350,9 +1673,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", @@ -2385,26 +1708,9 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", -] - -[[package]] -name = "regex-automata" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", + "syn 2.0.117", ] -[[package]] -name = "regex-syntax" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" - [[package]] name = "rend" version = "0.5.3" @@ -2454,7 +1760,7 @@ checksum = "7d323d13972c1b104aa036bc692cd08b822c8bbf23d79a27c526095856499799" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2465,14 +1771,14 @@ checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436" [[package]] name = "rkyv" -version = "0.8.14" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360b333c61ae24e5af3ae7c8660bd6b21ccd8200dbbc5d33c2454421e85b9c69" +checksum = "73389e0c99e664f919275ab5b5b0471391fe9a8de61e1dff9b1eaf56a90f16e3" dependencies = [ "bytecheck", "bytes", - "hashbrown 0.16.1", - "indexmap 2.13.0", + "hashbrown 0.17.1", + "indexmap 2.14.0", "munge", "ptr_meta", "rancor", @@ -2484,13 +1790,13 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.8.14" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02f8cdd12b307ab69fe0acf4cd2249c7460eb89dce64a0febadf934ebb6a9e" +checksum = "5d2ed0b54125315fb36bd021e82d314d1c126548f871634b483f46b31d13cac6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2505,21 +1811,22 @@ dependencies = [ [[package]] name = "rlsf" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222fb240c3286247ecdee6fa5341e7cdad0ffdf8e7e401d9937f2d58482a20bf" +checksum = "1646a59a9734b8b7a0ac51689388a60fe1625d4b956348e9de07591a1478457a" dependencies = [ "cfg-if", "const-default", "libc", + "rustversion", "svgbobdoc", ] [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" [[package]] name = "rustc-hex" @@ -2535,9 +1842,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "safe_arch" @@ -2548,15 +1855,6 @@ dependencies = [ "bytemuck", ] -[[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 = "schemars" version = "0.9.0" @@ -2571,9 +1869,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e910108742c57a770f492731f99be216a52fadd361b06c8fb59d74ccc267d2" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" dependencies = [ "dyn-clone", "ref-cast", @@ -2596,22 +1894,33 @@ dependencies = [ ] [[package]] -name = "serde" -version = "1.0.228" +name = "secp256k1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ - "serde_core", - "serde_derive", + "bitcoin_hashes", + "rand 0.8.6", + "secp256k1-sys", ] [[package]] -name = "serde_arrays" -version = "0.2.0" +name = "secp256k1-sys" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a16b99c5ea4fe3daccd14853ad260ec00ea043b2708d1fd1da3106dcd8d9df" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" dependencies = [ - "serde", + "cc", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", ] [[package]] @@ -2631,14 +1940,14 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" dependencies = [ "itoa", "memchr", @@ -2649,17 +1958,18 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.1" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" dependencies = [ "base64 0.22.1", + "bs58", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.13.0", + "indexmap 2.14.0", "schemars 0.9.0", - "schemars 1.2.0", + "schemars 1.2.1", "serde_core", "serde_json", "serde_with_macros", @@ -2668,14 +1978,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.1" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2691,28 +2001,19 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" 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" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "signature" @@ -2732,73 +2033,9 @@ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "slab" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - -[[package]] -name = "snap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" - -[[package]] -name = "sp1-lib" -version = "5.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73b8ff343f2405d5935440e56b7aba5cee6d87303f0051974cbd6f5de502f57" -dependencies = [ - "bincode", - "serde", - "sp1-primitives", -] - -[[package]] -name = "sp1-primitives" -version = "5.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e69a03098f827102c54c31a5e57280eb45b2c085de433b3f702e4f9e3ec1641" -dependencies = [ - "bincode", - "blake3", - "cfg-if", - "hex", - "lazy_static", - "num-bigint 0.4.6", - "p3-baby-bear", - "p3-field", - "p3-poseidon2", - "p3-symmetric", - "serde", - "sha2", -] - -[[package]] -name = "sp1_bls12_381" -version = "0.8.0-sp1-5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac255e1704ebcdeec5e02f6a0ebc4d2e9e6b802161938330b6810c13a610c583" -dependencies = [ - "cfg-if", - "ff", - "group", - "pairing", - "rand_core 0.6.4", - "sp1-lib", - "subtle", -] - -[[package]] -name = "spin" -version = "0.9.8" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "spki" @@ -2810,12 +2047,6 @@ dependencies = [ "der", ] -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - [[package]] name = "static_assertions" version = "1.1.0" @@ -2846,7 +2077,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2881,26 +2112,15 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.114" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "tap" version = "1.0.1" @@ -2933,7 +2153,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2944,35 +2164,16 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", -] - -[[package]] -name = "thread_local" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", + "syn 2.0.117", ] [[package]] name = "time" -version = "0.3.45" +version = "0.3.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd" +checksum = "fc1aa89044e7786ffb2ec017acb22cb7de5b0be46d0f21aea2b224b8561e5db2" dependencies = [ "deranged", - "itoa", "num-conv", "powerfmt", "serde_core", @@ -2982,15 +2183,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.7" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" [[package]] name = "time-macros" -version = "0.2.25" +version = "0.2.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e552d1249bf61ac2a52db88179fd0673def1e1ad8243a00d9ec9ed71fee3dd" +checksum = "9d3bfe86347f0cc659f586f01e26303ccd32418f26f30c7b0309b3ca3a07d695" dependencies = [ "num-conv", "time-core", @@ -3005,21 +2206,11 @@ dependencies = [ "crunchy", ] -[[package]] -name = "tinystr" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" -dependencies = [ - "displaydoc", - "zerovec", -] - [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -3030,45 +2221,22 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" -[[package]] -name = "tokio" -version = "1.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" -dependencies = [ - "pin-project-lite", -] - -[[package]] -name = "tokio-util" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "futures-util", - "pin-project-lite", - "tokio", -] - [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.25.12+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7" dependencies = [ - "indexmap 2.13.0", + "indexmap 2.14.0", "toml_datetime", "toml_parser", "winnow", @@ -3076,9 +2244,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.6+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ "winnow", ] @@ -3103,7 +2271,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3113,43 +2281,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" 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.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex-automata", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", ] [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "uint" @@ -3165,15 +2303,15 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" [[package]] name = "unicode-width" @@ -3187,47 +2325,16 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "url" -version = "2.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", - "serde_derive", -] - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - [[package]] name = "uuid" -version = "1.19.0" +version = "1.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" +checksum = "144d6b123cef80b301b8f72a9e2ca4370ddec21950d0a103dd22c437006d2db7" dependencies = [ "js-sys", "wasm-bindgen", ] -[[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" @@ -3235,14 +2342,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "walkdir" -version = "2.5.0" +name = "vsimd" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" [[package]] name = "wasi" @@ -3252,18 +2355,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "a254a4b10c19a76f09a27640e7ffbf9bc30bf67e16a3bf28aaefa4920fe81563" dependencies = [ "cfg-if", "once_cell", @@ -3274,9 +2377,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "24a40fc75b0ec6f3746ceb10d36f53a93dcd68a93b11b6445983945d79eba0dc" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3284,22 +2387,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "908f34bd9b9ce3d4caf07b72dfab63d61504d156856c6bd3cd87fa350cf3985b" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "7acbf7616c27b194bbb550bf77ed0c2c3e5b7fd1260a93082b95fb7f47959b92" dependencies = [ "unicode-ident", ] @@ -3314,15 +2417,6 @@ dependencies = [ "safe_arch", ] -[[package]] -name = "winapi-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -dependencies = [ - "windows-sys", -] - [[package]] name = "windows-core" version = "0.62.2" @@ -3344,7 +2438,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3355,7 +2449,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3382,35 +2476,20 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link", -] - [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" dependencies = [ "memchr", ] [[package]] name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" - -[[package]] -name = "writeable" -version = "0.6.2" +version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "wyz" @@ -3421,74 +2500,24 @@ dependencies = [ "tap", ] -[[package]] -name = "xxhash-rust" -version = "0.8.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" - -[[package]] -name = "yoke" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" -dependencies = [ - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", - "synstructure", -] - [[package]] name = "zerocopy" -version = "0.8.33" +version = "0.8.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd" +checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.33" +version = "0.8.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1" +checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", - "synstructure", + "syn 2.0.117", ] [[package]] @@ -3508,44 +2537,11 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", -] - -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "zmij" -version = "1.0.16" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfcd145825aace48cff44a8844de64bf75feec3080e0aa5cdbde72961ae51a65" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/executor/programs/rust/ethrex/Cargo.toml b/executor/programs/rust/ethrex/Cargo.toml index 6d6bece6f..24e3d8fb5 100644 --- a/executor/programs/rust/ethrex/Cargo.toml +++ b/executor/programs/rust/ethrex/Cargo.toml @@ -7,16 +7,15 @@ edition = "2024" [dependencies] lambda-vm-syscalls = { path = "../../../../syscalls" } -guest-program = { git = "https://github.com/lambdaclass/ethrex.git", rev = "a9de3e8b405dbf406cac31b930fd1ffdc216a429", package="guest_program", default-features = false, features=["c-kzg"] } +# Pinned to the open LambdaVM-backend PR branch (feat/lambdavm-prover-backend) +# until it merges to ethrex `main`; then re-pin to the merge commit. The +# `lambdavm` feature provides `crypto::lambdavm::LambdaVmCrypto` (keccak via our +# precompile syscall, the rest via pure-Rust crates incl. kzg-rs). +ethrex-guest-program = { git = "https://github.com/lambdaclass/ethrex.git", rev = "156cb8d6a3974f411d71622eecd1b249ee37ff1c", package = "ethrex-guest-program", default-features = false, features = ["lambdavm"] } rkyv = { version = "0.8.10", features = ["std", "unaligned"] } -c-kzg = { version = "2.1.1", features = ["eip-7594"] } -[patch.crates-io] -c-kzg = { git = "https://github.com/risc0/c-kzg-4844", tag = "c-kzg/v2.1.1-risczero.0" } - -# Route ethrex's crypto through the lambda-vm keccak precompile (riscv64). -# Replaces the upstream ethrex-crypto crate (whose keccak is tiny-keccak/software) -# with a local copy whose keccak module calls the keccak_permute syscall on the -# guest target; native builds keep the vendored asm. See patches/ethrex-crypto/. -[patch."https://github.com/lambdaclass/ethrex.git"] -ethrex-crypto = { path = "patches/ethrex-crypto" } +# `ethrex-guest-program`'s `lambdavm` feature pins `lambda-vm-syscalls` to an +# older commit. Override it with our working-tree copy so the guest links our +# current syscalls (keccak_permute + the Print-ecall no-op fix). +[patch."https://github.com/yetanotherco/lambda_vm.git"] +lambda-vm-syscalls = { path = "../../../../syscalls" } diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/Cargo.toml b/executor/programs/rust/ethrex/patches/ethrex-crypto/Cargo.toml deleted file mode 100644 index b24d91cdd..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/Cargo.toml +++ /dev/null @@ -1,31 +0,0 @@ -[package] -name = "ethrex-crypto" -version = "9.0.0" -edition = "2024" -authors = ["LambdaClass"] -documentation = "https://docs.ethrex.xyz" - -[lib] -path = "./lib.rs" - -[dependencies] -# TODO(#1102): Move to Lambdaworks in the future -c-kzg = { version = "2.1.1", default-features = false, optional = true } -kzg-rs = { version = "0.2.7", optional = true } -openvm-kzg = { git = "https://github.com/axiom-crypto/openvm-kzg.git", rev = "530a6ed413def5296b7e4967650ba4fc8fd92ea1", optional = true } # v1.4.1 -thiserror = "2.0.9" - -tiny-keccak = { version = "2.0.2", features = ["keccak"] } - -[target.'cfg(target_arch = "riscv64")'.dependencies] -lambda-vm-syscalls = { path = "../../../../../../syscalls" } - -[features] -default = ["kzg-rs"] -c-kzg = ["c-kzg/std", "c-kzg/ethereum_kzg_settings"] -openvm-kzg = ["dep:openvm-kzg"] -kzg-rs = ["dep:kzg-rs"] - -risc0 = ["c-kzg/std", "c-kzg/ethereum_kzg_settings", "c-kzg/portable"] -openvm = ["openvm-kzg"] - diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/aarch64.rs b/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/aarch64.rs deleted file mode 100644 index 1679c5646..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/aarch64.rs +++ /dev/null @@ -1,296 +0,0 @@ -use std::arch::aarch64::*; - -const BLAKE2B_IV: [u64; 12] = [ - 0x6A09E667F3BCC908, - 0xBB67AE8584CAA73B, - 0x3C6EF372FE94F82B, - 0xA54FF53A5F1D36F1, - 0x510E527FADE682D1, - 0x9B05688C2B3E6C1F, - 0x1F83D9ABFB41BD6B, - 0x5BE0CD19137E2179, - // Second half of blake2b_iv with inverted bits (for final block). - 0x510E527FADE682D1, - 0x9B05688C2B3E6C1F, - 0xE07C265404BE4294, - 0x5BE0CD19137E2179, -]; - -pub fn blake2b_f(r: usize, h: &mut [u64; 8], m: &[u64; 16], t: &[u64; 2], f: bool) { - unsafe { - // Initialize local work vector. - let uint64x2x4_t(h0, h1, h2, h3) = vld1q_u64_x4(h.as_ptr().cast::().add(0)); - let mut a = uint64x2x2_t(h0, h1); - let mut b = uint64x2x2_t(h2, h3); - let mut c = vld1q_u64_x2(BLAKE2B_IV.as_ptr()); - let mut d = vld1q_u64_x2(BLAKE2B_IV.as_ptr().add(4 + ((f as usize) << 2))); - - // Apply block number to local work vector. - d.0 = veorq_u64(d.0, vld1q_u64(t.as_ptr())); - - if let Some(mut r) = r.checked_sub(1) { - let uint64x2x4_t(m0, m1, m2, m3) = vld1q_u64_x4(m.as_ptr().add(0)); - let uint64x2x4_t(m4, m5, m6, m7) = vld1q_u64_x4(m.as_ptr().add(8)); - - 'process: { - // Round #0: - // From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - // Into: [0 2 4 6 1 3 5 7 E 8 A C F 9 B D] - let r0a = uint64x2x2_t(vtrn1q_u64(m0, m1), vtrn1q_u64(m2, m3)); - let r0b = uint64x2x2_t(vtrn2q_u64(m0, m1), vtrn2q_u64(m2, m3)); - let r0c = uint64x2x2_t(vtrn1q_u64(m7, m4), vtrn1q_u64(m5, m6)); - let r0d = uint64x2x2_t(vtrn2q_u64(m7, m4), vtrn2q_u64(m5, m6)); - inner(&mut a, &mut b, &mut c, &mut d, r0a, r0b, r0c, r0d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - // Round #1: - // From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - // Into: [E 4 9 D A 8 F 6 5 1 0 B 3 C 2 7] - let r1a = uint64x2x2_t(vtrn1q_u64(m7, m2), vtrn2q_u64(m4, m6)); - let r1b = uint64x2x2_t(vtrn1q_u64(m5, m4), vextq_u64::<1>(m7, m3)); - let r1c = uint64x2x2_t(vtrn2q_u64(m2, m0), vcopyq_laneq_u64::<1, 1>(m0, m5)); - let r1d = uint64x2x2_t(vextq_u64::<1>(m1, m6), vcopyq_laneq_u64::<1, 1>(m1, m3)); - inner(&mut a, &mut b, &mut c, &mut d, r1a, r1b, r1c, r1d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - // Round #2: - // From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - // Into: [B C 5 F 8 0 2 D 9 A 3 7 4 E 6 1] - let r2a = uint64x2x2_t(vextq_u64::<1>(m5, m6), vtrn2q_u64(m2, m7)); - let r2b = uint64x2x2_t(vtrn1q_u64(m4, m0), vcopyq_laneq_u64::<1, 1>(m1, m6)); - let r2c = uint64x2x2_t(vextq_u64::<1>(m4, m5), vtrn2q_u64(m1, m3)); - let r2d = uint64x2x2_t(vtrn1q_u64(m2, m7), vcopyq_laneq_u64::<1, 1>(m3, m0)); - inner(&mut a, &mut b, &mut c, &mut d, r2a, r2b, r2c, r2d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - // Round #3: - // From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - // Into: [7 3 D B 9 1 C E F 2 5 4 8 6 A 0] - let r3a = uint64x2x2_t(vtrn2q_u64(m3, m1), vtrn2q_u64(m6, m5)); - let r3b = uint64x2x2_t(vtrn2q_u64(m4, m0), vtrn1q_u64(m6, m7)); - let r3c = uint64x2x2_t(vextq_u64::<1>(m7, m1), vextq_u64::<1>(m2, m2)); - let r3d = uint64x2x2_t(vtrn1q_u64(m4, m3), vtrn1q_u64(m5, m0)); - inner(&mut a, &mut b, &mut c, &mut d, r3a, r3b, r3c, r3d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - // Round #4: - // From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - // Into: [9 5 2 A 0 7 4 F 3 E B 6 D 1 C 8] - let r4a = uint64x2x2_t(vtrn2q_u64(m4, m2), vtrn1q_u64(m1, m5)); - let r4b = uint64x2x2_t( - vcopyq_laneq_u64::<1, 1>(m0, m3), - vcopyq_laneq_u64::<1, 1>(m2, m7), - ); - let r4c = uint64x2x2_t(vextq_u64::<1>(m1, m7), vextq_u64::<1>(m5, m3)); - let r4d = uint64x2x2_t(vtrn2q_u64(m6, m0), vtrn1q_u64(m6, m4)); - inner(&mut a, &mut b, &mut c, &mut d, r4a, r4b, r4c, r4d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - // Round #5: - // From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - // Into: [2 6 0 8 C A B 3 1 4 7 F 9 D 5 E] - let r5a = uint64x2x2_t(vtrn1q_u64(m1, m3), vtrn1q_u64(m0, m4)); - let r5b = uint64x2x2_t(vtrn1q_u64(m6, m5), vtrn2q_u64(m5, m1)); - let r5c = uint64x2x2_t(vextq_u64::<1>(m0, m2), vtrn2q_u64(m3, m7)); - let r5d = uint64x2x2_t(vtrn2q_u64(m4, m6), vextq_u64::<1>(m2, m7)); - inner(&mut a, &mut b, &mut c, &mut d, r5a, r5b, r5c, r5d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - // Round #6: - // From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - // Into: [C 1 E 4 5 F D A 8 0 6 9 B 7 3 2] - let r6a = uint64x2x2_t(vcopyq_laneq_u64::<1, 1>(m6, m0), vtrn1q_u64(m7, m2)); - let r6b = uint64x2x2_t(vtrn2q_u64(m2, m7), vextq_u64::<1>(m6, m5)); - let r6c = uint64x2x2_t(vtrn1q_u64(m4, m0), vcopyq_laneq_u64::<1, 1>(m3, m4)); - let r6d = uint64x2x2_t(vtrn2q_u64(m5, m3), vextq_u64::<1>(m1, m1)); - inner(&mut a, &mut b, &mut c, &mut d, r6a, r6b, r6c, r6d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - // Round #7: - // From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - // Into: [D 7 C 3 B E 1 9 2 5 F 8 A 0 4 6] - let r7a = uint64x2x2_t(vtrn2q_u64(m6, m3), vcopyq_laneq_u64::<1, 1>(m6, m1)); - let r7b = uint64x2x2_t(vextq_u64::<1>(m5, m7), vtrn2q_u64(m0, m4)); - let r7c = uint64x2x2_t(vcopyq_laneq_u64::<1, 1>(m1, m2), vextq_u64::<1>(m7, m4)); - let r7d = uint64x2x2_t(vtrn1q_u64(m5, m0), vtrn1q_u64(m2, m3)); - inner(&mut a, &mut b, &mut c, &mut d, r7a, r7b, r7c, r7d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - // Round #8: - // From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - // Into: [6 E B 0 F 9 3 8 A C D 1 5 2 7 4] - let r8a = uint64x2x2_t(vtrn1q_u64(m3, m7), vextq_u64::<1>(m5, m0)); - let r8b = uint64x2x2_t(vtrn2q_u64(m7, m4), vextq_u64::<1>(m1, m4)); - let r8c = uint64x2x2_t(vtrn1q_u64(m5, m6), vtrn2q_u64(m6, m0)); - let r8d = uint64x2x2_t(vextq_u64::<1>(m2, m1), vextq_u64::<1>(m3, m2)); - inner(&mut a, &mut b, &mut c, &mut d, r8a, r8b, r8c, r8d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - // Round #9: - // From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - // Into: [A 8 7 1 2 4 6 5 D F 9 3 0 B E C] - let r9a = uint64x2x2_t(vtrn1q_u64(m5, m4), vtrn2q_u64(m3, m0)); - let r9b = uint64x2x2_t(vtrn1q_u64(m1, m2), vcopyq_laneq_u64::<1, 1>(m3, m2)); - let r9c = uint64x2x2_t(vtrn2q_u64(m6, m7), vtrn2q_u64(m4, m1)); - let r9d = uint64x2x2_t(vcopyq_laneq_u64::<1, 1>(m0, m5), vtrn1q_u64(m7, m6)); - inner(&mut a, &mut b, &mut c, &mut d, r9a, r9b, r9c, r9d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - loop { - inner(&mut a, &mut b, &mut c, &mut d, r0a, r0b, r0c, r0d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - inner(&mut a, &mut b, &mut c, &mut d, r1a, r1b, r1c, r1d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - inner(&mut a, &mut b, &mut c, &mut d, r2a, r2b, r2c, r2d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - inner(&mut a, &mut b, &mut c, &mut d, r3a, r3b, r3c, r3d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - inner(&mut a, &mut b, &mut c, &mut d, r4a, r4b, r4c, r4d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - inner(&mut a, &mut b, &mut c, &mut d, r5a, r5b, r5c, r5d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - inner(&mut a, &mut b, &mut c, &mut d, r6a, r6b, r6c, r6d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - inner(&mut a, &mut b, &mut c, &mut d, r7a, r7b, r7c, r7d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - inner(&mut a, &mut b, &mut c, &mut d, r8a, r8b, r8c, r8d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - - inner(&mut a, &mut b, &mut c, &mut d, r9a, r9b, r9c, r9d); - r = match r.checked_sub(1) { - Some(x) => x, - None => break 'process, - }; - } - } - } - - // Merge local work vector. - vst1q_u64_x2( - h.as_mut_ptr().add(0), - uint64x2x2_t(veor3q_u64(h0, a.0, c.0), veor3q_u64(h1, a.1, c.1)), - ); - vst1q_u64_x2( - h.as_mut_ptr().add(4), - uint64x2x2_t(veor3q_u64(h2, b.0, d.0), veor3q_u64(h3, b.1, d.1)), - ); - } -} - -#[allow(clippy::too_many_arguments)] -#[inline(always)] -fn inner( - a: &mut uint64x2x2_t, - b: &mut uint64x2x2_t, - c: &mut uint64x2x2_t, - d: &mut uint64x2x2_t, - d0: uint64x2x2_t, - d1: uint64x2x2_t, - d2: uint64x2x2_t, - d3: uint64x2x2_t, -) { - unsafe { - // G(d0) - *a = uint64x2x2_t(vaddq_u64(a.0, b.0), vaddq_u64(a.1, b.1)); - *a = uint64x2x2_t(vaddq_u64(a.0, d0.0), vaddq_u64(a.1, d0.1)); - *d = uint64x2x2_t(vxarq_u64::<32>(d.0, a.0), vxarq_u64::<32>(d.1, a.1)); - *c = uint64x2x2_t(vaddq_u64(c.0, d.0), vaddq_u64(c.1, d.1)); - *b = uint64x2x2_t(vxarq_u64::<24>(b.0, c.0), vxarq_u64::<24>(b.1, c.1)); - - // G(d1) - *a = uint64x2x2_t(vaddq_u64(a.0, b.0), vaddq_u64(a.1, b.1)); - *a = uint64x2x2_t(vaddq_u64(a.0, d1.0), vaddq_u64(a.1, d1.1)); - *d = uint64x2x2_t(vxarq_u64::<16>(d.0, a.0), vxarq_u64::<16>(d.1, a.1)); - *c = uint64x2x2_t(vaddq_u64(c.0, d.0), vaddq_u64(c.1, d.1)); - *b = uint64x2x2_t(vxarq_u64::<63>(b.0, c.0), vxarq_u64::<63>(b.1, c.1)); - - // Apply diagonalization. - *a = uint64x2x2_t(vextq_u64::<1>(a.1, a.0), vextq_u64::<1>(a.0, a.1)); - *c = uint64x2x2_t(vextq_u64::<1>(c.0, c.1), vextq_u64::<1>(c.1, c.0)); - *d = uint64x2x2_t(d.1, d.0); - - // G(d2) - *a = uint64x2x2_t(vaddq_u64(a.0, b.0), vaddq_u64(a.1, b.1)); - *a = uint64x2x2_t(vaddq_u64(a.0, d2.0), vaddq_u64(a.1, d2.1)); - *d = uint64x2x2_t(vxarq_u64::<32>(d.0, a.0), vxarq_u64::<32>(d.1, a.1)); - *c = uint64x2x2_t(vaddq_u64(c.0, d.0), vaddq_u64(c.1, d.1)); - *b = uint64x2x2_t(vxarq_u64::<24>(b.0, c.0), vxarq_u64::<24>(b.1, c.1)); - - // G(d3) - *a = uint64x2x2_t(vaddq_u64(a.0, b.0), vaddq_u64(a.1, b.1)); - *a = uint64x2x2_t(vaddq_u64(a.0, d3.0), vaddq_u64(a.1, d3.1)); - *d = uint64x2x2_t(vxarq_u64::<16>(d.0, a.0), vxarq_u64::<16>(d.1, a.1)); - *c = uint64x2x2_t(vaddq_u64(c.0, d.0), vaddq_u64(c.1, d.1)); - *b = uint64x2x2_t(vxarq_u64::<63>(b.0, c.0), vxarq_u64::<63>(b.1, c.1)); - - // Revert diagonalization. - *a = uint64x2x2_t(vextq_u64::<1>(a.0, a.1), vextq_u64::<1>(a.1, a.0)); - *c = uint64x2x2_t(vextq_u64::<1>(c.1, c.0), vextq_u64::<1>(c.0, c.1)); - *d = uint64x2x2_t(d.1, d.0); - } -} diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/mod.rs b/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/mod.rs deleted file mode 100644 index 4336ac341..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/mod.rs +++ /dev/null @@ -1,29 +0,0 @@ -use std::sync::LazyLock; - -#[cfg(target_arch = "aarch64")] -mod aarch64; -mod portable; -#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] -mod x86_64; - -type Blake2Func = fn(usize, &mut [u64; 8], &[u64; 16], &[u64; 2], bool); - -static BLAKE2_FUNC: LazyLock = LazyLock::new(|| { - #[cfg(target_arch = "aarch64")] - if std::arch::is_aarch64_feature_detected!("neon") - && std::arch::is_aarch64_feature_detected!("sha3") - { - return self::aarch64::blake2b_f; - } - - #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] - if std::arch::is_x86_feature_detected!("avx2") { - return self::x86_64::blake2b_f; - } - - self::portable::blake2b_f -}); - -pub fn blake2b_f(rounds: usize, h: &mut [u64; 8], m: &[u64; 16], t: &[u64; 2], f: bool) { - BLAKE2_FUNC(rounds, h, m, t, f) -} diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/portable.rs b/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/portable.rs deleted file mode 100644 index 3676f3788..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/portable.rs +++ /dev/null @@ -1,99 +0,0 @@ -// Message word schedule permutations for each round are defined by SIGMA constant. -// Extracted from https://datatracker.ietf.org/doc/html/rfc7693#section-2.7 -const SIGMA: [[usize; 16]; 10] = [ - [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], - [14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3], - [11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4], - [7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8], - [9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13], - [2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9], - [12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11], - [13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10], - [6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5], - [10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0], -]; - -// Initialization vector, used to initialize the work vector -// Extracted from https://datatracker.ietf.org/doc/html/rfc7693#appendix-C.2 -const IV: [u64; 8] = [ - 0x6a09e667f3bcc908, - 0xbb67ae8584caa73b, - 0x3c6ef372fe94f82b, - 0xa54ff53a5f1d36f1, - 0x510e527fade682d1, - 0x9b05688c2b3e6c1f, - 0x1f83d9abfb41bd6b, - 0x5be0cd19137e2179, -]; - -// Rotation constants, used in g -// Extracted from https://datatracker.ietf.org/doc/html/rfc7693#section-2.1 -const R1: u32 = 32; -const R2: u32 = 24; -const R3: u32 = 16; -const R4: u32 = 63; - -/// The G primitive function mixes two input words, "x" and "y", into -/// four words indexed by "a", "b", "c", and "d" in the working vector -/// v[0..15]. The full modified vector is returned. -/// Based on https://datatracker.ietf.org/doc/html/rfc7693#section-3.1 -#[allow(clippy::indexing_slicing)] -fn g(v: &mut [u64; 16], a: usize, b: usize, c: usize, d: usize, x: u64, y: u64) { - v[a] = v[a].wrapping_add(v[b]).wrapping_add(x); - v[d] = (v[d] ^ v[a]).rotate_right(R1); - v[c] = v[c].wrapping_add(v[d]); - v[b] = (v[b] ^ v[c]).rotate_right(R2); - - v[a] = v[a].wrapping_add(v[b]).wrapping_add(y); - v[d] = (v[d] ^ v[a]).rotate_right(R3); - v[c] = v[c].wrapping_add(v[d]); - v[b] = (v[b] ^ v[c]).rotate_right(R4); -} - -/// Perform the permutations on the work vector given the rounds to permute and the message block -#[allow(clippy::indexing_slicing)] -fn word_permutation(rounds_to_permute: usize, v: &mut [u64; 16], m: &[u64; 16]) { - for i in 0..rounds_to_permute { - // Message word selection permutation for each round. - let s: &[usize; 16] = &SIGMA[i % 10]; - - g(v, 0, 4, 8, 12, m[s[0]], m[s[1]]); - g(v, 1, 5, 9, 13, m[s[2]], m[s[3]]); - g(v, 2, 6, 10, 14, m[s[4]], m[s[5]]); - g(v, 3, 7, 11, 15, m[s[6]], m[s[7]]); - - g(v, 0, 5, 10, 15, m[s[8]], m[s[9]]); - g(v, 1, 6, 11, 12, m[s[10]], m[s[11]]); - g(v, 2, 7, 8, 13, m[s[12]], m[s[13]]); - g(v, 3, 4, 9, 14, m[s[14]], m[s[15]]); - } -} - -/// Based on https://datatracker.ietf.org/doc/html/rfc7693#section-3.2 -pub fn blake2b_f( - rounds: usize, // Specifies the rounds to permute - h: &mut [u64; 8], // State vector, defines the work vector (v) and affects the XOR process - m: &[u64; 16], // The message block to compress - t: &[u64; 2], // Affects the work vector (v) before permutations - f: bool, // If set as true, inverts all bits -) { - // Initialize local work vector v[0..15], takes first half from state and second half from IV. - let mut v: [u64; 16] = [0; 16]; - v[0..8].copy_from_slice(h); - v[8..16].copy_from_slice(&IV); - - v[12] ^= t[0]; // Low word of the offset - v[13] ^= t[1]; // High word of the offset - - // If final block flag is true, invert all bits - if f { - v[14] = !v[14]; - } - - word_permutation(rounds, &mut v, m); - - // XOR the two halves, put the results in the output slice - for (value, (&a, &b)) in h.iter_mut().zip(v[..8].iter().zip(&v[8..])) { - *value ^= a ^ b; - } -} diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/x86_64.rs b/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/x86_64.rs deleted file mode 100644 index 06a277d56..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/x86_64.rs +++ /dev/null @@ -1,14 +0,0 @@ -use std::arch::global_asm; - -global_asm!(include_str!("x86_64.s")); - -unsafe extern "C" { - unsafe fn _blake2b_f(r: usize, h: &mut [u64; 8], m: &[u64; 16], t: &[u64; 2], f: bool); -} - -#[inline(always)] -pub fn blake2b_f(r: usize, h: &mut [u64; 8], m: &[u64; 16], t: &[u64; 2], f: bool) { - unsafe { - _blake2b_f(r, h, m, t, f); - } -} diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/x86_64.s b/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/x86_64.s deleted file mode 100644 index f662cd81b..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/blake2f/x86_64.s +++ /dev/null @@ -1,539 +0,0 @@ -.macro blake2b_mix0 x - // G(x) - vpaddq ymm0, ymm0, ymm1 - vpaddq ymm0, ymm0, \x - vpxor ymm3, ymm3, ymm0 - vpshufd ymm3, ymm3, 0xB1 - vpaddq ymm2, ymm2, ymm3 - vpxor ymm1, ymm1, ymm2 - vpshufb ymm1, ymm1, ymm14 -.endm - -.macro blake2b_mix1 x - // G(y) - vpaddq ymm0, ymm0, ymm1 - vpaddq ymm0, ymm0, \x - vpxor ymm3, ymm3, ymm0 - vpshufb ymm3, ymm3, ymm15 - vpaddq ymm2, ymm2, ymm3 - vpxor ymm1, ymm1, ymm2 - vpsrlq ymm12, ymm1, 63 - vpsllq ymm1, ymm1, 1 - vpor ymm1, ymm1, ymm12 -.endm - -.macro blake2b_diag - vpermq ymm0, ymm0, 0x93 - vpermq ymm2, ymm2, 0x39 - vperm2i128 ymm3, ymm3, ymm3, 0x01 -.endm - -.macro blake2b_undiag - vpermq ymm0, ymm0, 0x39 - vpermq ymm2, ymm2, 0x93 - vperm2i128 ymm3, ymm3, ymm3, 0x01 -.endm - - - .global _blake2b_f - .type _blake2b_f, @function -_blake2b_f: - # rdi <- r: usize, - # rsi <- h: &mut [u64; 8], - # rdx <- m: &[u64; 16], - # rcx <- t: &[u64; 2], - # r8 <- f: bool - - vzeroall - - # Allocate space for shuffled message. - mov r9, rsp - sub rsp, 0x0500 # Allocate space for 32B * 4 * 10 rounds. - and rsp, -0x20 # Align to 32B boundary. - - # Load required constants. - vbroadcasti128 ymm14, [rip + blake2b_ror24] - vbroadcasti128 ymm15, [rip + blake2b_ror16] - - # - # Initialize local work vector. - # - lea rax, [rip + blake2b_iv] - add r8, 0x01 - shl r8, 0x05 - vmovdqu ymm0, [rsi + 0x00] - vmovdqu ymm1, [rsi + 0x20] - vmovdqa ymm2, [rax] - vmovdqa ymm3, [rax + r8] - - # Apply block number to local work vector. - pxor xmm3, [rcx] - - # Skip every round if `r == 0`. - sub rdi, 0x01 - jc 1f - - # - # First iteration and message shuffling. - # - vbroadcasti128 ymm4, [rdx + 0x00] - vbroadcasti128 ymm5, [rdx + 0x10] - vbroadcasti128 ymm6, [rdx + 0x20] - vbroadcasti128 ymm7, [rdx + 0x30] - vbroadcasti128 ymm8, [rdx + 0x40] - vbroadcasti128 ymm9, [rdx + 0x50] - vbroadcasti128 ymm10, [rdx + 0x60] - vbroadcasti128 ymm11, [rdx + 0x70] - - # Round #0: - # From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - # Into: [0 2 4 6 1 3 5 7 E 8 A C F 9 B D] - vpunpcklqdq ymm12, ymm4, ymm5 - vpunpcklqdq ymm13, ymm6, ymm7 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0000], ymm12 - blake2b_mix0 ymm12 - vpunpckhqdq ymm12, ymm4, ymm5 - vpunpckhqdq ymm13, ymm6, ymm7 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0020], ymm12 - blake2b_mix1 ymm12 - blake2b_diag - vpunpcklqdq ymm12, ymm11, ymm8 - vpunpcklqdq ymm13, ymm9, ymm10 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0040], ymm12 - blake2b_mix0 ymm12 - vpunpckhqdq ymm12, ymm11, ymm8 - vpunpckhqdq ymm13, ymm9, ymm10 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0060], ymm12 - blake2b_mix1 ymm12 - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #1: - # From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - # Into: [E 4 9 D A 8 F 6 5 1 0 B 3 C 2 7] - vpunpcklqdq ymm12, ymm11, ymm6 - vpunpckhqdq ymm13, ymm8, ymm10 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0080], ymm12 - blake2b_mix0 ymm12 - vpunpcklqdq ymm12, ymm9, ymm8 - vpalignr ymm13, ymm7, ymm11, 0x08 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x00A0], ymm12 - blake2b_mix1 ymm12 - blake2b_diag - vpunpckhqdq ymm12, ymm6, ymm4 - vpblendd ymm13, ymm4, ymm9, 0xCC - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x00C0], ymm12 - blake2b_mix0 ymm12 - vpalignr ymm12, ymm10, ymm5, 0x08 - vpblendd ymm13, ymm5, ymm7, 0xCC - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x00E0], ymm12 - blake2b_mix1 ymm12 - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #2: - # From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - # Into: [B C 5 F 8 0 2 D 9 A 3 7 4 E 6 1] - vpalignr ymm12, ymm10, ymm9, 0x08 - vpunpckhqdq ymm13, ymm6, ymm11 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0100], ymm12 - blake2b_mix0 ymm12 - vpunpcklqdq ymm12, ymm8, ymm4 - vpblendd ymm13, ymm5, ymm10, 0xCC - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0120], ymm12 - blake2b_mix1 ymm12 - blake2b_diag - vpalignr ymm12, ymm9, ymm8, 0x08 - vpunpckhqdq ymm13, ymm5, ymm7 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0140], ymm12 - blake2b_mix0 ymm12 - vpunpcklqdq ymm12, ymm6, ymm11 - vpblendd ymm13, ymm7, ymm4, 0xCC - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0160], ymm12 - blake2b_mix1 ymm12 - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #3: - # From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - # Into: [7 3 D B 9 1 C E F 2 5 4 8 6 A 0] - vpunpckhqdq ymm12, ymm7, ymm5 - vpunpckhqdq ymm13, ymm10, ymm9 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0180], ymm12 - blake2b_mix0 ymm12 - vpunpckhqdq ymm12, ymm8, ymm4 - vpunpcklqdq ymm13, ymm10, ymm11 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x01A0], ymm12 - blake2b_mix1 ymm12 - blake2b_diag - vpalignr ymm12, ymm5, ymm11, 0x08 - vpshufd ymm13, ymm6, 0x4E - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x01C0], ymm12 - blake2b_mix0 ymm12 - vpunpcklqdq ymm12, ymm8, ymm7 - vpunpcklqdq ymm13, ymm9, ymm4 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x01E0], ymm12 - blake2b_mix1 ymm12 - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #4: - # From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - # Into: [9 5 2 A 0 7 4 F 3 E B 6 D 1 C 8] - vpunpckhqdq ymm12, ymm8, ymm6 - vpunpcklqdq ymm13, ymm5, ymm9 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0200], ymm12 - blake2b_mix0 ymm12 - vpblendd ymm12, ymm4, ymm7, 0xCC - vpblendd ymm13, ymm6, ymm11, 0xCC - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0220], ymm12 - blake2b_mix1 ymm12 - blake2b_diag - vpalignr ymm12, ymm11, ymm5, 0x08 - vpalignr ymm13, ymm7, ymm9, 0x08 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0240], ymm12 - blake2b_mix0 ymm12 - vpunpckhqdq ymm12, ymm10, ymm4 - vpunpcklqdq ymm13, ymm10, ymm8 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0260], ymm12 - blake2b_mix1 ymm12 - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #5: - # From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - # Into: [2 6 0 8 C A B 3 1 4 7 F 9 D 5 E] - vpunpcklqdq ymm12, ymm5, ymm7 - vpunpcklqdq ymm13, ymm4, ymm8 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0280], ymm12 - blake2b_mix0 ymm12 - vpunpcklqdq ymm12, ymm10, ymm9 - vpunpckhqdq ymm13, ymm9, ymm5 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x02A0], ymm12 - blake2b_mix1 ymm12 - blake2b_diag - vpalignr ymm12, ymm6, ymm4, 0x08 - vpunpckhqdq ymm13, ymm7, ymm11 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x02C0], ymm12 - blake2b_mix0 ymm12 - vpunpckhqdq ymm12, ymm8, ymm10 - vpalignr ymm13, ymm11, ymm6, 0x08 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x02E0], ymm12 - blake2b_mix1 ymm12 - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #6: - # From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - # Into: [C 1 E 4 5 F D A 8 0 6 9 B 7 3 2] - vpblendd ymm12, ymm10, ymm4, 0xCC - vpunpcklqdq ymm13, ymm11, ymm6 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0300], ymm12 - blake2b_mix0 ymm12 - vpunpckhqdq ymm12, ymm6, ymm11 - vpalignr ymm13, ymm9, ymm10, 0x08 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0320], ymm12 - blake2b_mix1 ymm12 - blake2b_diag - vpunpcklqdq ymm12, ymm8, ymm4 - vpblendd ymm13, ymm7, ymm8, 0xCC - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0340], ymm12 - blake2b_mix0 ymm12 - vpunpckhqdq ymm12, ymm9, ymm7 - vpshufd ymm13, ymm5, 0x4E - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0360], ymm12 - blake2b_mix1 ymm12 - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #7: - # From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - # Into: [D 7 C 3 B E 1 9 2 5 F 8 A 0 4 6] - vpunpckhqdq ymm12, ymm10, ymm7 - vpblendd ymm13, ymm10, ymm5, 0xCC - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0380], ymm12 - blake2b_mix0 ymm12 - vpalignr ymm12, ymm11, ymm9, 0x08 - vpunpckhqdq ymm13, ymm4, ymm8 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x03A0], ymm12 - blake2b_mix1 ymm12 - blake2b_diag - vpblendd ymm12, ymm5, ymm6, 0xCC - vpalignr ymm13, ymm8, ymm11, 0x08 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x03C0], ymm12 - blake2b_mix0 ymm12 - vpunpcklqdq ymm12, ymm9, ymm4 - vpunpcklqdq ymm13, ymm6, ymm7 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x03E0], ymm12 - blake2b_mix1 ymm12 - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #8: - # From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - # Into: [6 E B 0 F 9 3 8 A C D 1 5 2 7 4] - vpunpcklqdq ymm12, ymm7, ymm11 - vpalignr ymm13, ymm4, ymm9, 0x08 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0400], ymm12 - blake2b_mix0 ymm12 - vpunpckhqdq ymm12, ymm11, ymm8 - vpalignr ymm13, ymm8, ymm5, 0x08 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0420], ymm12 - blake2b_mix1 ymm12 - blake2b_diag - vpunpcklqdq ymm12, ymm9, ymm10 - vpunpckhqdq ymm13, ymm10, ymm4 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0440], ymm12 - blake2b_mix0 ymm12 - vpalignr ymm12, ymm5, ymm6, 0x08 - vpalignr ymm13, ymm6, ymm7, 0x08 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0460], ymm12 - blake2b_mix1 ymm12 - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #9: - # From: [0 1 2 3 4 5 6 7 8 9 A B C D E F] - # Into: [A 8 7 1 2 4 6 5 D F 9 3 0 B E C] - vpunpcklqdq ymm12, ymm9, ymm8 - vpunpckhqdq ymm13, ymm7, ymm4 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x0480], ymm12 - blake2b_mix0 ymm12 - vpunpcklqdq ymm12, ymm5, ymm6 - vpblendd ymm13, ymm7, ymm6, 0xCC - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x04A0], ymm12 - blake2b_mix1 ymm12 - blake2b_diag - vpunpckhqdq ymm12, ymm10, ymm11 - vpunpckhqdq ymm13, ymm8, ymm5 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x04C0], ymm12 - blake2b_mix0 ymm12 - vpblendd ymm12, ymm4, ymm9, 0xCC - vpunpcklqdq ymm13, ymm11, ymm10 - vpblendd ymm12, ymm12, ymm13, 0xF0 - vmovdqa [rsp + 0x04E0], ymm12 - blake2b_mix1 ymm12 - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Iteration loop. - 0: - # Round #0: - blake2b_mix0 [rsp + 0x0000] - blake2b_mix1 [rsp + 0x0020] - blake2b_diag - blake2b_mix0 [rsp + 0x0040] - blake2b_mix1 [rsp + 0x0060] - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #1: - blake2b_mix0 [rsp + 0x0080] - blake2b_mix1 [rsp + 0x00A0] - blake2b_diag - blake2b_mix0 [rsp + 0x00C0] - blake2b_mix1 [rsp + 0x00E0] - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #2: - blake2b_mix0 [rsp + 0x0100] - blake2b_mix1 [rsp + 0x0120] - blake2b_diag - blake2b_mix0 [rsp + 0x0140] - blake2b_mix1 [rsp + 0x0160] - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #3: - blake2b_mix0 [rsp + 0x0180] - blake2b_mix1 [rsp + 0x01A0] - blake2b_diag - blake2b_mix0 [rsp + 0x01C0] - blake2b_mix1 [rsp + 0x01E0] - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #4: - blake2b_mix0 [rsp + 0x0200] - blake2b_mix1 [rsp + 0x0220] - blake2b_diag - blake2b_mix0 [rsp + 0x0240] - blake2b_mix1 [rsp + 0x0260] - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #5: - blake2b_mix0 [rsp + 0x0280] - blake2b_mix1 [rsp + 0x02A0] - blake2b_diag - blake2b_mix0 [rsp + 0x02C0] - blake2b_mix1 [rsp + 0x02E0] - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #6: - blake2b_mix0 [rsp + 0x0300] - blake2b_mix1 [rsp + 0x0320] - blake2b_diag - blake2b_mix0 [rsp + 0x0340] - blake2b_mix1 [rsp + 0x0360] - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #7: - blake2b_mix0 [rsp + 0x0380] - blake2b_mix1 [rsp + 0x03A0] - blake2b_diag - blake2b_mix0 [rsp + 0x03C0] - blake2b_mix1 [rsp + 0x03E0] - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #8: - blake2b_mix0 [rsp + 0x0400] - blake2b_mix1 [rsp + 0x0420] - blake2b_diag - blake2b_mix0 [rsp + 0x0440] - blake2b_mix1 [rsp + 0x0460] - blake2b_undiag - - sub rdi, 0x01 - jc 1f - - # Round #9: - blake2b_mix0 [rsp + 0x0480] - blake2b_mix1 [rsp + 0x04A0] - blake2b_diag - blake2b_mix0 [rsp + 0x04C0] - blake2b_mix1 [rsp + 0x04E0] - blake2b_undiag - - sub rdi, 0x01 - jnc 0b - - 1: - # Merge local work vector. - vpxor ymm0, ymm0, ymm2 - vpxor ymm1, ymm1, ymm3 - vpxor ymm0, ymm0, [rsi + 0x00] - vpxor ymm1, ymm1, [rsi + 0x20] - vmovdqu [rsi + 0x00], ymm0 - vmovdqu [rsi + 0x20], ymm1 - - # Restore original stack pointer. - mov rsp, r9 - ret - - - .pushsection .rodata - - .align 0x20 - .type blake2b_iv, @object - .size blake2b_iv, 0x60 -blake2b_iv: - .quad 0x6A09E667F3BCC908 - .quad 0xBB67AE8584CAA73B - .quad 0x3C6EF372FE94F82B - .quad 0xA54FF53A5F1D36F1 - .quad 0x510E527FADE682D1 - .quad 0x9B05688C2B3E6C1F - .quad 0x1F83D9ABFB41BD6B - .quad 0x5BE0CD19137E2179 - - # Second half of blake2b_iv with inverted bits (for final block). - .quad 0x510E527FADE682D1 - .quad 0x9B05688C2B3E6C1F - .quad 0xE07C265404BE4294 - .quad 0x5BE0CD19137E2179 - - .align 0x08 - .type blake2b_ror24, @object - .size blake2b_ror24, 0x10 -blake2b_ror24: - .byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02 - .byte 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x08, 0x09, 0x0A - - .align 0x08 - .type blake2b_ror16, @object - .size blake2b_ror16, 0x10 -blake2b_ror16: - .byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01 - .byte 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x08, 0x09 - - .popsection diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/README.md b/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/README.md deleted file mode 100644 index 6bb78ea15..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# Keccak Module - -A thin layer over assembly implementations of (intentionally few) optimized Keccak for ARMv8 and x86_64. -The code is adapted from the output of the scripts written by the [cryptogams](https://github.com/dot-asm/cryptogams) project. See [#copyright-notice] for a copy of the licence. You can find the original text at [their repository](https://github.com/dot-asm/cryptogams/blob/680f98c1765a7cb89c193db169ed048599f92186/LICENSE). - -> [!NOTE] -> This library is not endorsed nor supported by the original _Cryptogams_ team. -> The code has been modified to integrate to Rust in the simplest possible way and to avoid the need of extra toolchains to build the project. - -## Goals - -The goal of this module is to have an efficient implementation of Keccak256 for Ethrex, reusing audited code as much as possible, while keeping complexity as low as possible. -To achieve low complexity, we leave explicitly out of scope implementing `Digest`, having implementations for all variants of CPUs (we keep a selected subset of those provided by _Cryptogams_) and compile-time translation of source files. -The module exposes only the following: -```rust -pub fn keccak_hash(data: impl AsRef<[u8]>) -> [u8; 32]; -struct Keccak256; -impl Keccak256 { - fn new() -> Self; - fn update(&self, impl AsRef<[u8]>) -> Self; - fn finalize(self) -> [u8; 32]; -} -impl Default for Keccak256; -``` -There are no feature flags. If building for `x86_64`, it will link an optimized assembly implementation. Because it uses generic `x86_64` code, no fallback is needed. -If building for `ARMv8`, it will link an optimized implementation using generic `ARMv8` instructions. -In both cases we chose the baseline instruction sets. This was not due to compatibility, which can be handled with dynamic dispatch, but because in the case of `ARMv8` using specialized `SHA3` instructions showed no improvement, and in `x86_64` using `AVX2` actually showed a regression of 30% in throughput. -For other architectures, it falls back to `tiny_keccak`. This is specially necessary for proving, as the ZKVMs are RISC-V based, but they are not guaranteed to support all of its extensions. We may revisit adding assembly versions for them at a later time. - -## Code Generation - -The implementation is currently rather manual: -- Code is generated by running the scripts in the _Cryptogams_ project (currently at commit `680f98c1765a7cb89c193db169ed048599f92186`), as follows: -```shell -$ cd cryptogams/arm -$ ./keccak1600-armv8.pl linux64 keccak1600-armv8.s -$ cd ../x86_64 -$ ./keccak1600-x86_64.pl linux64 keccak1600-x86_64.s -``` -- The x86 can be directly imported by the Rust compiler with the current options, but the ARM code requires a few changes, commented at the top of the `keccak1600-armv8.s` file. - -## Copyright Notice - -Copyright (c) 2006, CRYPTOGAMS by -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain copyright notices, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials - provided with the distribution. - - * Neither the name of the CRYPTOGAMS nor the names of its - copyright holder and contributors may be used to endorse or - promote products derived from this software without specific - prior written permission. - -ALTERNATIVELY, provided that this notice is retained in full, this -product may be distributed under the terms of the GNU General Public -License (GPL), in which case the provisions of the GPL apply INSTEAD OF -those given above. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/keccak1600-armv8-elf.s b/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/keccak1600-armv8-elf.s deleted file mode 100644 index e9f230957..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/keccak1600-armv8-elf.s +++ /dev/null @@ -1,855 +0,0 @@ -// Modified: -// - Ran `cpp` to substitute constants. -// - Commented out ARM assembly annotations (.size, .type) used only for debugging purposes and not understood by -// Rust. -// - Removed dots from all local labels for correct detection in the frontend. -// Reason: `.L` local labels are ELF-specific. -// - Replaced instance of `adr x??,label` by `adrp x??,label` followed by -// `add x??,x??,:lo12:label`. -// -// TODO: this is probably a matter of selecting the right parameter -// for the translator. - -.align 8 // strategic alignment and padding that allows to use - // address value as loop termination condition... -.quad 0,0,0,0,0,0,0,0 -// .type iotas,%object -iotas: -.quad 0x0000000000000001 -.quad 0x0000000000008082 -.quad 0x800000000000808a -.quad 0x8000000080008000 -.quad 0x000000000000808b -.quad 0x0000000080000001 -.quad 0x8000000080008081 -.quad 0x8000000000008009 -.quad 0x000000000000008a -.quad 0x0000000000000088 -.quad 0x0000000080008009 -.quad 0x000000008000000a -Liotas12: -.quad 0x000000008000808b -.quad 0x800000000000008b -.quad 0x8000000000008089 -.quad 0x8000000000008003 -.quad 0x8000000000008002 -.quad 0x8000000000000080 -.quad 0x000000000000800a -.quad 0x800000008000000a -.quad 0x8000000080008081 -.quad 0x8000000000008080 -.quad 0x0000000080000001 -.quad 0x8000000080008008 -// .size iotas,.-iotas -// .type KeccakF1600_int,%function -.align 5 -KeccakF1600_int: -.inst 0xd503233f // paciasp - stp x28,x30,[sp,#16] // stack is pre-allocated - b Loop -.align 4 -Loop: - ////////////////////////////////////////// Theta - eor x26,x0,x5 - stp x4,x9,[sp,#0] // offload pair... - eor x27,x1,x6 - eor x28,x2,x7 - eor x30,x3,x8 - eor x4,x4,x9 - eor x26,x26,x10 - eor x27,x27,x11 - eor x28,x28,x12 - eor x30,x30,x13 - eor x4,x4,x14 - eor x26,x26,x15 - eor x27,x27,x16 - eor x28,x28,x17 - eor x30,x30,x25 - eor x4,x4,x19 - eor x26,x26,x20 - eor x28,x28,x22 - eor x27,x27,x21 - eor x30,x30,x23 - eor x4,x4,x24 - - eor x9,x26,x28,ror#63 - - eor x1,x1,x9 - eor x6,x6,x9 - eor x11,x11,x9 - eor x16,x16,x9 - eor x21,x21,x9 - - eor x9,x27,x30,ror#63 - eor x28,x28,x4,ror#63 - eor x30,x30,x26,ror#63 - eor x4,x4,x27,ror#63 - - eor x27, x2,x9 // mov x27,x2 - eor x7,x7,x9 - eor x12,x12,x9 - eor x17,x17,x9 - eor x22,x22,x9 - - eor x0,x0,x4 - eor x5,x5,x4 - eor x10,x10,x4 - eor x15,x15,x4 - eor x20,x20,x4 - ldp x4,x9,[sp,#0] // re-load offloaded data - eor x26, x3,x28 // mov x26,x3 - eor x8,x8,x28 - eor x13,x13,x28 - eor x25,x25,x28 - eor x23,x23,x28 - - eor x28, x4,x30 // mov x28,x4 - eor x9,x9,x30 - eor x14,x14,x30 - eor x19,x19,x30 - eor x24,x24,x30 - - ////////////////////////////////////////// Rho+Pi - mov x30,x1 - ror x1,x6,#64-44 - //mov x27,x2 - ror x2,x12,#64-43 - //mov x26,x3 - ror x3,x25,#64-21 // ? - //mov x28,x4 - ror x4,x24,#64-14 // ? - - ror x6,x9,#64-20 // ? - ror x12,x13,#64-25 // ? - ror x25,x17,#64-15 - ror x24,x21,#64-2 // ? - - ror x9,x22,#64-61 - ror x13,x19,#64-8 - ror x17,x11,#64-10 - ror x21,x8,#64-55 - - ror x22,x14,#64-39 - ror x19,x23,#64-56 - ror x11,x7,#64-6 // ? - ror x8,x16,#64-45 - - ror x14,x20,#64-18 - ror x23,x15,#64-41 - ror x7,x10,#64-3 - ror x16,x5,#64-36 // ? - - ror x5,x26,#64-28 // ? - ror x10,x30,#64-1 - ror x15,x28,#64-27 // ? - ror x20,x27,#64-62 // ? - - ////////////////////////////////////////// Chi+Iota - bic x26,x2,x1 - bic x27,x3,x2 - bic x28,x0,x4 - bic x30,x1,x0 - eor x0,x0,x26 - bic x26,x4,x3 - eor x1,x1,x27 - ldr x27,[sp,#16] - eor x3,x3,x28 - eor x4,x4,x30 - eor x2,x2,x26 - ldr x30,[x27],#8 // Iota[i++] - - bic x26,x7,x6 - tst x27,#255 // are we done? - str x27,[sp,#16] - bic x27,x8,x7 - bic x28,x5,x9 - eor x0,x0,x30 // A[0][0] ^= Iota - bic x30,x6,x5 - eor x5,x5,x26 - bic x26,x9,x8 - eor x6,x6,x27 - eor x8,x8,x28 - eor x9,x9,x30 - eor x7,x7,x26 - - bic x26,x12,x11 - bic x27,x13,x12 - bic x28,x10,x14 - bic x30,x11,x10 - eor x10,x10,x26 - bic x26,x14,x13 - eor x11,x11,x27 - eor x13,x13,x28 - eor x14,x14,x30 - eor x12,x12,x26 - - bic x26,x17,x16 - bic x27,x25,x17 - bic x28,x15,x19 - bic x30,x16,x15 - eor x15,x15,x26 - bic x26,x19,x25 - eor x16,x16,x27 - eor x25,x25,x28 - eor x19,x19,x30 - eor x17,x17,x26 - - bic x26,x22,x21 - bic x27,x23,x22 - bic x28,x20,x24 - bic x30,x21,x20 - eor x20,x20,x26 - bic x26,x24,x23 - eor x21,x21,x27 - eor x23,x23,x28 - eor x24,x24,x30 - eor x22,x22,x26 - - bne Loop - - ldr x30,[sp,#16+8] -.inst 0xd50323bf // autiasp - ret -// .size KeccakF1600_int,.-KeccakF1600_int - -// .type KeccakF1600,%function -.align 5 -KeccakF1600: -.inst 0xd503233f // paciasp - stp x29,x30,[sp,#-16*8]! - add x29,sp,#0 - stp x19,x20,[sp,#2*8] - stp x21,x22,[sp,#4*8] - stp x23,x24,[sp,#6*8] - stp x25,x26,[sp,#8*8] - stp x27,x28,[sp,#10*8] - sub sp,sp,#16+4*8 - - str x0,[sp,#16+2*8] // offload argument - mov x26,x0 - ldp x0,x1,[x0,#16*0] - ldp x2,x3,[x26,#16*1] - ldp x4,x5,[x26,#16*2] - ldp x6,x7,[x26,#16*3] - ldp x8,x9,[x26,#16*4] - ldp x10,x11,[x26,#16*5] - ldp x12,x13,[x26,#16*6] - ldp x14,x15,[x26,#16*7] - ldp x16,x17,[x26,#16*8] - ldp x25,x19,[x26,#16*9] - ldp x20,x21,[x26,#16*10] - ldp x22,x23,[x26,#16*11] - ldr x24,[x26,#16*12] - - adrp x28,iotas - add x28,x28,:lo12:iotas - bl KeccakF1600_int - - ldr x26,[sp,#16+2*8] - stp x0,x1,[x26,#16*0] - stp x2,x3,[x26,#16*1] - stp x4,x5,[x26,#16*2] - stp x6,x7,[x26,#16*3] - stp x8,x9,[x26,#16*4] - stp x10,x11,[x26,#16*5] - stp x12,x13,[x26,#16*6] - stp x14,x15,[x26,#16*7] - stp x16,x17,[x26,#16*8] - stp x25,x19,[x26,#16*9] - stp x20,x21,[x26,#16*10] - stp x22,x23,[x26,#16*11] - str x24,[x26,#16*12] - - ldp x19,x20,[x29,#2*8] - add sp,sp,#16+4*8 - ldp x21,x22,[x29,#4*8] - ldp x23,x24,[x29,#6*8] - ldp x25,x26,[x29,#8*8] - ldp x27,x28,[x29,#10*8] - ldp x29,x30,[sp],#16*8 -.inst 0xd50323bf // autiasp - ret -// .size KeccakF1600,.-KeccakF1600 - -.globl SHA3_absorb -// .type SHA3_absorb,%function -.align 5 -SHA3_absorb: -.inst 0xd503233f // paciasp - stp x29,x30,[sp,#-16*8]! - add x29,sp,#0 - stp x19,x20,[sp,#2*8] - stp x21,x22,[sp,#4*8] - stp x23,x24,[sp,#6*8] - stp x25,x26,[sp,#8*8] - stp x27,x28,[sp,#10*8] - sub sp,sp,#16+4*8 +16 - - stp x0,x1,[sp,#16+2*8] // offload arguments - stp x2,x3,[sp,#16+4*8] - - mov x26,x0 // uint64_t A[5][5] - mov x27,x1 // const void *inp - mov x28,x2 // size_t len - mov x30,x3 // size_t bsz - ldp x0,x1,[x26,#16*0] - ldp x2,x3,[x26,#16*1] - ldp x4,x5,[x26,#16*2] - ldp x6,x7,[x26,#16*3] - ldp x8,x9,[x26,#16*4] - ldp x10,x11,[x26,#16*5] - ldp x12,x13,[x26,#16*6] - ldp x14,x15,[x26,#16*7] - ldp x16,x17,[x26,#16*8] - ldp x25,x19,[x26,#16*9] - ldp x20,x21,[x26,#16*10] - ldp x22,x23,[x26,#16*11] - ldr x24,[x26,#16*12] - b Loop_absorb - -.align 4 -Loop_absorb: - subs x26,x28,x30 // len - bsz - blo Labsorbed - - str x26,[sp,#16+4*8] // save len - bsz - cmp x30,#104 - ldr x26,[x27,#0] // A[0][0] ^= *inp++ - - - - eor x0,x0,x26 - ldr x26,[x27,#8] // A[0][1] ^= *inp++ - - - - eor x1,x1,x26 - ldr x26,[x27,#16] // A[0][2] ^= *inp++ - - - - eor x2,x2,x26 - ldr x26,[x27,#24] // A[0][3] ^= *inp++ - - - - eor x3,x3,x26 - ldr x26,[x27,#32] // A[0][4] ^= *inp++ - - - - eor x4,x4,x26 - ldr x26,[x27,#40] // A[1][0] ^= *inp++ - - - - eor x5,x5,x26 - ldr x26,[x27,#48] // A[1][1] ^= *inp++ - - - - eor x6,x6,x26 - ldr x26,[x27,#56] // A[1][2] ^= *inp++ - - - - eor x7,x7,x26 - ldr x26,[x27,#64] // A[1][3] ^= *inp++ - - - - eor x8,x8,x26 - blo Lprocess_block - - ldr x26,[x27,#72] // A[1][4] ^= *inp++ - - - - eor x9,x9,x26 - ldr x26,[x27,#80] // A[2][0] ^= *inp++ - - - - eor x10,x10,x26 - ldr x26,[x27,#88] // A[2][1] ^= *inp++ - - - - eor x11,x11,x26 - ldr x26,[x27,#96] // A[2][2] ^= *inp++ - - - - eor x12,x12,x26 - beq Lprocess_block - - cmp x30,#144 - ldr x26,[x27,#104] // A[2][3] ^= *inp++ - - - - eor x13,x13,x26 - ldr x26,[x27,#112] // A[2][4] ^= *inp++ - - - - eor x14,x14,x26 - ldr x26,[x27,#120] // A[3][0] ^= *inp++ - - - - eor x15,x15,x26 - ldr x26,[x27,#128] // A[3][1] ^= *inp++ - - - - eor x16,x16,x26 - blo Lprocess_block - - ldr x26,[x27,#136] // A[3][2] ^= *inp++ - - - - eor x17,x17,x26 - beq Lprocess_block - - ldr x26,[x27,#144] // A[3][3] ^= *inp++ - - - - eor x25,x25,x26 - ldr x26,[x27,#152] // A[3][4] ^= *inp++ - - - - eor x19,x19,x26 - ldr x26,[x27,#160] // A[4][0] ^= *inp++ - - - - eor x20,x20,x26 - -Lprocess_block: - add x27,x27,x30 - str x27,[sp,#16+3*8] // save inp - - adrp x28,iotas - add x28,x28,:lo12:iotas - bl KeccakF1600_int - - ldr x27,[sp,#16+3*8] // restore arguments - ldp x28,x30,[sp,#16+4*8] - b Loop_absorb - -.align 4 -Labsorbed: - ldr x27,[sp,#16+2*8] - stp x0,x1,[x27,#16*0] - stp x2,x3,[x27,#16*1] - stp x4,x5,[x27,#16*2] - stp x6,x7,[x27,#16*3] - stp x8,x9,[x27,#16*4] - stp x10,x11,[x27,#16*5] - stp x12,x13,[x27,#16*6] - stp x14,x15,[x27,#16*7] - stp x16,x17,[x27,#16*8] - stp x25,x19,[x27,#16*9] - stp x20,x21,[x27,#16*10] - stp x22,x23,[x27,#16*11] - str x24,[x27,#16*12] - - mov x0,x28 // return value - ldp x19,x20,[x29,#2*8] - add sp,sp,#16+4*8 +16 - ldp x21,x22,[x29,#4*8] - ldp x23,x24,[x29,#6*8] - ldp x25,x26,[x29,#8*8] - ldp x27,x28,[x29,#10*8] - ldp x29,x30,[sp],#16*8 -.inst 0xd50323bf // autiasp - ret -// .size SHA3_absorb,.-SHA3_absorb -.globl SHA3_squeeze -// .type SHA3_squeeze,%function -.align 5 -SHA3_squeeze: -.inst 0xd503233f // paciasp - stp x29,x30,[sp,#-6*8]! - add x29,sp,#0 - stp x19,x20,[sp,#2*8] - stp x21,x22,[sp,#4*8] - - mov x19,x0 // put aside arguments - mov x20,x1 - mov x21,x2 - mov x22,x3 - -Loop_squeeze: - ldr x4,[x0],#8 - cmp x21,#8 - blo Lsqueeze_tail - - - - str x4,[x20],#8 - subs x21,x21,#8 - beq Lsqueeze_done - - subs x3,x3,#8 - bhi Loop_squeeze - - mov x0,x19 - bl KeccakF1600 - mov x0,x19 - mov x3,x22 - b Loop_squeeze - -.align 4 -Lsqueeze_tail: - strb w4,[x20],#1 - lsr x4,x4,#8 - subs x21,x21,#1 - beq Lsqueeze_done - strb w4,[x20],#1 - lsr x4,x4,#8 - subs x21,x21,#1 - beq Lsqueeze_done - strb w4,[x20],#1 - lsr x4,x4,#8 - subs x21,x21,#1 - beq Lsqueeze_done - strb w4,[x20],#1 - lsr x4,x4,#8 - subs x21,x21,#1 - beq Lsqueeze_done - strb w4,[x20],#1 - lsr x4,x4,#8 - subs x21,x21,#1 - beq Lsqueeze_done - strb w4,[x20],#1 - lsr x4,x4,#8 - subs x21,x21,#1 - beq Lsqueeze_done - strb w4,[x20],#1 - -Lsqueeze_done: - ldp x19,x20,[sp,#2*8] - ldp x21,x22,[sp,#4*8] - ldp x29,x30,[sp],#6*8 -.inst 0xd50323bf // autiasp - ret -// .size SHA3_squeeze,.-SHA3_squeeze -// .type KeccakF1600_ce,%function -.align 5 -KeccakF1600_ce: -Loop_ce: - ////////////////////////////////////////////////// Theta -.inst 0xce0f2a99 //eor3 v25.16b,v20.16b,v15.16b,v10.16b -.inst 0xce102eba //eor3 v26.16b,v21.16b,v16.16b,v11.16b -.inst 0xce1132db //eor3 v27.16b,v22.16b,v17.16b,v12.16b -.inst 0xce1236fc //eor3 v28.16b,v23.16b,v18.16b,v13.16b -.inst 0xce133b1d //eor3 v29.16b,v24.16b,v19.16b,v14.16b -.inst 0xce050339 //eor3 v25.16b,v25.16b, v5.16b,v0.16b -.inst 0xce06075a //eor3 v26.16b,v26.16b, v6.16b,v1.16b -.inst 0xce070b7b //eor3 v27.16b,v27.16b, v7.16b,v2.16b -.inst 0xce080f9c //eor3 v28.16b,v28.16b, v8.16b,v3.16b -.inst 0xce0913bd //eor3 v29.16b,v29.16b, v9.16b,v4.16b - -.inst 0xce7b8f3e //rax1 v30.2d,v25.2d,v27.2d // D[1] -.inst 0xce7c8f5f //rax1 v31.2d,v26.2d,v28.2d // D[2] -.inst 0xce7d8f7b //rax1 v27.2d,v27.2d,v29.2d // D[3] -.inst 0xce798f9c //rax1 v28.2d,v28.2d,v25.2d // D[4] -.inst 0xce7a8fbd //rax1 v29.2d,v29.2d,v26.2d // D[0] - - ////////////////////////////////////////////////// Theta+Rho+Pi -.inst 0xce9efc39 //xar v25.2d, v1.2d,v30.2d,#64-1 // C[0]=A[2][0] - -.inst 0xce9e50c1 //xar v1.2d,v6.2d,v30.2d,#64-44 -.inst 0xce9cb126 //xar v6.2d,v9.2d,v28.2d,#64-20 -.inst 0xce9f0ec9 //xar v9.2d,v22.2d,v31.2d,#64-61 -.inst 0xce9c65d6 //xar v22.2d,v14.2d,v28.2d,#64-39 -.inst 0xce9dba8e //xar v14.2d,v20.2d,v29.2d,#64-18 - -.inst 0xce9f085a //xar v26.2d, v2.2d,v31.2d,#64-62 // C[1]=A[4][0] - -.inst 0xce9f5582 //xar v2.2d,v12.2d,v31.2d,#64-43 -.inst 0xce9b9dac //xar v12.2d,v13.2d,v27.2d,#64-25 -.inst 0xce9ce26d //xar v13.2d,v19.2d,v28.2d,#64-8 -.inst 0xce9b22f3 //xar v19.2d,v23.2d,v27.2d,#64-56 -.inst 0xce9d5df7 //xar v23.2d,v15.2d,v29.2d,#64-41 - -.inst 0xce9c948f //xar v15.2d,v4.2d,v28.2d,#64-27 - -.inst 0xce9ccb1c //xar v28.2d, v24.2d,v28.2d,#64-14 // D[4]=A[0][4] -.inst 0xce9efab8 //xar v24.2d,v21.2d,v30.2d,#64-2 -.inst 0xce9b2508 //xar v8.2d,v8.2d,v27.2d,#64-55 // A[1][3]=A[4][1] -.inst 0xce9e4e04 //xar v4.2d,v16.2d,v30.2d,#64-45 // A[0][4]=A[1][3] -.inst 0xce9d70b0 //xar v16.2d,v5.2d,v29.2d,#64-36 - -.inst 0xce9b9065 //xar v5.2d,v3.2d,v27.2d,#64-28 - - eor v0.16b,v0.16b,v29.16b - -.inst 0xce9bae5b //xar v27.2d, v18.2d,v27.2d,#64-21 // D[3]=A[0][3] -.inst 0xce9fc623 //xar v3.2d,v17.2d,v31.2d,#64-15 // A[0][3]=A[3][3] -.inst 0xce9ed97e //xar v30.2d, v11.2d,v30.2d,#64-10 // D[1]=A[3][2] -.inst 0xce9fe8ff //xar v31.2d, v7.2d,v31.2d,#64-6 // D[2]=A[2][1] -.inst 0xce9df55d //xar v29.2d, v10.2d,v29.2d,#64-3 // D[0]=A[1][2] - - ////////////////////////////////////////////////// Chi+Iota -.inst 0xce362354 //bcax v20.16b,v26.16b, v22.16b,v8.16b // A[1][3]=A[4][1] -.inst 0xce375915 //bcax v21.16b,v8.16b,v23.16b,v22.16b // A[1][3]=A[4][1] -.inst 0xce385ed6 //bcax v22.16b,v22.16b,v24.16b,v23.16b -.inst 0xce3a62f7 //bcax v23.16b,v23.16b,v26.16b, v24.16b -.inst 0xce286b18 //bcax v24.16b,v24.16b,v8.16b,v26.16b // A[1][3]=A[4][1] - - ld1r {v26.2d},[x10],#8 - -.inst 0xce330fd1 //bcax v17.16b,v30.16b, v19.16b,v3.16b // A[0][3]=A[3][3] -.inst 0xce2f4c72 //bcax v18.16b,v3.16b,v15.16b,v19.16b // A[0][3]=A[3][3] -.inst 0xce303e73 //bcax v19.16b,v19.16b,v16.16b,v15.16b -.inst 0xce3e41ef //bcax v15.16b,v15.16b,v30.16b, v16.16b -.inst 0xce237a10 //bcax v16.16b,v16.16b,v3.16b,v30.16b // A[0][3]=A[3][3] - -.inst 0xce2c7f2a //bcax v10.16b,v25.16b, v12.16b,v31.16b -.inst 0xce2d33eb //bcax v11.16b,v31.16b, v13.16b,v12.16b -.inst 0xce2e358c //bcax v12.16b,v12.16b,v14.16b,v13.16b -.inst 0xce3939ad //bcax v13.16b,v13.16b,v25.16b, v14.16b -.inst 0xce3f65ce //bcax v14.16b,v14.16b,v31.16b, v25.16b - -.inst 0xce2913a7 //bcax v7.16b,v29.16b, v9.16b,v4.16b // A[0][4]=A[1][3] -.inst 0xce252488 //bcax v8.16b,v4.16b,v5.16b,v9.16b // A[0][4]=A[1][3] -.inst 0xce261529 //bcax v9.16b,v9.16b,v6.16b,v5.16b -.inst 0xce3d18a5 //bcax v5.16b,v5.16b,v29.16b, v6.16b -.inst 0xce2474c6 //bcax v6.16b,v6.16b,v4.16b,v29.16b // A[0][4]=A[1][3] - -.inst 0xce207363 //bcax v3.16b,v27.16b, v0.16b,v28.16b -.inst 0xce210384 //bcax v4.16b,v28.16b, v1.16b,v0.16b -.inst 0xce220400 //bcax v0.16b,v0.16b,v2.16b,v1.16b -.inst 0xce3b0821 //bcax v1.16b,v1.16b,v27.16b, v2.16b -.inst 0xce3c6c42 //bcax v2.16b,v2.16b,v28.16b, v27.16b - - eor v0.16b,v0.16b,v26.16b - - tst x10,#255 - bne Loop_ce - - ret -// .size KeccakF1600_ce,.-KeccakF1600_ce - -// .type KeccakF1600_cext,%function -.align 5 -KeccakF1600_cext: -.inst 0xd503233f // paciasp - stp x29,x30,[sp,#-2*8 -64]! - add x29,sp,#0 - stp d8,d9,[sp,#2*8 +0] // per ABI requirement - stp d10,d11,[sp,#2*8 +16] - stp d12,d13,[sp,#2*8 +32] - stp d14,d15,[sp,#2*8 +48] - ldp d0,d1,[x0,#8*0] - ldp d2,d3,[x0,#8*2] - ldp d4,d5,[x0,#8*4] - ldp d6,d7,[x0,#8*6] - ldp d8,d9,[x0,#8*8] - ldp d10,d11,[x0,#8*10] - ldp d12,d13,[x0,#8*12] - ldp d14,d15,[x0,#8*14] - ldp d16,d17,[x0,#8*16] - ldp d18,d19,[x0,#8*18] - ldp d20,d21,[x0,#8*20] - ldp d22,d23,[x0,#8*22] - ldr d24,[x0,#8*24] - adrp x10,iotas - add x10,x10,:lo12:iotas - bl KeccakF1600_ce - ldr x30,[sp,#8] - stp d0,d1,[x0,#8*0] - stp d2,d3,[x0,#8*2] - stp d4,d5,[x0,#8*4] - stp d6,d7,[x0,#8*6] - stp d8,d9,[x0,#8*8] - stp d10,d11,[x0,#8*10] - stp d12,d13,[x0,#8*12] - stp d14,d15,[x0,#8*14] - stp d16,d17,[x0,#8*16] - stp d18,d19,[x0,#8*18] - stp d20,d21,[x0,#8*20] - stp d22,d23,[x0,#8*22] - str d24,[x0,#8*24] - - ldp d8,d9,[sp,#2*8 +0] - ldp d10,d11,[sp,#2*8 +16] - ldp d12,d13,[sp,#2*8 +32] - ldp d14,d15,[sp,#2*8 +48] - ldr x29,[sp],#2*8 +64 -.inst 0xd50323bf // autiasp - ret -// .size KeccakF1600_cext,.-KeccakF1600_cext -.globl SHA3_absorb_cext -// .type SHA3_absorb_cext,%function -.align 5 -SHA3_absorb_cext: -.inst 0xd503233f // paciasp - stp x29,x30,[sp,#-2*8 -64]! - add x29,sp,#0 - stp d8,d9,[sp,#2*8 +0] // per ABI requirement - stp d10,d11,[sp,#2*8 +16] - stp d12,d13,[sp,#2*8 +32] - stp d14,d15,[sp,#2*8 +48] - ldp d0,d1,[x0,#8*0] - ldp d2,d3,[x0,#8*2] - ldp d4,d5,[x0,#8*4] - ldp d6,d7,[x0,#8*6] - ldp d8,d9,[x0,#8*8] - ldp d10,d11,[x0,#8*10] - ldp d12,d13,[x0,#8*12] - ldp d14,d15,[x0,#8*14] - ldp d16,d17,[x0,#8*16] - ldp d18,d19,[x0,#8*18] - ldp d20,d21,[x0,#8*20] - ldp d22,d23,[x0,#8*22] - ldr d24,[x0,#8*24] - b Loop_absorb_ce - -.align 4 -Loop_absorb_ce: - subs x2,x2,x3 // len - bsz - blo Labsorbed_ce - - cmp x3,#104 - ld1 {v27.8b,v28.8b,v29.8b,v30.8b},[x1],#32 - eor v0.16b,v0.16b,v27.16b - eor v1.16b,v1.16b,v28.16b - eor v2.16b,v2.16b,v29.16b - eor v3.16b,v3.16b,v30.16b - ld1 {v27.8b,v28.8b,v29.8b,v30.8b},[x1],#32 - eor v4.16b,v4.16b,v27.16b - eor v5.16b,v5.16b,v28.16b - eor v6.16b,v6.16b,v29.16b - eor v7.16b,v7.16b,v30.16b - ld1 {v31.8b},[x1],#8 // A[1][4] ^= *inp++ - eor v8.16b,v8.16b,v31.16b - blo Lprocess_block_ce - - ld1 {v27.8b,v28.8b,v29.8b,v30.8b},[x1],#32 - eor v9.16b,v9.16b,v27.16b - eor v10.16b,v10.16b,v28.16b - eor v11.16b,v11.16b,v29.16b - eor v12.16b,v12.16b,v30.16b - beq Lprocess_block_ce - - cmp x3,#144 - ld1 {v27.8b,v28.8b,v29.8b,v30.8b},[x1],#32 - eor v13.16b,v13.16b,v27.16b - eor v14.16b,v14.16b,v28.16b - eor v15.16b,v15.16b,v29.16b - eor v16.16b,v16.16b,v30.16b - blo Lprocess_block_ce - - ld1 {v31.8b},[x1],#8 // A[3][3] ^= *inp++ - eor v17.16b,v17.16b,v31.16b - beq Lprocess_block_ce - - ld1 {v28.8b,v29.8b,v30.8b},[x1],#24 - eor v18.16b,v18.16b,v28.16b - eor v19.16b,v19.16b,v29.16b - eor v20.16b,v20.16b,v30.16b - -Lprocess_block_ce: - adrp x10,iotas - add x10,x10,:lo12:iotas - bl KeccakF1600_ce - - b Loop_absorb_ce - -.align 4 -Labsorbed_ce: - stp d0,d1,[x0,#8*0] - stp d2,d3,[x0,#8*2] - stp d4,d5,[x0,#8*4] - stp d6,d7,[x0,#8*6] - stp d8,d9,[x0,#8*8] - stp d10,d11,[x0,#8*10] - stp d12,d13,[x0,#8*12] - stp d14,d15,[x0,#8*14] - stp d16,d17,[x0,#8*16] - stp d18,d19,[x0,#8*18] - stp d20,d21,[x0,#8*20] - stp d22,d23,[x0,#8*22] - str d24,[x0,#8*24] - add x0,x2,x3 // return value - - ldp d8,d9,[sp,#2*8 +0] - ldp d10,d11,[sp,#2*8 +16] - ldp d12,d13,[sp,#2*8 +32] - ldp d14,d15,[sp,#2*8 +48] - ldp x29,x30,[sp],#2*8 +64 -.inst 0xd50323bf // autiasp - ret -// .size SHA3_absorb_cext,.-SHA3_absorb_cext -.globl SHA3_squeeze_cext -// .type SHA3_squeeze_cext,%function -.align 5 -SHA3_squeeze_cext: -.inst 0xd503233f // paciasp - stp x29,x30,[sp,#-2*8]! - add x29,sp,#0 - mov x9,x0 - mov x10,x3 - -Loop_squeeze_ce: - ldr x4,[x9],#8 - cmp x2,#8 - blo Lsqueeze_tail_ce - - - - str x4,[x1],#8 - beq Lsqueeze_done_ce - - sub x2,x2,#8 - subs x10,x10,#8 - bhi Loop_squeeze_ce - - bl KeccakF1600_cext - ldr x30,[sp,#8] - mov x9,x0 - mov x10,x3 - b Loop_squeeze_ce - -.align 4 -Lsqueeze_tail_ce: - strb w4,[x1],#1 - lsr x4,x4,#8 - subs x2,x2,#1 - beq Lsqueeze_done_ce - strb w4,[x1],#1 - lsr x4,x4,#8 - subs x2,x2,#1 - beq Lsqueeze_done_ce - strb w4,[x1],#1 - lsr x4,x4,#8 - subs x2,x2,#1 - beq Lsqueeze_done_ce - strb w4,[x1],#1 - lsr x4,x4,#8 - subs x2,x2,#1 - beq Lsqueeze_done_ce - strb w4,[x1],#1 - lsr x4,x4,#8 - subs x2,x2,#1 - beq Lsqueeze_done_ce - strb w4,[x1],#1 - lsr x4,x4,#8 - subs x2,x2,#1 - beq Lsqueeze_done_ce - strb w4,[x1],#1 - -Lsqueeze_done_ce: - ldr x29,[sp],#2*8 -.inst 0xd50323bf // autiasp - ret -// .size SHA3_squeeze_cext,.-SHA3_squeeze_cext -.byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,64,100,111,116,45,97,115,109,0 -.align 2 diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/keccak1600-armv8-macho.s b/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/keccak1600-armv8-macho.s deleted file mode 100644 index de354ecab..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/keccak1600-armv8-macho.s +++ /dev/null @@ -1,855 +0,0 @@ -// Modified: -// - Ran `cpp` to substitute constants. -// - Commented out ARM assembly annotations (.size, .type) used only for debugging purposes and not understood by -// Rust. -// - Removed dots from all local labels for correct detection in the frontend. -// Reason: `.L` local labels are ELF-specific. -// - Replaced instance of `adr x??,label` by `adrp x??,label@PAGE` followed by -// `add x??,x??,label@PAGEOFF`. -// -// TODO: this is probably a matter of selecting the right parameter -// for the translator. - -.align 8 // strategic alignment and padding that allows to use - // address value as loop termination condition... -.quad 0,0,0,0,0,0,0,0 -// .type iotas,%object -iotas: -.quad 0x0000000000000001 -.quad 0x0000000000008082 -.quad 0x800000000000808a -.quad 0x8000000080008000 -.quad 0x000000000000808b -.quad 0x0000000080000001 -.quad 0x8000000080008081 -.quad 0x8000000000008009 -.quad 0x000000000000008a -.quad 0x0000000000000088 -.quad 0x0000000080008009 -.quad 0x000000008000000a -Liotas12: -.quad 0x000000008000808b -.quad 0x800000000000008b -.quad 0x8000000000008089 -.quad 0x8000000000008003 -.quad 0x8000000000008002 -.quad 0x8000000000000080 -.quad 0x000000000000800a -.quad 0x800000008000000a -.quad 0x8000000080008081 -.quad 0x8000000000008080 -.quad 0x0000000080000001 -.quad 0x8000000080008008 -// .size iotas,.-iotas -// .type KeccakF1600_int,%function -.align 5 -KeccakF1600_int: -.inst 0xd503233f // paciasp - stp x28,x30,[sp,#16] // stack is pre-allocated - b Loop -.align 4 -Loop: - ////////////////////////////////////////// Theta - eor x26,x0,x5 - stp x4,x9,[sp,#0] // offload pair... - eor x27,x1,x6 - eor x28,x2,x7 - eor x30,x3,x8 - eor x4,x4,x9 - eor x26,x26,x10 - eor x27,x27,x11 - eor x28,x28,x12 - eor x30,x30,x13 - eor x4,x4,x14 - eor x26,x26,x15 - eor x27,x27,x16 - eor x28,x28,x17 - eor x30,x30,x25 - eor x4,x4,x19 - eor x26,x26,x20 - eor x28,x28,x22 - eor x27,x27,x21 - eor x30,x30,x23 - eor x4,x4,x24 - - eor x9,x26,x28,ror#63 - - eor x1,x1,x9 - eor x6,x6,x9 - eor x11,x11,x9 - eor x16,x16,x9 - eor x21,x21,x9 - - eor x9,x27,x30,ror#63 - eor x28,x28,x4,ror#63 - eor x30,x30,x26,ror#63 - eor x4,x4,x27,ror#63 - - eor x27, x2,x9 // mov x27,x2 - eor x7,x7,x9 - eor x12,x12,x9 - eor x17,x17,x9 - eor x22,x22,x9 - - eor x0,x0,x4 - eor x5,x5,x4 - eor x10,x10,x4 - eor x15,x15,x4 - eor x20,x20,x4 - ldp x4,x9,[sp,#0] // re-load offloaded data - eor x26, x3,x28 // mov x26,x3 - eor x8,x8,x28 - eor x13,x13,x28 - eor x25,x25,x28 - eor x23,x23,x28 - - eor x28, x4,x30 // mov x28,x4 - eor x9,x9,x30 - eor x14,x14,x30 - eor x19,x19,x30 - eor x24,x24,x30 - - ////////////////////////////////////////// Rho+Pi - mov x30,x1 - ror x1,x6,#64-44 - //mov x27,x2 - ror x2,x12,#64-43 - //mov x26,x3 - ror x3,x25,#64-21 // ? - //mov x28,x4 - ror x4,x24,#64-14 // ? - - ror x6,x9,#64-20 // ? - ror x12,x13,#64-25 // ? - ror x25,x17,#64-15 - ror x24,x21,#64-2 // ? - - ror x9,x22,#64-61 - ror x13,x19,#64-8 - ror x17,x11,#64-10 - ror x21,x8,#64-55 - - ror x22,x14,#64-39 - ror x19,x23,#64-56 - ror x11,x7,#64-6 // ? - ror x8,x16,#64-45 - - ror x14,x20,#64-18 - ror x23,x15,#64-41 - ror x7,x10,#64-3 - ror x16,x5,#64-36 // ? - - ror x5,x26,#64-28 // ? - ror x10,x30,#64-1 - ror x15,x28,#64-27 // ? - ror x20,x27,#64-62 // ? - - ////////////////////////////////////////// Chi+Iota - bic x26,x2,x1 - bic x27,x3,x2 - bic x28,x0,x4 - bic x30,x1,x0 - eor x0,x0,x26 - bic x26,x4,x3 - eor x1,x1,x27 - ldr x27,[sp,#16] - eor x3,x3,x28 - eor x4,x4,x30 - eor x2,x2,x26 - ldr x30,[x27],#8 // Iota[i++] - - bic x26,x7,x6 - tst x27,#255 // are we done? - str x27,[sp,#16] - bic x27,x8,x7 - bic x28,x5,x9 - eor x0,x0,x30 // A[0][0] ^= Iota - bic x30,x6,x5 - eor x5,x5,x26 - bic x26,x9,x8 - eor x6,x6,x27 - eor x8,x8,x28 - eor x9,x9,x30 - eor x7,x7,x26 - - bic x26,x12,x11 - bic x27,x13,x12 - bic x28,x10,x14 - bic x30,x11,x10 - eor x10,x10,x26 - bic x26,x14,x13 - eor x11,x11,x27 - eor x13,x13,x28 - eor x14,x14,x30 - eor x12,x12,x26 - - bic x26,x17,x16 - bic x27,x25,x17 - bic x28,x15,x19 - bic x30,x16,x15 - eor x15,x15,x26 - bic x26,x19,x25 - eor x16,x16,x27 - eor x25,x25,x28 - eor x19,x19,x30 - eor x17,x17,x26 - - bic x26,x22,x21 - bic x27,x23,x22 - bic x28,x20,x24 - bic x30,x21,x20 - eor x20,x20,x26 - bic x26,x24,x23 - eor x21,x21,x27 - eor x23,x23,x28 - eor x24,x24,x30 - eor x22,x22,x26 - - bne Loop - - ldr x30,[sp,#16+8] -.inst 0xd50323bf // autiasp - ret -// .size KeccakF1600_int,.-KeccakF1600_int - -// .type KeccakF1600,%function -.align 5 -KeccakF1600: -.inst 0xd503233f // paciasp - stp x29,x30,[sp,#-16*8]! - add x29,sp,#0 - stp x19,x20,[sp,#2*8] - stp x21,x22,[sp,#4*8] - stp x23,x24,[sp,#6*8] - stp x25,x26,[sp,#8*8] - stp x27,x28,[sp,#10*8] - sub sp,sp,#16+4*8 - - str x0,[sp,#16+2*8] // offload argument - mov x26,x0 - ldp x0,x1,[x0,#16*0] - ldp x2,x3,[x26,#16*1] - ldp x4,x5,[x26,#16*2] - ldp x6,x7,[x26,#16*3] - ldp x8,x9,[x26,#16*4] - ldp x10,x11,[x26,#16*5] - ldp x12,x13,[x26,#16*6] - ldp x14,x15,[x26,#16*7] - ldp x16,x17,[x26,#16*8] - ldp x25,x19,[x26,#16*9] - ldp x20,x21,[x26,#16*10] - ldp x22,x23,[x26,#16*11] - ldr x24,[x26,#16*12] - - adrp x28,iotas@PAGE - add x28,x28,iotas@PAGEOFF - bl KeccakF1600_int - - ldr x26,[sp,#16+2*8] - stp x0,x1,[x26,#16*0] - stp x2,x3,[x26,#16*1] - stp x4,x5,[x26,#16*2] - stp x6,x7,[x26,#16*3] - stp x8,x9,[x26,#16*4] - stp x10,x11,[x26,#16*5] - stp x12,x13,[x26,#16*6] - stp x14,x15,[x26,#16*7] - stp x16,x17,[x26,#16*8] - stp x25,x19,[x26,#16*9] - stp x20,x21,[x26,#16*10] - stp x22,x23,[x26,#16*11] - str x24,[x26,#16*12] - - ldp x19,x20,[x29,#2*8] - add sp,sp,#16+4*8 - ldp x21,x22,[x29,#4*8] - ldp x23,x24,[x29,#6*8] - ldp x25,x26,[x29,#8*8] - ldp x27,x28,[x29,#10*8] - ldp x29,x30,[sp],#16*8 -.inst 0xd50323bf // autiasp - ret -// .size KeccakF1600,.-KeccakF1600 - -.globl _SHA3_absorb -// .type SHA3_absorb,%function -.align 5 -_SHA3_absorb: -.inst 0xd503233f // paciasp - stp x29,x30,[sp,#-16*8]! - add x29,sp,#0 - stp x19,x20,[sp,#2*8] - stp x21,x22,[sp,#4*8] - stp x23,x24,[sp,#6*8] - stp x25,x26,[sp,#8*8] - stp x27,x28,[sp,#10*8] - sub sp,sp,#16+4*8 +16 - - stp x0,x1,[sp,#16+2*8] // offload arguments - stp x2,x3,[sp,#16+4*8] - - mov x26,x0 // uint64_t A[5][5] - mov x27,x1 // const void *inp - mov x28,x2 // size_t len - mov x30,x3 // size_t bsz - ldp x0,x1,[x26,#16*0] - ldp x2,x3,[x26,#16*1] - ldp x4,x5,[x26,#16*2] - ldp x6,x7,[x26,#16*3] - ldp x8,x9,[x26,#16*4] - ldp x10,x11,[x26,#16*5] - ldp x12,x13,[x26,#16*6] - ldp x14,x15,[x26,#16*7] - ldp x16,x17,[x26,#16*8] - ldp x25,x19,[x26,#16*9] - ldp x20,x21,[x26,#16*10] - ldp x22,x23,[x26,#16*11] - ldr x24,[x26,#16*12] - b Loop_absorb - -.align 4 -Loop_absorb: - subs x26,x28,x30 // len - bsz - blo Labsorbed - - str x26,[sp,#16+4*8] // save len - bsz - cmp x30,#104 - ldr x26,[x27,#0] // A[0][0] ^= *inp++ - - - - eor x0,x0,x26 - ldr x26,[x27,#8] // A[0][1] ^= *inp++ - - - - eor x1,x1,x26 - ldr x26,[x27,#16] // A[0][2] ^= *inp++ - - - - eor x2,x2,x26 - ldr x26,[x27,#24] // A[0][3] ^= *inp++ - - - - eor x3,x3,x26 - ldr x26,[x27,#32] // A[0][4] ^= *inp++ - - - - eor x4,x4,x26 - ldr x26,[x27,#40] // A[1][0] ^= *inp++ - - - - eor x5,x5,x26 - ldr x26,[x27,#48] // A[1][1] ^= *inp++ - - - - eor x6,x6,x26 - ldr x26,[x27,#56] // A[1][2] ^= *inp++ - - - - eor x7,x7,x26 - ldr x26,[x27,#64] // A[1][3] ^= *inp++ - - - - eor x8,x8,x26 - blo Lprocess_block - - ldr x26,[x27,#72] // A[1][4] ^= *inp++ - - - - eor x9,x9,x26 - ldr x26,[x27,#80] // A[2][0] ^= *inp++ - - - - eor x10,x10,x26 - ldr x26,[x27,#88] // A[2][1] ^= *inp++ - - - - eor x11,x11,x26 - ldr x26,[x27,#96] // A[2][2] ^= *inp++ - - - - eor x12,x12,x26 - beq Lprocess_block - - cmp x30,#144 - ldr x26,[x27,#104] // A[2][3] ^= *inp++ - - - - eor x13,x13,x26 - ldr x26,[x27,#112] // A[2][4] ^= *inp++ - - - - eor x14,x14,x26 - ldr x26,[x27,#120] // A[3][0] ^= *inp++ - - - - eor x15,x15,x26 - ldr x26,[x27,#128] // A[3][1] ^= *inp++ - - - - eor x16,x16,x26 - blo Lprocess_block - - ldr x26,[x27,#136] // A[3][2] ^= *inp++ - - - - eor x17,x17,x26 - beq Lprocess_block - - ldr x26,[x27,#144] // A[3][3] ^= *inp++ - - - - eor x25,x25,x26 - ldr x26,[x27,#152] // A[3][4] ^= *inp++ - - - - eor x19,x19,x26 - ldr x26,[x27,#160] // A[4][0] ^= *inp++ - - - - eor x20,x20,x26 - -Lprocess_block: - add x27,x27,x30 - str x27,[sp,#16+3*8] // save inp - - adrp x28,iotas@PAGE - add x28,x28,iotas@PAGEOFF - bl KeccakF1600_int - - ldr x27,[sp,#16+3*8] // restore arguments - ldp x28,x30,[sp,#16+4*8] - b Loop_absorb - -.align 4 -Labsorbed: - ldr x27,[sp,#16+2*8] - stp x0,x1,[x27,#16*0] - stp x2,x3,[x27,#16*1] - stp x4,x5,[x27,#16*2] - stp x6,x7,[x27,#16*3] - stp x8,x9,[x27,#16*4] - stp x10,x11,[x27,#16*5] - stp x12,x13,[x27,#16*6] - stp x14,x15,[x27,#16*7] - stp x16,x17,[x27,#16*8] - stp x25,x19,[x27,#16*9] - stp x20,x21,[x27,#16*10] - stp x22,x23,[x27,#16*11] - str x24,[x27,#16*12] - - mov x0,x28 // return value - ldp x19,x20,[x29,#2*8] - add sp,sp,#16+4*8 +16 - ldp x21,x22,[x29,#4*8] - ldp x23,x24,[x29,#6*8] - ldp x25,x26,[x29,#8*8] - ldp x27,x28,[x29,#10*8] - ldp x29,x30,[sp],#16*8 -.inst 0xd50323bf // autiasp - ret -// .size SHA3_absorb,.-SHA3_absorb -.globl _SHA3_squeeze -// .type SHA3_squeeze,%function -.align 5 -_SHA3_squeeze: -.inst 0xd503233f // paciasp - stp x29,x30,[sp,#-6*8]! - add x29,sp,#0 - stp x19,x20,[sp,#2*8] - stp x21,x22,[sp,#4*8] - - mov x19,x0 // put aside arguments - mov x20,x1 - mov x21,x2 - mov x22,x3 - -Loop_squeeze: - ldr x4,[x0],#8 - cmp x21,#8 - blo Lsqueeze_tail - - - - str x4,[x20],#8 - subs x21,x21,#8 - beq Lsqueeze_done - - subs x3,x3,#8 - bhi Loop_squeeze - - mov x0,x19 - bl KeccakF1600 - mov x0,x19 - mov x3,x22 - b Loop_squeeze - -.align 4 -Lsqueeze_tail: - strb w4,[x20],#1 - lsr x4,x4,#8 - subs x21,x21,#1 - beq Lsqueeze_done - strb w4,[x20],#1 - lsr x4,x4,#8 - subs x21,x21,#1 - beq Lsqueeze_done - strb w4,[x20],#1 - lsr x4,x4,#8 - subs x21,x21,#1 - beq Lsqueeze_done - strb w4,[x20],#1 - lsr x4,x4,#8 - subs x21,x21,#1 - beq Lsqueeze_done - strb w4,[x20],#1 - lsr x4,x4,#8 - subs x21,x21,#1 - beq Lsqueeze_done - strb w4,[x20],#1 - lsr x4,x4,#8 - subs x21,x21,#1 - beq Lsqueeze_done - strb w4,[x20],#1 - -Lsqueeze_done: - ldp x19,x20,[sp,#2*8] - ldp x21,x22,[sp,#4*8] - ldp x29,x30,[sp],#6*8 -.inst 0xd50323bf // autiasp - ret -// .size SHA3_squeeze,.-SHA3_squeeze -// .type KeccakF1600_ce,%function -.align 5 -KeccakF1600_ce: -Loop_ce: - ////////////////////////////////////////////////// Theta -.inst 0xce0f2a99 //eor3 v25.16b,v20.16b,v15.16b,v10.16b -.inst 0xce102eba //eor3 v26.16b,v21.16b,v16.16b,v11.16b -.inst 0xce1132db //eor3 v27.16b,v22.16b,v17.16b,v12.16b -.inst 0xce1236fc //eor3 v28.16b,v23.16b,v18.16b,v13.16b -.inst 0xce133b1d //eor3 v29.16b,v24.16b,v19.16b,v14.16b -.inst 0xce050339 //eor3 v25.16b,v25.16b, v5.16b,v0.16b -.inst 0xce06075a //eor3 v26.16b,v26.16b, v6.16b,v1.16b -.inst 0xce070b7b //eor3 v27.16b,v27.16b, v7.16b,v2.16b -.inst 0xce080f9c //eor3 v28.16b,v28.16b, v8.16b,v3.16b -.inst 0xce0913bd //eor3 v29.16b,v29.16b, v9.16b,v4.16b - -.inst 0xce7b8f3e //rax1 v30.2d,v25.2d,v27.2d // D[1] -.inst 0xce7c8f5f //rax1 v31.2d,v26.2d,v28.2d // D[2] -.inst 0xce7d8f7b //rax1 v27.2d,v27.2d,v29.2d // D[3] -.inst 0xce798f9c //rax1 v28.2d,v28.2d,v25.2d // D[4] -.inst 0xce7a8fbd //rax1 v29.2d,v29.2d,v26.2d // D[0] - - ////////////////////////////////////////////////// Theta+Rho+Pi -.inst 0xce9efc39 //xar v25.2d, v1.2d,v30.2d,#64-1 // C[0]=A[2][0] - -.inst 0xce9e50c1 //xar v1.2d,v6.2d,v30.2d,#64-44 -.inst 0xce9cb126 //xar v6.2d,v9.2d,v28.2d,#64-20 -.inst 0xce9f0ec9 //xar v9.2d,v22.2d,v31.2d,#64-61 -.inst 0xce9c65d6 //xar v22.2d,v14.2d,v28.2d,#64-39 -.inst 0xce9dba8e //xar v14.2d,v20.2d,v29.2d,#64-18 - -.inst 0xce9f085a //xar v26.2d, v2.2d,v31.2d,#64-62 // C[1]=A[4][0] - -.inst 0xce9f5582 //xar v2.2d,v12.2d,v31.2d,#64-43 -.inst 0xce9b9dac //xar v12.2d,v13.2d,v27.2d,#64-25 -.inst 0xce9ce26d //xar v13.2d,v19.2d,v28.2d,#64-8 -.inst 0xce9b22f3 //xar v19.2d,v23.2d,v27.2d,#64-56 -.inst 0xce9d5df7 //xar v23.2d,v15.2d,v29.2d,#64-41 - -.inst 0xce9c948f //xar v15.2d,v4.2d,v28.2d,#64-27 - -.inst 0xce9ccb1c //xar v28.2d, v24.2d,v28.2d,#64-14 // D[4]=A[0][4] -.inst 0xce9efab8 //xar v24.2d,v21.2d,v30.2d,#64-2 -.inst 0xce9b2508 //xar v8.2d,v8.2d,v27.2d,#64-55 // A[1][3]=A[4][1] -.inst 0xce9e4e04 //xar v4.2d,v16.2d,v30.2d,#64-45 // A[0][4]=A[1][3] -.inst 0xce9d70b0 //xar v16.2d,v5.2d,v29.2d,#64-36 - -.inst 0xce9b9065 //xar v5.2d,v3.2d,v27.2d,#64-28 - - eor v0.16b,v0.16b,v29.16b - -.inst 0xce9bae5b //xar v27.2d, v18.2d,v27.2d,#64-21 // D[3]=A[0][3] -.inst 0xce9fc623 //xar v3.2d,v17.2d,v31.2d,#64-15 // A[0][3]=A[3][3] -.inst 0xce9ed97e //xar v30.2d, v11.2d,v30.2d,#64-10 // D[1]=A[3][2] -.inst 0xce9fe8ff //xar v31.2d, v7.2d,v31.2d,#64-6 // D[2]=A[2][1] -.inst 0xce9df55d //xar v29.2d, v10.2d,v29.2d,#64-3 // D[0]=A[1][2] - - ////////////////////////////////////////////////// Chi+Iota -.inst 0xce362354 //bcax v20.16b,v26.16b, v22.16b,v8.16b // A[1][3]=A[4][1] -.inst 0xce375915 //bcax v21.16b,v8.16b,v23.16b,v22.16b // A[1][3]=A[4][1] -.inst 0xce385ed6 //bcax v22.16b,v22.16b,v24.16b,v23.16b -.inst 0xce3a62f7 //bcax v23.16b,v23.16b,v26.16b, v24.16b -.inst 0xce286b18 //bcax v24.16b,v24.16b,v8.16b,v26.16b // A[1][3]=A[4][1] - - ld1r {v26.2d},[x10],#8 - -.inst 0xce330fd1 //bcax v17.16b,v30.16b, v19.16b,v3.16b // A[0][3]=A[3][3] -.inst 0xce2f4c72 //bcax v18.16b,v3.16b,v15.16b,v19.16b // A[0][3]=A[3][3] -.inst 0xce303e73 //bcax v19.16b,v19.16b,v16.16b,v15.16b -.inst 0xce3e41ef //bcax v15.16b,v15.16b,v30.16b, v16.16b -.inst 0xce237a10 //bcax v16.16b,v16.16b,v3.16b,v30.16b // A[0][3]=A[3][3] - -.inst 0xce2c7f2a //bcax v10.16b,v25.16b, v12.16b,v31.16b -.inst 0xce2d33eb //bcax v11.16b,v31.16b, v13.16b,v12.16b -.inst 0xce2e358c //bcax v12.16b,v12.16b,v14.16b,v13.16b -.inst 0xce3939ad //bcax v13.16b,v13.16b,v25.16b, v14.16b -.inst 0xce3f65ce //bcax v14.16b,v14.16b,v31.16b, v25.16b - -.inst 0xce2913a7 //bcax v7.16b,v29.16b, v9.16b,v4.16b // A[0][4]=A[1][3] -.inst 0xce252488 //bcax v8.16b,v4.16b,v5.16b,v9.16b // A[0][4]=A[1][3] -.inst 0xce261529 //bcax v9.16b,v9.16b,v6.16b,v5.16b -.inst 0xce3d18a5 //bcax v5.16b,v5.16b,v29.16b, v6.16b -.inst 0xce2474c6 //bcax v6.16b,v6.16b,v4.16b,v29.16b // A[0][4]=A[1][3] - -.inst 0xce207363 //bcax v3.16b,v27.16b, v0.16b,v28.16b -.inst 0xce210384 //bcax v4.16b,v28.16b, v1.16b,v0.16b -.inst 0xce220400 //bcax v0.16b,v0.16b,v2.16b,v1.16b -.inst 0xce3b0821 //bcax v1.16b,v1.16b,v27.16b, v2.16b -.inst 0xce3c6c42 //bcax v2.16b,v2.16b,v28.16b, v27.16b - - eor v0.16b,v0.16b,v26.16b - - tst x10,#255 - bne Loop_ce - - ret -// .size KeccakF1600_ce,.-KeccakF1600_ce - -// .type KeccakF1600_cext,%function -.align 5 -KeccakF1600_cext: -.inst 0xd503233f // paciasp - stp x29,x30,[sp,#-2*8 -64]! - add x29,sp,#0 - stp d8,d9,[sp,#2*8 +0] // per ABI requirement - stp d10,d11,[sp,#2*8 +16] - stp d12,d13,[sp,#2*8 +32] - stp d14,d15,[sp,#2*8 +48] - ldp d0,d1,[x0,#8*0] - ldp d2,d3,[x0,#8*2] - ldp d4,d5,[x0,#8*4] - ldp d6,d7,[x0,#8*6] - ldp d8,d9,[x0,#8*8] - ldp d10,d11,[x0,#8*10] - ldp d12,d13,[x0,#8*12] - ldp d14,d15,[x0,#8*14] - ldp d16,d17,[x0,#8*16] - ldp d18,d19,[x0,#8*18] - ldp d20,d21,[x0,#8*20] - ldp d22,d23,[x0,#8*22] - ldr d24,[x0,#8*24] - adrp x10,iotas@PAGE - add x10,x10,iotas@PAGEOFF - bl KeccakF1600_ce - ldr x30,[sp,#8] - stp d0,d1,[x0,#8*0] - stp d2,d3,[x0,#8*2] - stp d4,d5,[x0,#8*4] - stp d6,d7,[x0,#8*6] - stp d8,d9,[x0,#8*8] - stp d10,d11,[x0,#8*10] - stp d12,d13,[x0,#8*12] - stp d14,d15,[x0,#8*14] - stp d16,d17,[x0,#8*16] - stp d18,d19,[x0,#8*18] - stp d20,d21,[x0,#8*20] - stp d22,d23,[x0,#8*22] - str d24,[x0,#8*24] - - ldp d8,d9,[sp,#2*8 +0] - ldp d10,d11,[sp,#2*8 +16] - ldp d12,d13,[sp,#2*8 +32] - ldp d14,d15,[sp,#2*8 +48] - ldr x29,[sp],#2*8 +64 -.inst 0xd50323bf // autiasp - ret -// .size KeccakF1600_cext,.-KeccakF1600_cext -.globl SHA3_absorb_cext -// .type SHA3_absorb_cext,%function -.align 5 -SHA3_absorb_cext: -.inst 0xd503233f // paciasp - stp x29,x30,[sp,#-2*8 -64]! - add x29,sp,#0 - stp d8,d9,[sp,#2*8 +0] // per ABI requirement - stp d10,d11,[sp,#2*8 +16] - stp d12,d13,[sp,#2*8 +32] - stp d14,d15,[sp,#2*8 +48] - ldp d0,d1,[x0,#8*0] - ldp d2,d3,[x0,#8*2] - ldp d4,d5,[x0,#8*4] - ldp d6,d7,[x0,#8*6] - ldp d8,d9,[x0,#8*8] - ldp d10,d11,[x0,#8*10] - ldp d12,d13,[x0,#8*12] - ldp d14,d15,[x0,#8*14] - ldp d16,d17,[x0,#8*16] - ldp d18,d19,[x0,#8*18] - ldp d20,d21,[x0,#8*20] - ldp d22,d23,[x0,#8*22] - ldr d24,[x0,#8*24] - b Loop_absorb_ce - -.align 4 -Loop_absorb_ce: - subs x2,x2,x3 // len - bsz - blo Labsorbed_ce - - cmp x3,#104 - ld1 {v27.8b,v28.8b,v29.8b,v30.8b},[x1],#32 - eor v0.16b,v0.16b,v27.16b - eor v1.16b,v1.16b,v28.16b - eor v2.16b,v2.16b,v29.16b - eor v3.16b,v3.16b,v30.16b - ld1 {v27.8b,v28.8b,v29.8b,v30.8b},[x1],#32 - eor v4.16b,v4.16b,v27.16b - eor v5.16b,v5.16b,v28.16b - eor v6.16b,v6.16b,v29.16b - eor v7.16b,v7.16b,v30.16b - ld1 {v31.8b},[x1],#8 // A[1][4] ^= *inp++ - eor v8.16b,v8.16b,v31.16b - blo Lprocess_block_ce - - ld1 {v27.8b,v28.8b,v29.8b,v30.8b},[x1],#32 - eor v9.16b,v9.16b,v27.16b - eor v10.16b,v10.16b,v28.16b - eor v11.16b,v11.16b,v29.16b - eor v12.16b,v12.16b,v30.16b - beq Lprocess_block_ce - - cmp x3,#144 - ld1 {v27.8b,v28.8b,v29.8b,v30.8b},[x1],#32 - eor v13.16b,v13.16b,v27.16b - eor v14.16b,v14.16b,v28.16b - eor v15.16b,v15.16b,v29.16b - eor v16.16b,v16.16b,v30.16b - blo Lprocess_block_ce - - ld1 {v31.8b},[x1],#8 // A[3][3] ^= *inp++ - eor v17.16b,v17.16b,v31.16b - beq Lprocess_block_ce - - ld1 {v28.8b,v29.8b,v30.8b},[x1],#24 - eor v18.16b,v18.16b,v28.16b - eor v19.16b,v19.16b,v29.16b - eor v20.16b,v20.16b,v30.16b - -Lprocess_block_ce: - adrp x10,iotas@PAGE - add x10,x10,iotas@PAGEOFF - bl KeccakF1600_ce - - b Loop_absorb_ce - -.align 4 -Labsorbed_ce: - stp d0,d1,[x0,#8*0] - stp d2,d3,[x0,#8*2] - stp d4,d5,[x0,#8*4] - stp d6,d7,[x0,#8*6] - stp d8,d9,[x0,#8*8] - stp d10,d11,[x0,#8*10] - stp d12,d13,[x0,#8*12] - stp d14,d15,[x0,#8*14] - stp d16,d17,[x0,#8*16] - stp d18,d19,[x0,#8*18] - stp d20,d21,[x0,#8*20] - stp d22,d23,[x0,#8*22] - str d24,[x0,#8*24] - add x0,x2,x3 // return value - - ldp d8,d9,[sp,#2*8 +0] - ldp d10,d11,[sp,#2*8 +16] - ldp d12,d13,[sp,#2*8 +32] - ldp d14,d15,[sp,#2*8 +48] - ldp x29,x30,[sp],#2*8 +64 -.inst 0xd50323bf // autiasp - ret -// .size SHA3_absorb_cext,.-SHA3_absorb_cext -.globl SHA3_squeeze_cext -// .type SHA3_squeeze_cext,%function -.align 5 -SHA3_squeeze_cext: -.inst 0xd503233f // paciasp - stp x29,x30,[sp,#-2*8]! - add x29,sp,#0 - mov x9,x0 - mov x10,x3 - -Loop_squeeze_ce: - ldr x4,[x9],#8 - cmp x2,#8 - blo Lsqueeze_tail_ce - - - - str x4,[x1],#8 - beq Lsqueeze_done_ce - - sub x2,x2,#8 - subs x10,x10,#8 - bhi Loop_squeeze_ce - - bl KeccakF1600_cext - ldr x30,[sp,#8] - mov x9,x0 - mov x10,x3 - b Loop_squeeze_ce - -.align 4 -Lsqueeze_tail_ce: - strb w4,[x1],#1 - lsr x4,x4,#8 - subs x2,x2,#1 - beq Lsqueeze_done_ce - strb w4,[x1],#1 - lsr x4,x4,#8 - subs x2,x2,#1 - beq Lsqueeze_done_ce - strb w4,[x1],#1 - lsr x4,x4,#8 - subs x2,x2,#1 - beq Lsqueeze_done_ce - strb w4,[x1],#1 - lsr x4,x4,#8 - subs x2,x2,#1 - beq Lsqueeze_done_ce - strb w4,[x1],#1 - lsr x4,x4,#8 - subs x2,x2,#1 - beq Lsqueeze_done_ce - strb w4,[x1],#1 - lsr x4,x4,#8 - subs x2,x2,#1 - beq Lsqueeze_done_ce - strb w4,[x1],#1 - -Lsqueeze_done_ce: - ldr x29,[sp],#2*8 -.inst 0xd50323bf // autiasp - ret -// .size SHA3_squeeze_cext,.-SHA3_squeeze_cext -.byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,64,100,111,116,45,97,115,109,0 -.align 2 diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/keccak1600-x86_64.s b/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/keccak1600-x86_64.s deleted file mode 100644 index d76529913..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/keccak1600-x86_64.s +++ /dev/null @@ -1,536 +0,0 @@ -.text - -.type __KeccakF1600,@function -.align 32 -__KeccakF1600: -.cfi_startproc - .byte 0xf3,0x0f,0x1e,0xfa - - movq 60(%rdi),%rax - movq 68(%rdi),%rbx - movq 76(%rdi),%rcx - movq 84(%rdi),%rdx - movq 92(%rdi),%rbp - jmp .Loop - -.align 32 -.Loop: - movq -100(%rdi),%r8 - movq -52(%rdi),%r9 - movq -4(%rdi),%r10 - movq 44(%rdi),%r11 - - xorq -84(%rdi),%rcx - xorq -76(%rdi),%rdx - xorq %r8,%rax - xorq -92(%rdi),%rbx - xorq -44(%rdi),%rcx - xorq -60(%rdi),%rax - movq %rbp,%r12 - xorq -68(%rdi),%rbp - - xorq %r10,%rcx - xorq -20(%rdi),%rax - xorq -36(%rdi),%rdx - xorq %r9,%rbx - xorq -28(%rdi),%rbp - - xorq 36(%rdi),%rcx - xorq 20(%rdi),%rax - xorq 4(%rdi),%rdx - xorq -12(%rdi),%rbx - xorq 12(%rdi),%rbp - - movq %rcx,%r13 - rolq $1,%rcx - xorq %rax,%rcx - xorq %r11,%rdx - - rolq $1,%rax - xorq %rdx,%rax - xorq 28(%rdi),%rbx - - rolq $1,%rdx - xorq %rbx,%rdx - xorq 52(%rdi),%rbp - - rolq $1,%rbx - xorq %rbp,%rbx - - rolq $1,%rbp - xorq %r13,%rbp - xorq %rcx,%r9 - xorq %rdx,%r10 - rolq $44,%r9 - xorq %rbp,%r11 - xorq %rax,%r12 - rolq $43,%r10 - xorq %rbx,%r8 - movq %r9,%r13 - rolq $21,%r11 - orq %r10,%r9 - xorq %r8,%r9 - rolq $14,%r12 - - xorq (%r15),%r9 - leaq 8(%r15),%r15 - - movq %r12,%r14 - andq %r11,%r12 - movq %r9,-100(%rsi) - xorq %r10,%r12 - notq %r10 - movq %r12,-84(%rsi) - - orq %r11,%r10 - movq 76(%rdi),%r12 - xorq %r13,%r10 - movq %r10,-92(%rsi) - - andq %r8,%r13 - movq -28(%rdi),%r9 - xorq %r14,%r13 - movq -20(%rdi),%r10 - movq %r13,-68(%rsi) - - orq %r8,%r14 - movq -76(%rdi),%r8 - xorq %r11,%r14 - movq 28(%rdi),%r11 - movq %r14,-76(%rsi) - - - xorq %rbp,%r8 - xorq %rdx,%r12 - rolq $28,%r8 - xorq %rcx,%r11 - xorq %rax,%r9 - rolq $61,%r12 - rolq $45,%r11 - xorq %rbx,%r10 - rolq $20,%r9 - movq %r8,%r13 - orq %r12,%r8 - rolq $3,%r10 - - xorq %r11,%r8 - movq %r8,-36(%rsi) - - movq %r9,%r14 - andq %r13,%r9 - movq -92(%rdi),%r8 - xorq %r12,%r9 - notq %r12 - movq %r9,-28(%rsi) - - orq %r11,%r12 - movq -44(%rdi),%r9 - xorq %r10,%r12 - movq %r12,-44(%rsi) - - andq %r10,%r11 - movq 60(%rdi),%r12 - xorq %r14,%r11 - movq %r11,-52(%rsi) - - orq %r10,%r14 - movq 4(%rdi),%r10 - xorq %r13,%r14 - movq 52(%rdi),%r11 - movq %r14,-60(%rsi) - - - xorq %rbp,%r10 - xorq %rax,%r11 - rolq $25,%r10 - xorq %rdx,%r9 - rolq $8,%r11 - xorq %rbx,%r12 - rolq $6,%r9 - xorq %rcx,%r8 - rolq $18,%r12 - movq %r10,%r13 - andq %r11,%r10 - rolq $1,%r8 - - notq %r11 - xorq %r9,%r10 - movq %r10,-12(%rsi) - - movq %r12,%r14 - andq %r11,%r12 - movq -12(%rdi),%r10 - xorq %r13,%r12 - movq %r12,-4(%rsi) - - orq %r9,%r13 - movq 84(%rdi),%r12 - xorq %r8,%r13 - movq %r13,-20(%rsi) - - andq %r8,%r9 - xorq %r14,%r9 - movq %r9,12(%rsi) - - orq %r8,%r14 - movq -60(%rdi),%r9 - xorq %r11,%r14 - movq 36(%rdi),%r11 - movq %r14,4(%rsi) - - - movq -68(%rdi),%r8 - - xorq %rcx,%r10 - xorq %rdx,%r11 - rolq $10,%r10 - xorq %rbx,%r9 - rolq $15,%r11 - xorq %rbp,%r12 - rolq $36,%r9 - xorq %rax,%r8 - rolq $56,%r12 - movq %r10,%r13 - orq %r11,%r10 - rolq $27,%r8 - - notq %r11 - xorq %r9,%r10 - movq %r10,28(%rsi) - - movq %r12,%r14 - orq %r11,%r12 - xorq %r13,%r12 - movq %r12,36(%rsi) - - andq %r9,%r13 - xorq %r8,%r13 - movq %r13,20(%rsi) - - orq %r8,%r9 - xorq %r14,%r9 - movq %r9,52(%rsi) - - andq %r14,%r8 - xorq %r11,%r8 - movq %r8,44(%rsi) - - - xorq -84(%rdi),%rdx - xorq -36(%rdi),%rbp - rolq $62,%rdx - xorq 68(%rdi),%rcx - rolq $55,%rbp - xorq 12(%rdi),%rax - rolq $2,%rcx - xorq 20(%rdi),%rbx - xchgq %rsi,%rdi - rolq $39,%rax - rolq $41,%rbx - movq %rdx,%r13 - andq %rbp,%rdx - notq %rbp - xorq %rcx,%rdx - movq %rdx,92(%rdi) - - movq %rax,%r14 - andq %rbp,%rax - xorq %r13,%rax - movq %rax,60(%rdi) - - orq %rcx,%r13 - xorq %rbx,%r13 - movq %r13,84(%rdi) - - andq %rbx,%rcx - xorq %r14,%rcx - movq %rcx,76(%rdi) - - orq %r14,%rbx - xorq %rbp,%rbx - movq %rbx,68(%rdi) - - movq %rdx,%rbp - movq %r13,%rdx - - testq $255,%r15 - jnz .Loop - - leaq -192(%r15),%r15 - .byte 0xf3,0xc3 -.cfi_endproc -.size __KeccakF1600,.-__KeccakF1600 - -.globl KeccakF1600 -.type KeccakF1600,@function -.align 32 -KeccakF1600: -.cfi_startproc - .byte 0xf3,0x0f,0x1e,0xfa - - - pushq %rbx -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbx,-16 - pushq %rbp -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbp,-24 - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r12,-32 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r13,-40 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r14,-48 - pushq %r15 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r15,-56 - - leaq 100(%rdi),%rdi - subq $200,%rsp -.cfi_adjust_cfa_offset 200 - - - notq -92(%rdi) - notq -84(%rdi) - notq -36(%rdi) - notq -4(%rdi) - notq 36(%rdi) - notq 60(%rdi) - - leaq iotas(%rip),%r15 - leaq 100(%rsp),%rsi - - call __KeccakF1600 - - notq -92(%rdi) - notq -84(%rdi) - notq -36(%rdi) - notq -4(%rdi) - notq 36(%rdi) - notq 60(%rdi) - leaq -100(%rdi),%rdi - - leaq 248(%rsp),%r11 -.cfi_def_cfa %r11,8 - movq -48(%r11),%r15 - movq -40(%r11),%r14 - movq -32(%r11),%r13 - movq -24(%r11),%r12 - movq -16(%r11),%rbp - movq -8(%r11),%rbx - leaq (%r11),%rsp -.cfi_restore %r12 -.cfi_restore %r13 -.cfi_restore %r14 -.cfi_restore %r15 -.cfi_restore %rbp -.cfi_restore %rbx - .byte 0xf3,0xc3 -.cfi_endproc -.size KeccakF1600,.-KeccakF1600 -.globl SHA3_absorb -.type SHA3_absorb,@function -.align 32 -SHA3_absorb: -.cfi_startproc - .byte 0xf3,0x0f,0x1e,0xfa - - - pushq %rbx -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbx,-16 - pushq %rbp -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbp,-24 - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r12,-32 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r13,-40 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r14,-48 - pushq %r15 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r15,-56 - - leaq 100(%rdi),%rdi - subq $232,%rsp -.cfi_adjust_cfa_offset 232 - - - movq %rsi,%r9 - leaq 100(%rsp),%rsi - - notq -92(%rdi) - notq -84(%rdi) - notq -36(%rdi) - notq -4(%rdi) - notq 36(%rdi) - notq 60(%rdi) - leaq iotas(%rip),%r15 - - movq %rcx,216-100(%rsi) - -.Loop_absorb: - cmpq %rcx,%rdx - jc .Ldone_absorb - - shrq $3,%rcx - leaq -100(%rdi),%r8 - -.Lblock_absorb: - movq (%r9),%rax - leaq 8(%r9),%r9 - xorq (%r8),%rax - leaq 8(%r8),%r8 - subq $8,%rdx - movq %rax,-8(%r8) - subq $1,%rcx - jnz .Lblock_absorb - - movq %r9,200-100(%rsi) - movq %rdx,208-100(%rsi) - call __KeccakF1600 - movq 200-100(%rsi),%r9 - movq 208-100(%rsi),%rdx - movq 216-100(%rsi),%rcx - jmp .Loop_absorb - -.align 32 -.Ldone_absorb: - movq %rdx,%rax - - notq -92(%rdi) - notq -84(%rdi) - notq -36(%rdi) - notq -4(%rdi) - notq 36(%rdi) - notq 60(%rdi) - - leaq 280(%rsp),%r11 -.cfi_def_cfa %r11,8 - movq -48(%r11),%r15 - movq -40(%r11),%r14 - movq -32(%r11),%r13 - movq -24(%r11),%r12 - movq -16(%r11),%rbp - movq -8(%r11),%rbx - leaq (%r11),%rsp -.cfi_restore %r12 -.cfi_restore %r13 -.cfi_restore %r14 -.cfi_restore %r15 -.cfi_restore %rbp -.cfi_restore %rbx - .byte 0xf3,0xc3 -.cfi_endproc -.size SHA3_absorb,.-SHA3_absorb -.globl SHA3_squeeze -.type SHA3_squeeze,@function -.align 32 -SHA3_squeeze: -.cfi_startproc - .byte 0xf3,0x0f,0x1e,0xfa - - - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r12,-16 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r13,-24 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r14,-32 - subq $32,%rsp -.cfi_adjust_cfa_offset 32 - - - shrq $3,%rcx - movq %rdi,%r8 - movq %rsi,%r12 - movq %rdx,%r13 - movq %rcx,%r14 - jmp .Loop_squeeze - -.align 32 -.Loop_squeeze: - cmpq $8,%r13 - jb .Ltail_squeeze - - movq (%r8),%rax - leaq 8(%r8),%r8 - movq %rax,(%r12) - leaq 8(%r12),%r12 - subq $8,%r13 - jz .Ldone_squeeze - - subq $1,%rcx - jnz .Loop_squeeze - - movq %rdi,%rcx - call KeccakF1600 - movq %rdi,%r8 - movq %r14,%rcx - jmp .Loop_squeeze - -.Ltail_squeeze: - movq %r8,%rsi - movq %r12,%rdi - movq %r13,%rcx -.byte 0xf3,0xa4 - -.Ldone_squeeze: - movq 32(%rsp),%r14 - movq 40(%rsp),%r13 - movq 48(%rsp),%r12 - addq $56,%rsp -.cfi_adjust_cfa_offset -56 -.cfi_restore %r12 -.cfi_restore %r13 -.cfi_restore %r14 - .byte 0xf3,0xc3 -.cfi_endproc -.size SHA3_squeeze,.-SHA3_squeeze -.align 256 -.quad 0,0,0,0,0,0,0,0 -.type iotas,@object -iotas: -.quad 0x0000000000000001 -.quad 0x0000000000008082 -.quad 0x800000000000808a -.quad 0x8000000080008000 -.quad 0x000000000000808b -.quad 0x0000000080000001 -.quad 0x8000000080008081 -.quad 0x8000000000008009 -.quad 0x000000000000008a -.quad 0x0000000000000088 -.quad 0x0000000080008009 -.quad 0x000000008000000a -.quad 0x000000008000808b -.quad 0x800000000000008b -.quad 0x8000000000008089 -.quad 0x8000000000008003 -.quad 0x8000000000008002 -.quad 0x8000000000000080 -.quad 0x000000000000800a -.quad 0x800000008000000a -.quad 0x8000000080008081 -.quad 0x8000000000008080 -.quad 0x0000000080000001 -.quad 0x8000000080008008 -.size iotas,.-iotas -.byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 - -.section .note.gnu.property,"a",@note - .long 4,2f-1f,5 - .byte 0x47,0x4E,0x55,0 -1: .long 0xc0000002,4,3 -.align 8 -2: diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/mod.rs b/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/mod.rs deleted file mode 100644 index d9b6f95f2..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/keccak/mod.rs +++ /dev/null @@ -1,216 +0,0 @@ -#[cfg(all(target_arch = "aarch64", target_os = "linux"))] -std::arch::global_asm!(include_str!("keccak1600-armv8-elf.s"), options(raw)); -#[cfg(all(target_arch = "aarch64", target_os = "macos"))] -std::arch::global_asm!(include_str!("keccak1600-armv8-macho.s"), options(raw)); -#[cfg(target_arch = "x86_64")] -std::arch::global_asm!(include_str!("keccak1600-x86_64.s"), options(att_syntax)); - -pub use imp::*; - -#[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))] -mod imp { - const BLOCK_SIZE: usize = 136; - - #[derive(Default, Clone, Copy)] - #[repr(transparent)] - struct State([u64; 25]); - - unsafe extern "C" { - #[link_name = "SHA3_absorb"] - unsafe fn SHA3_absorb(state: *mut State, buf: *const u8, len: usize, r: usize) -> usize; - unsafe fn SHA3_squeeze(state: *mut State, buf: *mut u8, len: usize, r: usize); - } - - pub fn keccak_hash(data: impl AsRef<[u8]>) -> [u8; 32] { - let mut state = Keccak256::new(); - state.update(data); - state.finalize() - } - - #[derive(Clone)] - pub struct Keccak256 { - state: State, - tail_buf: [u8; BLOCK_SIZE], - tail_len: usize, - } - - impl Default for Keccak256 { - fn default() -> Self { - Self { - state: State::default(), - tail_buf: [0; BLOCK_SIZE], - tail_len: 0, - } - } - } - - impl Keccak256 { - #[inline] - pub fn new() -> Self { - Self::default() - } - - #[inline] - pub fn update(&mut self, data: impl AsRef<[u8]>) -> Self { - let mut data = data.as_ref(); - unsafe { - // partial block - if self.tail_len > 0 { - let need = BLOCK_SIZE - self.tail_len; - if data.len() < need { - // still partial block - self.tail_buf[self.tail_len..self.tail_len + data.len()] - .copy_from_slice(data); - self.tail_len += data.len(); - return self.clone(); - } - - // complete block - self.tail_buf[self.tail_len..BLOCK_SIZE].copy_from_slice(&data[..need]); - - SHA3_absorb( - &mut self.state, - self.tail_buf.as_ptr(), - self.tail_buf.len(), - BLOCK_SIZE, - ); - - self.tail_len = 0; - self.tail_buf.fill(0); - data = &data[need..]; - } - } - - match data { - [] => {} - data if data.len() < BLOCK_SIZE => unsafe { - self.tail_len = data.len(); - self.tail_buf - .get_unchecked_mut(..self.tail_len) - .copy_from_slice(data); - }, - data => unsafe { - let rem = SHA3_absorb(&mut self.state, data.as_ptr(), data.len(), BLOCK_SIZE); - self.tail_len = rem; - if rem != 0 { - let tail_data = data.get_unchecked(data.len() - rem..); - self.tail_buf - .get_unchecked_mut(..rem) - .copy_from_slice(tail_data); - } - }, - } - self.clone() - } - - #[inline] - pub fn finalize(mut self) -> [u8; 32] { - let mut hash_buf = [0u8; 32]; - - unsafe { - *self.tail_buf.get_unchecked_mut(self.tail_len) = 0x01; - *self.tail_buf.get_unchecked_mut(BLOCK_SIZE - 1) |= 0x80; - - SHA3_absorb( - &mut self.state, - self.tail_buf.as_ptr(), - self.tail_buf.len(), - BLOCK_SIZE, - ); - - SHA3_squeeze( - &mut self.state, - hash_buf.as_mut_ptr(), - hash_buf.len(), - BLOCK_SIZE, - ); - } - - hash_buf - } - } -} - -#[cfg(target_arch = "riscv64")] -mod imp { - pub fn keccak_hash(data: impl AsRef<[u8]>) -> [u8; 32] { - lambda_vm_syscalls::keccak::keccak256(data.as_ref()) - } - - #[derive(Clone, Default)] - pub struct Keccak256 { - data: Vec, - } - - impl Keccak256 { - #[inline] - pub fn new() -> Self { - Self::default() - } - - #[inline] - pub fn update(&mut self, data: impl AsRef<[u8]>) -> Self { - let data = data.as_ref(); - if !data.is_empty() { - self.data.extend_from_slice(data); - } - self.clone() - } - - #[inline] - pub fn finalize(self) -> [u8; 32] { - lambda_vm_syscalls::keccak::keccak256(&self.data) - } - } -} - -#[cfg(not(any( - target_arch = "x86_64", - target_arch = "aarch64", - target_arch = "riscv64" -)))] -mod imp { - use tiny_keccak::{Hasher, Keccak}; - - pub fn keccak_hash(data: impl AsRef<[u8]>) -> [u8; 32] { - let mut out = [0u8; 32]; - let mut h = Keccak::v256(); - h.update(data.as_ref()); - h.finalize(&mut out); - out - } - - #[derive(Clone)] - pub struct Keccak256 { - h: Keccak, - } - - impl Default for Keccak256 { - fn default() -> Self { - Self::new() - } - } - - impl Keccak256 { - #[inline] - pub fn new() -> Self { - Self { h: Keccak::v256() } - } - - #[inline] - pub fn update(&mut self, data: impl AsRef<[u8]>) -> Self { - let d = data.as_ref(); - if !d.is_empty() { - self.h.update(d); - } - self.clone() - } - - #[inline] - pub fn finalize(self) -> [u8; 32] { - let mut out = [0u8; 32]; - self.h.finalize(&mut out); - out - } - } -} diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/kzg.rs b/executor/programs/rust/ethrex/patches/ethrex-crypto/kzg.rs deleted file mode 100644 index 40cf6e400..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/kzg.rs +++ /dev/null @@ -1,283 +0,0 @@ -// TODO: Currently, we cannot include the types crate independently of common because the crates are not yet split. -// After issue #4596 ("Split types crate from common") is resolved, update this to import the types crate directly, -// so that crypto/kzg.rs does not depend on common for type definitions. -pub const BYTES_PER_FIELD_ELEMENT: usize = 32; -pub const FIELD_ELEMENTS_PER_BLOB: usize = 4096; -pub const BYTES_PER_BLOB: usize = BYTES_PER_FIELD_ELEMENT * FIELD_ELEMENTS_PER_BLOB; -pub const FIELD_ELEMENTS_PER_EXT_BLOB: usize = 2 * FIELD_ELEMENTS_PER_BLOB; -pub const FIELD_ELEMENTS_PER_CELL: usize = 64; -pub const BYTES_PER_CELL: usize = FIELD_ELEMENTS_PER_CELL * BYTES_PER_FIELD_ELEMENT; -pub const CELLS_PER_EXT_BLOB: usize = FIELD_ELEMENTS_PER_EXT_BLOB / FIELD_ELEMENTS_PER_CELL; - -// https://github.com/ethereum/c-kzg-4844?tab=readme-ov-file#precompute -// For Risc0 we need this parameter to be 0. -// For the rest we keep the value 8 due to optimizations. -#[cfg(not(feature = "risc0"))] -pub const KZG_PRECOMPUTE: u64 = 8; -#[cfg(feature = "risc0")] -pub const KZG_PRECOMPUTE: u64 = 0; - -type Bytes48 = [u8; 48]; -type Blob = [u8; BYTES_PER_BLOB]; -type Commitment = Bytes48; -type Proof = Bytes48; - -/// Schedules the Ethereum trusted setup to load on a background thread so later KZG operations avoid the first-call cost. -pub fn warm_up_trusted_setup() { - #[cfg(feature = "c-kzg")] - { - let _ = std::thread::Builder::new() - .name("kzg-warmup".into()) - .spawn(|| { - std::hint::black_box(c_kzg::ethereum_kzg_settings(KZG_PRECOMPUTE)); - }); - } -} - -#[derive(thiserror::Error, Debug)] -pub enum KzgError { - #[cfg(feature = "c-kzg")] - #[error("c-kzg error: {0}")] - CKzg(#[from] c_kzg::Error), - #[cfg(feature = "kzg-rs")] - #[error("kzg-rs error: {0}")] - KzgRs(kzg_rs::KzgError), - #[cfg(feature = "openvm-kzg")] - #[error("openvm-kzg error: {0}")] - OpenvmKzg(openvm_kzg::KzgError), - #[cfg(not(feature = "c-kzg"))] - #[error("{0} is not supported without c-kzg feature enabled")] - NotSupportedWithoutCKZG(String), - #[error("unimplemented: {0}")] - Unimplemented(String), -} - -#[cfg(feature = "kzg-rs")] -impl From for KzgError { - fn from(value: kzg_rs::KzgError) -> Self { - KzgError::KzgRs(value) - } -} - -#[cfg(feature = "openvm-kzg")] -impl From for KzgError { - fn from(value: openvm_kzg::KzgError) -> Self { - KzgError::OpenvmKzg(value) - } -} - -/// Verifies a KZG proof for blob committed data as defined by EIP-7594. -#[allow(unused_variables)] -pub fn verify_cell_kzg_proof_batch( - blobs: &[Blob], - commitments: &[Commitment], - cell_proof: &[Proof], -) -> Result { - #[cfg(not(feature = "c-kzg"))] - return Err(KzgError::NotSupportedWithoutCKZG(String::from( - "Cell proof verification", - ))); - #[cfg(feature = "c-kzg")] - { - let c_kzg_settings = c_kzg::ethereum_kzg_settings(KZG_PRECOMPUTE); - let mut cells = Vec::new(); - for blob in blobs { - let blob: c_kzg::Blob = (*blob).into(); - let cells_blob = c_kzg_settings - .compute_cells(&blob) - .map_err(KzgError::CKzg)?; - cells.extend(*cells_blob); - } - c_kzg::KzgSettings::verify_cell_kzg_proof_batch( - c_kzg_settings, - &commitments - .iter() - .flat_map(|commitment| { - std::iter::repeat_n((*commitment).into(), CELLS_PER_EXT_BLOB) - }) - .collect::>(), - &std::iter::repeat_n(0..CELLS_PER_EXT_BLOB as u64, blobs.len()) - .flatten() - .collect::>(), - &cells, - &cell_proof - .iter() - .map(|proof| (*proof).into()) - .collect::>(), - ) - .map_err(KzgError::from) - } -} - -/// Verifies a KZG proof for blob committed data, as defined by c-kzg-4844. -pub fn verify_blob_kzg_proof( - blob: Blob, - commitment: Commitment, - proof: Proof, -) -> Result { - #[cfg(all( - not(feature = "c-kzg"), - not(feature = "openvm-kzg"), - not(feature = "kzg-rs") - ))] - { - return Err(KzgError::Unimplemented( - "One of features c-kzg, openvm-kzg or kzg-rs should be active".to_string(), - )); - } - #[cfg(all( - not(feature = "c-kzg"), - not(feature = "openvm-kzg"), - feature = "kzg-rs" - ))] - { - kzg_rs::KzgProof::verify_blob_kzg_proof( - kzg_rs::Blob(blob), - &kzg_rs::Bytes48(commitment), - &kzg_rs::Bytes48(proof), - &kzg_rs::get_kzg_settings(), - ) - .map_err(KzgError::from) - } - #[cfg(all(not(feature = "c-kzg"), feature = "openvm-kzg"))] - { - Err(KzgError::Unimplemented( - "openvm-kzg doesn't implement verify_blob_kzg_proof".to_string(), - )) - } - #[cfg(all(feature = "c-kzg", not(feature = "openvm-kzg")))] - { - let c_kzg_settings = c_kzg::ethereum_kzg_settings(KZG_PRECOMPUTE); - c_kzg_settings - .verify_blob_kzg_proof(&blob.into(), &commitment.into(), &proof.into()) - .map_err(KzgError::from) - } - #[cfg(all(feature = "c-kzg", feature = "openvm-kzg"))] - { - compile_error!("you must enable only one of c-kzg or openvm-kzg feature flags") - } -} - -#[cfg(feature = "c-kzg")] -pub fn verify_kzg_proof_batch( - blobs: &[Blob], - commitments: &[Commitment], - cell_proof: &[Proof], -) -> Result { - { - // perf note: c_kzg::Blob is repr C maybe a unsafe transmute improves perf if the collect were deemed costly - let blobs: Vec<_> = blobs.iter().map(|x| c_kzg::Blob::new(*x)).collect(); - let c_kzg_settings = c_kzg::ethereum_kzg_settings(KZG_PRECOMPUTE); - c_kzg_settings - .verify_blob_kzg_proof_batch( - &blobs, - &commitments - .iter() - .map(|x| c_kzg::Bytes48::new(*x)) - .collect::>(), - &cell_proof - .iter() - .map(|proof| (*proof).into()) - .collect::>(), - ) - .map_err(KzgError::from) - } -} - -/// Verifies that p(z) = y given a commitment that corresponds to the polynomial p(x) and a KZG proof -pub fn verify_kzg_proof( - commitment_bytes: [u8; 48], - z: [u8; 32], - y: [u8; 32], - proof_bytes: [u8; 48], -) -> Result { - #[cfg(all( - not(feature = "c-kzg"), - not(feature = "openvm-kzg"), - not(feature = "kzg-rs") - ))] - { - return Err(KzgError::Unimplemented( - "One of features c-kzg, openvm-kzg or kzg-rs should be active".to_string(), - )); - } - #[cfg(all( - not(feature = "c-kzg"), - not(feature = "openvm-kzg"), - feature = "kzg-rs" - ))] - { - kzg_rs::KzgProof::verify_kzg_proof( - &kzg_rs::Bytes48(commitment_bytes), - &kzg_rs::Bytes32(z), - &kzg_rs::Bytes32(y), - &kzg_rs::Bytes48(proof_bytes), - &kzg_rs::get_kzg_settings(), - ) - .map_err(KzgError::from) - } - #[cfg(all(not(feature = "c-kzg"), feature = "openvm-kzg"))] - { - openvm_kzg::KzgProof::verify_kzg_proof( - &openvm_kzg::Bytes48::from_slice(&commitment_bytes)?, - &openvm_kzg::Bytes32::from_slice(&z)?, - &openvm_kzg::Bytes32::from_slice(&y)?, - &openvm_kzg::Bytes48::from_slice(&proof_bytes)?, - &openvm_kzg::get_kzg_settings(), - ) - .map_err(KzgError::from) - } - #[cfg(all(feature = "c-kzg", not(feature = "openvm-kzg")))] - { - let c_kzg_settings = c_kzg::ethereum_kzg_settings(KZG_PRECOMPUTE); - c_kzg_settings - .verify_kzg_proof( - &commitment_bytes.into(), - &z.into(), - &y.into(), - &proof_bytes.into(), - ) - .map_err(KzgError::from) - } - #[cfg(all(feature = "c-kzg", feature = "openvm-kzg"))] - { - compile_error!("you must enable only one of c-kzg or openvm-kzg feature flags") - } -} - -#[cfg(feature = "c-kzg")] -pub fn blob_to_kzg_commitment_and_proof(blob: &Blob) -> Result<(Commitment, Proof), KzgError> { - let blob: c_kzg::Blob = (*blob).into(); - - let c_kzg_settings = c_kzg::ethereum_kzg_settings(KZG_PRECOMPUTE); - - let commitment = c_kzg::KzgSettings::blob_to_kzg_commitment(c_kzg_settings, &blob)?; - - let commitment_bytes = commitment.to_bytes(); - let proof = c_kzg_settings.compute_blob_kzg_proof(&blob, &commitment_bytes)?; - - let proof_bytes = proof.to_bytes(); - - Ok((commitment_bytes.into_inner(), proof_bytes.into_inner())) -} - -#[cfg(feature = "c-kzg")] -pub fn blob_to_commitment_and_cell_proofs( - blob: &Blob, -) -> Result<(Commitment, Vec), KzgError> { - let c_kzg_settings = c_kzg::ethereum_kzg_settings(KZG_PRECOMPUTE); - - let blob: c_kzg::Blob = (*blob).into(); - - let commitment = c_kzg::KzgSettings::blob_to_kzg_commitment(c_kzg_settings, &blob)?; - - let commitment_bytes = commitment.to_bytes(); - - let (_cells, cell_proofs) = c_kzg_settings - .compute_cells_and_kzg_proofs(&blob) - .map_err(KzgError::CKzg)?; - - let cell_proofs = cell_proofs.map(|p| p.to_bytes().into_inner()); - - Ok((commitment_bytes.into_inner(), cell_proofs.to_vec())) -} diff --git a/executor/programs/rust/ethrex/patches/ethrex-crypto/lib.rs b/executor/programs/rust/ethrex/patches/ethrex-crypto/lib.rs deleted file mode 100644 index 4e78534e4..000000000 --- a/executor/programs/rust/ethrex/patches/ethrex-crypto/lib.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod blake2f; -pub mod keccak; -pub mod kzg; diff --git a/executor/programs/rust/ethrex/src/main.rs b/executor/programs/rust/ethrex/src/main.rs index 4f608ef9e..dc63d3736 100644 --- a/executor/programs/rust/ethrex/src/main.rs +++ b/executor/programs/rust/ethrex/src/main.rs @@ -1,10 +1,15 @@ -use guest_program::{execution::execution_program, input::ProgramInput}; +use std::sync::Arc; + +use ethrex_guest_program::crypto::lambdavm::LambdaVmCrypto; +use ethrex_guest_program::l1::{ProgramInput, execution_program}; use rkyv::rancor::Error; -use lambda_vm_syscalls as syscalls; + pub fn main() { - let input = syscalls::syscalls::get_private_input(); + let input = lambda_vm_syscalls::syscalls::get_private_input(); let input = rkyv::from_bytes::(&input).unwrap(); - let output = execution_program(input).unwrap(); - let output_bytes = output.encode(); - syscalls::syscalls::commit(&output_bytes); + // LambdaVM crypto provider: keccak256 routes to our keccak_permute precompile; + // ECDSA/BN254/KZG/etc. fall back to pure-Rust trait defaults for now. + let crypto = Arc::new(LambdaVmCrypto); + let output = execution_program(input, crypto).unwrap(); + lambda_vm_syscalls::syscalls::commit(&output.encode()); } diff --git a/executor/tests/README.md b/executor/tests/README.md index a6b3f4bf0..2a703844b 100644 --- a/executor/tests/README.md +++ b/executor/tests/README.md @@ -2,28 +2,48 @@ ## Ethrex private inputs -The `ethrex_*.bin` files are rkyv-serialized `guest_program::input::ProgramInput` -values consumed by `executor/programs/rust/ethrex`. +The `ethrex_*.bin` files are rkyv-serialized `ethrex_guest_program::l1::ProgramInput` +values consumed by the ethrex guest (`executor/programs/rust/ethrex`). -The ethrex guest and the native test reference are pinned to: +The ethrex guest, the native test reference, and the fixture generator are all +pinned to the same ethrex revision (the open LambdaVM-backend PR branch, until it +merges to `main`): ```text https://github.com/lambdaclass/ethrex.git -a9de3e8b405dbf406cac31b930fd1ffdc216a429 +156cb8d6a3974f411d71622eecd1b249ee37ff1c ``` +### Generation + +These blobs are generated reproducibly by the in-repo tool `tooling/ethrex-fixtures` +(in-memory, offline — no RPC). It builds a synthetic block with N signed ETH +transfers from a funded genesis account and serializes the resulting +`ProgramInput`: + +```bash +cd tooling/ethrex-fixtures +cargo run --release -- 0 ../../executor/tests/ethrex_empty_block.bin # empty block +cargo run --release -- 1 ../../executor/tests/ethrex_simple_tx.bin # 1 transfer +cargo run --release -- 10 ../../executor/tests/ethrex_10_transfers.bin # 10 transfers +``` + +To regenerate after an ethrex rev bump, update the `rev` in +`tooling/ethrex-fixtures/Cargo.toml` (and the guest's), rerun the commands above, +and refresh the checksums below. + Known fixtures: ```text ethrex_empty_block.bin - sha256: 06626a051c07844570feae3cc6dc3831e0143ca81dbb1a56d4bf4e195c0b9411 - contents: stateless ethrex empty block ProgramInput + sha256: d3e594f07cc74e4ddc9db9e9db220a65a2d2e578b619fc3ce06e346007b3ca43 + contents: stateless ethrex empty block ProgramInput (0 transactions) ethrex_simple_tx.bin - sha256: 82998bea989ed4aa98b4f4b1476a7d0a4828a4f446cd7edff670418ba330e94b + sha256: 15e3b3efa434186682537755d828ac8bbdde4be3fc7cbe34f26687b618a6c6ab contents: stateless ethrex block with one plain ETH transfer transaction -``` -The original generation command for these blobs is not recorded in this -repository. A follow-up should add an in-repo crate for generating custom ethrex -block fixtures. +ethrex_10_transfers.bin + sha256: 38901ee4d40b99cf0aa7f642a92f0fc8db76d974bf43033a1673839020c3c28e + contents: stateless ethrex block with ten plain ETH transfer transactions +``` diff --git a/executor/tests/ethrex_10_transfers.bin b/executor/tests/ethrex_10_transfers.bin new file mode 100644 index 000000000..8b6c89182 Binary files /dev/null and b/executor/tests/ethrex_10_transfers.bin differ diff --git a/executor/tests/ethrex_empty_block.bin b/executor/tests/ethrex_empty_block.bin index b3551200a..e942b0c78 100644 Binary files a/executor/tests/ethrex_empty_block.bin and b/executor/tests/ethrex_empty_block.bin differ diff --git a/executor/tests/ethrex_simple_tx.bin b/executor/tests/ethrex_simple_tx.bin index a8e91ed00..5a528b661 100644 Binary files a/executor/tests/ethrex_simple_tx.bin and b/executor/tests/ethrex_simple_tx.bin differ diff --git a/executor/tests/rust.rs b/executor/tests/rust.rs index b42f48d0f..ad5968071 100644 --- a/executor/tests/rust.rs +++ b/executor/tests/rust.rs @@ -276,15 +276,21 @@ fn test_args_panics() { } } +/// Larger-block smoke test: a synthetic ethrex block with 10 ETH transfers. +/// (Replaces the old `ethrex_hoodi.bin` real-block fixture, which was in the +/// pre-Crypto-trait ethrex format and no longer deserializes.) Fixture is +/// generated by `tooling/ethrex-fixtures`; see `tests/README.md`. #[ignore = "Ignored until the vm is fast enough to run this test"] #[test] fn test_ethrex() { - use guest_program::{execution::execution_program, input::ProgramInput}; + use ethrex_guest_program::crypto::NativeCrypto; + use ethrex_guest_program::l1::{ProgramInput, execution_program}; use rkyv::rancor::Error; use std::fs; - let inputs = fs::read("tests/ethrex_hoodi.bin").unwrap(); + use std::sync::Arc; + let inputs = fs::read("tests/ethrex_10_transfers.bin").unwrap(); let input = rkyv::from_bytes::(&inputs).unwrap(); - let output = execution_program(input).unwrap(); + let output = execution_program(input, Arc::new(NativeCrypto)).unwrap(); run_program_and_check_public_output( "./program_artifacts/rust/ethrex.elf", output.encode(), @@ -296,13 +302,18 @@ fn test_ethrex() { /// transaction. Execution only — no proving — against the ethrex guest ELF /// built from the same pinned ethrex revision as the native reference. The /// fixture is a serialized `ProgramInput`; see `tests/README.md` for provenance. +/// +/// The fixture is generated by `tooling/ethrex-fixtures` at the same ethrex rev +/// as the guest (see `tests/README.md`). #[test] fn test_ethrex_simple_tx() { - use guest_program::{execution::execution_program, input::ProgramInput}; + use ethrex_guest_program::crypto::NativeCrypto; + use ethrex_guest_program::l1::{ProgramInput, execution_program}; use rkyv::rancor::Error; + use std::sync::Arc; let inputs = std::fs::read("tests/ethrex_simple_tx.bin").unwrap(); let input = rkyv::from_bytes::(&inputs).unwrap(); - let output = execution_program(input).unwrap(); + let output = execution_program(input, Arc::new(NativeCrypto)).unwrap(); run_program_and_check_public_output( "./program_artifacts/rust/ethrex.elf", output.encode(), diff --git a/tooling/ethrex-fixtures/Cargo.lock b/tooling/ethrex-fixtures/Cargo.lock new file mode 100644 index 000000000..8d671d94c --- /dev/null +++ b/tooling/ethrex-fixtures/Cargo.lock @@ -0,0 +1,4688 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint", + "num-integer", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "arrayvec", + "digest", + "educe", + "itertools 0.13.0", + "num-bigint", + "num-traits", + "paste", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash", + "ark-ff", + "ark-serialize", + "ark-std", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "arrayvec", + "digest", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.6", +] + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "axum" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" +dependencies = [ + "axum-core", + "base64", + "bytes", + "form_urlencoded", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "serde_core", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sha1", + "sync_wrapper", + "tokio", + "tokio-tungstenite", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "sync_wrapper", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-extra" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9963ff19f40c6102c76756ef0a46004c0d58957d87259fc9208ff8441c12ab96" +dependencies = [ + "axum", + "axum-core", + "bytes", + "futures-util", + "headers", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "serde_core", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bitcoin-io" +version = "0.1.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11301df0b06f22dea7bb1916403fdd88a371031e495c49b8f96931b28189e175" + +[[package]] +name = "bitcoin_hashes" +version = "0.14.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9901a56e133a1fc86eeb1113e2591f45f4682451ca893bff494d2f88918e3f" +dependencies = [ + "bitcoin-io", + "hex-conservative", +] + +[[package]] +name = "bitflags" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[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 = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + +[[package]] +name = "bls12_381" +version = "0.8.0" +source = "git+https://github.com/lambdaclass/bls12_381?branch=expose-affine-constructors#78cad0378b17fc3157b83f514be192bf46edf9a1" +dependencies = [ + "digest", + "ff", + "group", + "pairing", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "blst" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0caa33a2c0edca0419d15ac723dff03f1956f7978329b1e3b5fdaaaed9d3ca8b" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "rancor", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +dependencies = [ + "serde", +] + +[[package]] +name = "c-kzg" +version = "2.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6648ed1e4ea8e8a1a4a2c78e1cda29a3fd500bc622899c340d8525ea9a76b24a" +dependencies = [ + "blst", + "cc", + "glob", + "hex", + "libc", + "once_cell", + "serde", +] + +[[package]] +name = "cc" +version = "1.2.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dad887fd958be91b5098c0248def011f4523ab786cd411be668777e55063501f" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chrono" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "concat-kdf" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d72c1252426a83be2092dd5884a5f6e3b8e7180f6891b6263d2c21b92ec8816" +dependencies = [ + "digest", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const_format" +version = "0.2.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4481a617ad9a412be3b97c5d403fef8ed023103368908b9c50af598ff467cc1e" +dependencies = [ + "const_format_proc_macros", + "konst", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "ctrlc" +version = "3.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162" +dependencies = [ + "dispatch2", + "nix", + "windows-sys 0.61.2", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "data-encoding" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +dependencies = [ + "serde_core", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "syn", + "unicode-xid", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags", + "block2", + "libc", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "either" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enum-ordinalize" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "envy" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f47e0157f2cb54f5ae1bd371b30a2ae4311e1c028f575cd4e81de7353215965" +dependencies = [ + "serde", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "ethbloom" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c321610643004cf908ec0f5f2aa0d8f1f8e14b540562a2887a1111ff1ecbf7b" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-rlp", + "impl-serde", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ab15ed80916029f878e0267c3a9f92b67df55e79af370bf66199059ae2b4ee3" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-rlp", + "impl-serde", + "primitive-types", + "uint", +] + +[[package]] +name = "ethrex-blockchain" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "bytes", + "crossbeam", + "ethrex-common", + "ethrex-crypto", + "ethrex-metrics", + "ethrex-rlp", + "ethrex-storage", + "ethrex-trie", + "ethrex-vm", + "rayon", + "rustc-hash", + "thiserror 2.0.18", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "ethrex-common" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "bytes", + "crc32fast", + "ethereum-types", + "ethrex-crypto", + "ethrex-rlp", + "ethrex-trie", + "hex", + "hex-literal", + "hex-simd", + "indexmap 2.14.0", + "lazy_static", + "libc", + "lru", + "once_cell", + "rayon", + "rkyv", + "rustc-hash", + "secp256k1", + "serde", + "serde_json", + "sha2", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "ethrex-crypto" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "ark-bn254", + "ark-ec", + "ark-ff", + "bls12_381", + "c-kzg", + "ethereum-types", + "ff", + "hex-literal", + "k256", + "malachite", + "num-bigint", + "p256", + "ripemd", + "secp256k1", + "sha2", + "thiserror 2.0.18", + "tiny-keccak", +] + +[[package]] +name = "ethrex-fixtures" +version = "0.1.0" +dependencies = [ + "bytes", + "ethrex-blockchain", + "ethrex-common", + "ethrex-guest-program", + "ethrex-l2-rpc", + "ethrex-storage", + "hex", + "rkyv", + "secp256k1", + "serde_json", + "tokio", +] + +[[package]] +name = "ethrex-guest-program" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "bytes", + "ethereum-types", + "ethrex-common", + "ethrex-crypto", + "ethrex-l2-common", + "ethrex-rlp", + "ethrex-vm", + "hex", + "rkyv", + "serde", + "serde_with", + "thiserror 2.0.18", +] + +[[package]] +name = "ethrex-l2-common" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "bytes", + "ethereum-types", + "ethrex-common", + "ethrex-crypto", + "k256", + "lambdaworks-crypto", + "rkyv", + "secp256k1", + "serde", + "serde_with", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "ethrex-l2-rpc" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "axum", + "bytes", + "ethereum-types", + "ethrex-blockchain", + "ethrex-common", + "ethrex-crypto", + "ethrex-l2-common", + "ethrex-p2p", + "ethrex-rlp", + "ethrex-rpc", + "ethrex-storage", + "ethrex-storage-rollup", + "hex", + "reqwest", + "rustc-hex", + "secp256k1", + "serde", + "serde_json", + "thiserror 2.0.18", + "tokio", + "tower-http", + "tracing", + "tracing-subscriber", + "url", +] + +[[package]] +name = "ethrex-levm" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "bytes", + "derive_more", + "ethrex-common", + "ethrex-crypto", + "ethrex-rlp", + "malachite", + "rayon", + "rustc-hash", + "serde", + "strum", + "thiserror 2.0.18", +] + +[[package]] +name = "ethrex-metrics" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "axum", + "ethrex-common", + "prometheus", + "serde", + "serde_json", + "thiserror 2.0.18", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "ethrex-p2p" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "aes", + "aes-gcm", + "bytes", + "concat-kdf", + "crossbeam", + "ctr", + "ethereum-types", + "ethrex-blockchain", + "ethrex-common", + "ethrex-crypto", + "ethrex-l2-common", + "ethrex-rlp", + "ethrex-storage", + "ethrex-storage-rollup", + "ethrex-trie", + "futures", + "hex", + "hkdf", + "hmac", + "indexmap 2.14.0", + "lazy_static", + "lru", + "prometheus", + "rand 0.8.6", + "rayon", + "rustc-hash", + "secp256k1", + "serde", + "sha2", + "snap", + "spawned-concurrency", + "spawned-rt", + "thiserror 2.0.18", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", +] + +[[package]] +name = "ethrex-rlp" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "bytes", + "ethereum-types", + "thiserror 2.0.18", +] + +[[package]] +name = "ethrex-rpc" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "axum", + "axum-extra", + "bytes", + "envy", + "ethereum-types", + "ethrex-blockchain", + "ethrex-common", + "ethrex-crypto", + "ethrex-metrics", + "ethrex-p2p", + "ethrex-rlp", + "ethrex-storage", + "ethrex-trie", + "ethrex-vm", + "hex", + "hex-literal", + "jsonwebtoken", + "rand 0.8.6", + "reqwest", + "secp256k1", + "serde", + "serde_json", + "sha2", + "spawned-concurrency", + "spawned-rt", + "thiserror 2.0.18", + "tokio", + "tokio-util", + "tower-http", + "tracing", + "tracing-subscriber", + "uuid", +] + +[[package]] +name = "ethrex-storage" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "anyhow", + "bytes", + "ethrex-common", + "ethrex-crypto", + "ethrex-rlp", + "ethrex-trie", + "fastbloom", + "lru", + "rayon", + "rustc-hash", + "serde", + "serde_json", + "thiserror 2.0.18", + "tokio", + "tracing", +] + +[[package]] +name = "ethrex-storage-rollup" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "async-trait", + "bincode", + "ethereum-types", + "ethrex-common", + "ethrex-l2-common", + "futures", + "rkyv", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "ethrex-trie" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "anyhow", + "bytes", + "crossbeam", + "ethereum-types", + "ethrex-crypto", + "ethrex-rlp", + "lazy_static", + "rayon", + "rkyv", + "rustc-hash", + "serde", + "thiserror 2.0.18", +] + +[[package]] +name = "ethrex-vm" +version = "13.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=156cb8d6a3974f411d71622eecd1b249ee37ff1c#156cb8d6a3974f411d71622eecd1b249ee37ff1c" +dependencies = [ + "bytes", + "derive_more", + "dyn-clone", + "ethrex-common", + "ethrex-crypto", + "ethrex-levm", + "ethrex-rlp", + "rayon", + "rustc-hash", + "serde", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "fastbloom" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4" +dependencies = [ + "getrandom 0.3.4", + "libm", + "rand 0.9.4", + "siphasher", +] + +[[package]] +name = "fastrand" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand 0.8.6", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-executor" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-macro" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "wasip2", + "wasip3", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "h2" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "171fefbc92fe4a4de27e0698d6a5b392d6a0e333506bc49133760b3bcf948733" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.14.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "headers" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" +dependencies = [ + "base64", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-conservative" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hex-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f7685beb53fc20efc2605f32f5d51e9ba18b8ef237961d1760169d2290d3bee" +dependencies = [ + "outref", + "vsimd", +] + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "http" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "tokio", + "tokio-rustls", + "tower-service", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "system-configuration", + "tokio", + "tower-service", + "tracing", + "windows-registry", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" + +[[package]] +name = "icu_properties" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" + +[[package]] +name = "icu_provider" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "impl-codec" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d40b9d5e17727407e55028eafc22b2dc68781786e6d7eb8a21103f5058e3a14" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54ed8ad1f3877f7e775b8cbf30ed1bd3209a95401817f19a0eb4402d13f8cf90" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a143eada6a1ec4aefa5049037a26a6d597bfd64f8c026d07b77133e02b7dd0b" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2025f20d7a4fa7785846e7b63d10a76d3f1cee98ee5cb79ea59703f95e42162" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "jsonwebtoken" +version = "9.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" +dependencies = [ + "base64", + "js-sys", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "konst" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "128133ed7824fcd73d6e7b17957c5eb7bacb885649bd8c69708b2331a10bcefb" +dependencies = [ + "konst_macro_rules", +] + +[[package]] +name = "konst_macro_rules" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4933f3f57a8e9d9da04db23fb153356ecaf00cbd14aee46279c33dc80925c37" + +[[package]] +name = "lambdaworks-crypto" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58b1a1c1102a5a7fbbda117b79fb3a01e033459c738a3c1642269603484fd1c1" +dependencies = [ + "lambdaworks-math", + "rand 0.8.6", + "rand_chacha 0.3.1", + "serde", + "sha2", + "sha3", +] + +[[package]] +name = "lambdaworks-math" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "018a95aa873eb49896a858dee0d925c33f3978d073c64b08dd4f2c9b35a017c6" +dependencies = [ + "getrandom 0.2.17", + "num-bigint", + "num-traits", + "rand 0.8.6", + "serde", + "serde_json", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libc" +version = "0.2.186" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" + +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "litemap" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a" + +[[package]] +name = "lru" +version = "0.16.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" +dependencies = [ + "hashbrown 0.16.1", +] + +[[package]] +name = "malachite" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec410515e231332b14cd986a475d1c3323bcfa4c7efc038bfa1d5b410b1c57e4" +dependencies = [ + "malachite-base", + "malachite-nz", + "malachite-q", +] + +[[package]] +name = "malachite-base" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c738d3789301e957a8f7519318fcbb1b92bb95863b28f6938ae5a05be6259f34" +dependencies = [ + "hashbrown 0.15.5", + "itertools 0.14.0", + "libm", + "ryu", +] + +[[package]] +name = "malachite-nz" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1707c9a1fa36ce21749b35972bfad17bbf34cf5a7c96897c0491da321e387d3b" +dependencies = [ + "itertools 0.14.0", + "libm", + "malachite-base", + "wide", +] + +[[package]] +name = "malachite-q" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d764801aa4e96bbb69b389dcd03b50075345131cd63ca2e380bca71cc37a3675" +dependencies = [ + "itertools 0.14.0", + "malachite-base", + "malachite-nz", +] + +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + +[[package]] +name = "memchr" +version = "2.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mio" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "munge" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" +dependencies = [ + "munge_macro", +] + +[[package]] +name = "munge_macro" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "native-tls" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "nix" +version = "0.31.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" +dependencies = [ + "bitflags", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", +] + +[[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-conv" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" + +[[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-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "objc2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +dependencies = [ + "objc2-encode", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "openssl" +version = "0.10.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a45fa2aa886c42762255da344f0a0d313e254066c46aad76f300c3d3da62d967" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + +[[package]] +name = "openssl-sys" +version = "0.9.116" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28a22dc7140cda5f096e5e7724a6962ca81a7f8bfd2979f9b18c11af56318c4" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "outref" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[package]] +name = "parity-scale-codec" +version = "3.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "const_format", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "rustversion", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pem" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" +dependencies = [ + "base64", + "serde_core", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "potential_utf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + +[[package]] +name = "primitive-types" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "procfs" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" +dependencies = [ + "bitflags", + "hex", + "procfs-core", + "rustix 0.38.44", +] + +[[package]] +name = "procfs-core" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" +dependencies = [ + "bitflags", + "hex", +] + +[[package]] +name = "prometheus" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "libc", + "memchr", + "parking_lot", + "procfs", + "protobuf", + "thiserror 2.0.18", +] + +[[package]] +name = "protobuf" +version = "3.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65a1d4ddae7d8b5de68153b48f6aa3bba8cb002b243dbdbc55a5afbc98f99f4" +dependencies = [ + "once_cell", + "protobuf-support", + "thiserror 1.0.69", +] + +[[package]] +name = "protobuf-support" +version = "3.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e36c2f31e0a47f9280fb347ef5e461ffcd2c52dd520d8e216b52f93b0b0d7d6" +dependencies = [ + "thiserror 1.0.69", +] + +[[package]] +name = "ptr_meta" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "quote" +version = "1.0.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rancor" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee" +dependencies = [ + "ptr_meta", +] + +[[package]] +name = "rand" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[package]] +name = "rayon" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rend" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-tls", + "hyper-util", + "js-sys", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-native-tls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest", +] + +[[package]] +name = "rkyv" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73389e0c99e664f919275ab5b5b0471391fe9a8de61e1dff9b1eaf56a90f16e3" +dependencies = [ + "bytecheck", + "bytes", + "hashbrown 0.17.1", + "indexmap 2.14.0", + "munge", + "ptr_meta", + "rancor", + "rend", + "rkyv_derive", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d2ed0b54125315fb36bd021e82d314d1c126548f871634b483f46b31d13cac6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "rlp" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa24e92bb2a83198bb76d661a71df9f7076b8c420b8696e4d3d97d50d94479e3" +dependencies = [ + "bytes", + "rustc-hex", +] + +[[package]] +name = "rustc-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys 0.12.1", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.23.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" +dependencies = [ + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "safe_arch" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "schannel" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.6", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" +dependencies = [ + "cc", +] + +[[package]] +name = "security-framework" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +dependencies = [ + "bitflags", + "core-foundation 0.10.1", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" +dependencies = [ + "itoa", + "serde", + "serde_core", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" +dependencies = [ + "base64", + "bs58", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.14.0", + "schemars 0.9.0", + "schemars 1.2.1", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha3" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" +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 = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "simple_asn1" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d585997b0ac10be3c5ee635f1bab02d512760d14b7c468801ac8a01d9ae5f1d" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror 2.0.18", + "time", +] + +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "socket2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "spawned-concurrency" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc21166874e8cd7584ea795c223303160461f0bb1b571bc23e92ca2abb7c5149" +dependencies = [ + "futures", + "pin-project-lite", + "spawned-macros", + "spawned-rt", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "spawned-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d64742b41741dfebd5b5ba4dbc4cbc5cc91f4a2cf8107191007d64295682973" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "spawned-rt" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e270e6606a118708120671f2d171316762fa832cab73699c714c23aaafe6eb" +dependencies = [ + "ctrlc", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "system-configuration" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" +dependencies = [ + "bitflags", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom 0.3.4", + "once_cell", + "rustix 1.1.4", + "windows-sys 0.61.2", +] + +[[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.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl 2.0.18", +] + +[[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.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1aa89044e7786ffb2ec017acb22cb7de5b0be46d0f21aea2b224b8561e5db2" +dependencies = [ + "deranged", + "num-conv", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" + +[[package]] +name = "time-macros" +version = "0.2.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d3bfe86347f0cc659f586f01e26303ccd32418f26f30c7b0309b3ca3a07d695" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.52.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" +dependencies = [ + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-macros" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f72a05e828585856dacd553fba484c242c46e391fb0e58917c942ee9202915c" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite", +] + +[[package]] +name = "tokio-util" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "futures-util", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow", +] + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +dependencies = [ + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +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.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c01152af293afb9c7c2a57e4b559c5620b421f6d133261c60dd2d0cdb38e6b8" +dependencies = [ + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.9.4", + "sha1", + "thiserror 2.0.18", +] + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "uint" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "909988d098b2f738727b161a106cfc7cab00c539c2687a8836f8e565976fb53e" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", + "serde_derive", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "144d6b123cef80b301b8f72a9e2ca4370ddec21950d0a103dd22c437006d2db7" +dependencies = [ + "getrandom 0.4.2", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.3+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +dependencies = [ + "wit-bindgen 0.57.1", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.123" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a254a4b10c19a76f09a27640e7ffbf9bc30bf67e16a3bf28aaefa4920fe81563" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54568702fabf5d4849ce2b90fadfa64168a097eaf4b351ce9df8b687a0086aaf" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.123" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24a40fc75b0ec6f3746ceb10d36f53a93dcd68a93b11b6445983945d79eba0dc" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.123" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "908f34bd9b9ce3d4caf07b72dfab63d61504d156856c6bd3cd87fa350cf3985b" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.123" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7acbf7616c27b194bbb550bf77ed0c2c3e5b7fd1260a93082b95fb7f47959b92" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.14.0", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.5", + "indexmap 2.14.0", + "semver", +] + +[[package]] +name = "web-sys" +version = "0.3.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0871acf327f283dc6da28a1696cdc64fb355ba9f935d052021fa77f35cce69" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wide" +version = "0.7.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" +dependencies = [ + "bytemuck", + "safe_arch", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +dependencies = [ + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "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-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[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 = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap 2.14.0", + "prettyplease", + "syn", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap 2.14.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.14.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "writeable" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "yoke" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerotrie" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/tooling/ethrex-fixtures/Cargo.toml b/tooling/ethrex-fixtures/Cargo.toml new file mode 100644 index 000000000..0fed227fd --- /dev/null +++ b/tooling/ethrex-fixtures/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "ethrex-fixtures" +version = "0.1.0" +edition = "2024" + +# Detached workspace: keeps the heavy ethrex host deps out of the main build. +[workspace] + +[dependencies] +# Pinned to the SAME ethrex rev as the guest (open LambdaVM-backend PR branch) +# so the generated ProgramInput rkyv layout matches what the guest deserializes. +ethrex-blockchain = { git = "https://github.com/lambdaclass/ethrex.git", rev = "156cb8d6a3974f411d71622eecd1b249ee37ff1c", package = "ethrex-blockchain" } +ethrex-storage = { git = "https://github.com/lambdaclass/ethrex.git", rev = "156cb8d6a3974f411d71622eecd1b249ee37ff1c", package = "ethrex-storage" } +ethrex-common = { git = "https://github.com/lambdaclass/ethrex.git", rev = "156cb8d6a3974f411d71622eecd1b249ee37ff1c", package = "ethrex-common" } +ethrex-guest-program = { git = "https://github.com/lambdaclass/ethrex.git", rev = "156cb8d6a3974f411d71622eecd1b249ee37ff1c", package = "ethrex-guest-program" } +ethrex-l2-rpc = { git = "https://github.com/lambdaclass/ethrex.git", rev = "156cb8d6a3974f411d71622eecd1b249ee37ff1c", package = "ethrex-l2-rpc" } + +tokio = { version = "1", features = ["rt-multi-thread", "macros"] } +rkyv = { version = "0.8.10", features = ["std", "unaligned"] } +serde_json = "1" +bytes = "1" +secp256k1 = "0.30" +hex = "0.4" diff --git a/tooling/ethrex-fixtures/README.md b/tooling/ethrex-fixtures/README.md new file mode 100644 index 000000000..2805480e1 --- /dev/null +++ b/tooling/ethrex-fixtures/README.md @@ -0,0 +1,67 @@ +# ethrex-fixtures + +Generates synthetic **ethrex block fixtures** — serialized `ProgramInput` `.bin` +files — for the lambda-vm prover tests and benchmarks. Fully in-memory and +offline (no RPC, no node): it builds a genesis chain, creates a block with a +chosen number of signed ETH-transfer transactions, runs ethrex's stateless +witness generation, and writes the rkyv-encoded `ProgramInput`. + +The ethrex dependency is pinned to the **same revision as the guest** +(`executor/programs/rust/ethrex`), so the produced fixtures deserialize and +execute in the guest. When you bump the guest's ethrex rev, bump the `rev` in +this crate's `Cargo.toml` too and regenerate. + +## Prerequisites +- Rust (stable) and network access (the first build fetches the pinned ethrex + crates). **No RV64 target or sysroot needed** — this is a host tool. + +## How to run + +```bash +cd tooling/ethrex-fixtures +cargo run --release -- +``` + +- `` — how many ETH transfers to include in the block (`0` = empty + block). +- `` — where to write the `.bin` (relative to this directory). + +It prints the output size and the number of transactions included, e.g.: + +``` +wrote ../../executor/tests/ethrex_simple_tx.bin (12745 bytes): block #1 with 1/1 transfer(s) +``` + +## Creating blocks with different numbers of transactions + +Just change the first argument: + +```bash +# empty block (0 transactions) +cargo run --release -- 0 ../../executor/tests/ethrex_empty_block.bin + +# 1 transfer +cargo run --release -- 1 ../../executor/tests/ethrex_simple_tx.bin + +# 10 transfers +cargo run --release -- 10 ../../executor/tests/ethrex_10_transfers.bin + +# 50 transfers (custom) +cargo run --release -- 50 /tmp/ethrex_50_transfers.bin +``` + +After regenerating any committed fixture, refresh its checksum in +`executor/tests/README.md`. + +> Note: bigger blocks cost ~4M cycles per transfer (software ecrecover +> dominates), so they execute fine but may be too heavy to *prove* on a typical +> machine — e.g. 10 transfers ≈ 42M cycles. + +## Details +- Transactions are plain ETH transfers signed by a funded dev account from + `genesis.json` (well-known load-test key — not a secret), so output is + deterministic. +- Currently only ETH transfers are supported. (ERC20 / contract calls would be + a future extension.) +- Once the upstream LambdaVM-backend ethrex PR merges, this tool can be replaced + by `ethrex-replay custom block` on ethrex `main`. diff --git a/tooling/ethrex-fixtures/genesis.json b/tooling/ethrex-fixtures/genesis.json new file mode 100644 index 000000000..af3626151 --- /dev/null +++ b/tooling/ethrex-fixtures/genesis.json @@ -0,0 +1,1136 @@ +{ + "config": { + "chainId": 65536999, + "homesteadBlock": 0, + "daoForkSupport": false, + "eip150Block": 0, + "eip155Block": 0, + "eip158Block": 0, + "byzantiumBlock": 0, + "constantinopleBlock": 0, + "petersburgBlock": 0, + "istanbulBlock": 0, + "berlinBlock": 0, + "londonBlock": 0, + "terminalTotalDifficulty": "0x0", + "terminalTotalDifficultyPassed": true, + "shanghaiTime": 0, + "cancunTime": 0, + "pragueTime": 0, + "depositContractAddress": "0x00000000219ab540356cbb839cbe05303d7705fa", + "blobSchedule": { + "cancun": { + "target": 3, + "max": 6, + "baseFeeUpdateFraction": 3338477 + }, + "prague": { + "target": 6, + "max": 9, + "baseFeeUpdateFraction": 5007716 + } + }, + "mergeNetsplitBlock": 0 + }, + "nonce": "0x1234", + "timestamp": "1718040081", + "extraData": "0x", + "gasLimit": "0x8f0d180", + "difficulty": "0x1", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "coinbase": "0x0000000000000000000000000000000000000000", + "alloc": { + "0x0000000000000000000000000000000000000000": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x8943545177806ED17B9F23F0a21ee5948eCaa776": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000000000000000000000000000000000000ffff": { + "code": "0x608060405260043610610028575f3560e01c806351cff8d91461002c578063fccc281314610048575b5f5ffd5b6100466004803603810190610041919061021d565b610072565b005b348015610053575f5ffd5b5061005c6101bb565b6040516100699190610257565b60405180910390f35b5f34116100b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab906102f0565b60405180910390fd5b5f5f73ffffffffffffffffffffffffffffffffffffffff16346040516100d99061033b565b5f6040518083038185875af1925050503d805f8114610113576040519150601f19603f3d011682016040523d82523d5f602084013e610118565b606091505b505090508061015c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015390610399565b60405180910390fd5b348273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fbb2689ff876f7ef453cf8865dde5ab10349d222e2e1383c5152fbdb083f02da260405160405180910390a45050565b5f81565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101ec826101c3565b9050919050565b6101fc816101e2565b8114610206575f5ffd5b50565b5f81359050610217816101f3565b92915050565b5f60208284031215610232576102316101bf565b5b5f61023f84828501610209565b91505092915050565b610251816101e2565b82525050565b5f60208201905061026a5f830184610248565b92915050565b5f82825260208201905092915050565b7f5769746864726177616c20616d6f756e74206d75737420626520706f736974695f8201527f7665000000000000000000000000000000000000000000000000000000000000602082015250565b5f6102da602283610270565b91506102e582610280565b604082019050919050565b5f6020820190508181035f830152610307816102ce565b9050919050565b5f81905092915050565b50565b5f6103265f8361030e565b915061033182610318565b5f82019050919050565b5f6103458261031b565b9150819050919050565b7f4661696c656420746f206275726e2045746865720000000000000000000000005f82015250565b5f610383601483610270565b915061038e8261034f565b602082019050919050565b5f6020820190508181035f8301526103b081610377565b905091905056fea264697066735822122015163dbfc68a82a0fc2c352e9e434aa9e8e40a151f21454a0ac72bdeea67515164736f6c634300081b0033", + "storage": {}, + "balance": "0x0", + "nonce": "0x1" + }, + "0x00000000219ab540356cbb839cbe05303d7705fa": { + "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a2646970667358221220dceca8706b29e917dacf25fceef95acac8d90d765ac926663ce4096195952b6164736f6c634300060b0033", + "storage": {}, + "balance": "0x0", + "nonce": "0x0" + }, + "0x00000961ef480eb55e80d19ad83579a64c007002": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd", + "storage": {}, + "balance": "0x0", + "nonce": "0x1" + }, + "0x00000a8d3f37af8def18832962ee008d8dca4f7b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00002132ce94eefb06eb15898c1aabd94feb0ac2": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000029bd811d292e7f1cf36c0fa08fd753c45074": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000036e0f87f8cd3e97f9cfdb2e4e5ff193c217a": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000055acf237931902cebf4b905bf59813180555": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0000638374f7db166990bdc6abee884ee01a8920": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000086eeea461ca48e4d319f9789f3efd134e574": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00009074d8fc5eeb25f1548df05ad955e21fb08d": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0000bbddc7ce488642fb579f8b00f3a590007251": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", + "storage": {}, + "balance": "0x0", + "nonce": "0x1" + }, + "0x0000bd19f707ca481886244bdd20bd6b8a81bd3e": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0000e101815a78ebb9fbba34f4871ad32d5eb6cd": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0000f90827f1c53a10cb7a02335b175320002935": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500", + "storage": {}, + "balance": "0x0", + "nonce": "0x1" + }, + "0x00010ab05661bfde304a4d884df99d3011a83c54": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000130bade00212be1aa2f4acfe965934635c9cd": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0001533c6c5b425815b2baddcdd42dff3be04bcb": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0001a2c749fe0ab1c09f1131ba17530f9d764fbc": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0001c94c108bce19cdb36b00f867a1798a81deda": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0001d0bae8b1b9fe61d0b788e562a987813cbd98": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0001e8ff6406a7cd9071f46b8255db6c16178448": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0001ebe3a3ba36f57f5989b3f0e5beebc710569c": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000212949b4866db43baf7c4e0975426710ed081": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00021c20f3e68f930077cca109ca3c044e8b39bd": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0002590dd45738f909115b163f1322a8a24a8b4e": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00025eea83ba285532f5054b238c938076833d13": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000279cb54e00b858774afea4601034db41c1a05": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0002869e27c6faee08cca6b765a726e7a076ee0f": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00029637da962294449549f804f8184046f5fbb0": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0002afcc1b0b608e86b5a1dc45de08184e629796": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0002bf507275217c9e5ee250bc1b5ca177bb4f74": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0002d79686def20a0ab43fea4a41a1ad56529621": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0002d9b2a816717c4d70040d66a714795f9b27a4": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000305cd7184ab37fdd3d826b92a640218d09527": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00030da862690d170f096074e9e8b38db7d6f037": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0003135c47c441506b58483ec6173f767182670b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00031470def99c1d4dfe1fd08dd7a8520ce21db7": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00031de95353dee86dc9b1248e825500de0b39af": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00032c03f3b02d816128fb5d2752398e2919a03c": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000352e93fe11f9b715fdc61864315970b3dc082": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0003b1ab565508e095a543c89531e3fbc4a349da": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0003dde6f01e3b755e24891a5b0f2463bad83e15": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0003e72436ff296b3d39339784499d021b72aca5": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0003ea7fdfcdb89e9ddab0128ec5c628f8d09d45": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0003ffc1f09d39fbfe87ed63e98249039c7b1d9a": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000425e97fc6692891876012824a210451cc06c4": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0004351ad413792131011cc7ed8299dd783c6487": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00044cbfb4ef6054667994c37c0fe0b6bb639718": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0004aa0442d0d43222431b3017912ec6a099771c": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0004ad0d0823e3d31c6eca2a3495373fa76c43ac": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0004b0c6de796fd980554cc7ff7b062b3b5079e1": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0004b230511f921934f33e8b4425e43295232680": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0004c8da21c68ded2f63efd9836de7d43e7cda10": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0004e4dfced9d798767a4d7ba2b03495ce80a2b7": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000511b42328794337d8b6846e5cffef30c2d77a": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000541653a96abaddba52faa8d118e570d529543": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00054e17db8c8db028b19cb0f631888adeb35e4b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00056bde49e3caa9166c2a4c4951d0cf067956a0": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00057714949ad700733c5b8e6cf3e8c6b7d228a2": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000577bdc84b4019f77d9d09bdd8ed6145e0e890": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0005b34eb0d99de72db14d466f692009c4049d46": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0005c34d7b8b06ce8019c3bb232de82b2748a560": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0005c6bed054fead199d72c6f663fc6fbf996153": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0005e37296348571bd3604f7e56b67a7022801f6": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0005e815c1a3f40011bd70c76062bbcbc51c546b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0005f132597da3152a6da6bedb7c10bcc9b1b7f5": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0006264bf7e3395309f728222641ff8d0e1ad2c0": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000635bcbb109781cea0cd53e9f1370dbac9937f": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00065fc4337df331242bee738031daf35817ee9e": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000688aa0fbfb3f1e6554a63df13be08cb671b3b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00069da530a71dc92d02090d7f5f63e326e9bed0": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00069dc0cc6b9d7b48b5348b12f625e8ab704104": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0006a070bac6195b59d4bc7f73741dcbe4e16b5e": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0006bd0469166f63d0a1c33f71898d2b2e009b9b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0006cee23d8e9bc8d99e826cda50481394ad9bdd": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0006d77295a0260ceac113c5aa15cff0d28d9723": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0006e80d584cbf9eb8c41cf2b009c607744a70f6": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0006ed38815a9439c59bd917c12f77a9a7d39bce": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000701f7d594fb146e4d1c71342012e48a788055": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0007316aedc52eb35c9b5c2e44e9fd712d1df887": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0007514395022786b59ff91408692462c48d872c": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00075af7e665f3ca4a4b05520cd6d5c13bbfeaf8": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00077a336fca40f933a7a301f4a39c26594f3eb5": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000784b47ac2843419df4cad697d4e7b65ce1f93": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000791d3185781e14ebb342e5df3bc9910f62e6f": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000796370c839773893a2cefa5fc81f2332936fb": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000798832bb08268db237898b95a8dae9d58b62c": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00079f33619f70f1dce64eb6782e45d3498d807c": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0007a881cd95b1484fca47615b64803dad620c8d": { + "code": "0x", + "storage": {}, + "balance": "0x0", + "nonce": "0x0" + }, + "0x0007d272a1f7dfe862b030ade2922d149f3bde3b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000815a8a659a51a8ef01f02441947ea99182568": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00085d9d1a71acf1080ced44cb501b350900627f": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00087c666bf7f52758de186570979c4c79747157": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000882c5fbd315801e4c367bcb04dbd299b9f571": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000883a40409fa2193b698928459cb9e4dd5f8d8": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000885a4932ebed6d760ea381e4edae51a53db05": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0008a02d3e8507621f430345b98478058cdca79a": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0008a52c83d34f0791d07ffed04fb6b14f94e2d4": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0008bd31ee6a758e168844cbea107ca4d87251af": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0008d608884cd733642ab17aca0c8504850b94fa": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00094cc0653b52406170105f4eb96c5e2f31ab74": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00096af89fd96f0d6e1721d9145944e813317d46": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x00097b4463159340ac83b9bdf657c304cd70c11c": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000990b05481b1661bc6211298f6429451b09425": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000995137728c7c2a9142f4628f95c98cac433d7": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0009aeff154de37c8e02e83f93d2fec5ec96f8a3": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0009bf72af31a4e6b8ef6fbbfcb017823e4d2af2": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0009d862f87f26c638aad14f2cc48fca54dbf49d": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x0009e10c0d2f1a7a2b00b61c476aa8b608c60adc": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000a0191cf913e03bd594bc8817fc3b2895c0a25": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000a073dac5ec2058a0de0e175874d5e297e086e": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000a341763112a5e3452c7aee45c382a3fb7dc78": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000a390975f21371f1cf3c783a4a7c1af49074fe": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000a3fc3bfd55b37025e6f4f57b0b6121f54e5bf": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000a523148845bee3ee1e9f83df8257a1191c85b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000a52d537c4150ec274dce3962a0d179b7e71b0": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000a7bbde38fc53925d0de9cc1bee3038d36c2d2": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000a997c1cecb1da78c16249e032e77d1865646a": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000aa0154ed6560257d222b5dbe6ce4b66c48979": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000ac79590dcc656c00c4453f123acbf10dbb086": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000aebc2568796fdb763cab67b31e0fee58fe17d": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000b05e15c62cbc266a4dd1804b017d1f6db078b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000b1db69627f04688aa47951d847c8bfab3ffae": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000b3f6da04b6261b4154c8faed119632c49dbd5": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000b4c43cce938dfd3420f975591ee46d872c136": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000b59aed48adcd6c36ae5f437abb9ca730a2c43": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000b681738e1f8af387c41b2b1f0a04e0c33e9db": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000b9ea41a9df00b7ae597afc0d10af42666081f": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000c0d6b7c4516a5b274c51ea331a9410fe69127": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000c1ae5fecf09595c0c76db609feb2a5af0962e": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000c1c05dbff111c79d5c9e91420dfbea1c31716": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000c2de896e4a92e796d6a9c1e4b01feb3e6ed61": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000c47c771a8db282ec233b28ad8525dc74d13fe": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000c53b37fa4977b59fd3efdb473d8069844adea": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000c5e39879228a1fc8df2470822cb8ce2af8e07": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000c6c1d8f778d981968f9904772b0c455e1c17c": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000c877a5d9b9de61e5318b3f4330c56ecdc0865": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000c8fc4132881c31f67638c3941df8d94a92299": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000c95f1d83de53b76a0828f1bcdb1dfe12c0ab3": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000cd1537a823ae7609e3897da8d95801b557a8a": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000cdf8dba2393a40857cbcb0fcd9b998a941078": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000ce6740261e297fad4c975d6d8f89f95c29add": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000d0576adef7083d53f6676bfc7c30d03b6db1b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000d06c23eed09a7fa81cadd7ed5c783e8a25635": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000d268f322f10925cdb5d2ad527e582259da655": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000d35f8cd11bd989216b3669cbaac6fd8c07196": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000d66a7706f2dd5f557d5b68e01e07e8ffdfaf5": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000d72403c18b2516d8ada074e1e7822bf1084db": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000db74a3da16609f183ace7af65b43d896349ce": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000df55e76cf6dfd9598dd2b54948de937f50f2b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000dfe27e1b71a49b641ad762ab95558584878d1": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000e06626bb8618d9a1867362d46ddb1bf95ad75": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000e0ea540095b3853c4cb09e5cdd197330d3b55": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000e1a554572dd96ff3d1f2664832f3e4a66e7b7": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000e3388598a0534275104ad44745620af31ec7e": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000e490f26249951f8527779399aa8f281509ac0": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000e5de0a0175866d21f4ec6c41f0422a05f14d6": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000e64e0a2fd76b4883c800833c82c5f2420b813": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000e65342176c7dac47bc75113f569695d6a113c": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000e67e4b1a23a3826304099cb24f337c916cf4b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000e73282f60e2cde0d4fa9b323b6d54d860f330": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000e90875ac71ed46a11dc1b509d2b35e2c9c31f": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000ea2e72065a2ceca7f677bc5e648279c2d843d": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000ea86b4a3d7e4af8cfab052c8b9a040149b507": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000ebd066b6febb9d7f3b767df06c08e369dc20f": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000ebf88ae1ba960b06b0a9bbe576baa3b72e92e": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000ec60762ad0425a04c40c118db5b9710aa639e": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000ed6e0f4fdc3615663bf4a601e35e7a8d66e1c": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000edc52118dadb4b81f013005b6db2665b682ac": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000f17eb09aa3f28132323e6075c672949526d5a": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000f1eb7f258d4a7683e5d0fc3c01058841ddc6f": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000f2abaa7581faa2ad5c82b604c77ef68c3ead9": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {}, + "balance": "0x0", + "nonce": "0x1" + }, + "0x000f74aa6ee08c15076b3576ee33ed3a80c9a1ad": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000f76b2fe7ccc13474de28586a877664eba16b4": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000f7cfba0b176afc2ebada9d4764d2ea6bbc5a1": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x000fa71e446e1ecfd74d835b5bd6fa848a770d26": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x3d1e15a1a55578f7c920884a9943b3b35d0d885b": { + "code": "0x", + "storage": {}, + "balance": "0xc097ce7bc90715b34b9f1000000000", + "nonce": "0x0" + }, + "0x4e59b44847b379578588920ca78fbf26c0b4956c": { + "code": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3", + "storage": {}, + "balance": "0x0", + "nonce": "0x0" + } + } +} diff --git a/tooling/ethrex-fixtures/src/main.rs b/tooling/ethrex-fixtures/src/main.rs new file mode 100644 index 000000000..2dc4191a6 --- /dev/null +++ b/tooling/ethrex-fixtures/src/main.rs @@ -0,0 +1,103 @@ +//! Generate synthetic ethrex block fixtures (serialized `ProgramInput`) for the +//! lambda-vm prover/benchmarks — in-memory, offline, deterministic. +//! +//! Usage: +//! cargo run -- +//! e.g. +//! cargo run -- 1 ../../executor/tests/ethrex_simple_tx.bin +//! cargo run -- 10 ../../executor/tests/ethrex_10_transfers.bin +//! +//! Pinned to the same ethrex rev as the guest, so the rkyv `ProgramInput` +//! layout matches what the guest deserializes. + +use bytes::Bytes; +use ethrex_blockchain::payload::{BuildPayloadArgs, create_payload}; +use ethrex_blockchain::{Blockchain, BlockchainOptions}; +use ethrex_common::types::{ + EIP1559Transaction, ELASTICITY_MULTIPLIER, Genesis, Transaction, TxKind, +}; +use ethrex_common::{Address, H256, U256}; +use ethrex_guest_program::l1::ProgramInput; +use ethrex_l2_rpc::signer::{LocalSigner, Signable, Signer}; +use ethrex_storage::{EngineType, Store}; +use secp256k1::SecretKey; + +/// Well-known load-test rich account (funded in genesis.json). Key is public +/// dev material — not a secret. +const RICH_PK: &str = "bcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31"; +const GENESIS_JSON: &str = include_str!("../genesis.json"); + +#[tokio::main] +async fn main() -> Result<(), Box> { + let mut args = std::env::args().skip(1); + let n_transfers: u64 = args.next().unwrap_or_else(|| "1".into()).parse()?; + let out_path = args + .next() + .unwrap_or_else(|| "ethrex_generated.bin".into()); + + // --- 1. genesis -> in-memory store ------------------------------------- + let genesis: Genesis = serde_json::from_str(GENESIS_JSON)?; + let chain_id = genesis.config.chain_id; + let mut store = Store::new(".ethrex-fixtures-tmp", EngineType::InMemory)?; + store.add_initial_state(genesis).await?; + + let head_number = store.get_latest_block_number().await?; + let head = store + .get_block_header(head_number)? + .ok_or("missing genesis header")?; + let parent_hash = head.hash(); + let parent_ts = head.timestamp; + + let blockchain = Blockchain::new(store.clone(), BlockchainOptions::default()); + + // --- 2. build + sign N transfers, push to the mempool ------------------ + let signer: Signer = LocalSigner::new(SecretKey::from_slice(&hex::decode(RICH_PK)?)?).into(); + let recipient = Address::from_low_u64_be(0xdead_beef); + for nonce in 0..n_transfers { + let mut tx = Transaction::EIP1559Transaction(EIP1559Transaction { + chain_id, + nonce, + max_priority_fee_per_gas: 1_000_000_000, + max_fee_per_gas: 100_000_000_000, + gas_limit: 21_000, + to: TxKind::Call(recipient), + value: U256::from(1u64), + data: Bytes::new(), + access_list: vec![], + ..Default::default() + }); + tx.sign_inplace(&signer).await?; + blockchain.add_transaction_to_pool(tx).await?; + } + + // --- 3. produce the block (fills + executes mempool txs) --------------- + let payload_args = BuildPayloadArgs { + parent: parent_hash, + timestamp: parent_ts + 12, + fee_recipient: Address::zero(), + random: H256::zero(), + withdrawals: Some(vec![]), + beacon_root: Some(H256::zero()), + slot_number: None, + version: 3, + elasticity_multiplier: ELASTICITY_MULTIPLIER, + gas_ceil: 30_000_000, + }; + let skeleton = create_payload(&payload_args, &store, Bytes::new())?; + let result = blockchain.build_payload(skeleton)?; + let block = result.payload; + let included = block.body.transactions.len(); + + // --- 4. stateless witness -> ProgramInput -> rkyv ---------------------- + let witness = blockchain.generate_witness_for_blocks(&[block.clone()]).await?; + let program_input = ProgramInput::new(vec![block], witness); + let bytes = rkyv::to_bytes::(&program_input)?; + std::fs::write(&out_path, &bytes)?; + + println!( + "wrote {out_path} ({} bytes): block #{} with {included}/{n_transfers} transfer(s)", + bytes.len(), + head_number + 1, + ); + Ok(()) +}