From 6802f99f9bdaa6bb5aa35c991a13d613e03b0cff Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 10 Mar 2026 17:15:09 +0800 Subject: [PATCH 1/2] *adds support for the new wormhole aggregation pipeline *update and clean up deps --- .gitignore | 2 +- Cargo.lock | 607 ++++------------ Cargo.toml | 41 +- README.md | 7 +- generated-bins/aggregated_common.bin | Bin 1353 -> 1333 bytes generated-bins/aggregated_verifier.bin | Bin 552 -> 552 bytes generated-bins/config.json | 10 +- generated-bins/dummy_proof.bin | Bin 150892 -> 150892 bytes src/chain/quantus_subxt.rs | 920 ++++++++++++++++++++++--- src/cli/mod.rs | 72 +- src/cli/wormhole.rs | 222 ++---- src/quantus_metadata.scale | Bin 160193 -> 163412 bytes tests/wormhole_integration.rs | 82 +-- 13 files changed, 1149 insertions(+), 814 deletions(-) diff --git a/.gitignore b/.gitignore index 628b5e4..d842ad5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /target .idea *.hex -/generated-bins/prover.bin +/generated-bins/*prover.bin \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index e7b6409..d2986cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -156,20 +156,6 @@ version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" -[[package]] -name = "aquamarine" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" -dependencies = [ - "include_dir", - "itertools 0.10.5", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "argon2" version = "0.5.3" @@ -712,23 +698,11 @@ version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90dbd31c98227229239363921e60fcf5e558e43ec69094d46fc4996f08d1d5bc" dependencies = [ - "bitcoin_hashes 0.14.1", -] - -[[package]] -name = "bitcoin-internals" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" - -[[package]] -name = "bitcoin_hashes" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" -dependencies = [ - "bitcoin-internals", - "hex-conservative 0.1.2", + "bitcoin_hashes", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "unicode-normalization", ] [[package]] @@ -737,7 +711,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26ec84b80c482df901772e931a9a681e26a1b9ee2302edeff23cb30328745c8b" dependencies = [ - "hex-conservative 0.2.2", + "hex-conservative", ] [[package]] @@ -841,10 +815,11 @@ dependencies = [ [[package]] name = "bounded-collections" -version = "0.2.4" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ad8a0bed7827f0b07a5d23cec2e58cc02038a99e4ca81616cb2bb2025f804d" +checksum = "dee8eddd066a8825ec5570528e6880471210fd5d88cb6abbe1cfdd51ca249c33" dependencies = [ + "jam-codec", "log", "parity-scale-codec", "scale-info", @@ -900,15 +875,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" -[[package]] -name = "cfg-expr" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" -dependencies = [ - "smallvec", -] - [[package]] name = "cfg-if" version = "1.0.4" @@ -1732,16 +1698,18 @@ dependencies = [ [[package]] name = "frame-decode" -version = "0.8.3" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e56c0e51972d7b26ff76966c4d0f2307030df9daa5ce0885149ece1ab7ca5ad" +checksum = "c470df86cf28818dd3cd2fc4667b80dbefe2236c722c3dc1d09e7c6c82d6dfcd" dependencies = [ "frame-metadata", "parity-scale-codec", "scale-decode", + "scale-encode", "scale-info", "scale-type-resolver", "sp-crypto-hashing", + "thiserror 2.0.18", ] [[package]] @@ -1756,93 +1724,6 @@ dependencies = [ "serde", ] -[[package]] -name = "frame-support" -version = "41.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9162e30a146eabaa72feaf67a79b32d4adbebfc0566b5544937e44786734ac7b" -dependencies = [ - "aquamarine", - "array-bytes", - "binary-merkle-tree", - "bitflags 1.3.2", - "docify", - "environmental", - "frame-metadata", - "frame-support-procedural", - "impl-trait-for-tuples", - "k256", - "log", - "macro_magic", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "serde_json", - "sp-api", - "sp-arithmetic", - "sp-core", - "sp-crypto-hashing-proc-macro", - "sp-debug-derive", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-metadata-ir", - "sp-runtime", - "sp-staking", - "sp-state-machine", - "sp-std", - "sp-tracing", - "sp-trie", - "sp-weights", - "tt-call", -] - -[[package]] -name = "frame-support-procedural" -version = "34.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeeec31716c2eeecf21535814faf293dfc7120351c249d1f6f4dea0e520c155b" -dependencies = [ - "Inflector", - "cfg-expr", - "derive-syn-parse", - "docify", - "expander", - "frame-support-procedural-tools", - "itertools 0.11.0", - "macro_magic", - "proc-macro-warning", - "proc-macro2", - "quote", - "sp-crypto-hashing", - "syn 2.0.114", -] - -[[package]] -name = "frame-support-procedural-tools" -version = "13.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a088fd6fda5f53ff0c17fc7551ce8bd0ead14ba742228443c8196296a7369b" -dependencies = [ - "frame-support-procedural-tools-derive", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "frame-support-procedural-tools-derive" -version = "12.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed971c6435503a099bdac99fe4c5bea08981709e5b5a0a8535a1856f48561191" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "fs-err" version = "2.11.0" @@ -2195,12 +2076,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hex-conservative" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" - [[package]] name = "hex-conservative" version = "0.2.2" @@ -2533,25 +2408,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "include_dir" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" -dependencies = [ - "include_dir_macros", -] - -[[package]] -name = "include_dir_macros" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" -dependencies = [ - "proc-macro2", - "quote", -] - [[package]] name = "indexmap" version = "2.13.0" @@ -2659,6 +2515,34 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +[[package]] +name = "jam-codec" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb948eace373d99de60501a02fb17125d30ac632570de20dccc74370cdd611b9" +dependencies = [ + "arrayvec 0.7.6", + "bitvec", + "byte-slice-cast", + "const_format", + "impl-trait-for-tuples", + "jam-codec-derive", + "rustversion", + "serde", +] + +[[package]] +name = "jam-codec-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319af585c4c8a6b5552a52b7787a1ab3e4d59df7614190b1f85b9b842488789d" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "jni" version = "0.21.1" @@ -2983,54 +2867,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" -[[package]] -name = "macro_magic" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc33f9f0351468d26fbc53d9ce00a096c8522ecb42f19b50f34f2c422f76d21d" -dependencies = [ - "macro_magic_core", - "macro_magic_macros", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "macro_magic_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1687dc887e42f352865a393acae7cf79d98fab6351cde1f58e9e057da89bf150" -dependencies = [ - "const-random", - "derive-syn-parse", - "macro_magic_core_macros", - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "macro_magic_core_macros" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "macro_magic_macros" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" -dependencies = [ - "macro_magic_core", - "quote", - "syn 2.0.114", -] - [[package]] name = "matchers" version = "0.2.0" @@ -3387,19 +3223,6 @@ dependencies = [ "serde", ] -[[package]] -name = "parity-bip39" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" -dependencies = [ - "bitcoin_hashes 0.13.0", - "rand 0.8.5", - "rand_core 0.6.4", - "serde", - "unicode-normalization", -] - [[package]] name = "parity-scale-codec" version = "3.7.5" @@ -3429,12 +3252,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "parity-wasm" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" - [[package]] name = "parking" version = "2.2.1" @@ -3573,24 +3390,24 @@ checksum = "c32c137808ca984ab2458b612b7eb0462d853ee041a3136e83d54b96074c7610" [[package]] name = "polkavm-common" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed9e5af472f729fcf3b3c1cf17508ddbb3505259dd6e2ee0fb5a29e105d22" +checksum = "49a5794b695626ba70d29e66e3f4f4835767452a6723f3a0bc20884b07088fe8" [[package]] name = "polkavm-derive" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176144f8661117ea95fa7cf868c9a62d6b143e8a2ebcb7582464c3faade8669a" +checksum = "95282a203ae1f6828a04ff334145c3f6dc718bba6d3959805d273358b45eab93" dependencies = [ "polkavm-derive-impl-macro", ] [[package]] name = "polkavm-derive-impl" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a21844afdfcc10c92b9ef288ccb926211af27478d1730fcd55e4aec710179d" +checksum = "6069dc7995cde6e612b868a02ce48b54397c6d2582bd1b97b63aabbe962cd779" dependencies = [ "polkavm-common", "proc-macro2", @@ -3600,9 +3417,9 @@ dependencies = [ [[package]] name = "polkavm-derive-impl-macro" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba0ef0f17ad81413ea1ca5b1b67553aedf5650c88269b673d3ba015c83bc2651" +checksum = "581d34cafec741dc5ffafbb341933c205b6457f3d76257a9d99fb56687219c91" dependencies = [ "polkavm-derive-impl", "syn 2.0.114", @@ -3718,30 +3535,6 @@ dependencies = [ "toml_edit 0.23.10+spec-1.0.0", ] -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - [[package]] name = "proc-macro-error-attr2" version = "2.0.0" @@ -3764,17 +3557,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "proc-macro-warning" -version = "1.84.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75eea531cfcd120e0851a3f8aed42c4841f78c889eefafd96339c72677ae42c3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "proc-macro2" version = "1.0.106" @@ -3800,9 +3582,9 @@ dependencies = [ [[package]] name = "qp-dilithium-crypto" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb99863567fe9eebd3e23435b233f508ec814ae97e4b944954caec5d07275515" +checksum = "0d68c3fbdb9557a22cb876fc17c483d090e9556cbfdfc52beb0696143d4313d9" dependencies = [ "log", "parity-scale-codec", @@ -3916,9 +3698,9 @@ dependencies = [ [[package]] name = "qp-poseidon" -version = "1.0.7" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4214ec389bff0c21c6ef815cf0ff00656586344dbe20f6441d23a1a6a7f56e84" +checksum = "ce4d91f0077b30ec888423fb7549bea6ee6fa6cbbbfe67eaeea38e101e0f630d" dependencies = [ "log", "p3-field", @@ -3948,9 +3730,9 @@ dependencies = [ [[package]] name = "qp-poseidon-core" -version = "1.0.7" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f65766d6de64eff741c7f402002a3322f5e563d53e0e9040aeab4921ff24f2b" +checksum = "4dcdc2b94d265b986711f5f44eea860c96c9e7b25aaa999f7aa024437c0dcd5f" dependencies = [ "p3-field", "p3-goldilocks", @@ -3972,9 +3754,9 @@ dependencies = [ [[package]] name = "qp-rusty-crystals-hdwallet" -version = "1.3.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d9d8eb6c6a555c831496ab14348a41e4d23aa11943930a568891bf687cd8b1" +checksum = "91781bc0b96238c7e038a2d3157410388cb0458b05d42483851e79684e92f1a8" dependencies = [ "bip39", "bs58", @@ -3995,8 +3777,7 @@ dependencies = [ [[package]] name = "qp-wormhole-aggregator" version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad3d3f37af4748e635f9197b2145cf4d218b97ad361e6b696724e3ddbb4e12a" +source = "git+https://github.com/Quantus-Network/qp-zk-circuits?branch=refactor%2Fsep-prover-and-circuit-build#dd187e0b3b5f0113814ffb1b3e4084b0df76175a" dependencies = [ "anyhow", "hex", @@ -4015,8 +3796,7 @@ dependencies = [ [[package]] name = "qp-wormhole-circuit" version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7cdfba4fd293063a3e9eb964e2afb58673e9a7fd6d4edb0484783e0ed600927" +source = "git+https://github.com/Quantus-Network/qp-zk-circuits?branch=refactor%2Fsep-prover-and-circuit-build#dd187e0b3b5f0113814ffb1b3e4084b0df76175a" dependencies = [ "anyhow", "hex", @@ -4028,8 +3808,7 @@ dependencies = [ [[package]] name = "qp-wormhole-inputs" version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53ad195630b070fc8cd9d89c55a951abaae9694434793bc87f5ab3045ded7108" +source = "git+https://github.com/Quantus-Network/qp-zk-circuits?branch=refactor%2Fsep-prover-and-circuit-build#dd187e0b3b5f0113814ffb1b3e4084b0df76175a" dependencies = [ "anyhow", ] @@ -4037,8 +3816,7 @@ dependencies = [ [[package]] name = "qp-wormhole-prover" version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d244e8514279f65d25f15ed5a6e6464905ac5276724a9233574696e11a461c3a" +source = "git+https://github.com/Quantus-Network/qp-zk-circuits?branch=refactor%2Fsep-prover-and-circuit-build#dd187e0b3b5f0113814ffb1b3e4084b0df76175a" dependencies = [ "anyhow", "qp-plonky2", @@ -4050,8 +3828,7 @@ dependencies = [ [[package]] name = "qp-wormhole-verifier" version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9e95153853ceceeba61295ca5f1316d12bde37677b0c1e7f0539d815f627645" +source = "git+https://github.com/Quantus-Network/qp-zk-circuits?branch=refactor%2Fsep-prover-and-circuit-build#dd187e0b3b5f0113814ffb1b3e4084b0df76175a" dependencies = [ "anyhow", "qp-plonky2-verifier", @@ -4061,8 +3838,7 @@ dependencies = [ [[package]] name = "qp-zk-circuits-common" version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d45c3d80adc2aecbcf27902569d3ec291f5f83e9d7d17ad12530f45102963faa" +source = "git+https://github.com/Quantus-Network/qp-zk-circuits?branch=refactor%2Fsep-prover-and-circuit-build#dd187e0b3b5f0113814ffb1b3e4084b0df76175a" dependencies = [ "anyhow", "hex", @@ -4086,7 +3862,6 @@ dependencies = [ "clap", "colored", "dirs", - "frame-support", "hex", "indicatif", "jsonrpsee", @@ -4094,7 +3869,6 @@ dependencies = [ "qp-dilithium-crypto", "qp-plonky2", "qp-poseidon", - "qp-poseidon-core", "qp-rusty-crystals-dilithium", "qp-rusty-crystals-hdwallet", "qp-wormhole-aggregator", @@ -5196,49 +4970,11 @@ dependencies = [ "sha1", ] -[[package]] -name = "sp-api" -version = "37.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee297c1304c6b069784dda4147ef5f478f7aef75b94e0838a38c29de792f1df" -dependencies = [ - "docify", - "hash-db", - "log", - "parity-scale-codec", - "scale-info", - "sp-api-proc-macro", - "sp-core", - "sp-externalities", - "sp-metadata-ir", - "sp-runtime", - "sp-runtime-interface", - "sp-state-machine", - "sp-trie", - "sp-version", - "thiserror 1.0.69", -] - -[[package]] -name = "sp-api-proc-macro" -version = "23.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74a14a276fde5d6e5a0668494e3dd42739b346a7ac7b6348c74f9c9142f4474a" -dependencies = [ - "Inflector", - "blake2", - "expander", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "sp-application-crypto" -version = "41.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c668f1ce424bc131f40ade33fa4c0bd4dcd2428479e1e291aad66d4b00c74f" +checksum = "c33baebe847fc50edccd36d0e0e86df21d4db93876b5d74aadae9d8e96ca35e2" dependencies = [ "parity-scale-codec", "scale-info", @@ -5249,9 +4985,9 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "27.0.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2929fd12ac6ca3cfac7f62885866810ba4e9464814dbaa87592b5b5681b29aee" +checksum = "c5f4755af7cc57f4a2a830e134b403fc832caa5d93dacb970ffc7ac717f38c40" dependencies = [ "docify", "integer-sqrt", @@ -5264,12 +5000,13 @@ dependencies = [ [[package]] name = "sp-core" -version = "37.0.0" +version = "39.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e1a46a6b2323401e4489184846a7fb7d89091b42602a2391cd3ef652ede2850" +checksum = "b0f32d2a9af72fe90bec51076d0e109ef3c25aa1d2a1eef15cf3588acd4a23da" dependencies = [ "ark-vrf", "array-bytes", + "bip39", "bitflags 1.3.2", "blake2", "bounded-collections", @@ -5285,7 +5022,6 @@ dependencies = [ "libsecp256k1", "log", "merlin", - "parity-bip39", "parity-scale-codec", "parking_lot", "paste", @@ -5300,7 +5036,6 @@ dependencies = [ "sp-crypto-hashing", "sp-debug-derive", "sp-externalities", - "sp-runtime-interface", "sp-std", "sp-storage", "ss58-registry", @@ -5325,17 +5060,6 @@ dependencies = [ "twox-hash 1.6.3", ] -[[package]] -name = "sp-crypto-hashing-proc-macro" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" -dependencies = [ - "quote", - "sp-crypto-hashing", - "syn 2.0.114", -] - [[package]] name = "sp-debug-derive" version = "14.0.0" @@ -5349,47 +5073,20 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cbf059dce180a8bf8b6c8b08b6290fa3d1c7f069a60f1df038ab5dd5fc0ba6" +checksum = "76b67582d8eb400e730d4abaa9f8841898fa36782a2c6b7f61676e5dd6f8166c" dependencies = [ "environmental", "parity-scale-codec", "sp-storage", ] -[[package]] -name = "sp-genesis-builder" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d731c7b601124756432cd9f5b5da55f6bc55b52c7a334b6df340b769d7103383" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde_json", - "sp-api", - "sp-runtime", -] - -[[package]] -name = "sp-inherents" -version = "37.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1371275d805f905c407a9eef8447bc0a3d383dbd9277adba2a6264c6fe7daac" -dependencies = [ - "async-trait", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "sp-runtime", - "thiserror 1.0.69", -] - [[package]] name = "sp-io" -version = "41.0.1" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f244e9a2818d21220ceb0915ac73a462814a92d0c354a124a818abdb7f4f66" +checksum = "84c3b7db2a4f180e3362e374754983e3ddc844b7a1cd2c2e5b71ab0bd3673dfe" dependencies = [ "bytes", "docify", @@ -5414,9 +5111,9 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.43.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "269d0ee360f6d072f9203485afea35583ac151521a525cc48b2a107fc576c2d9" +checksum = "fc62157d26f8c6847e2827168f71edea83f9f2c3cc12b8fb694dbe58aefe5972" dependencies = [ "parity-scale-codec", "parking_lot", @@ -5424,17 +5121,6 @@ dependencies = [ "sp-externalities", ] -[[package]] -name = "sp-metadata-ir" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c327d0340a18979aa242f2ad3ad8a6f5fa76c03cc7ca5b50c4770573fd8191" -dependencies = [ - "frame-metadata", - "parity-scale-codec", - "scale-info", -] - [[package]] name = "sp-panic-handler" version = "13.0.2" @@ -5447,11 +5133,12 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "42.0.0" +version = "45.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b25d4d3811410317175ff121b3ff8c8b723504dadf37cd418b5192a5098d11bf" +checksum = "7f799c308ab442aa1c80b193db8c76f36dcc5a911408bf8861511987f4e4f2ee" dependencies = [ "binary-merkle-tree", + "bytes", "docify", "either", "hash256-std-hasher", @@ -5471,21 +5158,21 @@ dependencies = [ "sp-std", "sp-trie", "sp-weights", + "strum", "tracing", "tuplex", ] [[package]] name = "sp-runtime-interface" -version = "30.0.0" +version = "33.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fcd9c219da8c85d45d5ae1ce80e73863a872ac27424880322903c6ac893c06e" +checksum = "22644a2fabb5c246911ecde30fdb7f0801c90f5e611b1147140055ad7b6dabab" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "polkavm-derive", - "primitive-types 0.13.1", "sp-externalities", "sp-runtime-interface-proc-macro", "sp-std", @@ -5497,9 +5184,9 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "19.0.0" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca35431af10a450787ebfdcb6d7a91c23fa91eafe73a3f9d37db05c9ab36154b" +checksum = "04178084ae654b3924934a56943ee73e3562db4d277e948393561b08c3b5b5fe" dependencies = [ "Inflector", "expander", @@ -5509,25 +5196,11 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "sp-staking" -version = "39.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca7ccd7d7e478e9f8e933850f025a1c7f409a2b70157d30e5f51675427af022" -dependencies = [ - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-runtime", -] - [[package]] name = "sp-state-machine" -version = "0.46.0" +version = "0.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483422b016ee9ddba949db6d3092961ed58526520f0586df74dc07defd922a58" +checksum = "1b5bfda052a2fe9be497139e0c5d0a51946873f3cd7c2ff81bdbcb8b446caa37" dependencies = [ "hash-db", "log", @@ -5565,11 +5238,12 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "17.1.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6147a5b8c98b9ed4bf99dc033fab97a468b4645515460974c8784daeb7c35433" +checksum = "f2c7372456c39cc81e15befe54d0caab8378f2b30fd34d1bcb5f0f56631c6b6e" dependencies = [ "parity-scale-codec", + "regex", "tracing", "tracing-core", "tracing-subscriber", @@ -5577,9 +5251,9 @@ dependencies = [ [[package]] name = "sp-trie" -version = "40.0.0" +version = "42.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b2e157c9cf44a1a9d20f3c69322e302db70399bf3f218211387fe009dd4041c" +checksum = "6beed4d77d66f085443eac37171d88b2dbf6f7358d9d3451c11479ddfce60d6e" dependencies = [ "ahash", "foldhash", @@ -5601,42 +5275,11 @@ dependencies = [ "trie-root", ] -[[package]] -name = "sp-version" -version = "40.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98fd599db91c11c32e4df4c85b22b6396f28284889a583db9151ff59599dd1cb" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "parity-wasm", - "scale-info", - "serde", - "sp-crypto-hashing-proc-macro", - "sp-runtime", - "sp-std", - "sp-version-proc-macro", - "thiserror 1.0.69", -] - -[[package]] -name = "sp-version-proc-macro" -version = "15.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54cabc8279e835cd9c608d70cb00e693bddec94fe8478e9f3104dad1da5f93ca" -dependencies = [ - "parity-scale-codec", - "proc-macro-warning", - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "sp-wasm-interface" -version = "22.0.0" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdbc579c72fc03263894a0077383f543a093020d75741092511bb05a440ada6" +checksum = "dd177d0658f3df0492f28bd39d665133a7868db5aa66c8642c949b6265430719" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -5646,9 +5289,9 @@ dependencies = [ [[package]] name = "sp-weights" -version = "32.0.0" +version = "33.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8a1d448faceb064bb114df31fc45ff86ea2ee8fd17810c4357a578d081f7732" +checksum = "b4c34d353fdc6469da8fae9248ffc1f34faaf04bec8cabc43fd77681dcbc8517" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -5714,6 +5357,28 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.114", +] + [[package]] name = "substrate-bip39" version = "0.6.0" @@ -5750,9 +5415,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "subxt" -version = "0.43.1" +version = "0.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c6dc0f90e23c521465b8f7e026af04a48cc6f00c51d88a8d313d33096149de" +checksum = "3e689b7f5635ffd08301b1b7d427300f7c10bc0e66069c4068d36ce6921bc736" dependencies = [ "async-trait", "derive-where", @@ -5787,9 +5452,9 @@ dependencies = [ [[package]] name = "subxt-codegen" -version = "0.43.0" +version = "0.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1728caecd9700391e78cc30dc298221d6f5ca0ea28258a452aa76b0b7c229842" +checksum = "740eedc385673e6c5e0de60d2ea6d12d311359d3ccea35b86b9161e3acaf938f" dependencies = [ "heck", "parity-scale-codec", @@ -5804,9 +5469,9 @@ dependencies = [ [[package]] name = "subxt-core" -version = "0.43.0" +version = "0.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25338dd11ae34293b8d0c5807064f2e00194ba1bd84cccfa694030c8d185b941" +checksum = "1f2f40f6145c1805e37339c4e460c4a18fcafae913b15d2c648b7cac991fd903" dependencies = [ "base58", "blake2", @@ -5834,9 +5499,9 @@ dependencies = [ [[package]] name = "subxt-lightclient" -version = "0.43.0" +version = "0.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9097ef356e534ce0b6a50b95233512afc394347b971a4f929c4830adc52bbc6f" +checksum = "61321269d3dcc65b8f884eb4d10e393f7bca22b0688d373a0285d4e8ad7221be" dependencies = [ "futures", "futures-util", @@ -5851,9 +5516,9 @@ dependencies = [ [[package]] name = "subxt-macro" -version = "0.43.1" +version = "0.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c269228a2e5de4c0c61ed872b701967ee761df0f167d5b91ecec1185bca65793" +checksum = "efc6c5054278308a2b01804f00676ece77270a358a2caee6df1358cf81ec0cd5" dependencies = [ "darling", "parity-scale-codec", @@ -5868,9 +5533,9 @@ dependencies = [ [[package]] name = "subxt-metadata" -version = "0.43.0" +version = "0.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c134068711c0c46906abc0e6e4911204420331530738e18ca903a5469364d9f" +checksum = "bc80c07a71e180a42ba0f12727b1f9f39bf03746df6d546d24edbbc137f64fa1" dependencies = [ "frame-decode", "frame-metadata", @@ -5883,9 +5548,9 @@ dependencies = [ [[package]] name = "subxt-rpcs" -version = "0.43.0" +version = "0.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25de7727144780d780a6a7d78bbfd28414b8adbab68b05e87329c367d7705be4" +checksum = "3fe65228472ea5a6bd23d8f2cd12833706466d2425805b2a38ecedc258df141a" dependencies = [ "derive-where", "frame-metadata", @@ -5907,9 +5572,9 @@ dependencies = [ [[package]] name = "subxt-utils-fetchmetadata" -version = "0.43.0" +version = "0.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c4fb8fd6b16ecd3537a29d70699f329a68c1e47f70ed1a46d64f76719146563" +checksum = "a26ed947c63b4620429465c9f7e1f346433ddc21780c4bfcfade1e3a4dcdfab8" dependencies = [ "hex", "parity-scale-codec", @@ -6415,12 +6080,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "tt-call" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" - [[package]] name = "tuplex" version = "0.1.2" diff --git a/Cargo.toml b/Cargo.toml index b71c94a..1ffa588 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,12 +50,9 @@ aes-gcm = "0.10" # AES-256-GCM (quantum-safe with 256-bit keys) # Quantus crypto dependencies qp-rusty-crystals-dilithium = { version = "2.1.0" } -qp-rusty-crystals-hdwallet = { version = "1.3.0" } -qp-poseidon = { version = "1.0.7", features = [ - "serde", -] } -qp-poseidon-core = { version = "1.0.7", default-features = false, features = ["p2", "p3"] } -qp-dilithium-crypto = { version = "0.2.1", features = ["serde"] } +qp-rusty-crystals-hdwallet = { version = "2.0.0" } +qp-dilithium-crypto = { version = "0.2.2", features = ["serde"] } +qp-poseidon = { version = "1.1.0" } # HTTP client for Subsquid queries reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false } @@ -64,29 +61,27 @@ blake3 = "1.8" # Force patched version of bytes (RUSTSEC-2026-0007) bytes = "1.11.1" -# Blockchain and RPC client -codec = { package = "parity-scale-codec", version = "3.7", features = [ - "derive", -] } -sp-core = { version = "37.0.0" } -sp-runtime = { version = "42.0.0" } -frame-support = { version = "41.0.0" } -subxt = "0.43.0" +# Blockchain deps +codec = { package = "parity-scale-codec", version = "3.7", features = ["derive"] } +sp-core = { version = "39.0.0" } +sp-runtime = { version = "45.0.0" } jsonrpsee = { version = "0.24", features = ["client"] } -# Needed for implementing custom Subxt hasher -subxt-metadata = "0.43.0" +# # Needed for implementing custom Subxt hasher +subxt = "0.44" +subxt-metadata = "0.44" # ZK proof generation anyhow = "1.0" -qp-wormhole-circuit = { version = "1.0.7", default-features = false, features = ["std"] } -qp-wormhole-prover = { version = "1.0.7", default-features = false, features = ["std"] } -qp-wormhole-verifier = { version = "1.0.7", default-features = false, features = ["std"] } -qp-wormhole-aggregator = { version = "1.0.7", default-features = false, features = ["rayon", "std"] } -qp-wormhole-inputs = { version = "1.0.7", default-features = false, features = ["std"] } -qp-zk-circuits-common = { version = "1.0.7", default-features = false, features = ["std"] } +qp-wormhole-circuit = { git = "https://github.com/Quantus-Network/qp-zk-circuits", branch = "refactor/sep-prover-and-circuit-build", package = "qp-wormhole-circuit", default-features = false, features = ["std"] } +qp-wormhole-prover = { git = "https://github.com/Quantus-Network/qp-zk-circuits", branch = "refactor/sep-prover-and-circuit-build", package = "qp-wormhole-prover", default-features = false, features = ["std"] } +qp-wormhole-verifier = { git = "https://github.com/Quantus-Network/qp-zk-circuits", branch = "refactor/sep-prover-and-circuit-build", package = "qp-wormhole-verifier", default-features = false, features = ["std"] } +qp-wormhole-aggregator = { git = "https://github.com/Quantus-Network/qp-zk-circuits", package = "qp-wormhole-aggregator", branch = "refactor/sep-prover-and-circuit-build", default-features = false, features = ["rayon", "std"] } +# qp-wormhole-aggregator = { path = "../zk-circuits/wormhole/aggregator", package = "qp-wormhole-aggregator", default-features = false, features = ["rayon", "std"] } +qp-wormhole-inputs = { git = "https://github.com/Quantus-Network/qp-zk-circuits", branch = "refactor/sep-prover-and-circuit-build", package = "qp-wormhole-inputs", default-features = false, features = ["std"] } +qp-zk-circuits-common = { git = "https://github.com/Quantus-Network/qp-zk-circuits", branch = "refactor/sep-prover-and-circuit-build", package = "qp-zk-circuits-common", default-features = false, features = ["std"] } qp-plonky2 = { version = "1.1.3", default-features = false, features = ["rand", "std"] } [dev-dependencies] -tempfile = "3.8" +tempfile = "3.8.1" serial_test = "3.1" diff --git a/README.md b/README.md index bf20aba..e9ba97d 100644 --- a/README.md +++ b/README.md @@ -250,14 +250,15 @@ Build ZK circuit binaries from the `qp-zk-circuits` repository, then copy them t ```bash quantus developer build-circuits \ - --branching-factor 2 \ + --num-leaf-proofs 2 \ + --num-layer0-proofs 2 \ --depth 1 \ --circuits-path ../qp-zk-circuits \ --chain-path ../chain ``` -- `--branching-factor`: Number of proofs aggregated at each tree level. -- `--depth`: Depth of the aggregation tree. Total leaf proofs = `branching_factor ^ depth`. +- `--num-leaf-proofs`: Number of leaf proofs per layer-0 aggregation. +- `--num-layer0-proofs`: Number of inner proofs per layer-1 aggregation. - `--circuits-path`: Path to the `qp-zk-circuits` repo (default: `../qp-zk-circuits`). - `--chain-path`: Path to the chain repo (default: `../chain`). - `--skip-chain`: Skip copying binaries to the chain directory. diff --git a/generated-bins/aggregated_common.bin b/generated-bins/aggregated_common.bin index 11210063d89e1065f21a990777bae47b94e0d371..897819fb34eb250f4c74e74d492341d713a0e6a5 100644 GIT binary patch delta 84 zcmX@fwUuka8ZH3_2w>!yc+h0xCuc=Ar~r)Sg7RTB&*U&hd8Q2vo68y3F>&%hWjQxn IvG6kj04E;{L;wH) delta 99 zcmdnWb&_ks8ZJHt2w>!$cu;5J1>uQr9TeH2VlbK;%7@Xsll>UwnIafB=QFNj66J-; Sasp{)AZ7ybH>dR>%fVpYr zJjf-Aq?c>;)jcbp#S*y)+ya8AbdKpfGs*N8ur9{wX#;$uV#EFcI~X+BSs>bboMyS%G+SgOAGF3Rhy2v&Bp|={x4k)num?~-|?Dey?*7E93g*xs4dOOfgXOX zD$%9iHX`&{Exx}^ouM^^){oWOyDohF!wj7K#$5D+Olobl;|^@wPo8^w1SEh&gQ>xl z8EK}JF27(omM7B}AvBC<=o-*SH13Y3<2UsCs%;9^s5@j041-MjZj{814V%x4Ne!08SHQ^BFS%TuftV%`RR;XTlh>kDO zwV;;20o|>YxPNa~v<8i+UlhGjj`~11%^Is_ehc$CwDj(u`nHnA&8_?SG@3anPiH&Eqi+ zzYp>P6#Ty?3A3X+Z*_6cejdx=_N%LoqKRA{s8h-s{+j>?)zQoQSZL7RQ?h*dFdjRq z9O3}WB+0UwGQms>l%!PUj!-{3@F&dv{wDT%W{1d4F diff --git a/generated-bins/config.json b/generated-bins/config.json index 2dced0c..72d2fbe 100644 --- a/generated-bins/config.json +++ b/generated-bins/config.json @@ -1,11 +1,13 @@ { - "num_leaf_proofs": 16, + "num_leaf_proofs": 8, + "num_layer0_proofs": null, "hashes": { "common": "672689a87e8ed780337c0752ebc7fd1db6a63611fbd59b4ad0cbe4a4d97edcf2", "verifier": "bb017485b12fb9c6d0b5c3db8b68f417bd3f75b2d5f3a2ea5fe12b6244233372", "prover": "78c114c7290b04bac00551a590fd652f98194653b10ac4e11b0c0ddd5c7c0976", - "aggregated_common": "af4461081f6fb527d2b9ffb74479a133ed8b92cdd3554b46adc481a0dfc38b5d", - "aggregated_verifier": "90350437c8e0e2144ca849623ea0b58edd2decd7bdf6b728b32e1aa9d8f1e337", - "dummy_proof": "8c46fd19c4c3581016ba4adcf4f0735bd04bf09f8e94e9b0f092ea522c9d3ba9" + "aggregated_common": "20a2dc0e48a9d7a69c9bffca5e9ee917769abdbd1f512dcb5ba303af4f69ed91", + "aggregated_verifier": "22913f5a8da5bfe1d3153e8fb4ca3c9bce02ad1afc7a07d229c48b40f67f5b8b", + "aggregated_prover": "168212332937960d0a8319f1944ecd5357476a2f0b7017c2dedb6ae461717d6b", + "dummy_proof": "6828bea2ccd42eac05f9e785f3834a1cc218553a68b090718d84c2d9dd381e8d" } } \ No newline at end of file diff --git a/generated-bins/dummy_proof.bin b/generated-bins/dummy_proof.bin index 7802f3d1d80a8d1f54bc8bba2b314b00d077b243..affcb7c5a6a73f6b94c5b5c55d7286a91fad9c8c 100644 GIT binary patch literal 150892 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ŠVkxzk#+UrqYQIYD!i#jCC#&4F1i#~I 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�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

8LFO9OT7o0)T+D6jB%y&rzN07Tr)v$DbwxG1f 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

vT5(Rb@O}o_3rT{A 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 , :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: quantus_runtime :: RuntimeCall , runtime_types :: qp_dilithium_crypto :: types :: DilithiumSignatureScheme , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash , runtime_types :: quantus_runtime :: transaction_extensions :: ReversibleTransactionExtension , runtime_types :: quantus_runtime :: transaction_extensions :: WormholeProofRecorderExtension ,) > > ; + pub type Block = runtime_types :: sp_runtime :: generic :: block :: LazyBlock < runtime_types :: qp_header :: Header < :: core :: primitive :: u32 > , :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: quantus_runtime :: RuntimeCall , runtime_types :: qp_dilithium_crypto :: types :: DilithiumSignatureScheme , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash , runtime_types :: quantus_runtime :: transaction_extensions :: ReversibleTransactionExtension , runtime_types :: quantus_runtime :: transaction_extensions :: WormholeProofRecorderExtension ,) > > ; pub mod output { use super::runtime_types; pub type Output = (); @@ -525,7 +525,7 @@ pub mod api { } pub mod check_inherents { use super::runtime_types; - pub type Block = runtime_types :: sp_runtime :: generic :: block :: Block < runtime_types :: qp_header :: Header < :: core :: primitive :: u32 > , :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: quantus_runtime :: RuntimeCall , runtime_types :: qp_dilithium_crypto :: types :: DilithiumSignatureScheme , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash , runtime_types :: quantus_runtime :: transaction_extensions :: ReversibleTransactionExtension , runtime_types :: quantus_runtime :: transaction_extensions :: WormholeProofRecorderExtension ,) > > ; + pub type Block = runtime_types :: sp_runtime :: generic :: block :: LazyBlock < runtime_types :: qp_header :: Header < :: core :: primitive :: u32 > , :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: quantus_runtime :: RuntimeCall , runtime_types :: qp_dilithium_crypto :: types :: DilithiumSignatureScheme , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash , runtime_types :: quantus_runtime :: transaction_extensions :: ReversibleTransactionExtension , runtime_types :: quantus_runtime :: transaction_extensions :: WormholeProofRecorderExtension ,) > > ; pub type Data = runtime_types::sp_inherents::InherentData; pub mod output { use super::runtime_types; @@ -1469,10 +1469,9 @@ pub mod api { "query_call_info", types::QueryCallInfo { call, len }, [ - 199u8, 188u8, 161u8, 1u8, 221u8, 186u8, 101u8, 194u8, 181u8, 107u8, - 212u8, 35u8, 2u8, 8u8, 198u8, 148u8, 37u8, 179u8, 92u8, 122u8, 253u8, - 235u8, 62u8, 173u8, 213u8, 18u8, 26u8, 170u8, 135u8, 120u8, 162u8, - 32u8, + 198u8, 65u8, 204u8, 71u8, 28u8, 170u8, 188u8, 123u8, 4u8, 169u8, 112u8, + 140u8, 13u8, 71u8, 97u8, 37u8, 125u8, 168u8, 73u8, 123u8, 116u8, 53u8, + 236u8, 206u8, 173u8, 112u8, 141u8, 87u8, 177u8, 37u8, 238u8, 57u8, ], ) } @@ -1490,9 +1489,10 @@ pub mod api { "query_call_fee_details", types::QueryCallFeeDetails { call, len }, [ - 156u8, 135u8, 85u8, 250u8, 145u8, 189u8, 63u8, 36u8, 186u8, 134u8, 9u8, - 17u8, 4u8, 79u8, 120u8, 98u8, 63u8, 219u8, 216u8, 44u8, 158u8, 88u8, - 126u8, 41u8, 0u8, 97u8, 93u8, 234u8, 249u8, 179u8, 170u8, 134u8, + 181u8, 192u8, 142u8, 93u8, 47u8, 223u8, 252u8, 28u8, 253u8, 247u8, + 255u8, 49u8, 206u8, 94u8, 24u8, 227u8, 178u8, 147u8, 3u8, 138u8, 204u8, + 67u8, 221u8, 34u8, 21u8, 249u8, 185u8, 109u8, 195u8, 213u8, 165u8, + 162u8, ], ) } @@ -1981,7 +1981,11 @@ pub mod api { } } pub struct ViewFunctionsApi; - impl ViewFunctionsApi {} + impl ViewFunctionsApi { + pub fn assets(&self) -> assets::view_functions::ViewFunctionsApi { + assets::view_functions::ViewFunctionsApi + } + } #[doc = r" check whether the metadata provided is aligned with this statically generated code."] pub fn is_codegen_valid_for(metadata: &::subxt::ext::subxt_core::Metadata) -> bool { let runtime_metadata_hash = metadata @@ -1991,9 +1995,9 @@ pub mod api { .hash(); runtime_metadata_hash == [ - 6u8, 176u8, 107u8, 34u8, 235u8, 221u8, 156u8, 243u8, 98u8, 115u8, 170u8, 186u8, - 22u8, 200u8, 173u8, 142u8, 190u8, 154u8, 75u8, 86u8, 176u8, 207u8, 65u8, 103u8, - 203u8, 172u8, 16u8, 101u8, 182u8, 189u8, 166u8, 9u8, + 241u8, 104u8, 181u8, 101u8, 78u8, 126u8, 146u8, 140u8, 82u8, 117u8, 79u8, 128u8, + 3u8, 33u8, 86u8, 223u8, 167u8, 80u8, 94u8, 196u8, 191u8, 207u8, 240u8, 239u8, + 186u8, 203u8, 0u8, 147u8, 140u8, 8u8, 140u8, 64u8, ] } pub mod system { @@ -3092,10 +3096,10 @@ pub mod api { "Events", (), [ - 241u8, 44u8, 250u8, 237u8, 114u8, 188u8, 218u8, 139u8, 207u8, 203u8, - 98u8, 141u8, 52u8, 57u8, 67u8, 245u8, 118u8, 165u8, 129u8, 196u8, - 139u8, 67u8, 96u8, 116u8, 183u8, 195u8, 161u8, 74u8, 24u8, 241u8, 78u8, - 18u8, + 129u8, 117u8, 78u8, 200u8, 45u8, 177u8, 108u8, 250u8, 68u8, 196u8, + 35u8, 140u8, 114u8, 113u8, 44u8, 193u8, 216u8, 27u8, 164u8, 117u8, + 173u8, 170u8, 119u8, 26u8, 55u8, 150u8, 155u8, 226u8, 61u8, 102u8, + 162u8, 127u8, ], ) } @@ -4392,6 +4396,25 @@ pub mod api { )] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Some credit was balanced and added to the TotalIssuance."] + pub struct MintedCredit { + pub amount: minted_credit::Amount, + } + pub mod minted_credit { + use super::runtime_types; + pub type Amount = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for MintedCredit { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "MintedCredit"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was burned from an account."] pub struct Burned { pub who: burned::Who, @@ -4413,6 +4436,25 @@ pub mod api { )] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Some debt has been dropped from the Total Issuance."] + pub struct BurnedDebt { + pub amount: burned_debt::Amount, + } + pub mod burned_debt { + use super::runtime_types; + pub type Amount = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for BurnedDebt { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "BurnedDebt"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was suspended from an account (it can be restored later)."] pub struct Suspended { pub who: suspended::Who, @@ -4610,6 +4652,142 @@ pub mod api { const PALLET: &'static str = "Balances"; const EVENT: &'static str = "TotalIssuanceForced"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Some balance was placed on hold."] + pub struct Held { + pub reason: held::Reason, + pub who: held::Who, + pub amount: held::Amount, + } + pub mod held { + use super::runtime_types; + pub type Reason = runtime_types::quantus_runtime::RuntimeHoldReason; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Amount = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for Held { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Held"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Held balance was burned from an account."] + pub struct BurnedHeld { + pub reason: burned_held::Reason, + pub who: burned_held::Who, + pub amount: burned_held::Amount, + } + pub mod burned_held { + use super::runtime_types; + pub type Reason = runtime_types::quantus_runtime::RuntimeHoldReason; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Amount = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for BurnedHeld { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "BurnedHeld"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A transfer of `amount` on hold from `source` to `dest` was initiated."] + pub struct TransferOnHold { + pub reason: transfer_on_hold::Reason, + pub source: transfer_on_hold::Source, + pub dest: transfer_on_hold::Dest, + pub amount: transfer_on_hold::Amount, + } + pub mod transfer_on_hold { + use super::runtime_types; + pub type Reason = runtime_types::quantus_runtime::RuntimeHoldReason; + pub type Source = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Dest = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Amount = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for TransferOnHold { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "TransferOnHold"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The `transferred` balance is placed on hold at the `dest` account."] + pub struct TransferAndHold { + pub reason: transfer_and_hold::Reason, + pub source: transfer_and_hold::Source, + pub dest: transfer_and_hold::Dest, + pub transferred: transfer_and_hold::Transferred, + } + pub mod transfer_and_hold { + use super::runtime_types; + pub type Reason = runtime_types::quantus_runtime::RuntimeHoldReason; + pub type Source = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Dest = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Transferred = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for TransferAndHold { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "TransferAndHold"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Some balance was released from hold."] + pub struct Released { + pub reason: released::Reason, + pub who: released::Who, + pub amount: released::Amount, + } + pub mod released { + use super::runtime_types; + pub type Reason = runtime_types::quantus_runtime::RuntimeHoldReason; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Amount = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for Released { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Released"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "An unexpected/defensive event was triggered."] + pub struct Unexpected(pub unexpected::Field0); + pub mod unexpected { + use super::runtime_types; + pub type Field0 = runtime_types::pallet_balances::pallet::UnexpectedKind; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for Unexpected { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "Unexpected"; + } } pub mod storage { use super::runtime_types; @@ -5128,6 +5306,10 @@ pub mod api { use super::runtime_types; pub type StorageVersion = runtime_types::pallet_transaction_payment::Releases; } + pub mod tx_payment_credit { + use super::runtime_types; + pub type TxPaymentCredit = runtime_types :: frame_support :: traits :: storage :: NoDrop < runtime_types :: frame_support :: traits :: tokens :: fungible :: imbalance :: Imbalance < :: core :: primitive :: u128 > > ; + } } pub struct StorageApi; impl StorageApi { @@ -5173,6 +5355,29 @@ pub mod api { ], ) } + #[doc = " The `OnChargeTransaction` stores the withdrawn tx fee here."] + #[doc = ""] + #[doc = " Use `withdraw_txfee` and `remaining_txfee` to access from outside the crate."] + pub fn tx_payment_credit( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::tx_payment_credit::TxPaymentCredit, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "TransactionPayment", + "TxPaymentCredit", + (), + [ + 39u8, 127u8, 132u8, 77u8, 25u8, 10u8, 195u8, 64u8, 255u8, 212u8, 183u8, + 177u8, 238u8, 24u8, 81u8, 65u8, 93u8, 177u8, 209u8, 134u8, 245u8, + 241u8, 252u8, 87u8, 179u8, 61u8, 168u8, 77u8, 65u8, 13u8, 72u8, 205u8, + ], + ) + } } } pub mod constants { @@ -5375,10 +5580,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 235u8, 252u8, 124u8, 242u8, 195u8, 130u8, 86u8, 167u8, 204u8, 55u8, - 207u8, 110u8, 60u8, 82u8, 15u8, 153u8, 58u8, 150u8, 49u8, 77u8, 183u8, - 179u8, 231u8, 126u8, 81u8, 68u8, 233u8, 247u8, 190u8, 21u8, 53u8, - 194u8, + 24u8, 141u8, 2u8, 72u8, 96u8, 108u8, 188u8, 185u8, 194u8, 189u8, 85u8, + 38u8, 202u8, 47u8, 99u8, 163u8, 41u8, 150u8, 193u8, 31u8, 229u8, 218u8, + 124u8, 107u8, 188u8, 18u8, 24u8, 48u8, 88u8, 224u8, 139u8, 146u8, ], ) } @@ -5401,9 +5605,9 @@ pub mod api { weight, }, [ - 214u8, 170u8, 23u8, 224u8, 160u8, 17u8, 199u8, 78u8, 163u8, 142u8, - 191u8, 81u8, 242u8, 253u8, 7u8, 41u8, 42u8, 123u8, 122u8, 6u8, 71u8, - 144u8, 194u8, 23u8, 2u8, 82u8, 99u8, 51u8, 26u8, 35u8, 125u8, 136u8, + 46u8, 22u8, 24u8, 76u8, 164u8, 139u8, 82u8, 44u8, 160u8, 220u8, 119u8, + 122u8, 176u8, 4u8, 184u8, 55u8, 219u8, 75u8, 226u8, 43u8, 51u8, 153u8, + 189u8, 146u8, 245u8, 96u8, 161u8, 218u8, 243u8, 35u8, 70u8, 249u8, ], ) } @@ -5441,9 +5645,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 223u8, 26u8, 145u8, 224u8, 83u8, 235u8, 132u8, 251u8, 203u8, 56u8, - 35u8, 235u8, 15u8, 239u8, 96u8, 37u8, 70u8, 167u8, 19u8, 28u8, 179u8, - 196u8, 251u8, 19u8, 53u8, 98u8, 90u8, 187u8, 93u8, 139u8, 8u8, 46u8, + 58u8, 78u8, 164u8, 136u8, 199u8, 77u8, 215u8, 140u8, 160u8, 177u8, + 127u8, 208u8, 164u8, 155u8, 35u8, 130u8, 92u8, 143u8, 46u8, 82u8, + 232u8, 4u8, 61u8, 213u8, 74u8, 103u8, 128u8, 81u8, 26u8, 137u8, 39u8, + 71u8, ], ) } @@ -6900,10 +7105,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 224u8, 6u8, 189u8, 143u8, 200u8, 31u8, 204u8, 102u8, 211u8, 15u8, - 164u8, 111u8, 111u8, 157u8, 53u8, 14u8, 41u8, 226u8, 8u8, 91u8, 222u8, - 46u8, 96u8, 23u8, 184u8, 224u8, 106u8, 73u8, 136u8, 212u8, 163u8, - 119u8, + 232u8, 174u8, 107u8, 181u8, 152u8, 133u8, 51u8, 35u8, 111u8, 19u8, + 66u8, 80u8, 0u8, 148u8, 65u8, 239u8, 162u8, 250u8, 28u8, 124u8, 20u8, + 250u8, 177u8, 112u8, 35u8, 19u8, 32u8, 9u8, 166u8, 48u8, 69u8, 206u8, ], ) } @@ -6945,9 +7149,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 228u8, 52u8, 241u8, 237u8, 177u8, 69u8, 209u8, 126u8, 196u8, 0u8, 1u8, - 152u8, 0u8, 117u8, 117u8, 227u8, 72u8, 124u8, 81u8, 126u8, 11u8, 117u8, - 180u8, 18u8, 129u8, 149u8, 145u8, 206u8, 126u8, 13u8, 138u8, 140u8, + 13u8, 254u8, 63u8, 126u8, 76u8, 11u8, 93u8, 141u8, 57u8, 125u8, 141u8, + 225u8, 225u8, 5u8, 181u8, 28u8, 1u8, 94u8, 156u8, 234u8, 29u8, 214u8, + 124u8, 169u8, 128u8, 135u8, 70u8, 217u8, 50u8, 249u8, 178u8, 84u8, ], ) } @@ -6986,10 +7190,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 218u8, 34u8, 168u8, 237u8, 208u8, 192u8, 26u8, 15u8, 77u8, 152u8, - 243u8, 13u8, 66u8, 66u8, 168u8, 240u8, 182u8, 196u8, 247u8, 169u8, - 126u8, 238u8, 147u8, 25u8, 252u8, 154u8, 229u8, 118u8, 103u8, 62u8, - 252u8, 183u8, + 162u8, 125u8, 219u8, 73u8, 158u8, 117u8, 43u8, 87u8, 203u8, 66u8, 70u8, + 2u8, 216u8, 81u8, 36u8, 114u8, 236u8, 161u8, 11u8, 154u8, 173u8, 97u8, + 75u8, 215u8, 178u8, 154u8, 37u8, 132u8, 100u8, 230u8, 188u8, 208u8, ], ) } @@ -7014,9 +7217,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 157u8, 255u8, 142u8, 245u8, 199u8, 237u8, 39u8, 15u8, 52u8, 63u8, 11u8, - 103u8, 84u8, 123u8, 21u8, 63u8, 19u8, 191u8, 243u8, 74u8, 140u8, 253u8, - 23u8, 246u8, 33u8, 126u8, 198u8, 67u8, 171u8, 116u8, 6u8, 136u8, + 139u8, 221u8, 152u8, 183u8, 20u8, 207u8, 141u8, 46u8, 8u8, 172u8, + 154u8, 85u8, 106u8, 139u8, 217u8, 12u8, 190u8, 12u8, 4u8, 225u8, 103u8, + 127u8, 84u8, 158u8, 131u8, 218u8, 175u8, 114u8, 135u8, 111u8, 154u8, + 173u8, ], ) } @@ -8044,9 +8248,9 @@ pub mod api { "batch", types::Batch { calls }, [ - 155u8, 149u8, 6u8, 3u8, 240u8, 237u8, 103u8, 22u8, 219u8, 24u8, 245u8, - 110u8, 138u8, 189u8, 75u8, 126u8, 215u8, 181u8, 117u8, 72u8, 196u8, - 39u8, 186u8, 101u8, 187u8, 8u8, 96u8, 149u8, 28u8, 248u8, 222u8, 109u8, + 218u8, 227u8, 88u8, 252u8, 144u8, 164u8, 107u8, 191u8, 4u8, 6u8, 242u8, + 220u8, 160u8, 117u8, 131u8, 23u8, 30u8, 44u8, 210u8, 225u8, 129u8, + 119u8, 42u8, 236u8, 42u8, 77u8, 133u8, 77u8, 167u8, 238u8, 189u8, 18u8, ], ) } @@ -8076,10 +8280,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 173u8, 115u8, 46u8, 156u8, 121u8, 254u8, 127u8, 247u8, 13u8, 159u8, - 73u8, 166u8, 201u8, 33u8, 250u8, 239u8, 35u8, 251u8, 200u8, 191u8, - 248u8, 135u8, 58u8, 73u8, 213u8, 223u8, 252u8, 27u8, 226u8, 201u8, - 246u8, 77u8, + 61u8, 204u8, 36u8, 196u8, 16u8, 224u8, 252u8, 119u8, 160u8, 206u8, + 178u8, 6u8, 162u8, 252u8, 50u8, 119u8, 243u8, 74u8, 88u8, 93u8, 168u8, + 135u8, 247u8, 31u8, 113u8, 228u8, 106u8, 61u8, 76u8, 137u8, 49u8, + 152u8, ], ) } @@ -8105,9 +8309,9 @@ pub mod api { "batch_all", types::BatchAll { calls }, [ - 128u8, 37u8, 142u8, 195u8, 193u8, 178u8, 226u8, 203u8, 7u8, 68u8, 45u8, - 6u8, 57u8, 118u8, 167u8, 205u8, 14u8, 254u8, 113u8, 148u8, 121u8, 49u8, - 73u8, 85u8, 171u8, 120u8, 214u8, 244u8, 189u8, 148u8, 26u8, 42u8, + 95u8, 55u8, 212u8, 217u8, 21u8, 7u8, 172u8, 181u8, 131u8, 146u8, 194u8, + 179u8, 219u8, 165u8, 223u8, 70u8, 125u8, 117u8, 103u8, 207u8, 97u8, + 4u8, 2u8, 153u8, 7u8, 107u8, 218u8, 218u8, 238u8, 159u8, 132u8, 169u8, ], ) } @@ -8130,9 +8334,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 180u8, 19u8, 17u8, 244u8, 48u8, 143u8, 161u8, 235u8, 101u8, 243u8, - 230u8, 227u8, 114u8, 194u8, 81u8, 81u8, 123u8, 243u8, 218u8, 8u8, 36u8, - 39u8, 113u8, 231u8, 135u8, 169u8, 130u8, 71u8, 161u8, 21u8, 32u8, 63u8, + 45u8, 253u8, 46u8, 68u8, 166u8, 17u8, 170u8, 35u8, 107u8, 183u8, 69u8, + 167u8, 62u8, 147u8, 100u8, 67u8, 144u8, 182u8, 141u8, 227u8, 20u8, + 175u8, 1u8, 229u8, 103u8, 16u8, 162u8, 14u8, 144u8, 57u8, 62u8, 154u8, ], ) } @@ -8158,9 +8362,9 @@ pub mod api { "force_batch", types::ForceBatch { calls }, [ - 192u8, 220u8, 30u8, 205u8, 109u8, 252u8, 9u8, 10u8, 4u8, 11u8, 39u8, - 93u8, 83u8, 157u8, 223u8, 68u8, 132u8, 9u8, 203u8, 158u8, 114u8, 64u8, - 238u8, 241u8, 48u8, 254u8, 246u8, 152u8, 43u8, 99u8, 30u8, 67u8, + 143u8, 1u8, 248u8, 160u8, 18u8, 153u8, 38u8, 72u8, 212u8, 148u8, 146u8, + 7u8, 79u8, 129u8, 146u8, 207u8, 173u8, 174u8, 48u8, 237u8, 195u8, 6u8, + 40u8, 26u8, 146u8, 94u8, 85u8, 89u8, 187u8, 161u8, 10u8, 186u8, ], ) } @@ -8183,9 +8387,9 @@ pub mod api { weight, }, [ - 251u8, 120u8, 183u8, 92u8, 139u8, 200u8, 63u8, 201u8, 130u8, 145u8, - 125u8, 95u8, 17u8, 214u8, 57u8, 49u8, 199u8, 175u8, 155u8, 214u8, 64u8, - 61u8, 40u8, 245u8, 169u8, 110u8, 218u8, 80u8, 82u8, 68u8, 10u8, 212u8, + 45u8, 178u8, 212u8, 106u8, 190u8, 63u8, 70u8, 5u8, 15u8, 114u8, 128u8, + 212u8, 20u8, 232u8, 8u8, 28u8, 100u8, 12u8, 94u8, 250u8, 250u8, 221u8, + 169u8, 206u8, 52u8, 75u8, 152u8, 194u8, 133u8, 223u8, 85u8, 213u8, ], ) } @@ -8225,9 +8429,9 @@ pub mod api { fallback: ::subxt::ext::subxt_core::alloc::boxed::Box::new(fallback), }, [ - 42u8, 41u8, 254u8, 182u8, 132u8, 227u8, 59u8, 189u8, 21u8, 114u8, 86u8, - 54u8, 222u8, 2u8, 30u8, 39u8, 126u8, 189u8, 182u8, 196u8, 43u8, 144u8, - 82u8, 142u8, 193u8, 130u8, 12u8, 176u8, 130u8, 8u8, 224u8, 66u8, + 182u8, 227u8, 213u8, 214u8, 220u8, 74u8, 1u8, 211u8, 42u8, 249u8, + 237u8, 97u8, 126u8, 112u8, 93u8, 63u8, 5u8, 120u8, 216u8, 157u8, 132u8, + 123u8, 231u8, 38u8, 7u8, 139u8, 15u8, 126u8, 104u8, 63u8, 54u8, 76u8, ], ) } @@ -8250,9 +8454,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 75u8, 215u8, 72u8, 28u8, 158u8, 75u8, 120u8, 123u8, 163u8, 231u8, - 230u8, 11u8, 125u8, 11u8, 40u8, 218u8, 78u8, 60u8, 240u8, 31u8, 159u8, - 16u8, 135u8, 56u8, 244u8, 178u8, 72u8, 63u8, 14u8, 23u8, 193u8, 52u8, + 209u8, 114u8, 253u8, 16u8, 26u8, 99u8, 196u8, 135u8, 161u8, 52u8, 48u8, + 224u8, 235u8, 129u8, 247u8, 215u8, 88u8, 253u8, 178u8, 0u8, 82u8, + 173u8, 148u8, 199u8, 98u8, 250u8, 50u8, 6u8, 106u8, 190u8, 52u8, 214u8, ], ) } @@ -11232,11 +11436,16 @@ pub mod api { #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An account has delegated their vote to another account. \\[who, target\\]"] - pub struct Delegated(pub delegated::Field0, pub delegated::Field1); + pub struct Delegated( + pub delegated::Field0, + pub delegated::Field1, + pub delegated::Field2, + ); pub mod delegated { use super::runtime_types; pub type Field0 = ::subxt::ext::subxt_core::utils::AccountId32; pub type Field1 = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Field2 = ::core::primitive::u16; } impl ::subxt::ext::subxt_core::events::StaticEvent for Delegated { const PALLET: &'static str = "ConvictionVoting"; @@ -11250,10 +11459,11 @@ pub mod api { #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An \\[account\\] has cancelled a previous delegation operation."] - pub struct Undelegated(pub undelegated::Field0); + pub struct Undelegated(pub undelegated::Field0, pub undelegated::Field1); pub mod undelegated { use super::runtime_types; pub type Field0 = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Field1 = ::core::primitive::u16; } impl ::subxt::ext::subxt_core::events::StaticEvent for Undelegated { const PALLET: &'static str = "ConvictionVoting"; @@ -11270,6 +11480,7 @@ pub mod api { pub struct Voted { pub who: voted::Who, pub vote: voted::Vote, + pub poll_index: voted::PollIndex, } pub mod voted { use super::runtime_types; @@ -11277,6 +11488,7 @@ pub mod api { pub type Vote = runtime_types::pallet_conviction_voting::vote::AccountVote< ::core::primitive::u128, >; + pub type PollIndex = ::core::primitive::u32; } impl ::subxt::ext::subxt_core::events::StaticEvent for Voted { const PALLET: &'static str = "ConvictionVoting"; @@ -11293,6 +11505,7 @@ pub mod api { pub struct VoteRemoved { pub who: vote_removed::Who, pub vote: vote_removed::Vote, + pub poll_index: vote_removed::PollIndex, } pub mod vote_removed { use super::runtime_types; @@ -11300,6 +11513,7 @@ pub mod api { pub type Vote = runtime_types::pallet_conviction_voting::vote::AccountVote< ::core::primitive::u128, >; + pub type PollIndex = ::core::primitive::u32; } impl ::subxt::ext::subxt_core::events::StaticEvent for VoteRemoved { const PALLET: &'static str = "ConvictionVoting"; @@ -14341,9 +14555,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 236u8, 116u8, 42u8, 49u8, 236u8, 100u8, 253u8, 181u8, 98u8, 152u8, - 51u8, 82u8, 0u8, 40u8, 214u8, 186u8, 90u8, 117u8, 84u8, 251u8, 163u8, - 107u8, 39u8, 248u8, 22u8, 20u8, 231u8, 105u8, 247u8, 185u8, 37u8, 95u8, + 74u8, 28u8, 170u8, 7u8, 84u8, 125u8, 208u8, 229u8, 206u8, 35u8, 213u8, + 58u8, 187u8, 211u8, 153u8, 234u8, 193u8, 109u8, 97u8, 114u8, 59u8, + 238u8, 20u8, 171u8, 27u8, 139u8, 40u8, 12u8, 219u8, 199u8, 220u8, + 245u8, ], ) } @@ -16343,9 +16558,10 @@ pub mod api { #[doc = ""] #[doc = "A deposit will be taken from the signer account."] #[doc = ""] - #[doc = "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account"] - #[doc = " must have sufficient funds for a deposit to be taken."] - #[doc = "- `id`: The identifier of the asset for the account to be created."] + #[doc = "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit"] + #[doc = " to be taken."] + #[doc = "- `id`: The identifier of the asset for the account to be created, the asset status must"] + #[doc = " be live."] #[doc = "- `who`: The account to be created."] #[doc = ""] #[doc = "Emits `Touched` event when successful."] @@ -16491,6 +16707,41 @@ pub mod api { const PALLET: &'static str = "Assets"; const CALL: &'static str = "transfer_all"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Sets the trusted reserve information of an asset."] + #[doc = ""] + #[doc = "Origin must be the Owner of the asset `id`. The origin must conform to the configured"] + #[doc = "`CreateOrigin` or be the signed `owner` configured during asset creation."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `reserves`: The full list of trusted reserves information."] + #[doc = ""] + #[doc = "Emits `AssetMinBalanceChanged` event when successful."] + pub struct SetReserves { + #[codec(compact)] + pub id: set_reserves::Id, + pub reserves: set_reserves::Reserves, + } + pub mod set_reserves { + use super::runtime_types; + pub type Id = ::core::primitive::u32; + pub type Reserves = + runtime_types::bounded_collections::bounded_vec::BoundedVec<()>; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetReserves { + const PALLET: &'static str = "Assets"; + const CALL: &'static str = "set_reserves"; + } } pub struct TransactionApi; impl TransactionApi { @@ -17413,9 +17664,10 @@ pub mod api { #[doc = ""] #[doc = "A deposit will be taken from the signer account."] #[doc = ""] - #[doc = "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account"] - #[doc = " must have sufficient funds for a deposit to be taken."] - #[doc = "- `id`: The identifier of the asset for the account to be created."] + #[doc = "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit"] + #[doc = " to be taken."] + #[doc = "- `id`: The identifier of the asset for the account to be created, the asset status must"] + #[doc = " be live."] #[doc = "- `who`: The account to be created."] #[doc = ""] #[doc = "Emits `Touched` event when successful."] @@ -17526,6 +17778,230 @@ pub mod api { ], ) } + #[doc = "Sets the trusted reserve information of an asset."] + #[doc = ""] + #[doc = "Origin must be the Owner of the asset `id`. The origin must conform to the configured"] + #[doc = "`CreateOrigin` or be the signed `owner` configured during asset creation."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `reserves`: The full list of trusted reserves information."] + #[doc = ""] + #[doc = "Emits `AssetMinBalanceChanged` event when successful."] + pub fn set_reserves( + &self, + id: types::set_reserves::Id, + reserves: types::set_reserves::Reserves, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Assets", + "set_reserves", + types::SetReserves { id, reserves }, + [ + 170u8, 210u8, 175u8, 235u8, 220u8, 223u8, 164u8, 253u8, 189u8, 4u8, + 100u8, 160u8, 181u8, 44u8, 79u8, 187u8, 37u8, 102u8, 0u8, 187u8, 48u8, + 82u8, 247u8, 200u8, 2u8, 141u8, 57u8, 55u8, 224u8, 32u8, 176u8, 231u8, + ], + ) + } + } + } + pub mod view_functions { + use super::{root_mod, runtime_types}; + pub struct ViewFunctionsApi; + impl ViewFunctionsApi { + #[doc = " Provide the asset details for asset `id`."] + pub fn asset_details( + &self, + id: asset_details::Id, + ) -> ::subxt::ext::subxt_core::view_functions::payload::StaticPayload< + asset_details::Input, + asset_details::output::Output, + > { + ::subxt::ext::subxt_core::view_functions::payload::StaticPayload::new_static( + [ + 104u8, 42u8, 89u8, 213u8, 26u8, 185u8, 228u8, 138u8, 140u8, 140u8, + 196u8, 24u8, 255u8, 151u8, 8u8, 210u8, 167u8, 2u8, 151u8, 173u8, 11u8, + 75u8, 221u8, 61u8, 164u8, 183u8, 70u8, 41u8, 166u8, 90u8, 110u8, 92u8, + ], + asset_details::Input { id }, + [ + 211u8, 90u8, 10u8, 200u8, 75u8, 44u8, 223u8, 16u8, 230u8, 165u8, 250u8, + 228u8, 154u8, 9u8, 130u8, 112u8, 113u8, 184u8, 170u8, 127u8, 188u8, + 95u8, 63u8, 51u8, 78u8, 130u8, 147u8, 123u8, 190u8, 170u8, 16u8, 65u8, + ], + ) + } + #[doc = " Provide the balance of `who` for asset `id`."] + pub fn balance_of( + &self, + who: balance_of::Who, + id: balance_of::Id, + ) -> ::subxt::ext::subxt_core::view_functions::payload::StaticPayload< + balance_of::Input, + balance_of::output::Output, + > { + ::subxt::ext::subxt_core::view_functions::payload::StaticPayload::new_static( + [ + 104u8, 42u8, 89u8, 213u8, 26u8, 185u8, 228u8, 138u8, 140u8, 140u8, + 196u8, 24u8, 255u8, 151u8, 8u8, 210u8, 83u8, 26u8, 199u8, 226u8, 27u8, + 118u8, 177u8, 33u8, 231u8, 97u8, 228u8, 115u8, 65u8, 154u8, 27u8, 2u8, + ], + balance_of::Input { who, id }, + [ + 111u8, 166u8, 174u8, 198u8, 50u8, 246u8, 223u8, 192u8, 195u8, 6u8, + 218u8, 113u8, 85u8, 251u8, 79u8, 59u8, 196u8, 83u8, 39u8, 141u8, 200u8, + 113u8, 92u8, 67u8, 110u8, 112u8, 255u8, 77u8, 94u8, 232u8, 148u8, + 189u8, + ], + ) + } + #[doc = " Provide the configured metadata for asset `id`."] + pub fn get_metadata( + &self, + id: get_metadata::Id, + ) -> ::subxt::ext::subxt_core::view_functions::payload::StaticPayload< + get_metadata::Input, + get_metadata::output::Output, + > { + ::subxt::ext::subxt_core::view_functions::payload::StaticPayload::new_static( + [ + 104u8, 42u8, 89u8, 213u8, 26u8, 185u8, 228u8, 138u8, 140u8, 140u8, + 196u8, 24u8, 255u8, 151u8, 8u8, 210u8, 46u8, 135u8, 102u8, 164u8, 13u8, + 27u8, 105u8, 214u8, 21u8, 27u8, 216u8, 1u8, 229u8, 117u8, 80u8, 94u8, + ], + get_metadata::Input { id }, + [ + 194u8, 126u8, 37u8, 51u8, 199u8, 8u8, 17u8, 77u8, 127u8, 118u8, 9u8, + 196u8, 248u8, 40u8, 136u8, 175u8, 243u8, 35u8, 137u8, 159u8, 137u8, + 162u8, 58u8, 4u8, 206u8, 51u8, 222u8, 234u8, 218u8, 8u8, 23u8, 195u8, + ], + ) + } + #[doc = " Provide the configured reserves data for asset `id`."] + pub fn get_reserves_data( + &self, + id: get_reserves_data::Id, + ) -> ::subxt::ext::subxt_core::view_functions::payload::StaticPayload< + get_reserves_data::Input, + get_reserves_data::output::Output, + > { + ::subxt::ext::subxt_core::view_functions::payload::StaticPayload::new_static( + [ + 104u8, 42u8, 89u8, 213u8, 26u8, 185u8, 228u8, 138u8, 140u8, 140u8, + 196u8, 24u8, 255u8, 151u8, 8u8, 210u8, 100u8, 246u8, 63u8, 41u8, 35u8, + 227u8, 152u8, 40u8, 36u8, 49u8, 99u8, 129u8, 174u8, 30u8, 105u8, 134u8, + ], + get_reserves_data::Input { id }, + [ + 209u8, 99u8, 108u8, 142u8, 202u8, 226u8, 194u8, 23u8, 99u8, 165u8, + 72u8, 212u8, 158u8, 187u8, 5u8, 201u8, 58u8, 51u8, 161u8, 119u8, 0u8, + 58u8, 15u8, 109u8, 255u8, 0u8, 192u8, 222u8, 51u8, 241u8, 34u8, 116u8, + ], + ) + } + } + pub mod asset_details { + use super::{root_mod, runtime_types}; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Input { + pub id: Id, + } + pub type Id = ::core::primitive::u32; + pub mod output { + use super::runtime_types; + pub type Output = ::core::option::Option< + runtime_types::pallet_assets::types::AssetDetails< + ::core::primitive::u128, + ::subxt::ext::subxt_core::utils::AccountId32, + ::core::primitive::u128, + >, + >; + } + } + pub mod balance_of { + use super::{root_mod, runtime_types}; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Input { + pub who: Who, + pub id: Id, + } + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Id = ::core::primitive::u32; + pub mod output { + use super::runtime_types; + pub type Output = ::core::option::Option<::core::primitive::u128>; + } + } + pub mod get_metadata { + use super::{root_mod, runtime_types}; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Input { + pub id: Id, + } + pub type Id = ::core::primitive::u32; + pub mod output { + use super::runtime_types; + pub type Output = ::core::option::Option< + runtime_types::pallet_assets::types::AssetMetadata< + ::core::primitive::u128, + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + >, + >; + } + } + pub mod get_reserves_data { + use super::{root_mod, runtime_types}; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Input { + pub id: Id, + } + pub type Id = ::core::primitive::u32; + pub mod output { + use super::runtime_types; + pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<()>; + } } } #[doc = "The `Event` enum of this pallet"] @@ -18109,6 +18585,46 @@ pub mod api { const PALLET: &'static str = "Assets"; const EVENT: &'static str = "Withdrawn"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Reserve information was set or updated for `asset_id`."] + pub struct ReservesUpdated { + pub asset_id: reserves_updated::AssetId, + pub reserves: reserves_updated::Reserves, + } + pub mod reserves_updated { + use super::runtime_types; + pub type AssetId = ::core::primitive::u32; + pub type Reserves = ::subxt::ext::subxt_core::alloc::vec::Vec<()>; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for ReservesUpdated { + const PALLET: &'static str = "Assets"; + const EVENT: &'static str = "ReservesUpdated"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Reserve information was removed for `asset_id`."] + pub struct ReservesRemoved { + pub asset_id: reserves_removed::AssetId, + } + pub mod reserves_removed { + use super::runtime_types; + pub type AssetId = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for ReservesRemoved { + const PALLET: &'static str = "Assets"; + const EVENT: &'static str = "ReservesRemoved"; + } } pub mod storage { use super::runtime_types; @@ -18154,6 +18670,12 @@ pub mod api { >; pub type Param0 = ::core::primitive::u32; } + pub mod reserves { + use super::runtime_types; + pub type Reserves = + runtime_types::bounded_collections::bounded_vec::BoundedVec<()>; + pub type Param0 = ::core::primitive::u32; + } pub mod next_asset_id { use super::runtime_types; pub type NextAssetId = ::core::primitive::u32; @@ -18453,6 +18975,51 @@ pub mod api { ], ) } + #[doc = " Maps an asset to a list of its configured reserve information."] + pub fn reserves_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::reserves::Reserves, + (), + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Assets", + "Reserves", + (), + [ + 118u8, 223u8, 23u8, 189u8, 54u8, 5u8, 111u8, 29u8, 141u8, 11u8, 214u8, + 144u8, 141u8, 14u8, 233u8, 226u8, 24u8, 243u8, 20u8, 91u8, 144u8, + 162u8, 54u8, 144u8, 17u8, 115u8, 12u8, 127u8, 20u8, 255u8, 14u8, 188u8, + ], + ) + } + #[doc = " Maps an asset to a list of its configured reserve information."] + pub fn reserves( + &self, + _0: types::reserves::Param0, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::reserves::Param0, + >, + types::reserves::Reserves, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Assets", + "Reserves", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new(_0), + [ + 118u8, 223u8, 23u8, 189u8, 54u8, 5u8, 111u8, 29u8, 141u8, 11u8, 214u8, + 144u8, 141u8, 14u8, 233u8, 226u8, 24u8, 243u8, 20u8, 91u8, 144u8, + 162u8, 54u8, 144u8, 17u8, 115u8, 12u8, 127u8, 20u8, 255u8, 14u8, 188u8, + ], + ) + } #[doc = " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage"] #[doc = " item has no effect."] #[doc = ""] @@ -20195,10 +20762,13 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ProofVerified { pub exit_amount: proof_verified::ExitAmount, + pub nullifiers: proof_verified::Nullifiers, } pub mod proof_verified { use super::runtime_types; pub type ExitAmount = ::core::primitive::u128; + pub type Nullifiers = + ::subxt::ext::subxt_core::alloc::vec::Vec<[::core::primitive::u8; 32usize]>; } impl ::subxt::ext::subxt_core::events::StaticEvent for ProofVerified { const PALLET: &'static str = "Wormhole"; @@ -20676,8 +21246,43 @@ pub mod api { After(_0), } } + pub mod storage { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct NoDrop<_0>(pub _0); + } pub mod tokens { use super::runtime_types; + pub mod fungible { + use super::runtime_types; + pub mod imbalance { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Imbalance<_0> { + pub amount: _0, + } + } + } pub mod misc { use super::runtime_types; #[derive( @@ -21859,9 +22464,10 @@ pub mod api { #[doc = ""] #[doc = "A deposit will be taken from the signer account."] #[doc = ""] - #[doc = "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account"] - #[doc = " must have sufficient funds for a deposit to be taken."] - #[doc = "- `id`: The identifier of the asset for the account to be created."] + #[doc = "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit"] + #[doc = " to be taken."] + #[doc = "- `id`: The identifier of the asset for the account to be created, the asset status must"] + #[doc = " be live."] #[doc = "- `who`: The account to be created."] #[doc = ""] #[doc = "Emits `Touched` event when successful."] @@ -21940,6 +22546,21 @@ pub mod api { >, keep_alive: ::core::primitive::bool, }, + #[codec(index = 33)] + #[doc = "Sets the trusted reserve information of an asset."] + #[doc = ""] + #[doc = "Origin must be the Owner of the asset `id`. The origin must conform to the configured"] + #[doc = "`CreateOrigin` or be the signed `owner` configured during asset creation."] + #[doc = ""] + #[doc = "- `id`: The identifier of the asset."] + #[doc = "- `reserves`: The full list of trusted reserves information."] + #[doc = ""] + #[doc = "Emits `AssetMinBalanceChanged` event when successful."] + set_reserves { + #[codec(compact)] + id: ::core::primitive::u32, + reserves: runtime_types::bounded_collections::bounded_vec::BoundedVec<()>, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, @@ -22026,6 +22647,9 @@ pub mod api { #[codec(index = 22)] #[doc = "The asset cannot be destroyed because some accounts for this asset contain holds."] ContainsHolds, + #[codec(index = 23)] + #[doc = "Tried setting too many reserves."] + TooManyReserves, } #[derive( :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, @@ -22200,6 +22824,15 @@ pub mod api { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, }, + #[codec(index = 26)] + #[doc = "Reserve information was set or updated for `asset_id`."] + ReservesUpdated { + asset_id: ::core::primitive::u32, + reserves: ::subxt::ext::subxt_core::alloc::vec::Vec<()>, + }, + #[codec(index = 27)] + #[doc = "Reserve information was removed for `asset_id`."] + ReservesRemoved { asset_id: ::core::primitive::u32 }, } } pub mod types { @@ -22689,62 +23322,125 @@ pub mod api { amount: ::core::primitive::u128, }, #[codec(index = 11)] + #[doc = "Some credit was balanced and added to the TotalIssuance."] + MintedCredit { amount: ::core::primitive::u128 }, + #[codec(index = 12)] #[doc = "Some amount was burned from an account."] Burned { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, }, - #[codec(index = 12)] + #[codec(index = 13)] + #[doc = "Some debt has been dropped from the Total Issuance."] + BurnedDebt { amount: ::core::primitive::u128 }, + #[codec(index = 14)] #[doc = "Some amount was suspended from an account (it can be restored later)."] Suspended { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, }, - #[codec(index = 13)] + #[codec(index = 15)] #[doc = "Some amount was restored into an account."] Restored { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, }, - #[codec(index = 14)] + #[codec(index = 16)] #[doc = "An account was upgraded."] Upgraded { who: ::subxt::ext::subxt_core::utils::AccountId32 }, - #[codec(index = 15)] + #[codec(index = 17)] #[doc = "Total issuance was increased by `amount`, creating a credit to be balanced."] Issued { amount: ::core::primitive::u128 }, - #[codec(index = 16)] + #[codec(index = 18)] #[doc = "Total issuance was decreased by `amount`, creating a debt to be balanced."] Rescinded { amount: ::core::primitive::u128 }, - #[codec(index = 17)] + #[codec(index = 19)] #[doc = "Some balance was locked."] Locked { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, }, - #[codec(index = 18)] + #[codec(index = 20)] #[doc = "Some balance was unlocked."] Unlocked { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, }, - #[codec(index = 19)] + #[codec(index = 21)] #[doc = "Some balance was frozen."] Frozen { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, }, - #[codec(index = 20)] + #[codec(index = 22)] #[doc = "Some balance was thawed."] Thawed { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, }, - #[codec(index = 21)] + #[codec(index = 23)] #[doc = "The `TotalIssuance` was forcefully changed."] TotalIssuanceForced { old: ::core::primitive::u128, new: ::core::primitive::u128, }, + #[codec(index = 24)] + #[doc = "Some balance was placed on hold."] + Held { + reason: runtime_types::quantus_runtime::RuntimeHoldReason, + who: ::subxt::ext::subxt_core::utils::AccountId32, + amount: ::core::primitive::u128, + }, + #[codec(index = 25)] + #[doc = "Held balance was burned from an account."] + BurnedHeld { + reason: runtime_types::quantus_runtime::RuntimeHoldReason, + who: ::subxt::ext::subxt_core::utils::AccountId32, + amount: ::core::primitive::u128, + }, + #[codec(index = 26)] + #[doc = "A transfer of `amount` on hold from `source` to `dest` was initiated."] + TransferOnHold { + reason: runtime_types::quantus_runtime::RuntimeHoldReason, + source: ::subxt::ext::subxt_core::utils::AccountId32, + dest: ::subxt::ext::subxt_core::utils::AccountId32, + amount: ::core::primitive::u128, + }, + #[codec(index = 27)] + #[doc = "The `transferred` balance is placed on hold at the `dest` account."] + TransferAndHold { + reason: runtime_types::quantus_runtime::RuntimeHoldReason, + source: ::subxt::ext::subxt_core::utils::AccountId32, + dest: ::subxt::ext::subxt_core::utils::AccountId32, + transferred: ::core::primitive::u128, + }, + #[codec(index = 28)] + #[doc = "Some balance was released from hold."] + Released { + reason: runtime_types::quantus_runtime::RuntimeHoldReason, + who: ::subxt::ext::subxt_core::utils::AccountId32, + amount: ::core::primitive::u128, + }, + #[codec(index = 29)] + #[doc = "An unexpected/defensive event was triggered."] + Unexpected(runtime_types::pallet_balances::pallet::UnexpectedKind), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum UnexpectedKind { + #[codec(index = 0)] + BalanceUpdated, + #[codec(index = 1)] + FailedToMutateAccount, } } pub mod types { @@ -23106,10 +23802,14 @@ pub mod api { Delegated( ::subxt::ext::subxt_core::utils::AccountId32, ::subxt::ext::subxt_core::utils::AccountId32, + ::core::primitive::u16, ), #[codec(index = 1)] #[doc = "An \\[account\\] has cancelled a previous delegation operation."] - Undelegated(::subxt::ext::subxt_core::utils::AccountId32), + Undelegated( + ::subxt::ext::subxt_core::utils::AccountId32, + ::core::primitive::u16, + ), #[codec(index = 2)] #[doc = "An account has voted"] Voted { @@ -23117,6 +23817,7 @@ pub mod api { vote: runtime_types::pallet_conviction_voting::vote::AccountVote< ::core::primitive::u128, >, + poll_index: ::core::primitive::u32, }, #[codec(index = 3)] #[doc = "A vote has been removed"] @@ -23125,6 +23826,7 @@ pub mod api { vote: runtime_types::pallet_conviction_voting::vote::AccountVote< ::core::primitive::u128, >, + poll_index: ::core::primitive::u32, }, #[codec(index = 4)] #[doc = "The lockup period of a conviction vote expired, and the funds have been unlocked."] @@ -26406,7 +27108,12 @@ pub mod api { transfer_count: ::core::primitive::u64, }, #[codec(index = 2)] - ProofVerified { exit_amount: ::core::primitive::u128 }, + ProofVerified { + exit_amount: ::core::primitive::u128, + nullifiers: ::subxt::ext::subxt_core::alloc::vec::Vec< + [::core::primitive::u8; 32usize], + >, + }, } } } @@ -26893,6 +27600,25 @@ pub mod api { pub header: _0, pub extrinsics: ::subxt::ext::subxt_core::alloc::vec::Vec<_1>, } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct LazyBlock<_0, _1> { + pub header: _0, + pub extrinsics: ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::sp_runtime::OpaqueExtrinsic, + >, + #[codec(skip)] + pub __ignore: ::core::marker::PhantomData<_1>, + } } pub mod digest { use super::runtime_types; @@ -27718,6 +28444,16 @@ pub mod api { )] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub struct OpaqueExtrinsic( + pub ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + ); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum TokenError { #[codec(index = 0)] FundsUnavailable, diff --git a/src/cli/mod.rs b/src/cli/mod.rs index 2d3e436..4caf840 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -298,10 +298,14 @@ pub enum DeveloperCommands { #[arg(long, default_value = "../chain")] chain_path: String, - /// Number of leaf proofs aggregated into a single proof + /// Number of leaf proofs aggregated into a single layer-0 proof #[arg(long)] num_leaf_proofs: usize, + /// Number of inner layer-0 proofs aggregated into a single layer-1 proof + #[arg(long)] + num_layer0_proofs: Option, + /// Skip copying to chain directory #[arg(long)] skip_chain: bool, @@ -569,8 +573,17 @@ pub async fn handle_developer_command(command: DeveloperCommands) -> crate::erro circuits_path, chain_path, num_leaf_proofs, + num_layer0_proofs, skip_chain, - } => build_wormhole_circuits(&circuits_path, &chain_path, num_leaf_proofs, skip_chain).await, + } => + build_wormhole_circuits( + &circuits_path, + &chain_path, + num_leaf_proofs, + num_layer0_proofs, + skip_chain, + ) + .await, } } @@ -579,11 +592,16 @@ async fn build_wormhole_circuits( circuits_path: &str, chain_path: &str, num_leaf_proofs: usize, + num_layer0_proofs: Option, skip_chain: bool, ) -> crate::error::Result<()> { use std::{path::Path, process::Command}; - log_print!("Building ZK circuit binaries (num_leaf_proofs={})", num_leaf_proofs); + log_print!( + "Building ZK circuit binaries (num_leaf_proofs={}, num_layer0_proofs={})", + num_leaf_proofs, + num_layer0_proofs.unwrap_or(0) + ); log_print!(""); let circuits_dir = Path::new(circuits_path); @@ -619,13 +637,16 @@ async fn build_wormhole_circuits( // Step 2: Run the circuit builder to generate binaries log_print!("Step 2/4: Generating circuit binaries (this may take a while)..."); let builder_path = circuits_dir.join("target/release/qp-wormhole-circuit-builder"); - let run_output = Command::new(&builder_path) - .args(["--num-leaf-proofs", &num_leaf_proofs.to_string()]) - .current_dir(circuits_dir) - .output() - .map_err(|e| { - crate::error::QuantusError::Generic(format!("Failed to run circuit builder: {}", e)) - })?; + let mut cmd = Command::new(&builder_path); + cmd.arg("--num-leaf-proofs").arg(num_leaf_proofs.to_string()); + + if let Some(num_layer0) = num_layer0_proofs { + cmd.arg("--num-layer0-proofs").arg(num_layer0.to_string()); + } + + let run_output = cmd.current_dir(circuits_dir).output().map_err(|e| { + crate::error::QuantusError::Generic(format!("Failed to run circuit builder: {}", e)) + })?; if !run_output.status.success() { let stderr = String::from_utf8_lossy(&run_output.stderr); @@ -641,17 +662,30 @@ async fn build_wormhole_circuits( let source_bins = circuits_dir.join("generated-bins"); let cli_bins = Path::new("generated-bins"); - let cli_bin_files = [ - "common.bin", - "verifier.bin", - "prover.bin", - "dummy_proof.bin", - "aggregated_common.bin", - "aggregated_verifier.bin", - "config.json", + let possible_cli_bin_files = [ + "common.bin", // leaf circuit + "verifier.bin", // leaf circuit + "prover.bin", // leaf circuit + "dummy_proof.bin", // leaf dummy proof + "aggregated_common.bin", // layer-0 aggregated circuit + "aggregated_verifier.bin", // layer-0 aggregated circuit + "aggregated_prover.bin", // layer-0 aggregated circuit + "config.json", // config file with metadata about the circuit bin data + // Layer-0 binaries are always generated, but layer-1 binaries are only generated if + // num_layer0_proofs is set + "layer1_common.bin", // layer-1 aggregated circuit + "layer1_verifier.bin", // layer-1 aggregated circuit + "layer1_prover.bin", // layer-1 aggregated circuit ]; - for file in &cli_bin_files { + let cli_bin_files = if num_layer0_proofs.is_some() { + &possible_cli_bin_files + } else { + // If num_layer0_proofs is not set, we only generate layer-0 binaries. + &possible_cli_bin_files[0..8] + }; + + for file in cli_bin_files { let src = source_bins.join(file); let dst = cli_bins.join(file); std::fs::copy(&src, &dst).map_err(|e| { diff --git a/src/cli/wormhole.rs b/src/cli/wormhole.rs index a42afc3..51e6fb7 100644 --- a/src/cli/wormhole.rs +++ b/src/cli/wormhole.rs @@ -17,6 +17,10 @@ use qp_rusty_crystals_hdwallet::{ derive_wormhole_from_mnemonic, generate_mnemonic, SensitiveBytes32, WormholePair, QUANTUS_WORMHOLE_CHAIN_ID, }; +use qp_wormhole_aggregator::{ + aggregator::{AggregationBackend, CircuitType}, + config::CircuitBinsConfig, +}; use qp_wormhole_circuit::{ inputs::{CircuitInputs, ParseAggregatedPublicInputs, PrivateCircuitInputs}, nullifier::Nullifier, @@ -52,95 +56,6 @@ pub const SCALE_DOWN_FACTOR: u128 = 10_000_000_000; /// This must match the on-chain VolumeFeeRateBps configuration pub const VOLUME_FEE_BPS: u32 = 10; -/// SHA256 hashes of circuit binary files for integrity verification. -/// Must match the BinaryHashes struct in qp-wormhole-aggregator/src/config.rs -#[derive(Debug, Clone, serde::Deserialize, Default)] -pub struct BinaryHashes { - pub prover: Option, - pub aggregated_common: Option, - pub aggregated_verifier: Option, - pub dummy_proof: Option, -} - -/// Aggregation config loaded from generated-bins/config.json. -/// Must match the CircuitBinsConfig struct in qp-wormhole-aggregator/src/config.rs -#[derive(Debug, Clone, serde::Deserialize)] -pub struct AggregationConfig { - pub num_leaf_proofs: usize, - #[serde(default)] - pub hashes: Option, -} - -impl AggregationConfig { - /// Load config from the generated-bins directory - pub fn load_from_bins() -> crate::error::Result { - let config_path = Path::new("generated-bins/config.json"); - let config_str = std::fs::read_to_string(config_path).map_err(|e| { - crate::error::QuantusError::Generic(format!( - "Failed to read aggregation config from {}: {}. Run 'quantus developer build-circuits' first.", - config_path.display(), - e - )) - })?; - serde_json::from_str(&config_str).map_err(|e| { - crate::error::QuantusError::Generic(format!( - "Failed to parse aggregation config: {}", - e - )) - }) - } - - /// Verify that the binary files in generated-bins match the stored hashes. - pub fn verify_binary_hashes(&self) -> crate::error::Result<()> { - use sha2::{Digest, Sha256}; - - let Some(ref stored_hashes) = self.hashes else { - log_verbose!(" No hashes in config.json, skipping binary verification"); - return Ok(()); - }; - - let bins_dir = Path::new("generated-bins"); - let mut mismatches = Vec::new(); - - let hash_file = |filename: &str| -> Option { - let path = bins_dir.join(filename); - std::fs::read(&path).ok().map(|bytes| { - let hash = Sha256::digest(&bytes); - hex::encode(hash) - }) - }; - - let checks = [ - ("aggregated_common.bin", &stored_hashes.aggregated_common), - ("aggregated_verifier.bin", &stored_hashes.aggregated_verifier), - ("prover.bin", &stored_hashes.prover), - ("dummy_proof.bin", &stored_hashes.dummy_proof), - ]; - for (filename, expected_hash) in checks { - if let Some(ref expected) = expected_hash { - if let Some(actual) = hash_file(filename) { - if expected != &actual { - mismatches.push(format!("{}...", filename)); - } - } - } - } - - if mismatches.is_empty() { - log_verbose!(" Binary hashes verified successfully"); - Ok(()) - } else { - Err(crate::error::QuantusError::Generic(format!( - "Binary hash mismatch detected! The circuit binaries do not match config.json.\n\ - This can happen if binaries were regenerated but the CLI wasn't rebuilt.\n\ - Mismatches:\n {}\n\n\ - To fix: Run 'quantus developer build-circuits' and then 'cargo build --release'", - mismatches.join("\n ") - ))) - } - } -} - /// Compute output amount after fee deduction /// output = input * (10000 - fee_bps) / 10000 pub fn compute_output_amount(input_amount: u32, fee_bps: u32) -> u32 { @@ -857,8 +772,7 @@ async fn aggregate_proofs( proof_files: Vec, output_file: String, ) -> crate::error::Result<()> { - use qp_wormhole_aggregator::aggregator::WormholeProofAggregator; - use qp_zk_circuits_common::aggregation::AggregationConfig as AggConfig; + use qp_wormhole_aggregator::aggregator::Layer0Aggregator; use std::path::Path; @@ -866,11 +780,12 @@ async fn aggregate_proofs( // Load config first to validate and calculate padding needs let bins_dir = Path::new("generated-bins"); - let agg_config = AggregationConfig::load_from_bins()?; - - // Verify binary hashes match config.json to detect stale binaries - log_verbose!("Verifying circuit binary integrity..."); - agg_config.verify_binary_hashes()?; + let agg_config = CircuitBinsConfig::load(bins_dir).map_err(|e| { + crate::error::QuantusError::Generic(format!( + "Failed to load circuit bins config from {:?}: {}", + bins_dir, e + )) + })?; // Validate number of proofs before doing expensive work if proof_files.len() > agg_config.num_leaf_proofs { @@ -888,17 +803,17 @@ async fn aggregate_proofs( // This also generates the padding (dummy) proofs needed log_print!(" Loading aggregator and generating {} dummy proofs...", num_padding_proofs); - let aggr_config = AggConfig::new(agg_config.num_leaf_proofs); - let mut aggregator = WormholeProofAggregator::from_prebuilt_dir(bins_dir, aggr_config) - .map_err(|e| { - crate::error::QuantusError::Generic(format!( - "Failed to load aggregator from pre-built bins: {}", - e - )) - })?; + let mut aggregator = Layer0Aggregator::new(bins_dir).map_err(|e| { + crate::error::QuantusError::Generic(format!( + "Failed to load aggregator from pre-built bins: {}", + e + )) + })?; - log_verbose!("Aggregation config: num_leaf_proofs={}", aggregator.config.num_leaf_proofs); - let common_data = aggregator.leaf_circuit_data.common.clone(); + log_verbose!("Aggregation config: num_leaf_proofs={}", aggregator.batch_size()); + let common_data = aggregator.load_common_data(CircuitType::Leaf).map_err(|e| { + crate::error::QuantusError::Generic(format!("Failed to get common data: {}", e)) + })?; // Load and add proofs using helper function for (idx, proof_file) in proof_files.iter().enumerate() { @@ -930,15 +845,14 @@ async fn aggregate_proofs( log_print!(" Aggregation: {:.2}s", agg_elapsed.as_secs_f64()); // Parse and display aggregated public inputs - let aggregated_public_inputs = AggregatedPublicCircuitInputs::try_from_felts( - aggregated_proof.proof.public_inputs.as_slice(), - ) - .map_err(|e| { - crate::error::QuantusError::Generic(format!( - "Failed to parse aggregated public inputs: {}", - e - )) - })?; + let aggregated_public_inputs = + AggregatedPublicCircuitInputs::try_from_felts(aggregated_proof.public_inputs.as_slice()) + .map_err(|e| { + crate::error::QuantusError::Generic(format!( + "Failed to parse aggregated public inputs: {}", + e + )) + })?; log_verbose!("Aggregated public inputs: {:#?}", aggregated_public_inputs); @@ -966,18 +880,15 @@ async fn aggregate_proofs( // Verify the aggregated proof locally log_verbose!("Verifying aggregated proof locally..."); - aggregated_proof - .circuit_data - .verify(aggregated_proof.proof.clone()) - .map_err(|e| { - crate::error::QuantusError::Generic(format!( - "Aggregated proof verification failed: {}", - e - )) - })?; + aggregator.verify(aggregated_proof.clone()).map_err(|e| { + crate::error::QuantusError::Generic(format!( + "Local aggregated proof verification failed: {}", + e + )) + })?; // Save aggregated proof using helper function - write_proof_file(&output_file, &aggregated_proof.proof.to_bytes()).map_err(|e| { + write_proof_file(&output_file, &aggregated_proof.to_bytes()).map_err(|e| { crate::error::QuantusError::Generic(format!("Failed to write proof: {}", e)) })?; @@ -1352,7 +1263,7 @@ fn load_multiround_wallet( fn print_multiround_config( config: &MultiroundConfig, wallet: &MultiroundWalletContext, - agg_config: &AggregationConfig, + num_leaf_proofs: usize, ) { use colored::Colorize; @@ -1367,7 +1278,7 @@ fn print_multiround_config( ); log_print!(" Proofs per round: {}", config.num_proofs); log_print!(" Rounds: {}", config.rounds); - log_print!(" Aggregation: num_leaf_proofs={}", agg_config.num_leaf_proofs); + log_print!(" Aggregation: num_leaf_proofs={}", num_leaf_proofs); log_print!(" Output directory: {}", config.output_dir); log_print!(" Keep files: {}", config.keep_files); log_print!(""); @@ -1714,7 +1625,10 @@ async fn run_multiround( log_print!(""); // Load aggregation config from generated-bins/config.json - let agg_config = AggregationConfig::load_from_bins()?; + let bins_dir = Path::new("generated-bins"); + let agg_config = CircuitBinsConfig::load(bins_dir).map_err(|e| { + crate::error::QuantusError::Generic(format!("Failed to load aggregation config: {}", e)) + })?; // Validate parameters validate_multiround_params(num_proofs, rounds, agg_config.num_leaf_proofs)?; @@ -1727,7 +1641,7 @@ async fn run_multiround( MultiroundConfig { num_proofs, rounds, amount, output_dir: output_dir.clone(), keep_files }; // Print configuration - print_multiround_config(&config, &wallet, &agg_config); + print_multiround_config(&config, &wallet, agg_config.num_leaf_proofs); log_print!(" Dry run: {}", dry_run); log_print!(""); @@ -2478,13 +2392,12 @@ async fn run_dissolve( // Load aggregation config let bins_dir = std::path::Path::new("generated-bins"); - let agg_config: AggregationConfig = - serde_json::from_reader(std::fs::File::open(bins_dir.join("config.json")).map_err( - |e| crate::error::QuantusError::Generic(format!("Failed to open config.json: {}", e)), - )?) - .map_err(|e| { - crate::error::QuantusError::Generic(format!("Failed to parse config.json: {}", e)) - })?; + let agg_config = CircuitBinsConfig::load(bins_dir).map_err(|e| { + crate::error::QuantusError::Generic(format!( + "Failed to load aggregation circuit config: {}", + e + )) + })?; // === Layer 0: Initial funding === log_print!("{}", "Layer 0: Initial funding".bright_yellow()); @@ -2630,7 +2543,7 @@ async fn run_dissolve( // Aggregate log_print!(" Aggregating..."); let aggregated_file = format!("{}/batch{}_aggregated.hex", layer_dir, batch_idx); - aggregate_proofs_to_file(&proof_files, &aggregated_file, &agg_config)?; + aggregate_proofs_to_file(&proof_files, &aggregated_file)?; // Verify on-chain log_print!(" Verifying on-chain..."); @@ -2704,22 +2617,17 @@ async fn run_dissolve( } /// Helper to aggregate proof files and write the result -fn aggregate_proofs_to_file( - proof_files: &[String], - output_file: &str, - agg_config: &AggregationConfig, -) -> crate::error::Result<()> { - use qp_wormhole_aggregator::aggregator::WormholeProofAggregator; - use qp_zk_circuits_common::aggregation::AggregationConfig as AggConfig; +fn aggregate_proofs_to_file(proof_files: &[String], output_file: &str) -> crate::error::Result<()> { + use qp_wormhole_aggregator::aggregator::Layer0Aggregator; let bins_dir = std::path::Path::new("generated-bins"); - let aggr_config = AggConfig::new(agg_config.num_leaf_proofs); - let mut aggregator = WormholeProofAggregator::from_prebuilt_dir(bins_dir, aggr_config) - .map_err(|e| { - crate::error::QuantusError::Generic(format!("Failed to create aggregator: {}", e)) - })?; + let mut aggregator = Layer0Aggregator::new(bins_dir).map_err(|e| { + crate::error::QuantusError::Generic(format!("Failed to create aggregator: {}", e)) + })?; - let common_data = aggregator.leaf_circuit_data.common.clone(); + let common_data = aggregator.load_common_data(CircuitType::Leaf).map_err(|e| { + crate::error::QuantusError::Generic(format!("Failed to load common data: {}", e)) + })?; for proof_file in proof_files { let proof_bytes = read_hex_proof_file_to_bytes(proof_file)?; @@ -2736,13 +2644,13 @@ fn aggregate_proofs_to_file( } let agg_start = std::time::Instant::now(); - let result = aggregator + let proof = aggregator .aggregate() .map_err(|e| crate::error::QuantusError::Generic(format!("Aggregation failed: {}", e)))?; let agg_elapsed = agg_start.elapsed(); log_print!(" Aggregation: {:.2}s", agg_elapsed.as_secs_f64()); - let proof_hex = hex::encode(result.proof.to_bytes()); + let proof_hex = hex::encode(proof.to_bytes()); std::fs::write(output_file, &proof_hex).map_err(|e| { crate::error::QuantusError::Generic(format!("Failed to write proof: {}", e)) })?; @@ -3000,22 +2908,28 @@ mod tests { // If the upstream adds/removes/renames fields, this test will catch it. let json = r#"{ "num_leaf_proofs": 8, + "num_layer0_proofs": null, "hashes": { "common": "aabbcc", "verifier": "ddeeff", "prover": "112233", "aggregated_common": "445566", - "aggregated_verifier": "778899" + "aggregated_verifier": "778899", + "aggregated_prover": "99aabb", + "dummy_proof": "bbccdd" } }"#; - let config: AggregationConfig = serde_json::from_str(json).unwrap(); + let config: CircuitBinsConfig = serde_json::from_str(json).unwrap(); assert_eq!(config.num_leaf_proofs, 8); + assert_eq!(config.num_layer0_proofs, None); let hashes = config.hashes.unwrap(); assert_eq!(hashes.prover.as_deref(), Some("112233")); assert_eq!(hashes.aggregated_common.as_deref(), Some("445566")); assert_eq!(hashes.aggregated_verifier.as_deref(), Some("778899")); + assert_eq!(hashes.aggregated_prover.as_deref(), Some("99aabb")); + assert_eq!(hashes.dummy_proof.as_deref(), Some("bbccdd")); } fn mk_accounts(n: usize) -> Vec<[u8; 32]> { diff --git a/src/quantus_metadata.scale b/src/quantus_metadata.scale index c38c0f5dfcfbf0edbfffc2d34642d04ed85ff8e6..a26ebd3d6596c6fd980bbc9313a32f6e0c8a4b30 100644 GIT binary patch delta 26974 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 diff --git a/tests/wormhole_integration.rs b/tests/wormhole_integration.rs index 1353029..455405a 100644 --- a/tests/wormhole_integration.rs +++ b/tests/wormhole_integration.rs @@ -3,7 +3,7 @@ //! These tests require a local Quantus node running at ws://127.0.0.1:9944 //! with funded developer accounts (crystal_alice, crystal_bob, crystal_charlie). //! -//! Run with: `cargo test --test wormhole_integration -- --ignored --nocapture` +//! Run with: `cargo test --release --test wormhole_integration -- --ignored --nocapture` //! //! The tests verify the full end-to-end flow: //! 1. Fund an unspendable account via wormhole transfer @@ -15,6 +15,8 @@ //! with valid parent hash linkage. We use batch transfers to ensure same-block proofs. use plonky2::plonk::{circuit_data::CircuitConfig, proof::ProofWithPublicInputs}; +use qp_poseidon::ToFelts; +use qp_wormhole_aggregator::aggregator::{AggregationBackend, Layer0Aggregator}; use qp_wormhole_circuit::{ inputs::{CircuitInputs, PrivateCircuitInputs}, nullifier::Nullifier, @@ -456,7 +458,7 @@ async fn generate_proof_from_transfer( async fn submit_single_proof_for_verification( quantus_client: &QuantusClient, proof_bytes: Vec, -) -> Result<(), String> { +) -> Result { println!(" Submitting single proof for on-chain verification..."); let verify_tx = quantus_node::api::tx().wormhole().verify_aggregated_proof(proof_bytes); @@ -477,7 +479,7 @@ async fn submit_single_proof_for_verification( TxStatus::InBestBlock(tx_in_block) => { let block_hash = tx_in_block.block_hash(); println!(" ✅ Single proof verified on-chain! Block: {:?}", block_hash); - return Ok(()); + return Ok(block_hash); }, TxStatus::InFinalizedBlock(tx_in_block) => { let block_hash = tx_in_block.block_hash(); @@ -485,7 +487,7 @@ async fn submit_single_proof_for_verification( " ✅ Single proof verified on-chain (finalized)! Block: {:?}", block_hash ); - return Ok(()); + return Ok(block_hash); }, TxStatus::Error { message } | TxStatus::Invalid { message } => { return Err(format!("Transaction failed: {}", message)); @@ -502,27 +504,24 @@ fn aggregate_proofs( proof_contexts: Vec, num_leaf_proofs: usize, ) -> Result { - use qp_wormhole_aggregator::aggregator::WormholeProofAggregator; - use qp_zk_circuits_common::aggregation::AggregationConfig; - println!( " Aggregating {} proofs (num_leaf_proofs={})...", proof_contexts.len(), num_leaf_proofs, ); - let config = CircuitConfig::standard_recursion_zk_config(); - let aggregation_config = AggregationConfig::new(num_leaf_proofs); - - if proof_contexts.len() > aggregation_config.num_leaf_proofs { + if proof_contexts.len() > num_leaf_proofs { return Err(format!( "Too many proofs: {} provided, max {}", proof_contexts.len(), - aggregation_config.num_leaf_proofs, + num_leaf_proofs, )); } - let mut aggregator = WormholeProofAggregator::from_circuit_config(config, aggregation_config); + let bins_dir = std::path::Path::new("generated-bins"); + + let mut aggregator = Layer0Aggregator::new(bins_dir) + .map_err(|e| format!("Failed to create aggregator: {}", e))?; for (idx, ctx) in proof_contexts.into_iter().enumerate() { println!(" Adding proof {} to aggregator...", idx + 1); @@ -543,23 +542,21 @@ fn aggregate_proofs( } println!(" Running aggregation (this may take ~60s)..."); - let aggregated_result = + let aggregated_proof = aggregator.aggregate().map_err(|e| format!("Aggregation failed: {}", e))?; use qp_wormhole_circuit::inputs::ParseAggregatedPublicInputs; - let public_inputs = AggregatedPublicCircuitInputs::try_from_felts( - aggregated_result.proof.public_inputs.as_slice(), - ) - .map_err(|e| format!("Failed to parse aggregated public inputs: {}", e))?; + let public_inputs = + AggregatedPublicCircuitInputs::try_from_felts(aggregated_proof.public_inputs.as_slice()) + .map_err(|e| format!("Failed to parse aggregated public inputs: {}", e))?; // Verify locally first println!(" Verifying aggregated proof locally..."); - aggregated_result - .circuit_data - .verify(aggregated_result.proof.clone()) + aggregator + .verify(aggregated_proof.clone()) .map_err(|e| format!("Local verification failed: {}", e))?; - let proof_bytes = aggregated_result.proof.to_bytes(); + let proof_bytes = aggregated_proof.to_bytes(); println!( " Aggregation complete! Size: {} bytes, {} nullifiers", proof_bytes.len(), @@ -573,7 +570,7 @@ fn aggregate_proofs( async fn submit_aggregated_proof_for_verification( quantus_client: &QuantusClient, proof_bytes: Vec, -) -> Result<(), String> { +) -> Result { println!(" Submitting aggregated proof for on-chain verification..."); let verify_tx = quantus_node::api::tx().wormhole().verify_aggregated_proof(proof_bytes); @@ -594,7 +591,7 @@ async fn submit_aggregated_proof_for_verification( TxStatus::InBestBlock(tx_in_block) => { let block_hash = tx_in_block.block_hash(); println!(" ✅ Aggregated proof verified on-chain! Block: {:?}", block_hash); - return Ok(()); + return Ok(block_hash); }, TxStatus::InFinalizedBlock(tx_in_block) => { let block_hash = tx_in_block.block_hash(); @@ -602,7 +599,7 @@ async fn submit_aggregated_proof_for_verification( " ✅ Aggregated proof verified on-chain (finalized)! Block: {:?}", block_hash ); - return Ok(()); + return Ok(block_hash); }, TxStatus::Error { message } | TxStatus::Invalid { message } => { return Err(format!("Transaction failed: {}", message)); @@ -614,12 +611,20 @@ async fn submit_aggregated_proof_for_verification( Err("Transaction stream ended unexpectedly".to_string()) } +const POW_ENGINE_ID: [u8; 4] = *b"pow_"; + fn author_from_header_digest( header_digest: &subxt::config::substrate::Digest, ) -> Option { header_digest.logs.iter().find_map(|item| match item { - subxt::config::substrate::DigestItem::PreRuntime(_engine_id, data) => - SubxtAccountId::decode(&mut &data[..]).ok(), + subxt::config::substrate::DigestItem::PreRuntime(engine_id, data) + if *engine_id == POW_ENGINE_ID && data.len() == 32 => + { + let preimage: [u8; 32] = data.as_slice().try_into().ok()?; + let author_bytes = + qp_poseidon::PoseidonHasher::hash_variable_length(preimage.to_felts()); + SubxtAccountId::decode(&mut &author_bytes[..]).ok() + }, _ => None, }) } @@ -703,16 +708,11 @@ async fn test_single_proof_on_chain_verification() { // Submit for on-chain verification println!("4. Verifying proof on-chain..."); - // Submit extrinsic - submit_single_proof_for_verification(&quantus_client, proof_context.proof_bytes.clone()) - .await - .expect("On-chain verification failed"); - - // Find the block that executed verification - let verify_block_hash = quantus_client - .get_latest_block() - .await - .expect("Failed to get latest block hash"); + // Submit extrinsic and find the block that executed verification + let verify_block_hash = + submit_single_proof_for_verification(&quantus_client, proof_context.proof_bytes.clone()) + .await + .expect("On-chain verification failed"); // Extract author from block digest let verify_block = quantus_client.client().blocks().at(verify_block_hash).await.unwrap(); @@ -853,19 +853,13 @@ async fn test_aggregated_proof_on_chain_verification() { println!("5. Verifying aggregated proof on-chain..."); // Submit aggregated verification - submit_aggregated_proof_for_verification( + let verify_block_hash = submit_aggregated_proof_for_verification( &quantus_client, aggregated_context.proof_bytes.clone(), ) .await .expect("On-chain aggregated verification failed"); - // Identify verification block - let verify_block_hash = quantus_client - .get_latest_block() - .await - .expect("Failed to get latest block hash"); - // Extract author let verify_block = quantus_client.client().blocks().at(verify_block_hash).await.unwrap(); let header = verify_block.header(); From da89da7b5cc49bf5d255f43b94efa3673defff97 Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 10 Mar 2026 17:44:24 +0800 Subject: [PATCH 2/2] *quinn-proto 0.11.13 -> 0.11.14 --- Cargo.lock | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d2986cc..8620e34 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3582,9 +3582,9 @@ dependencies = [ [[package]] name = "qp-dilithium-crypto" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c3fbdb9557a22cb876fc17c483d090e9556cbfdfc52beb0696143d4313d9" +checksum = "476cab75a58360464ef58fe3bfaa01b4a450a0895d32f028a1e17a0b9031657c" dependencies = [ "log", "parity-scale-codec", @@ -3754,17 +3754,15 @@ dependencies = [ [[package]] name = "qp-rusty-crystals-hdwallet" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91781bc0b96238c7e038a2d3157410388cb0458b05d42483851e79684e92f1a8" +checksum = "113fdac36387a857ab4e09fdc050098bc7b55bcd6e5a8ab755e7f44ef10741e6" dependencies = [ "bip39", - "bs58", "getrandom 0.2.17", "hex", "hex-literal", "hmac 0.12.1", - "k256", "qp-poseidon-core", "qp-rusty-crystals-dilithium", "serde", @@ -3916,9 +3914,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.13" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ "bytes", "getrandom 0.3.4",

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 literal 150892 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%0ASPx1u1?B21o!py~u=;$vSx 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