diff --git a/Cargo.lock b/Cargo.lock index b259e174..036d4e5d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,9 +14,8 @@ dependencies = [ [[package]] name = "actor-system-error" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa3e4174bf11a7f83da6f8027962b52f5708caf0801c85d37a4e85880b1d4ea" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "derive_more", ] @@ -55,31 +54,6 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "aes-gcm" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" -dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", - "subtle", -] - [[package]] name = "ahash" version = "0.7.8" @@ -214,6 +188,335 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c" +[[package]] +name = "aquamarine" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760" +dependencies = [ + "include_dir", + "itertools 0.10.5", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-bls12-377" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-bls12-377-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20c7021f180a0cbea0380eba97c2af3c57074cdaffe0eef7e840e1c9f2841e55" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bls12-381-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1dc4b3d08f19e8ec06e949712f95b8361e43f1391d94f65e4234df03480631c" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-models-ext", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bw6-761" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0605daf0cc5aa2034b78d008aaf159f56901d92a52ee4f6ecdfdac4f426700" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-bw6-761-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccee5fba47266f460067588ee1bf070a9c760bf2050c1c509982c5719aadb4f2" +dependencies = [ + "ark-bw6-761", + "ark-ec", + "ark-ff", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ed-on-bls12-377" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b10d901b9ac4b38f9c32beacedfadcdd64e46f8d7f8e88c1ae1060022cf6f6c6" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-377-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d" +dependencies = [ + "ark-ec", + "ark-ed-on-bls12-377", + "ark-ff", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d15185f1acb49a07ff8cbe5f11a1adc5a93b19e211e325d826ae98e98e124346" +dependencies = [ + "ark-ec", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ff", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-models-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e9eab5d4b5ff2f228b763d38442adc9b084b0a465409b059fac5c2308835ec2" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-scale" +version = "0.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51bd73bb6ddb72630987d37fa963e99196896c0d0ea81b7c894567e74a2f83af" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "ark-scale" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "ark-secret-scalar" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=cbc342e#cbc342e95d3cbcd3c5ba8d45af7200eb58e63502" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "ark-transcript 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=cbc342e)", + "digest 0.10.7", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", + "rayon", +] + +[[package]] +name = "ark-transcript" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "563084372d89271122bd743ef0a608179726f5fad0566008ba55bd0f756489b8" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "digest 0.10.7", + "rand_core 0.6.4", + "sha3", +] + +[[package]] +name = "ark-transcript" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=cbc342e#cbc342e95d3cbcd3c5ba8d45af7200eb58e63502" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "digest 0.10.7", + "rand_core 0.6.4", + "sha3", +] + [[package]] name = "array-bytes" version = "6.2.3" @@ -265,17 +568,6 @@ dependencies = [ "term", ] -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - [[package]] name = "async-channel" version = "2.3.1" @@ -296,41 +588,20 @@ checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.1.1", - "futures-lite 2.3.0", + "fastrand", + "futures-lite", "slab", ] [[package]] name = "async-fs" -version = "1.6.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ - "async-lock 2.8.0", - "autocfg", + "async-lock 3.4.0", "blocking", - "futures-lite 1.13.0", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2 0.4.10", - "waker-fn", + "futures-lite", ] [[package]] @@ -343,9 +614,9 @@ dependencies = [ "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.3.0", + "futures-lite", "parking", - "polling 3.7.3", + "polling", "rustix 0.38.37", "slab", "tracing", @@ -374,30 +645,32 @@ dependencies = [ [[package]] name = "async-net" -version = "1.8.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f" +checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" dependencies = [ - "async-io 1.13.0", + "async-io", "blocking", - "futures-lite 1.13.0", + "futures-lite", ] [[package]] name = "async-process" -version = "1.8.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", + "async-channel", + "async-io", + "async-lock 3.4.0", "async-signal", + "async-task", "blocking", "cfg-if", - "event-listener 3.1.0", - "futures-lite 1.13.0", + "event-listener 5.3.1", + "futures-lite", "rustix 0.38.37", - "windows-sys 0.48.0", + "tracing", ] [[package]] @@ -406,7 +679,7 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ - "async-io 2.3.4", + "async-io", "async-lock 3.4.0", "atomic-waker", "cfg-if", @@ -436,10 +709,10 @@ dependencies = [ ] [[package]] -name = "atomic" -version = "0.5.3" +name = "atomic-take" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba" +checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" [[package]] name = "atomic-waker" @@ -453,7 +726,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3810b5af212b013fe7302b12d86616c6c39a48e18f2e4b812a5a9e5710213791" dependencies = [ - "dirs 5.0.1", + "dirs", "git2", "terminal-prompt", ] @@ -479,6 +752,29 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "bandersnatch_vrfs" +version = "0.0.3" +source = "git+https://github.com/w3f/ring-vrf?rev=cbc342e#cbc342e95d3cbcd3c5ba8d45af7200eb58e63502" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ff", + "ark-serialize", + "ark-std", + "dleq_vrf", + "fflonk", + "merlin 3.0.0", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "ring 0.1.0", + "sha2 0.10.8", + "sp-ark-bls12-381", + "sp-ark-ed-on-bls12-381-bandersnatch", + "zeroize", +] + [[package]] name = "base16ct" version = "0.2.0" @@ -503,6 +799,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "base64ct" version = "1.6.0" @@ -534,6 +836,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ "bitcoin_hashes", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "unicode-normalization", ] [[package]] @@ -669,10 +975,10 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ - "async-channel 2.3.1", + "async-channel", "async-task", "futures-io", - "futures-lite 2.3.0", + "futures-lite", "piper", ] @@ -688,12 +994,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bs58" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" - [[package]] name = "bs58" version = "0.5.1" @@ -791,7 +1091,7 @@ dependencies = [ "fs-err", "git2", "gix-config", - "heck 0.5.0", + "heck", "home", "ignore", "indexmap 2.5.0", @@ -861,6 +1161,12 @@ dependencies = [ "shlex", ] +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cfg-expr" version = "0.15.8" @@ -893,19 +1199,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "chacha20poly1305" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" -dependencies = [ - "aead", - "chacha20", - "cipher", - "poly1305", - "zeroize", -] - [[package]] name = "chrono" version = "0.4.38" @@ -928,7 +1221,6 @@ checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ "crypto-common", "inout", - "zeroize", ] [[package]] @@ -960,7 +1252,7 @@ version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.77", @@ -1023,6 +1315,37 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "common" +version = "0.1.0" +source = "git+https://github.com/w3f/ring-proof#652286c32f96beb9ce7f5793f5e2c2c923f63b73" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "fflonk", + "getrandom_or_panic", + "rand_core 0.6.4", +] + +[[package]] +name = "common-path" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -1103,6 +1426,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +[[package]] +name = "constcat" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" + [[package]] name = "convert_case" version = "0.4.0" @@ -1134,25 +1463,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "core-processor" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac53d51d9d2d68bf40cf16765ebc616a5fb2d4145fcc6c717b1a10f253e9bd5" -dependencies = [ - "actor-system-error", - "derive_more", - "gear-core", - "gear-core-backend", - "gear-core-errors", - "gear-lazy-pages-common", - "gear-wasm-instrument", - "gsys", - "log", - "parity-scale-codec", - "scale-info", -] - [[package]] name = "corosensei" version = "0.1.4" @@ -1360,23 +1670,14 @@ dependencies = [ [[package]] name = "crypto-mac" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" dependencies = [ "generic-array 0.14.7", "subtle", ] -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - [[package]] name = "curve25519-dalek" version = "2.1.3" @@ -1430,19 +1731,6 @@ dependencies = [ "syn 2.0.77", ] -[[package]] -name = "curve25519-dalek-ng" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.6.4", - "subtle-ng", - "zeroize", -] - [[package]] name = "cvt" version = "0.1.2" @@ -1615,6 +1903,28 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-syn-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "derive-where" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "derive_more" version = "0.99.18" @@ -1671,22 +1981,13 @@ dependencies = [ "subtle", ] -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys 0.3.7", -] - [[package]] name = "dirs" version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" dependencies = [ - "dirs-sys 0.4.1", + "dirs-sys", ] [[package]] @@ -1699,17 +2000,6 @@ dependencies = [ "dirs-sys-next", ] -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "dirs-sys" version = "0.4.1" @@ -1733,12 +2023,56 @@ dependencies = [ "winapi", ] +[[package]] +name = "dleq_vrf" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=cbc342e#cbc342e95d3cbcd3c5ba8d45af7200eb58e63502" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-scale 0.0.11", + "ark-secret-scalar", + "ark-serialize", + "ark-std", + "ark-transcript 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=cbc342e)", + "arrayvec 0.7.6", + "rand_core 0.6.4", + "zeroize", +] + [[package]] name = "doc-comment" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" +[[package]] +name = "docify" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" +dependencies = [ + "docify_macros", +] + +[[package]] +name = "docify_macros" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" +dependencies = [ + "common-path", + "derive-syn-parse 0.2.0", + "once_cell", + "proc-macro2", + "quote", + "regex", + "syn 2.0.77", + "termcolor", + "toml", + "walkdir", +] + [[package]] name = "downcast" version = "0.11.0" @@ -1814,28 +2148,31 @@ dependencies = [ "digest 0.10.7", "elliptic-curve", "rfc6979", - "signature 2.2.0", + "signature", "spki", ] [[package]] name = "ed25519" -version = "1.5.3" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ - "signature 1.6.4", + "pkcs8", + "signature", ] [[package]] name = "ed25519-dalek" -version = "1.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ - "curve25519-dalek 3.2.0", + "curve25519-dalek 4.1.3", "ed25519", - "sha2 0.9.9", + "serde", + "sha2 0.10.8", + "subtle", "zeroize", ] @@ -1853,6 +2190,21 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ed25519-zebra" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +dependencies = [ + "curve25519-dalek 4.1.3", + "ed25519", + "hashbrown 0.14.5", + "hex", + "rand_core 0.6.4", + "sha2 0.10.8", + "zeroize", +] + [[package]] name = "either" version = "1.13.0" @@ -2026,12 +2378,11 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "3.1.0" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ "concurrent-queue", - "parking", "pin-project-lite", ] @@ -2100,15 +2451,6 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - [[package]] name = "fastrand" version = "2.1.1" @@ -2125,6 +2467,19 @@ dependencies = [ "subtle", ] +[[package]] +name = "fflonk" +version = "0.1.0" +source = "git+https://github.com/w3f/fflonk#1e854f35e9a65d08b11a86291405cdc95baa0a35" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "merlin 3.0.0", +] + [[package]] name = "fiat-crypto" version = "0.2.9" @@ -2141,6 +2496,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "finito" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2384245d85162258a14b43567a9ee3598f5ae746a1581fb5d3d2cb780f0dbf95" +dependencies = [ + "futures-timer", + "pin-project", +] + [[package]] name = "fixed-hash" version = "0.8.0" @@ -2205,11 +2570,13 @@ dependencies = [ [[package]] name = "frame-support" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ab435a28c0b92be45e871a20faae7307a5f1153168aed11076892511b97332" +version = "4.0.0-dev" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ + "aquamarine", + "array-bytes", "bitflags 1.3.2", + "docify", "environmental", "frame-metadata 16.0.0", "frame-support-procedural", @@ -2221,32 +2588,35 @@ dependencies = [ "paste", "scale-info", "serde", + "serde_json", "smallvec", "sp-api", "sp-arithmetic", "sp-core", "sp-core-hashing-proc-macro", - "sp-debug-derive", + "sp-debug-derive 8.0.0", + "sp-genesis-builder", "sp-inherents", "sp-io", + "sp-metadata-ir", "sp-runtime", "sp-staking", "sp-state-machine", - "sp-std 9.0.0", - "sp-tracing 11.0.0", + "sp-std 8.0.0", + "sp-tracing 10.0.0", "sp-weights", + "static_assertions", "tt-call", ] [[package]] name = "frame-support-procedural" -version = "17.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3515d87fdbf82fa3e5a03b4318ee897c3b2adda928625146dd7d33d52bc2978" +version = "4.0.0-dev" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse", + "derive-syn-parse 0.1.5", "expander", "frame-support-procedural-tools", "itertools 0.10.5", @@ -2254,14 +2624,14 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", + "sp-core-hashing", "syn 2.0.77", ] [[package]] name = "frame-support-procedural-tools" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "072beafb884cd1c046188c64d593cacb6860314f50478a3713438cc56bee42de" +version = "4.0.0-dev" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.3.1", @@ -2272,9 +2642,8 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3562da4b7b8e24189036c58d459b260e10c8b7af2dd180b7869ae29bb66277" +version = "3.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "proc-macro2", "quote", @@ -2283,9 +2652,8 @@ dependencies = [ [[package]] name = "frame-system" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c5104921b9e4e8ffee5251caf7d28defa4e97080554b0e57f93a72b1ec8b915" +version = "4.0.0-dev" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "cfg-if", "frame-support", @@ -2296,7 +2664,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 9.0.0", + "sp-std 8.0.0", "sp-version", "sp-weights", ] @@ -2379,28 +2747,13 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - [[package]] name = "futures-lite" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 2.1.1", + "fastrand", "futures-core", "futures-io", "parking", @@ -2465,18 +2818,16 @@ dependencies = [ [[package]] name = "galloc" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b4f39395dec43d3d03ac611af1a14dc0aa17729c3a6f2ff4b546f3a108d6137" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "gear-dlmalloc", ] [[package]] name = "gclient" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "667b9dfe02206818bc5d7bab1548eca3b8cafcda2fa39c26ebc162f75713bfb2" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "anyhow", "async-trait", @@ -2496,9 +2847,8 @@ dependencies = [ [[package]] name = "gcore" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ef15bad933f0e0117e4b1f84ece8e22f0c8b402dd504e722a178b8116d5e4f" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "gear-core-errors", "gear-stack-buffer", @@ -2508,9 +2858,8 @@ dependencies = [ [[package]] name = "gear-common" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e8c28fbc316263d9bd68f3cb32f6b29c8a71ca93ec8ef872a2227cadfcff92" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "derive_more", "enum-iterator 1.5.0", @@ -2526,14 +2875,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 9.0.0", + "sp-std 8.0.0", ] [[package]] name = "gear-common-codegen" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ac4df09f6551dbffb82b970b01e94cf0cd52cd9c26686f66ac6ebbbdb2d2cf6" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "quote", "syn 2.0.77", @@ -2541,9 +2889,8 @@ dependencies = [ [[package]] name = "gear-core" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5910862f0c50a14d3439ad4dc63fb9952e7b0968d99eca6a94850f909ed5b20f" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "blake2", "byteorder", @@ -2553,8 +2900,10 @@ dependencies = [ "gear-wasm-instrument", "gprimitives", "gsys", + "gwasm-instrument", "hashbrown 0.14.5", "hex", + "impl-serde", "log", "num-traits", "numerated", @@ -2568,9 +2917,8 @@ dependencies = [ [[package]] name = "gear-core-backend" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec2d4b7011af3b25efb83a3b9ec6212236f4ac18918f3ccee49e5032a3c2646c" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "actor-system-error", "blake2", @@ -2588,9 +2936,8 @@ dependencies = [ [[package]] name = "gear-core-errors" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0543e163030645e74c9d49ce5b482cfac62cb11c9d90d30769a103eb20b1bdd2" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "derive_more", "enum-iterator 1.5.0", @@ -2598,6 +2945,24 @@ dependencies = [ "serde", ] +[[package]] +name = "gear-core-processor" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" +dependencies = [ + "actor-system-error", + "derive_more", + "gear-core", + "gear-core-backend", + "gear-core-errors", + "gear-lazy-pages-common", + "gear-wasm-instrument", + "gsys", + "log", + "parity-scale-codec", + "scale-info", +] + [[package]] name = "gear-dlmalloc" version = "0.2.0" @@ -2613,9 +2978,8 @@ dependencies = [ [[package]] name = "gear-lazy-pages" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02f1c5754cb7609fa01260a8dd3a5965c1e3a8ffba50f58015f17443810c2a01" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "cfg-if", "derive_more", @@ -2635,9 +2999,8 @@ dependencies = [ [[package]] name = "gear-lazy-pages-common" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518538d4b4d2eaec51aa3b24cebf788c17693689fbec84ca875423e96314ef1d" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "gear-core", "num_enum", @@ -2646,21 +3009,20 @@ dependencies = [ [[package]] name = "gear-lazy-pages-native-interface" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7564d8b305a735910d89f98fd4d337ff00eaed11df845057de61c029047609" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "gear-core", "gear-lazy-pages", "gear-lazy-pages-common", "gear-wasm-instrument", + "log", ] [[package]] name = "gear-node-wrapper" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799dff1a9034302a436d887d27a3faa99fc9261cbf71a473a7e7af5a275d74f9" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "anyhow", "rand 0.8.5", @@ -2681,44 +3043,41 @@ dependencies = [ [[package]] name = "gear-sandbox" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f8597599cf7cbbfbf8f402ffd508925cebe8305d213a6a5a72d91ef17e00c45" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "gear-sandbox-env", "gear-sandbox-interface", - "gwasmi", "log", "parity-scale-codec", "sp-core", - "sp-std 9.0.0", + "sp-std 8.0.0", "sp-wasm-interface-common", + "wasmi 0.30.0", ] [[package]] name = "gear-sandbox-env" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ae97134e54f2f73cc3051a5b86ac3663c0cc71475551743629bde6e2e3cfd54" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "parity-scale-codec", - "sp-debug-derive", - "sp-std 9.0.0", + "sp-debug-derive 8.0.0", + "sp-std 8.0.0", "sp-wasm-interface-common", ] [[package]] name = "gear-sandbox-host" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e23b0aa9501007dc7fe457b4b10eff34dd614eff35814fe496c43d20569f8682" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "defer", "environmental", "gear-sandbox-env", - "gp-allocator", "log", "parity-scale-codec", + "sp-allocator", "sp-wasm-interface-common", "tempfile", "thiserror", @@ -2731,39 +3090,35 @@ dependencies = [ [[package]] name = "gear-sandbox-interface" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2cad3f101c0c1360dd30283d16bf83bc9abc95a7f3cd43f8ea7384832ecbd6" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "gear-sandbox-host", - "gp-runtime-interface", - "gp-wasm-interface", "log", "parity-scale-codec", + "sp-runtime-interface 17.0.0", + "sp-wasm-interface 14.0.0", ] [[package]] name = "gear-ss58" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe957570c0b16ea8fd1b1f151975554ac343dd0003d89de87f633713f32cc64" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "blake2", - "bs58 0.5.1", + "bs58", "hex", ] [[package]] name = "gear-stack-buffer" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdab7152d9b7f05d63e461f7618a04def117bcd900a1bde0e620182a0ceed41a" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" [[package]] name = "gear-utils" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1060d9131dc80db2ab2c67323e7c5554ccfb65467d2e0e8b30158a7203b969a" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "env_logger 0.10.2", "gear-core", @@ -2783,40 +3138,52 @@ checksum = "bbfbfa701dc65e683fcd2fb24f046bcef22634acbdf47ad14724637dc39ad05b" [[package]] name = "gear-wasm-builder" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eba8ab1b46e20dbc36275166bb1134fee65134c78e6edd3fef62d9305755c46" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "anyhow", "cargo_metadata", "chrono", - "colored", - "dirs 4.0.0", "gear-core", "gear-pwasm-utils", "gear-wasm-instrument", + "gear-wasm-optimizer", "gmeta", + "itertools 0.13.0", "log", "pathdiff", "regex", "rustc_version", "thiserror", "toml", - "wasmparser-nostd", - "which", ] [[package]] name = "gear-wasm-instrument" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba539772aad8215950c7f180775acb3b9570c6a71ec6457645024fdd72badb78" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "derive_more", "enum-iterator 1.5.0", "gwasm-instrument", ] +[[package]] +name = "gear-wasm-optimizer" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" +dependencies = [ + "anyhow", + "colored", + "gear-pwasm-utils", + "gear-wasm-instrument", + "log", + "regex", + "rustc_version", + "wasmparser-nostd", + "which", +] + [[package]] name = "genco" version = "0.17.9" @@ -2889,19 +3256,10 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ + "rand 0.8.5", "rand_core 0.6.4", ] -[[package]] -name = "ghash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" -dependencies = [ - "opaque-debug 0.3.1", - "polyval", -] - [[package]] name = "gimli" version = "0.26.2" @@ -3037,7 +3395,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2bfe6249cfea6d0c0e0990d5226a4cb36f030444ba9e35e0639275db8f98575" dependencies = [ - "fastrand 2.1.1", + "fastrand", "gix-features", "gix-utils", ] @@ -3166,7 +3524,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35192df7fd0fa112263bad8021e2df7167df4cc2a6e6d15892e1e55621d3d4dc" dependencies = [ - "fastrand 2.1.1", + "fastrand", "unicode-normalization", ] @@ -3207,9 +3565,8 @@ dependencies = [ [[package]] name = "gmeta" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a42ac38a41f9f688c763e73c1f1f4461b1fd2e467c1f016855659fe6d6edd5" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "blake2", "derive_more", @@ -3217,71 +3574,10 @@ dependencies = [ "scale-info", ] -[[package]] -name = "gp-allocator" -version = "4.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93cfb4525b5362966a1971125ff8f9825e6a511403635dccf883273d20c43bdf" -dependencies = [ - "log", - "parity-scale-codec", - "sp-wasm-interface-common", - "thiserror", -] - -[[package]] -name = "gp-runtime-interface" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dfb3786bf8fe51099c67dfe7c9a925fe0bfb78ffe938aa07b598995ee48d0e3" -dependencies = [ - "bytes", - "gp-runtime-interface-proc-macro", - "gp-wasm-interface", - "impl-trait-for-tuples", - "parity-scale-codec", - "primitive-types", - "sp-externalities", - "sp-std 9.0.0", - "sp-storage", - "sp-tracing 10.0.0", - "static_assertions", -] - -[[package]] -name = "gp-runtime-interface-proc-macro" -version = "12.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1e4d907f86db64e8b9d9af0b5adfd59e62b4023fd88511e13d62028ed101f2c" -dependencies = [ - "Inflector", - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "syn 2.0.77", -] - -[[package]] -name = "gp-wasm-interface" -version = "15.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de334e40147f969276463ad04d0ddfe519aebb6254832ea0637a300c6d637c11" -dependencies = [ - "anyhow", - "gp-allocator", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "sp-std 9.0.0", - "sp-wasm-interface-common", - "wasmtime", -] - [[package]] name = "gprimitives" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559fd6560bff7428bb26862f7048dcfba4c7300220a1736384d6cc1746637f33" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "derive_more", "gear-ss58", @@ -3304,9 +3600,8 @@ dependencies = [ [[package]] name = "gsdk" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c424b6011608c03852f355a20d0f1d920e39cbd272cba2c50cc3e5a4b7166c" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "anyhow", "base64 0.21.7", @@ -3336,9 +3631,8 @@ dependencies = [ [[package]] name = "gsdk-codegen" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf598b5d8a78e432fcaffa8faeb7eaf84d96ded5f46f7e6bb5a7582886c405db" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "proc-macro2", "quote", @@ -3347,9 +3641,8 @@ dependencies = [ [[package]] name = "gstd" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd4c0b7a10ee860ad482ffac66ad0b18a84b374edd13c862b54cba3f2c61537" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "arrayvec 0.7.6", "const_format", @@ -3366,9 +3659,8 @@ dependencies = [ [[package]] name = "gstd-codegen" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c274d2e259898e1dd0b201168ec75976695d70287f3c7ff2d1470fb7354b0e" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "gprimitives", "proc-macro2", @@ -3378,25 +3670,23 @@ dependencies = [ [[package]] name = "gsys" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "272d1dda59dafc6a95f31428942607aa5e57af1b6664958f44cc4e4802ad1b82" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" [[package]] name = "gtest" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6ab9a5aa27d33ac3057f4dbd89d99d3d2ec51d8abcad9db83852893155f70c" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "cargo_toml", "colored", - "core-processor", "derive_more", "env_logger 0.10.2", "etc", "gear-common", "gear-core", "gear-core-errors", + "gear-core-processor", "gear-lazy-pages", "gear-lazy-pages-common", "gear-lazy-pages-native-interface", @@ -3420,33 +3710,6 @@ dependencies = [ "gear-wasm", ] -[[package]] -name = "gwasmi" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "540bef71ad072d770140dc3f47f6bcc2b2b0492aa6a3ff236a13a7cd9427c58b" -dependencies = [ - "gwasmi_core", - "intx", - "smallvec", - "spin", - "wasmi_arena", - "wasmparser-nostd", -] - -[[package]] -name = "gwasmi_core" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47443d9a0eaa456c80525cebb42178fc47690fee77f9729eeece6ff70906fdcf" -dependencies = [ - "downcast-rs", - "libm", - "num-traits", - "paste", - "region", -] - [[package]] name = "h2" version = "0.3.26" @@ -3458,7 +3721,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.12", "indexmap 2.5.0", "slab", "tokio", @@ -3524,12 +3787,6 @@ dependencies = [ "serde", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" @@ -3570,7 +3827,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" dependencies = [ - "crypto-mac 0.11.1", + "crypto-mac 0.11.0", "digest 0.9.0", ] @@ -3614,6 +3871,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.6" @@ -3621,7 +3889,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http", + "http 0.2.12", "pin-project-lite", ] @@ -3654,13 +3922,13 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", + "http 0.2.12", "http-body", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.7", + "socket2", "tokio", "tower-service", "tracing", @@ -3674,14 +3942,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http", + "http 0.2.12", "hyper", "log", - "rustls", - "rustls-native-certs", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", "tokio", - "tokio-rustls", - "webpki-roots", + "tokio-rustls 0.24.1", + "webpki-roots 0.25.4", ] [[package]] @@ -3768,6 +4036,25 @@ dependencies = [ "syn 1.0.109", ] +[[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 = "1.9.3" @@ -3900,6 +4187,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.13.0" @@ -3915,6 +4211,26 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + [[package]] name = "jobserver" version = "0.1.32" @@ -3942,19 +4258,30 @@ dependencies = [ "jsonrpsee-core 0.16.3", "jsonrpsee-http-client 0.16.3", "jsonrpsee-types 0.16.3", - "jsonrpsee-ws-client", + "jsonrpsee-ws-client 0.16.3", +] + +[[package]] +name = "jsonrpsee" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" +dependencies = [ + "jsonrpsee-client-transport 0.22.5", + "jsonrpsee-core 0.22.5", + "jsonrpsee-http-client 0.22.5", + "jsonrpsee-types 0.22.5", ] [[package]] name = "jsonrpsee" -version = "0.20.4" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138572befc78a9793240645926f30161f8b4143d2be18d09e44ed9814bd7ee2c" +checksum = "62b089779ad7f80768693755a031cc14a7766aba707cbe886674e3f79e9b7e47" dependencies = [ - "jsonrpsee-client-transport 0.20.4", - "jsonrpsee-core 0.20.4", - "jsonrpsee-http-client 0.20.4", - "jsonrpsee-types 0.20.4", + "jsonrpsee-core 0.23.2", + "jsonrpsee-types 0.23.2", + "jsonrpsee-ws-client 0.23.2", ] [[package]] @@ -3964,35 +4291,59 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8b3815d9f5d5de348e5f162b316dc9cdf4548305ebb15b4eb9328e66cf27d7a" dependencies = [ "futures-util", - "http", + "http 0.2.12", "jsonrpsee-core 0.16.3", "jsonrpsee-types 0.16.3", "pin-project", - "rustls-native-certs", - "soketto", + "rustls-native-certs 0.6.3", + "soketto 0.7.1", + "thiserror", + "tokio", + "tokio-rustls 0.24.1", + "tokio-util", + "tracing", + "webpki-roots 0.25.4", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa" +dependencies = [ + "futures-util", + "http 0.2.12", + "jsonrpsee-core 0.22.5", + "pin-project", + "rustls-native-certs 0.7.3", + "rustls-pki-types", + "soketto 0.7.1", "thiserror", "tokio", - "tokio-rustls", + "tokio-rustls 0.25.0", "tokio-util", "tracing", - "webpki-roots", + "url", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.20.4" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c671353e4adf926799107bd7f5724a06b6bc0a333db442a0843c58640bdd0c1" +checksum = "08163edd8bcc466c33d79e10f695cdc98c00d1e6ddfb95cec41b6b0279dd5432" dependencies = [ + "base64 0.22.1", "futures-util", - "http", - "jsonrpsee-core 0.20.4", + "http 1.1.0", + "jsonrpsee-core 0.23.2", "pin-project", - "rustls-native-certs", - "soketto", + "rustls 0.23.13", + "rustls-pki-types", + "rustls-platform-verifier", + "soketto 0.8.0", "thiserror", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.0", "tokio-util", "tracing", "url", @@ -4023,23 +4374,46 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.20.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f24ea59b037b6b9b0e2ebe2c30a3e782b56bd7c76dcc5d6d70ba55d442af56e3" +checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d" dependencies = [ "anyhow", - "async-lock 2.8.0", "async-trait", "beef", "futures-timer", "futures-util", "hyper", - "jsonrpsee-types 0.20.4", + "jsonrpsee-types 0.22.5", + "pin-project", + "rustc-hash", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79712302e737d23ca0daa178e752c9334846b08321d439fd89af9a384f8c830b" +dependencies = [ + "anyhow", + "async-trait", + "beef", + "futures-timer", + "futures-util", + "jsonrpsee-types 0.23.2", + "pin-project", "rustc-hash", "serde", "serde_json", "thiserror", "tokio", + "tokio-stream", "tracing", ] @@ -4064,15 +4438,15 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.20.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c7b9f95208927653e7965a98525e7fc641781cab89f0e27c43fa2974405683" +checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5" dependencies = [ "async-trait", "hyper", "hyper-rustls", - "jsonrpsee-core 0.20.4", - "jsonrpsee-types 0.20.4", + "jsonrpsee-core 0.22.5", + "jsonrpsee-types 0.22.5", "serde", "serde_json", "thiserror", @@ -4098,16 +4472,28 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.20.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3264e339143fe37ed081953842ee67bfafa99e3b91559bdded6e4abd8fc8535e" +checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d" dependencies = [ "anyhow", "beef", "serde", "serde_json", "thiserror", - "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c465fbe385238e861fdc4d1c85e04ada6c1fd246161d26385c1b311724d2af" +dependencies = [ + "beef", + "http 1.1.0", + "serde", + "serde_json", + "thiserror", ] [[package]] @@ -4116,12 +4502,25 @@ version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e1b3975ed5d73f456478681a417128597acd6a2487855fdb7b4a3d4d195bf5e" dependencies = [ - "http", + "http 0.2.12", "jsonrpsee-client-transport 0.16.3", "jsonrpsee-core 0.16.3", "jsonrpsee-types 0.16.3", ] +[[package]] +name = "jsonrpsee-ws-client" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c28759775f5cb2f1ea9667672d3fe2b0e701d1f4b7b67954e60afe7fd058b5e" +dependencies = [ + "http 1.1.0", + "jsonrpsee-client-transport 0.23.2", + "jsonrpsee-core 0.23.2", + "jsonrpsee-types 0.23.2", + "url", +] + [[package]] name = "k256" version = "0.13.4" @@ -4327,12 +4726,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -4446,9 +4839,12 @@ dependencies = [ [[package]] name = "lru" -version = "0.10.1" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" +dependencies = [ + "hashbrown 0.14.5", +] [[package]] name = "mach" @@ -4470,9 +4866,9 @@ dependencies = [ [[package]] name = "macro_magic" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aee866bfee30d2d7e83835a4574aad5b45adba4cc807f2a3bbba974e5d4383c9" +checksum = "cc33f9f0351468d26fbc53d9ce00a096c8522ecb42f19b50f34f2c422f76d21d" dependencies = [ "macro_magic_core", "macro_magic_macros", @@ -4482,12 +4878,12 @@ dependencies = [ [[package]] name = "macro_magic_core" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e766a20fd9c72bab3e1e64ed63f36bd08410e75803813df210d1ce297d7ad00" +checksum = "1687dc887e42f352865a393acae7cf79d98fab6351cde1f58e9e057da89bf150" dependencies = [ "const-random", - "derive-syn-parse", + "derive-syn-parse 0.2.0", "macro_magic_core_macros", "proc-macro2", "quote", @@ -4496,9 +4892,9 @@ dependencies = [ [[package]] name = "macro_magic_core_macros" -version = "0.4.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d710e1214dffbab3b5dacb21475dde7d6ed84c69ff722b3a47a782668d44fbac" +checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", @@ -4507,9 +4903,9 @@ dependencies = [ [[package]] name = "macro_magic_macros" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fb85ec1620619edf2984a7693497d4ec88a9665d8b87e942856884c92dbf2a" +checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", @@ -4525,6 +4921,15 @@ dependencies = [ "regex-automata 0.1.10", ] +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "memchr" version = "2.7.4" @@ -4794,6 +5199,16 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num-bigint" version = "0.4.6" @@ -4896,9 +5311,8 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "numerated" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7af876adbdd91b8da7876f7e03c1a0a4a27d58158c1b905ea4098d6002f67" +version = "1.6.1" +source = "git+https://github.com/gear-tech/gear#94adcbc6f65c9969b775478d8791f672c6246b4f" dependencies = [ "derive_more", "num-traits", @@ -4979,6 +5393,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "page_size" version = "0.6.0" @@ -5022,6 +5442,11 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" +[[package]] +name = "parity-wasm" +version = "0.45.0" +source = "git+https://github.com/gear-tech/parity-wasm?branch=v0.45.0-sign-ext#bad3e1ec78f655f3eec5a0c9c12a3546c8c9d432" + [[package]] name = "parking" version = "2.2.1" @@ -5093,16 +5518,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" dependencies = [ - "crypto-mac 0.11.1", -] - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", + "crypto-mac 0.11.0", ] [[package]] @@ -5181,7 +5597,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" dependencies = [ - "siphasher", + "siphasher 0.3.11", ] [[package]] @@ -5223,7 +5639,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.1.1", + "fastrand", "futures-io", ] @@ -5244,19 +5660,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] -name = "polling" -version = "2.8.0" +name = "polkavm-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" + +[[package]] +name = "polkavm-derive" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606" dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", + "polkavm-derive-impl-macro", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" +dependencies = [ + "polkavm-common", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" +dependencies = [ + "polkavm-derive-impl", + "syn 2.0.77", ] [[package]] @@ -5285,18 +5722,6 @@ dependencies = [ "universal-hash", ] -[[package]] -name = "polyval" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" -dependencies = [ - "cfg-if", - "cpufeatures", - "opaque-debug 0.3.1", - "universal-hash", -] - [[package]] name = "portable-atomic" version = "1.8.0" @@ -5418,9 +5843,9 @@ dependencies = [ [[package]] name = "proc-macro-warning" -version = "0.4.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e" +checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", @@ -5587,6 +6012,22 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "reconnecting-jsonrpsee-ws-client" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06fa4f17e09edfc3131636082faaec633c7baa269396b4004040bc6c52f49f65" +dependencies = [ + "cfg_aliases", + "finito", + "futures", + "jsonrpsee 0.23.2", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + [[package]] name = "redox_syscall" version = "0.5.6" @@ -5762,6 +6203,23 @@ dependencies = [ "syn 2.0.77", ] +[[package]] +name = "ring" +version = "0.1.0" +source = "git+https://github.com/w3f/ring-proof#652286c32f96beb9ce7f5793f5e2c2c923f63b73" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "ark-transcript 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.7.6", + "blake2", + "common", + "fflonk", +] + [[package]] name = "ring" version = "0.17.8" @@ -5890,20 +6348,6 @@ dependencies = [ "windows-sys 0.45.0", ] -[[package]] -name = "rustix" -version = "0.37.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - [[package]] name = "rustix" version = "0.38.37" @@ -5924,11 +6368,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring", - "rustls-webpki", + "ring 0.17.8", + "rustls-webpki 0.101.7", "sct", ] +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls" +version = "0.23.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" +dependencies = [ + "log", + "once_cell", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + [[package]] name = "rustls-native-certs" version = "0.6.3" @@ -5936,7 +6409,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.1.3", + "rustls-pki-types", "schannel", "security-framework", ] @@ -5945,18 +6431,72 @@ dependencies = [ name = "rustls-pemfile" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" + +[[package]] +name = "rustls-platform-verifier" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" +dependencies = [ + "core-foundation", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls 0.23.13", + "rustls-native-certs 0.7.3", + "rustls-platform-verifier-android", + "rustls-webpki 0.102.8", + "security-framework", + "security-framework-sys", + "webpki-roots 0.26.6", + "winapi", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "base64 0.21.7", + "ring 0.17.8", + "untrusted", ] [[package]] name = "rustls-webpki" -version = "0.101.7" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "ring", + "ring 0.17.8", + "rustls-pki-types", "untrusted", ] @@ -5968,12 +6508,12 @@ checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "ruzstd" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" +checksum = "58c4eb8a81997cf040a091d1f7e1938aeab6749d3a0dfa73af43cdc32393483d" dependencies = [ "byteorder", - "thiserror-core", + "derive_more", "twox-hash", ] @@ -6100,38 +6640,38 @@ dependencies = [ [[package]] name = "scale-bits" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "036575c29af9b6e4866ffb7fa055dbf623fe7a9cc159b33786de6013a6969d89" +checksum = "e57b1e7f6b65ed1f04e79a85a57d755ad56d76fdf1e9bddcc9ae14f71fcdcf54" dependencies = [ "parity-scale-codec", "scale-info", + "scale-type-resolver", "serde", ] [[package]] name = "scale-decode" -version = "0.9.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7789f5728e4e954aaa20cadcc370b99096fb8645fca3c9333ace44bb18f30095" +checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" dependencies = [ "derive_more", "parity-scale-codec", "primitive-types", "scale-bits", "scale-decode-derive", - "scale-info", + "scale-type-resolver", "smallvec", ] [[package]] name = "scale-decode-derive" -version = "0.9.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27873eb6005868f8cc72dcfe109fae664cf51223d35387bc2f28be4c28d94c47" +checksum = "9bb22f574168103cdd3133b19281639ca65ad985e24612728f727339dcaf4021" dependencies = [ "darling 0.14.4", - "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", @@ -6139,24 +6679,24 @@ dependencies = [ [[package]] name = "scale-encode" -version = "0.5.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d70cb4b29360105483fac1ed567ff95d65224a14dd275b6303ed0a654c78de5" +checksum = "4ba0b9c48dc0eb20c60b083c29447c0c4617cb7c4a4c9fef72aa5c5bc539e15e" dependencies = [ "derive_more", "parity-scale-codec", "primitive-types", "scale-bits", "scale-encode-derive", - "scale-info", + "scale-type-resolver", "smallvec", ] [[package]] name = "scale-encode-derive" -version = "0.5.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "995491f110efdc6bea96d6a746140e32bfceb4ea47510750a5467295a4707a25" +checksum = "82ab7e60e2d9c8d47105f44527b26f04418e5e624ffc034f6b4a86c0ba19c5bf" dependencies = [ "darling 0.14.4", "proc-macro-crate 1.3.1", @@ -6191,11 +6731,34 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "scale-type-resolver" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb" +dependencies = [ + "scale-info", + "smallvec", +] + +[[package]] +name = "scale-typegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "498d1aecf2ea61325d4511787c115791639c0fd21ef4f8e11e49dd09eff2bbac" +dependencies = [ + "proc-macro2", + "quote", + "scale-info", + "syn 2.0.77", + "thiserror", +] + [[package]] name = "scale-value" -version = "0.12.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6538d1cc1af9c0baf401c57da8a6d4730ef582db0d330d2efa56ec946b5b0283" +checksum = "8cd6ab090d823e75cfdb258aad5fe92e13f2af7d04b43a55d607d25fcc38c811" dependencies = [ "base58", "blake2", @@ -6207,6 +6770,7 @@ dependencies = [ "scale-decode", "scale-encode", "scale-info", + "scale-type-resolver", "serde", "yap", ] @@ -6249,34 +6813,20 @@ dependencies = [ "zeroize", ] -[[package]] -name = "schnorrkel" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" -dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "curve25519-dalek-ng", - "merlin 3.0.0", - "rand_core 0.6.4", - "sha2 0.9.9", - "subtle-ng", - "zeroize", -] - [[package]] name = "schnorrkel" version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" dependencies = [ + "aead", "arrayref", "arrayvec 0.7.6", "curve25519-dalek 4.1.3", "getrandom_or_panic", "merlin 3.0.0", "rand_core 0.6.4", + "serde_bytes", "sha2 0.10.8", "subtle", "zeroize", @@ -6294,7 +6844,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring", + "ring 0.17.8", "untrusted", ] @@ -6355,6 +6905,7 @@ dependencies = [ "core-foundation", "core-foundation-sys", "libc", + "num-bigint", "security-framework-sys", ] @@ -6403,6 +6954,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "serde_bytes" +version = "0.11.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" version = "1.0.210" @@ -6448,6 +7008,17 @@ dependencies = [ "opaque-debug 0.3.1", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + [[package]] name = "sha1_smol" version = "1.0.1" @@ -6540,12 +7111,6 @@ dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" - [[package]] name = "signature" version = "2.2.0" @@ -6574,6 +7139,12 @@ version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + [[package]] name = "slab" version = "0.4.9" @@ -6608,46 +7179,48 @@ dependencies = [ [[package]] name = "smol" -version = "1.3.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" +checksum = "a33bd3e260892199c3ccfc487c88b2da2265080acb316cd920da72fdfd7c599f" dependencies = [ - "async-channel 1.9.0", + "async-channel", "async-executor", "async-fs", - "async-io 1.13.0", - "async-lock 2.8.0", + "async-io", + "async-lock 3.4.0", "async-net", "async-process", "blocking", - "futures-lite 1.13.0", + "futures-lite", ] [[package]] name = "smoldot" -version = "0.8.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cce5e2881b30bad7ef89f383a816ad0b22c45915911f28499026de4a76d20ee" +checksum = "e6d1eaa97d77be4d026a1e7ffad1bb3b78448763b357ea6f8188d3e6f736a9b9" dependencies = [ "arrayvec 0.7.6", - "async-lock 2.8.0", - "atomic", + "async-lock 3.4.0", + "atomic-take", "base64 0.21.7", "bip39", "blake2-rfc", - "bs58 0.5.1", + "bs58", + "chacha20", "crossbeam-queue", "derive_more", - "ed25519-zebra", + "ed25519-zebra 4.0.3", "either", - "event-listener 2.5.3", + "event-listener 4.0.3", "fnv", - "futures-channel", + "futures-lite", "futures-util", "hashbrown 0.14.5", "hex", "hmac 0.12.1", - "itertools 0.10.5", + "itertools 0.12.1", + "libm", "libsecp256k1", "merlin 3.0.0", "no-std-net", @@ -6657,77 +7230,59 @@ dependencies = [ "num-traits", "pbkdf2 0.12.2", "pin-project", + "poly1305", "rand 0.8.5", "rand_chacha 0.3.1", "ruzstd", - "schnorrkel 0.10.2", + "schnorrkel 0.11.4", "serde", "serde_json", "sha2 0.10.8", - "siphasher", + "sha3", + "siphasher 1.0.1", "slab", "smallvec", - "smol", - "snow", - "soketto", - "tiny-keccak", + "soketto 0.7.1", "twox-hash", - "wasmi 0.30.0", + "wasmi 0.31.2", + "x25519-dalek", + "zeroize", ] [[package]] name = "smoldot-light" -version = "0.6.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2f7b4687b83ff244ef6137735ed5716ad37dcdf3ee16c4eb1a32fb9808fa47" +checksum = "5496f2d116b7019a526b1039ec2247dd172b8670633b1a64a614c9ea12c9d8c7" dependencies = [ - "async-lock 2.8.0", + "async-channel", + "async-lock 3.4.0", + "base64 0.21.7", "blake2-rfc", "derive_more", "either", - "event-listener 2.5.3", + "event-listener 4.0.3", "fnv", "futures-channel", + "futures-lite", "futures-util", "hashbrown 0.14.5", "hex", - "itertools 0.10.5", + "itertools 0.12.1", "log", "lru", + "no-std-net", "parking_lot", + "pin-project", "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "serde_json", - "siphasher", + "siphasher 1.0.1", "slab", "smol", "smoldot", -] - -[[package]] -name = "snow" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" -dependencies = [ - "aes-gcm", - "blake2", - "chacha20poly1305", - "curve25519-dalek 4.1.3", - "rand_core 0.6.4", - "rustc_version", - "sha2 0.10.8", - "subtle", -] - -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", + "zeroize", ] [[package]] @@ -6756,10 +7311,35 @@ dependencies = [ ] [[package]] -name = "sp-api" -version = "20.0.0" +name = "soketto" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aa63dcdd3fb081a894189f83115dd683be1339a919cd7d3f98f145d1870626c" +checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures", + "httparse", + "log", + "rand 0.8.5", + "sha1", +] + +[[package]] +name = "sp-allocator" +version = "4.1.0-dev" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" +dependencies = [ + "log", + "parity-scale-codec", + "sp-wasm-interface-common", + "thiserror", +] + +[[package]] +name = "sp-api" +version = "4.0.0-dev" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "hash-db", "log", @@ -6767,11 +7347,11 @@ dependencies = [ "scale-info", "sp-api-proc-macro", "sp-core", - "sp-externalities", + "sp-externalities 0.19.0", "sp-metadata-ir", "sp-runtime", "sp-state-machine", - "sp-std 9.0.0", + "sp-std 8.0.0", "sp-trie", "sp-version", "thiserror", @@ -6779,9 +7359,8 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a062dfff051064bfa1837566b74d00a49050b36e3887b2283ab667cef4f3a85e" +version = "4.0.0-dev" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "Inflector", "blake2", @@ -6794,50 +7373,68 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "24.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b49d62089ef6fdd52a6f90f670d533ccb365235258cf517dbd5bd571febcfbd" +version = "23.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-core", "sp-io", - "sp-std 9.0.0", + "sp-std 8.0.0", ] [[package]] name = "sp-arithmetic" -version = "17.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0241327405688cac3fcc29114fd35f99224e321daa37e19920e50e4b2fdd0645" +version = "16.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-std 9.0.0", + "sp-std 8.0.0", "static_assertions", ] +[[package]] +name = "sp-ark-bls12-381" +version = "0.4.2" +source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +dependencies = [ + "ark-bls12-381-ext", + "sp-crypto-ec-utils", +] + +[[package]] +name = "sp-ark-ed-on-bls12-381-bandersnatch" +version = "0.4.2" +source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +dependencies = [ + "ark-ed-on-bls12-381-bandersnatch-ext", + "sp-crypto-ec-utils", +] + [[package]] name = "sp-core" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0de478e02efd547693b33ad02515e09933d5b69b7f3036fa890b92e50fd9dfc" +version = "21.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "array-bytes", + "bandersnatch_vrfs", + "bip39", "bitflags 1.3.2", "blake2", "bounded-collections", - "bs58 0.4.0", + "bs58", "dyn-clonable", - "ed25519-zebra", + "ed25519-zebra 3.1.0", "futures", "hash-db", "hash256-std-hasher", "impl-serde", + "itertools 0.10.5", "lazy_static", "libsecp256k1", "log", @@ -6853,40 +7450,69 @@ dependencies = [ "secp256k1", "secrecy", "serde", - "sp-core-hashing 10.0.0", - "sp-debug-derive", - "sp-externalities", - "sp-runtime-interface", - "sp-std 9.0.0", - "sp-storage", + "sp-allocator", + "sp-core-hashing", + "sp-debug-derive 8.0.0", + "sp-externalities 0.19.0", + "sp-runtime-interface 17.0.0", + "sp-std 8.0.0", + "sp-storage 13.0.0", "ss58-registry", "substrate-bip39", "thiserror", - "tiny-bip39", "tracing", + "w3f-bls", "zeroize", ] [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee599a8399448e65197f9a6cee338ad192e9023e35e31f22382964c3c174c68" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", "sha2 0.10.8", "sha3", - "sp-std 8.0.0", "twox-hash", ] [[package]] -name = "sp-core-hashing" -version = "10.0.0" +name = "sp-core-hashing-proc-macro" +version = "9.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" +dependencies = [ + "quote", + "sp-core-hashing", + "syn 2.0.77", +] + +[[package]] +name = "sp-crypto-ec-utils" +version = "0.10.0" +source = "git+https://github.com/paritytech/polkadot-sdk#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +dependencies = [ + "ark-bls12-377", + "ark-bls12-377-ext", + "ark-bls12-381", + "ark-bls12-381-ext", + "ark-bw6-761", + "ark-bw6-761-ext", + "ark-ec", + "ark-ed-on-bls12-377", + "ark-ed-on-bls12-377-ext", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ed-on-bls12-381-bandersnatch-ext", + "ark-scale 0.0.12", + "sp-runtime-interface 24.0.0", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e360755a2706a76886d58776665cad0db793dece3c7d390455b28e8a1efd6285" +checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb" dependencies = [ "blake2b_simd", "byteorder", @@ -6897,21 +7523,19 @@ dependencies = [ ] [[package]] -name = "sp-core-hashing-proc-macro" -version = "10.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc707d9f5bf155d584900783e328cb3dc79c950f898a18a8f24066f41f040a5" +name = "sp-debug-derive" +version = "8.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ + "proc-macro2", "quote", - "sp-core-hashing 10.0.0", "syn 2.0.77", ] [[package]] name = "sp-debug-derive" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12dae7cf6c1e825d13ffd4ce16bd9309db7c539929d0302b4443ed451a9f4e5" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "proc-macro2", "quote", @@ -6920,39 +7544,56 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3313e2c5f2523b06062e541dff9961bde88ad5a28861621dc7b7b47a32bb0f7c" +version = "0.19.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-std 8.0.0", + "sp-storage 13.0.0", +] + +[[package]] +name = "sp-externalities" +version = "0.25.0" +source = "git+https://github.com/paritytech/polkadot-sdk#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 9.0.0", - "sp-storage", + "sp-storage 19.0.0", +] + +[[package]] +name = "sp-genesis-builder" +version = "0.1.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" +dependencies = [ + "serde_json", + "sp-api", + "sp-runtime", + "sp-std 8.0.0", ] [[package]] name = "sp-inherents" -version = "20.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30fe27930fbcc1ddf8e73446c65b2696f3544adeb30d1f5171d360e5c7072c9c" +version = "4.0.0-dev" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 9.0.0", + "sp-std 8.0.0", "thiserror", ] [[package]] name = "sp-io" -version = "24.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff6194309bfe055d93177c6c9d2ed4c7b66040617cf3003a15e509c432cf3b62" +version = "23.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "bytes", - "ed25519", "ed25519-dalek", "libsecp256k1", "log", @@ -6960,12 +7601,12 @@ dependencies = [ "rustversion", "secp256k1", "sp-core", - "sp-externalities", + "sp-externalities 0.19.0", "sp-keystore", - "sp-runtime-interface", + "sp-runtime-interface 17.0.0", "sp-state-machine", - "sp-std 9.0.0", - "sp-tracing 11.0.0", + "sp-std 8.0.0", + "sp-tracing 10.0.0", "sp-trie", "tracing", "tracing-core", @@ -6973,34 +7614,31 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eda1d2572a15340927a9f7db75ffe74366b645eaf9212015b4a96ad8e9d4c46" +version = "0.27.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "parity-scale-codec", "parking_lot", "sp-core", - "sp-externalities", + "sp-externalities 0.19.0", "thiserror", ] [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369e75e418bcfdeede4acb92563ef2d514ad0e7d81c350ba9ae98841a237f3c" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "frame-metadata 16.0.0", "parity-scale-codec", "scale-info", - "sp-std 9.0.0", + "sp-std 8.0.0", ] [[package]] name = "sp-panic-handler" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c67eb0a0d11d3017ef43c975068ba76c7b0e83aca1ee3d68ba0ce270ecebe7" +version = "8.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "backtrace", "lazy_static", @@ -7009,9 +7647,8 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "25.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d056e4cccf36a45be5d471b47c09e8be91b825f1d8352f20aa01f9f693176e7" +version = "24.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "either", "hash256-std-hasher", @@ -7026,34 +7663,51 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-io", - "sp-std 9.0.0", + "sp-std 8.0.0", "sp-weights", ] [[package]] name = "sp-runtime-interface" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf9781c72848efe6750116eb96edaeb105ee7e0bd7f38a4e46371bf810b3db7b" +version = "17.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "primitive-types", + "sp-externalities 0.19.0", + "sp-runtime-interface-proc-macro 11.0.0", + "sp-std 8.0.0", + "sp-storage 13.0.0", + "sp-tracing 10.0.0", + "sp-wasm-interface 14.0.0", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", + "polkavm-derive", "primitive-types", - "sp-externalities", - "sp-runtime-interface-proc-macro", - "sp-std 9.0.0", - "sp-storage", - "sp-tracing 11.0.0", - "sp-wasm-interface", + "sp-externalities 0.25.0", + "sp-runtime-interface-proc-macro 17.0.0", + "sp-std 14.0.0", + "sp-storage 19.0.0", + "sp-tracing 16.0.0", + "sp-wasm-interface 20.0.0", "static_assertions", ] [[package]] name = "sp-runtime-interface-proc-macro" -version = "12.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7402572a08aa1ae421ea5bab10918764b0ae72301b27710913e5d804862f2448" +version = "11.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "Inflector", "proc-macro-crate 1.3.1", @@ -7062,11 +7716,23 @@ dependencies = [ "syn 2.0.77", ] +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +dependencies = [ + "Inflector", + "expander", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "sp-staking" -version = "20.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4883e5d0a533009175746e3c35d44aa031805064153749baefd6cac915e70ba5" +version = "4.0.0-dev" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7074,14 +7740,13 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 9.0.0", + "sp-std 8.0.0", ] [[package]] name = "sp-state-machine" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2e84d8ed3acc6aed5a3d5cfd500fb5b99c1e299c86086b2fe82c3e4be93178f" +version = "0.28.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "hash-db", "log", @@ -7090,9 +7755,9 @@ dependencies = [ "rand 0.8.5", "smallvec", "sp-core", - "sp-externalities", + "sp-externalities 0.19.0", "sp-panic-handler", - "sp-std 9.0.0", + "sp-std 8.0.0", "sp-trie", "thiserror", "tracing", @@ -7102,60 +7767,65 @@ dependencies = [ [[package]] name = "sp-std" version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53458e3c57df53698b3401ec0934bea8e8cfce034816873c0b0abbd83d7bac0d" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" [[package]] name = "sp-std" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5bbc9339227d1b6a9b7ccd9b2920c818653d40eef1512f1e2e824d72e7a336" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" [[package]] name = "sp-storage" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21245c3a7799ff6d3f1f159b496f9ac72eb32cd6fe68c6f73013155289aa9f1" +version = "13.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 8.0.0", + "sp-std 8.0.0", +] + +[[package]] +name = "sp-storage" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive", - "sp-std 9.0.0", + "sp-debug-derive 14.0.0", ] [[package]] name = "sp-tracing" version = "10.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357f7591980dd58305956d32f8f6646d0a8ea9ea0e7e868e46f53b68ddf00cec" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "parity-scale-codec", "sp-std 8.0.0", "tracing", "tracing-core", - "tracing-subscriber", + "tracing-subscriber 0.2.25", ] [[package]] name = "sp-tracing" -version = "11.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5ba26db1f7513d5975970d1ba1f0580d7a1b8da8c86ea3f9f0f8dbe2cfa96e" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "parity-scale-codec", - "sp-std 9.0.0", "tracing", "tracing-core", - "tracing-subscriber", + "tracing-subscriber 0.3.18", ] [[package]] name = "sp-trie" -version = "23.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf63ea90ffb5d61048d8fb2fac669114dac198fc2739e913e615f0fd2c36c3e7" +version = "22.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "ahash 0.8.11", "hash-db", @@ -7165,10 +7835,11 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot", + "rand 0.8.5", "scale-info", "schnellru", "sp-core", - "sp-std 9.0.0", + "sp-std 8.0.0", "thiserror", "tracing", "trie-db", @@ -7177,27 +7848,25 @@ dependencies = [ [[package]] name = "sp-version" -version = "23.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccae066042a53a83017a2afeee2fd608efa42b564c1a44ea1260d5a2c264ac66" +version = "22.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "impl-serde", "parity-scale-codec", - "parity-wasm", + "parity-wasm 0.45.0 (registry+https://github.com/rust-lang/crates.io-index)", "scale-info", "serde", "sp-core-hashing-proc-macro", "sp-runtime", - "sp-std 9.0.0", + "sp-std 8.0.0", "sp-version-proc-macro", "thiserror", ] [[package]] name = "sp-version-proc-macro" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e569853a50ad02a4b45640e7b96206bcb4569bb85ce7cdf8754a207fcfba54" +version = "8.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -7207,34 +7876,44 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "15.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07945f592d2792632e6f030108769757e928a0fd78cf8659c9c210a5e341e55" +version = "14.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std 9.0.0", + "sp-allocator", + "sp-std 8.0.0", + "sp-wasm-interface-common", "wasmtime", ] +[[package]] +name = "sp-wasm-interface" +version = "20.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", +] + [[package]] name = "sp-wasm-interface-common" -version = "15.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03223ee788e1490f6341eb5b76501f83abf931fa8b5d83b5f49a4fecaf83f4ae" +version = "7.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "parity-scale-codec", - "sp-std 9.0.0", + "sp-std 8.0.0", "wasmi 0.13.2", ] [[package]] name = "sp-weights" -version = "21.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7699b853471c2eb5dc06ea1d8ea847bfa1415371218ebb4c86325c9d0232bc" +version = "20.0.0" +source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-v1.4.0#09bdd2a6953d057ae360ec3ef6ec735f9306cc04" dependencies = [ "parity-scale-codec", "scale-info", @@ -7242,8 +7921,8 @@ dependencies = [ "smallvec", "sp-arithmetic", "sp-core", - "sp-debug-derive", - "sp-std 9.0.0", + "sp-debug-derive 8.0.0", + "sp-std 8.0.0", ] [[package]] @@ -7335,34 +8014,28 @@ dependencies = [ [[package]] name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - -[[package]] -name = "subtle-ng" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "subxt" -version = "0.32.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "588b8ce92699eeb06290f4fb02dad4f7e426c4e6db4d53889c6bcbc808cf24ac" +checksum = "a160cba1edbf3ec4fbbeaea3f1a185f70448116a6bccc8276bb39adb3b3053bd" dependencies = [ "async-trait", - "base58", - "blake2", - "derivative", + "derive-where", "either", "frame-metadata 16.0.0", "futures", "hex", "impl-serde", - "jsonrpsee 0.20.4", + "instant", + "jsonrpsee 0.22.5", "parity-scale-codec", "primitive-types", + "reconnecting-jsonrpsee-ws-client", "scale-bits", "scale-decode", "scale-encode", @@ -7370,39 +8043,70 @@ dependencies = [ "scale-value", "serde", "serde_json", - "sp-core-hashing 9.0.0", + "sp-crypto-hashing", + "subxt-core", "subxt-lightclient", "subxt-macro", "subxt-metadata", "thiserror", + "tokio-util", "tracing", + "url", ] [[package]] name = "subxt-codegen" -version = "0.32.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98f5a534c8d475919e9c845d51fc2316da4fcadd04fe17552d932d2106de930e" +checksum = "d703dca0905cc5272d7cc27a4ac5f37dcaae7671acc7fef0200057cc8c317786" dependencies = [ "frame-metadata 16.0.0", - "heck 0.4.1", + "heck", "hex", - "jsonrpsee 0.20.4", + "jsonrpsee 0.22.5", "parity-scale-codec", "proc-macro2", "quote", "scale-info", + "scale-typegen", "subxt-metadata", "syn 2.0.77", "thiserror", "tokio", ] +[[package]] +name = "subxt-core" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59f41eb2e2eea6ed45649508cc735f92c27f1fcfb15229e75f8270ea73177345" +dependencies = [ + "base58", + "blake2", + "derive-where", + "frame-metadata 16.0.0", + "hashbrown 0.14.5", + "hex", + "impl-serde", + "parity-scale-codec", + "primitive-types", + "scale-bits", + "scale-decode", + "scale-encode", + "scale-info", + "scale-value", + "serde", + "serde_json", + "sp-crypto-hashing", + "subxt-metadata", + "tracing", +] + [[package]] name = "subxt-lightclient" -version = "0.32.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10fd0ac9b091211f962b6ae19e26cd08e0b86efa064dfb7fac69c8f79f122329" +checksum = "9d9406fbdb9548c110803cb8afa750f8b911d51eefdf95474b11319591d225d9" dependencies = [ "futures", "futures-util", @@ -7417,27 +8121,30 @@ dependencies = [ [[package]] name = "subxt-macro" -version = "0.32.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12e8be9ab6fe88b8c13edbe15911e148482cfb905a8b8d5b8d766a64c54be0bd" +checksum = "1c195f803d70687e409aba9be6c87115b5da8952cd83c4d13f2e043239818fcd" dependencies = [ "darling 0.20.10", + "parity-scale-codec", "proc-macro-error", + "quote", + "scale-typegen", "subxt-codegen", "syn 2.0.77", ] [[package]] name = "subxt-metadata" -version = "0.32.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6898275765d36a37e5ef564358e0341cf41b5f3a91683d7d8b859381b65ac8a" +checksum = "738be5890fdeff899bbffff4d9c0f244fe2a952fb861301b937e3aa40ebb55da" dependencies = [ "frame-metadata 16.0.0", + "hashbrown 0.14.5", "parity-scale-codec", "scale-info", - "sp-core-hashing 9.0.0", - "thiserror", + "sp-crypto-hashing", ] [[package]] @@ -7481,7 +8188,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.1.1", + "fastrand", "rustix 0.38.37", "windows-sys 0.52.0", ] @@ -7547,26 +8254,6 @@ dependencies = [ "thiserror-impl", ] -[[package]] -name = "thiserror-core" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c001ee18b7e5e3f62cbf58c7fe220119e68d902bb7443179c0c8aef30090e999" -dependencies = [ - "thiserror-core-impl", -] - -[[package]] -name = "thiserror-core-impl" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.77", -] - [[package]] name = "thiserror-impl" version = "1.0.64" @@ -7641,25 +8328,6 @@ dependencies = [ "time-core", ] -[[package]] -name = "tiny-bip39" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" -dependencies = [ - "anyhow", - "hmac 0.12.1", - "once_cell", - "pbkdf2 0.11.0", - "rand 0.8.5", - "rustc-hash", - "sha2 0.10.8", - "thiserror", - "unicode-normalization", - "wasm-bindgen", - "zeroize", -] - [[package]] name = "tiny-keccak" version = "2.0.2" @@ -7697,7 +8365,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.7", + "socket2", "tokio-macros", "windows-sys 0.52.0", ] @@ -7719,7 +8387,29 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls", + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.4", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls 0.23.13", + "rustls-pki-types", "tokio", ] @@ -7865,6 +8555,17 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + [[package]] name = "tracing-serde" version = "0.1.3" @@ -7884,7 +8585,7 @@ dependencies = [ "ansi_term", "chrono", "lazy_static", - "matchers", + "matchers 0.0.1", "regex", "serde", "serde_json", @@ -7893,15 +8594,34 @@ dependencies = [ "thread_local", "tracing", "tracing-core", - "tracing-log", + "tracing-log 0.1.4", "tracing-serde", ] +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers 0.1.0", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "time", + "tracing", + "tracing-core", + "tracing-log 0.2.0", +] + [[package]] name = "trie-db" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85" +checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" dependencies = [ "hash-db", "hashbrown 0.13.2", @@ -8010,9 +8730,9 @@ checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" -version = "0.1.24" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] @@ -8092,6 +8812,30 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "w3f-bls" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c5da5fa2c6afa2c9158eaa7cd9aee249765eb32b5fb0c63ad8b9e79336a47ec" +dependencies = [ + "ark-bls12-377", + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-serialize-derive", + "arrayref", + "constcat", + "digest 0.10.7", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "sha2 0.10.8", + "sha3", + "thiserror", + "zeroize", +] + [[package]] name = "wabt" version = "0.10.0" @@ -8115,12 +8859,6 @@ dependencies = [ "glob 0.2.11", ] -[[package]] -name = "waker-fn" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" - [[package]] name = "walkdir" version = "2.5.0" @@ -8388,10 +9126,9 @@ dependencies = [ [[package]] name = "wasmi" version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06c326c93fbf86419608361a2c925a31754cf109da1b8b55737070b4d6669422" +source = "git+https://github.com/gear-tech/wasmi?branch=v0.13.2-sign-ext#3a0b1022377919e62aadf4d78b762abd1c3e9a04" dependencies = [ - "parity-wasm", + "parity-wasm 0.45.0 (git+https://github.com/gear-tech/parity-wasm?branch=v0.45.0-sign-ext)", "wasmi-validation", "wasmi_core 0.2.1", ] @@ -8399,26 +9136,42 @@ dependencies = [ [[package]] name = "wasmi" version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51fb5c61993e71158abf5bb863df2674ca3ec39ed6471c64f07aeaf751d67b4" +source = "git+https://github.com/gear-tech/wasmi?branch=gear-v0.30.0#c8b0be9c2012e0478959a59074fd953a942782bc" dependencies = [ "intx", "smallvec", "spin", - "wasmi_arena", + "wasmi_arena 0.4.0", "wasmi_core 0.12.0", "wasmparser-nostd", ] +[[package]] +name = "wasmi" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7" +dependencies = [ + "smallvec", + "spin", + "wasmi_arena 0.4.1", + "wasmi_core 0.13.0", + "wasmparser-nostd", +] + [[package]] name = "wasmi-validation" version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ff416ad1ff0c42e5a926ed5d5fab74c0f098749aa0ad8b2a34b982ce0e867b" +source = "git+https://github.com/gear-tech/wasmi?branch=v0.13.2-sign-ext#3a0b1022377919e62aadf4d78b762abd1c3e9a04" dependencies = [ - "parity-wasm", + "parity-wasm 0.45.0 (git+https://github.com/gear-tech/parity-wasm?branch=v0.45.0-sign-ext)", ] +[[package]] +name = "wasmi_arena" +version = "0.4.0" +source = "git+https://github.com/gear-tech/wasmi?branch=gear-v0.30.0#c8b0be9c2012e0478959a59074fd953a942782bc" + [[package]] name = "wasmi_arena" version = "0.4.1" @@ -8428,8 +9181,7 @@ checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" [[package]] name = "wasmi_core" version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7" +source = "git+https://github.com/gear-tech/wasmi?branch=v0.13.2-sign-ext#3a0b1022377919e62aadf4d78b762abd1c3e9a04" dependencies = [ "downcast-rs", "libm", @@ -8442,8 +9194,20 @@ dependencies = [ [[package]] name = "wasmi_core" version = "0.12.0" +source = "git+https://github.com/gear-tech/wasmi?branch=gear-v0.30.0#c8b0be9c2012e0478959a59074fd953a942782bc" +dependencies = [ + "downcast-rs", + "libm", + "num-traits", + "paste", + "region", +] + +[[package]] +name = "wasmi_core" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624e6333e861ef49095d2d678b76ebf30b06bf37effca845be7e5b87c90071b7" +checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a" dependencies = [ "downcast-rs", "libm", @@ -8640,6 +9404,15 @@ version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +[[package]] +name = "webpki-roots" +version = "0.26.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "which" version = "4.4.2" @@ -8976,6 +9749,18 @@ dependencies = [ "tap", ] +[[package]] +name = "x25519-dalek" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +dependencies = [ + "curve25519-dalek 4.1.3", + "rand_core 0.6.4", + "serde", + "zeroize", +] + [[package]] name = "xxhash-rust" version = "0.8.12" diff --git a/Cargo.toml b/Cargo.toml index 865ef096..b79b836a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,13 +39,15 @@ sails-idl-gen = { path = "rs/idl-gen" } sails-rename = { package = "sails-rs", path = "rs" } # Gear deps -gclient = "=1.5.1" -gear-core = { version = "=1.5.1", default-features = false } -gear-core-errors = "=1.5.1" -gprimitives = { version = "=1.5.1", features = ["codec"] } -gstd = "=1.5.1" -gtest = "=1.5.1" -gwasm-builder = { package = "gear-wasm-builder", version = "=1.5.1" } +gclient = { git = "https://github.com/gear-tech/gear" } +gear-core = { git = "https://github.com/gear-tech/gear", default-features = false } +gear-core-errors = { git = "https://github.com/gear-tech/gear" } +gprimitives = { git = "https://github.com/gear-tech/gear", features = [ + "codec", +] } +gstd = { git = "https://github.com/gear-tech/gear" } +gtest = { git = "https://github.com/gear-tech/gear" } +gwasm-builder = { package = "gear-wasm-builder", git = "https://github.com/gear-tech/gear" } # Other deps in alphabetical order anyhow = "1" diff --git a/examples/demo/app/tests/fixture/mod.rs b/examples/demo/app/tests/fixture/mod.rs index 859b4b9d..293080c3 100644 --- a/examples/demo/app/tests/fixture/mod.rs +++ b/examples/demo/app/tests/fixture/mod.rs @@ -78,4 +78,8 @@ impl Fixture { pub(crate) fn balance_of(&self, id: ActorId) -> ValueUnit { self.program_space.system().balance_of(id) } + + pub(crate) fn run_next_block(&self) -> gtest::BlockRunResult { + self.program_space.system().run_next_block() + } } diff --git a/examples/demo/app/tests/gclient.rs b/examples/demo/app/tests/gclient.rs index 3de25b97..fe565b28 100644 --- a/examples/demo/app/tests/gclient.rs +++ b/examples/demo/app/tests/gclient.rs @@ -1,291 +1,358 @@ -use demo_client::{counter::events::*, ping_pong, traits::*}; -use futures::stream::StreamExt; -use gclient::GearApi; -use gstd::errors::{ErrorReplyReason, SimpleExecutionError}; -use sails_rs::{calls::*, errors::RtlError, events::*, gclient::calls::*, prelude::*}; -use std::panic; - -const DEMO_WASM_PATH: &str = "../../../target/wasm32-unknown-unknown/debug/demo.opt.wasm"; - -#[tokio::test] -#[ignore = "requires run gear node on GEAR_PATH"] -async fn counter_add_works() { - // Arrange - - let (remoting, demo_code_id, gas_limit) = spin_up_node_with_demo_code().await; - - let demo_factory = demo_client::DemoFactory::new(remoting.clone()); - - // Use generated client code for activating Demo program - // using the `new` constructor and the `send_recv` method - let demo_program_id = demo_factory - .new(Some(42), None) - .with_gas_limit(gas_limit) - .send_recv(demo_code_id, "123") - .await - .unwrap(); - - let mut counter_client = demo_client::Counter::new(remoting.clone()); - // Listen to Counter events - let mut counter_listener = demo_client::counter::events::listener(remoting.clone()); - let mut counter_events = counter_listener.listen().await.unwrap(); - - // Act - - // Use generated client code for calling Counter service - // using the `send_recv` method - let result = counter_client - .add(10) - .with_gas_limit(gas_limit) - .send_recv(demo_program_id) - .await - .unwrap(); - - // Asert - - let event = counter_events.next().await.unwrap(); - - assert_eq!(result, 52); - assert_eq!((demo_program_id, CounterEvents::Added(10)), event); -} - -#[tokio::test] -#[ignore = "requires run gear node on GEAR_PATH"] -async fn counter_sub_works() { - // Arrange - - let (remoting, demo_code_id, gas_limit) = spin_up_node_with_demo_code().await; - - let demo_factory = demo_client::DemoFactory::new(remoting.clone()); - - // Use generated client code for activating Demo program - // using the `new` constructor and the `send`/`recv` pair - // of methods - let activation = demo_factory - .new(Some(42), None) - .with_gas_limit(gas_limit) - .send(demo_code_id, "123") - .await - .unwrap(); - let demo_program_id = activation.recv().await.unwrap(); - - let mut counter_client = demo_client::Counter::new(remoting.clone()); - // Listen to Counter events - let mut counter_listener = demo_client::counter::events::listener(remoting.clone()); - let mut counter_events = counter_listener.listen().await.unwrap(); - - // Act - - // Use generated client code for calling Counter service - // using the `send`/`recv` pair of methods - let response = counter_client - .sub(10) - .with_gas_limit(gas_limit) - .send(demo_program_id) - .await - .unwrap(); - let result = response.recv().await.unwrap(); - - // Assert - - let event = counter_events.next().await.unwrap(); - - assert_eq!(result, 32); - assert_eq!((demo_program_id, CounterEvents::Subtracted(10)), event); -} - -#[tokio::test] -#[ignore = "requires run gear node on GEAR_PATH"] -async fn ping_pong_works() { - // Arrange - - let (remoting, demo_code_id, gas_limit) = spin_up_node_with_demo_code().await; - - let demo_factory = demo_client::DemoFactory::new(remoting.clone()); - - // Use generated client code for activating Demo program - // using the `default` constructor and the `send_recv` method - let demo_program_id = demo_factory - .default() - .with_gas_limit(gas_limit) - .send_recv(demo_code_id, "123") - .await - .unwrap(); - - // Use generated `io` module for encoding/decoding calls and replies - // and send/receive bytes using `gclient` native means (remoting is just a wrapper) - let ping_call_payload = ping_pong::io::Ping::encode_call("ping".into()); - - // Act - - let ping_reply_payload = remoting - .message( - demo_program_id, - ping_call_payload, - Some(gas_limit), - 0, - GClientArgs, - ) - .await - .unwrap() - .await - .unwrap(); - - let ping_reply = ping_pong::io::Ping::decode_reply(ping_reply_payload).unwrap(); - - // Assert - - assert_eq!(ping_reply, Ok("pong".to_string())); -} - -#[tokio::test] -#[ignore = "requires run gear node on GEAR_PATH"] -async fn demo_returns_not_enough_gas_on_activation() { - // Arrange - - let (remoting, demo_code_id, ..) = spin_up_node_with_demo_code().await; - - let demo_factory = demo_client::DemoFactory::new(remoting.clone()); - - // Act - - let activation_result = demo_factory - .default() - .with_gas_limit(0) - .send_recv(demo_code_id, "123") - .await; - - // Assert - - assert!(matches!( - activation_result, - Err(sails_rs::errors::Error::Rtl( - RtlError::ReplyHasErrorString(s) - )) if s.as_str() == "Not enough gas to handle program data" - )); -} - -#[tokio::test] -#[ignore = "requires run gear node on GEAR_PATH"] -async fn counter_query_works() { - // Arrange - - let (remoting, demo_code_id, gas_limit) = spin_up_node_with_demo_code().await; - - let demo_factory = demo_client::DemoFactory::new(remoting.clone()); - - // Use generated client code for activating Demo program - // using the `new` constructor and the `send_recv` method - let demo_program_id = demo_factory - .new(Some(42), None) - .with_gas_limit(gas_limit) - .send_recv(demo_code_id, "123") - .await - .unwrap(); - - let counter_client = demo_client::Counter::new(remoting.clone()); - - // Act - - // Use generated client code for query Counter service using the `recv` method - let result = counter_client.value().recv(demo_program_id).await.unwrap(); - - // Asert - assert_eq!(result, 42); -} - -#[tokio::test] -#[ignore = "requires run gear node on GEAR_PATH"] -async fn counter_query_not_enough_gas() { - // Arrange - - let (remoting, demo_code_id, gas_limit) = spin_up_node_with_demo_code().await; - - let demo_factory = demo_client::DemoFactory::new(remoting.clone()); - - // Use generated client code for activating Demo program - // using the `new` constructor and the `send_recv` method - let demo_program_id = demo_factory - .new(Some(42), None) - .with_gas_limit(gas_limit) - .send_recv(demo_code_id, "123") - .await - .unwrap(); - - let counter_client = demo_client::Counter::new(remoting.clone()); - - // Act - - // Use generated client code for query Counter service using the `recv` method - let result = counter_client - .value() - .with_gas_limit(0) // Set gas_limit to 0 - .recv(demo_program_id) - .await; - - // Asert - assert!(matches!( - result, - Err(sails_rs::errors::Error::Rtl(RtlError::ReplyHasError( - ErrorReplyReason::Execution(SimpleExecutionError::RanOutOfGas), - message - ))) if message == "Not enough gas to handle program data" - )); -} - -#[tokio::test] -#[ignore = "requires run gear node on GEAR_PATH"] -async fn value_fee_works() { - // Arrange - let (remoting, demo_code_id, _gas_limit) = spin_up_node_with_demo_code().await; - let admin_id = ActorId::try_from(remoting.api().account_id().encode().as_ref()) - .expect("failed to create actor id"); - - let demo_factory = demo_client::DemoFactory::new(remoting.clone()); - let program_id = demo_factory - .new(Some(42), None) - .send_recv(demo_code_id, "123") - .await - .unwrap(); - - let initial_balance = remoting.api().free_balance(admin_id).await.unwrap(); - let mut client = demo_client::ValueFee::new(remoting.clone()); - - // Act - - // Use generated client code to call `do_something_and_take_fee` method with zero value - let result = client - .do_something_and_take_fee() - .send_recv(program_id) - .await - .unwrap(); - assert!(!result); - - // Use generated client code to call `do_something_and_take_fee` method with value - let result = client - .do_something_and_take_fee() - .with_value(15_000_000_000_000) - .send_recv(program_id) - .await - .unwrap(); - - assert!(result); - let balance = remoting.api().free_balance(admin_id).await.unwrap(); - // fee is 10_000_000_000_000 + spent gas - assert!( - initial_balance - balance > 10_000_000_000_000 - && initial_balance - balance < 10_100_000_000_000 - ); -} - -async fn spin_up_node_with_demo_code() -> (GClientRemoting, CodeId, GasUnit) { - let gear_path = option_env!("GEAR_PATH"); - if gear_path.is_none() { - panic!("the 'GEAR_PATH' environment variable was not set during compile time"); - } - let api = GearApi::dev_from_path(gear_path.unwrap()).await.unwrap(); - let gas_limit = api.block_gas_limit().unwrap(); - let remoting = GClientRemoting::new(api); - let code_id = remoting.upload_code_by_path(DEMO_WASM_PATH).await.unwrap(); - (remoting, code_id, gas_limit) -} +use demo_client::{counter::events::*, ping_pong, traits::*}; +use futures::stream::StreamExt; +use gclient::GearApi; +use gstd::errors::{ErrorReplyReason, SimpleExecutionError}; +use sails_rs::{calls::*, errors::RtlError, events::*, gclient::calls::*, prelude::*}; +use std::panic; + +const DEMO_WASM_PATH: &str = "../../../target/wasm32-unknown-unknown/debug/demo.opt.wasm"; + +#[tokio::test] +#[ignore = "requires run gear node on GEAR_PATH"] +async fn counter_add_works() { + // Arrange + + let (remoting, demo_code_id, gas_limit) = spin_up_node_with_demo_code().await; + + let demo_factory = demo_client::DemoFactory::new(remoting.clone()); + + // Use generated client code for activating Demo program + // using the `new` constructor and the `send_recv` method + let demo_program_id = demo_factory + .new(Some(42), None) + .with_gas_limit(gas_limit) + .send_recv(demo_code_id, "123") + .await + .unwrap(); + + let mut counter_client = demo_client::Counter::new(remoting.clone()); + // Listen to Counter events + let mut counter_listener = demo_client::counter::events::listener(remoting.clone()); + let mut counter_events = counter_listener.listen().await.unwrap(); + + // Act + + // Use generated client code for calling Counter service + // using the `send_recv` method + let result = counter_client + .add(10) + .with_gas_limit(gas_limit) + .send_recv(demo_program_id) + .await + .unwrap(); + + // Asert + + let event = counter_events.next().await.unwrap(); + + assert_eq!(result, 52); + assert_eq!((demo_program_id, CounterEvents::Added(10)), event); +} + +#[tokio::test] +#[ignore = "requires run gear node on GEAR_PATH"] +async fn counter_sub_works() { + // Arrange + + let (remoting, demo_code_id, gas_limit) = spin_up_node_with_demo_code().await; + + let demo_factory = demo_client::DemoFactory::new(remoting.clone()); + + // Use generated client code for activating Demo program + // using the `new` constructor and the `send`/`recv` pair + // of methods + let activation = demo_factory + .new(Some(42), None) + .with_gas_limit(gas_limit) + .send(demo_code_id, "123") + .await + .unwrap(); + let demo_program_id = activation.recv().await.unwrap(); + + let mut counter_client = demo_client::Counter::new(remoting.clone()); + // Listen to Counter events + let mut counter_listener = demo_client::counter::events::listener(remoting.clone()); + let mut counter_events = counter_listener.listen().await.unwrap(); + + // Act + + // Use generated client code for calling Counter service + // using the `send`/`recv` pair of methods + let response = counter_client + .sub(10) + .with_gas_limit(gas_limit) + .send(demo_program_id) + .await + .unwrap(); + let result = response.recv().await.unwrap(); + + // Assert + + let event = counter_events.next().await.unwrap(); + + assert_eq!(result, 32); + assert_eq!((demo_program_id, CounterEvents::Subtracted(10)), event); +} + +#[tokio::test] +#[ignore = "requires run gear node on GEAR_PATH"] +async fn ping_pong_works() { + // Arrange + + let (remoting, demo_code_id, gas_limit) = spin_up_node_with_demo_code().await; + + let demo_factory = demo_client::DemoFactory::new(remoting.clone()); + + // Use generated client code for activating Demo program + // using the `default` constructor and the `send_recv` method + let demo_program_id = demo_factory + .default() + .with_gas_limit(gas_limit) + .send_recv(demo_code_id, "123") + .await + .unwrap(); + + // Use generated `io` module for encoding/decoding calls and replies + // and send/receive bytes using `gclient` native means (remoting is just a wrapper) + let ping_call_payload = ping_pong::io::Ping::encode_call("ping".into()); + + // Act + + let ping_reply_payload = remoting + .message( + demo_program_id, + ping_call_payload, + Some(gas_limit), + 0, + GClientArgs::default(), + ) + .await + .unwrap() + .await + .unwrap(); + + let ping_reply = ping_pong::io::Ping::decode_reply(ping_reply_payload).unwrap(); + + // Assert + + assert_eq!(ping_reply, Ok("pong".to_string())); +} + +#[tokio::test] +#[ignore = "requires run gear node on GEAR_PATH"] +async fn demo_returns_not_enough_gas_on_activation() { + // Arrange + + let (remoting, demo_code_id, ..) = spin_up_node_with_demo_code().await; + + let demo_factory = demo_client::DemoFactory::new(remoting.clone()); + + // Act + + let activation_result = demo_factory + .default() + .with_gas_limit(0) + .send_recv(demo_code_id, "123") + .await; + + // Assert + + assert!(matches!( + activation_result, + Err(sails_rs::errors::Error::Rtl( + RtlError::ReplyHasErrorString(s) + )) if s.as_str() == "Not enough gas to handle program data" + )); +} + +#[tokio::test] +#[ignore = "requires run gear node on GEAR_PATH"] +async fn counter_query_works() { + // Arrange + + let (remoting, demo_code_id, gas_limit) = spin_up_node_with_demo_code().await; + + let demo_factory = demo_client::DemoFactory::new(remoting.clone()); + + // Use generated client code for activating Demo program + // using the `new` constructor and the `send_recv` method + let demo_program_id = demo_factory + .new(Some(42), None) + .with_gas_limit(gas_limit) + .send_recv(demo_code_id, "123") + .await + .unwrap(); + + let counter_client = demo_client::Counter::new(remoting.clone()); + + // Act + + // Use generated client code for query Counter service using the `recv` method + let result = counter_client.value().recv(demo_program_id).await.unwrap(); + + // Asert + assert_eq!(result, 42); +} + +#[tokio::test] +#[ignore = "requires run gear node on GEAR_PATH"] +async fn counter_query_not_enough_gas() { + // Arrange + + let (remoting, demo_code_id, gas_limit) = spin_up_node_with_demo_code().await; + + let demo_factory = demo_client::DemoFactory::new(remoting.clone()); + + // Use generated client code for activating Demo program + // using the `new` constructor and the `send_recv` method + let demo_program_id = demo_factory + .new(Some(42), None) + .with_gas_limit(gas_limit) + .send_recv(demo_code_id, "123") + .await + .unwrap(); + + let counter_client = demo_client::Counter::new(remoting.clone()); + + // Act + + // Use generated client code for query Counter service using the `recv` method + let result = counter_client + .value() + .with_gas_limit(0) // Set gas_limit to 0 + .recv(demo_program_id) + .await; + + // Asert + assert!(matches!( + result, + Err(sails_rs::errors::Error::Rtl(RtlError::ReplyHasError( + ErrorReplyReason::Execution(SimpleExecutionError::RanOutOfGas), + message + ))) if message == "Not enough gas to handle program data" + )); +} + +#[tokio::test] +#[ignore = "requires run gear node on GEAR_PATH"] +async fn value_fee_works() { + // Arrange + let (remoting, demo_code_id, _gas_limit) = spin_up_node_with_demo_code().await; + let admin_id = ActorId::try_from(remoting.api().account_id().encode().as_ref()) + .expect("failed to create actor id"); + + let demo_factory = demo_client::DemoFactory::new(remoting.clone()); + let program_id = demo_factory + .new(Some(42), None) + .send_recv(demo_code_id, "123") + .await + .unwrap(); + + let initial_balance = remoting.api().free_balance(admin_id).await.unwrap(); + let mut client = demo_client::ValueFee::new(remoting.clone()); + + // Act + + // Use generated client code to call `do_something_and_take_fee` method with zero value + let result = client + .do_something_and_take_fee() + .send_recv(program_id) + .await + .unwrap(); + assert!(!result); + + // Use generated client code to call `do_something_and_take_fee` method with value + let result = client + .do_something_and_take_fee() + .with_value(15_000_000_000_000) + .send_recv(program_id) + .await + .unwrap(); + + assert!(result); + let balance = remoting.api().free_balance(admin_id).await.unwrap(); + // fee is 10_000_000_000_000 + spent gas + assert!( + initial_balance - balance > 10_000_000_000_000 + && initial_balance - balance < 10_100_000_000_000 + ); +} + +#[tokio::test] +#[ignore = "requires run gear node on GEAR_PATH"] +async fn counter_add_with_voucher() { + // Arrange + + let (remoting, demo_code_id, gas_limit) = spin_up_node_with_demo_code().await; + + let demo_factory = demo_client::DemoFactory::new(remoting.clone()); + + // Use generated client code for activating Demo program + // using the `new` constructor and the `send_recv` method + let demo_program_id = demo_factory + .new(Some(42), None) + .with_gas_limit(gas_limit) + .send_recv(demo_code_id, "123") + .await + .unwrap(); + + let mut counter_client = demo_client::Counter::new(remoting.clone()); + // Listen to Counter events + let mut counter_listener = demo_client::counter::events::listener(remoting.clone()); + let mut counter_events = counter_listener.listen().await.unwrap(); + + let actor_id = ActorId::try_from(remoting.api().account_id().encode().as_ref()) + .expect("failed to create actor id"); + let voucher_initial_balance = 100_000_000_000_000; + // Issue voucher + let (voucher_id, ..) = remoting + .api() + .issue_voucher(actor_id, voucher_initial_balance, None, true, 100) + .await + .expect("failed to issue voucher"); + + let initial_balance = remoting + .api() + .free_balance(actor_id) + .await + .expect("failed to get balance"); + + // Act + + // Use generated client code for calling Counter service + // using the `send_recv` method + let result = counter_client + .add(10) + .with_gas_limit(gas_limit) + .with_args(GClientArgs::default().with_voucher(voucher_id, true)) + .send_recv(demo_program_id) + .await + .unwrap(); + + // Asert + + let event = counter_events.next().await.unwrap(); + + assert_eq!(result, 52); + assert_eq!((demo_program_id, CounterEvents::Added(10)), event); + + let balance = remoting + .api() + .free_balance(actor_id) + .await + .expect("failed to get balance"); + // account balance remain unchanged + assert_eq!(initial_balance, balance); +} + +async fn spin_up_node_with_demo_code() -> (GClientRemoting, CodeId, GasUnit) { + let gear_path = option_env!("GEAR_PATH"); + if gear_path.is_none() { + panic!("the 'GEAR_PATH' environment variable was not set during compile time"); + } + let api = GearApi::dev_from_path(gear_path.unwrap()).await.unwrap(); + let gas_limit = api.block_gas_limit().unwrap(); + let remoting = GClientRemoting::new(api); + let code_id = remoting.upload_code_by_path(DEMO_WASM_PATH).await.unwrap(); + (remoting, code_id, gas_limit) +} diff --git a/examples/demo/app/tests/gtest.rs b/examples/demo/app/tests/gtest.rs index 68d6942a..9818a951 100644 --- a/examples/demo/app/tests/gtest.rs +++ b/examples/demo/app/tests/gtest.rs @@ -165,12 +165,13 @@ async fn ping_pong_works() { // and send/receive bytes using `gtest` native means let ping_call_payload = ping_pong::io::Ping::encode_call("ping".into()); - let run_result = demo_program.send_bytes(fixture.admin_id(), ping_call_payload); + let message_id = demo_program.send_bytes(fixture.admin_id(), ping_call_payload); + let run_result = fixture.run_next_block(); let reply_log_record = run_result .log() .iter() - .find(|entry| entry.reply_to() == Some(run_result.sent_message_id())) + .find(|entry| entry.reply_to() == Some(message_id)) .unwrap(); let ping_reply_payload = reply_log_record.payload(); diff --git a/examples/no-svcs-prog/wasm/tests/tests.rs b/examples/no-svcs-prog/wasm/tests/tests.rs index 7e873098..cf235441 100644 --- a/examples/no-svcs-prog/wasm/tests/tests.rs +++ b/examples/no-svcs-prog/wasm/tests/tests.rs @@ -8,6 +8,7 @@ const WASM_PATH: &str = "../../../target/wasm32-unknown-unknown/debug/no_svcs_pr async fn activating_program_succeeds() { let remoting = GTestRemoting::new(ADMIN_ID.into()); remoting.system().init_logger(); + remoting.system().mint_to(ADMIN_ID, 10_000_000_000_000); let program_code_id = remoting.system().submit_code_file(WASM_PATH); diff --git a/examples/rmrk/resource/wasm/tests/resources.rs b/examples/rmrk/resource/wasm/tests/resources.rs index 7ae66ae3..2acaf645 100644 --- a/examples/rmrk/resource/wasm/tests/resources.rs +++ b/examples/rmrk/resource/wasm/tests/resources.rs @@ -1,6 +1,6 @@ use crate::resource_client::traits::RmrkResource; use core::cell::OnceCell; -use gtest::{Program, RunResult}; +use gtest::{BlockRunResult, Program}; use rmrk_catalog::services::parts::{FixedPart, Part}; use rmrk_resource_app::services::{ errors::{Error as ResourceStorageError, Result as ResourceStorageResult}, @@ -286,6 +286,12 @@ impl<'a> Fixture<'a> { fn new(admin_id: u64) -> Self { let program_space = GTestRemoting::new(admin_id.into()); program_space.system().init_logger(); + program_space + .system() + .mint_to(ADMIN_ID, 100_000_000_000_000); + program_space + .system() + .mint_to(NON_ADMIN_ID, 100_000_000_000_000); Self { admin_id, @@ -295,6 +301,10 @@ impl<'a> Fixture<'a> { } } + fn run_next_block(&self) -> BlockRunResult { + self.program_space.system().run_next_block() + } + fn program_space(&self) -> >estRemoting { &self.program_space } @@ -364,7 +374,7 @@ impl<'a> Fixture<'a> { actor_id: u64, resource_id: ResourceId, resource: &Resource, - ) -> RunResult { + ) -> BlockRunResult { let program = self.resource_program_for_sync(); let encoded_request = [ resources::RESOURCE_SERVICE_NAME.encode(), @@ -373,7 +383,8 @@ impl<'a> Fixture<'a> { resource.encode(), ] .concat(); - program.send_bytes(actor_id, encoded_request) + let _message_id = program.send_bytes(actor_id, encoded_request); + self.run_next_block() } async fn add_resource_async( @@ -423,7 +434,7 @@ impl<'a> Fixture<'a> { actor_id: u64, resource_id: ResourceId, part_id: PartId, - ) -> RunResult { + ) -> BlockRunResult { let program = self.resource_program_for_sync(); let encoded_request = [ resources::RESOURCE_SERVICE_NAME.encode(), @@ -432,7 +443,8 @@ impl<'a> Fixture<'a> { part_id.encode(), ] .concat(); - program.send_bytes(actor_id, encoded_request) + let _message_id = program.send_bytes(actor_id, encoded_request); + self.run_next_block() } async fn add_part_to_resource_via_client( @@ -465,7 +477,8 @@ impl<'a> Fixture<'a> { resource_id.encode(), ] .concat(); - let run_result = program.send_bytes(actor_id, encoded_request); + let _message_id = program.send_bytes(actor_id, encoded_request); + let run_result = self.run_next_block(); run_result .log() .iter() @@ -496,7 +509,7 @@ impl<'a> Fixture<'a> { .await } - fn add_parts(&'a self, actor_id: u64, parts: &BTreeMap) -> RunResult { + fn add_parts(&'a self, actor_id: u64, parts: &BTreeMap) -> BlockRunResult { let program = self.catalog_program(); let encoded_request = [ catalog::CATALOG_SERVICE_NAME.encode(), @@ -504,6 +517,7 @@ impl<'a> Fixture<'a> { parts.encode(), ] .concat(); - program.send_bytes(actor_id, encoded_request) + let _message_id = program.send_bytes(actor_id, encoded_request); + self.run_next_block() } } diff --git a/rs/src/gclient/calls.rs b/rs/src/gclient/calls.rs index ee9d3ecf..69f2fc05 100644 --- a/rs/src/gclient/calls.rs +++ b/rs/src/gclient/calls.rs @@ -1,186 +1,204 @@ -use crate::{ - calls::Remoting, - errors::{Result, RtlError}, - events::Listener, - prelude::*, -}; -use core::future::Future; -use futures::{stream, Stream, StreamExt}; -use gclient::metadata::runtime_types::gear_core::message::user::UserMessage as GenUserMessage; -use gclient::{ext::sp_core::ByteArray, EventProcessor, GearApi}; -use gear_core_errors::ReplyCode; - -#[derive(Debug, Default)] -pub struct GClientArgs; - -#[derive(Clone)] -pub struct GClientRemoting { - api: GearApi, -} - -impl GClientRemoting { - pub fn new(api: GearApi) -> Self { - Self { api } - } - - pub fn with_suri(self, suri: impl AsRef) -> Self { - let api = self.api.with(suri).unwrap(); - Self { api } - } - - pub fn api(&self) -> &GearApi { - &self.api - } - - pub async fn upload_code_by_path(&self, path: &str) -> Result { - let (code_id, ..) = self.api.upload_code_by_path(path).await?; - Ok(code_id) - } -} - -impl Remoting for GClientRemoting { - type Args = GClientArgs; - - async fn activate( - self, - code_id: CodeId, - salt: impl AsRef<[u8]>, - payload: impl AsRef<[u8]>, - gas_limit: Option, - value: ValueUnit, - _args: GClientArgs, - ) -> Result)>>> { - let api = self.api; - // Calculate gas amount if it is not explicitly set - let gas_limit = if let Some(gas_limit) = gas_limit { - gas_limit - } else { - // Calculate gas amount needed for initialization - let gas_info = api - .calculate_create_gas(None, code_id, Vec::from(payload.as_ref()), value, true) - .await?; - gas_info.min_limit - }; - - let mut listener = api.subscribe().await?; - let (message_id, program_id, ..) = api - .create_program_bytes(code_id, salt, payload, gas_limit, value) - .await?; - - Ok(async move { - let (_, result, _) = listener.reply_bytes_on(message_id).await?; - let reply = result.map_err(RtlError::ReplyHasErrorString)?; - Ok((program_id, reply)) - }) - } - - async fn message( - self, - target: ActorId, - payload: impl AsRef<[u8]>, - gas_limit: Option, - value: ValueUnit, - _args: GClientArgs, - ) -> Result>>> { - let api = self.api; - // Calculate gas amount if it is not explicitly set - let gas_limit = if let Some(gas_limit) = gas_limit { - gas_limit - } else { - // Calculate gas amount needed for handling the message - let gas_info = api - .calculate_handle_gas(None, target, Vec::from(payload.as_ref()), value, true) - .await?; - gas_info.min_limit - }; - - let mut listener = api.subscribe().await?; - let (message_id, ..) = api - .send_message_bytes(target, payload, gas_limit, value) - .await?; - - Ok(async move { - let (_, result, _) = listener.reply_bytes_on(message_id).await?; - let reply = result.map_err(RtlError::ReplyHasErrorString)?; - Ok(reply) - }) - } - - async fn query( - self, - target: ActorId, - payload: impl AsRef<[u8]>, - gas_limit: Option, - value: ValueUnit, - _args: GClientArgs, - ) -> Result> { - let api = self.api; - // Get Max gas amount if it is not explicitly set - let gas_limit = if let Some(gas_limit) = gas_limit { - gas_limit - } else { - api.block_gas_limit()? - }; - let origin = H256::from_slice(api.account_id().as_slice()); - let payload = payload.as_ref().to_vec(); - - let reply_info = api - .calculate_reply_for_handle(Some(origin), target, payload, gas_limit, value) - .await?; - - match reply_info.code { - ReplyCode::Success(_) => Ok(reply_info.payload), - ReplyCode::Error(reason) => { - let message = String::from_utf8_lossy(&reply_info.payload).to_string(); - Err(RtlError::ReplyHasError(reason, message))? - } - ReplyCode::Unsupported => Err(RtlError::ReplyIsMissing)?, - } - } -} - -impl Listener> for GClientRemoting { - async fn listen(&mut self) -> Result)> + Unpin> { - let listener = self.api.subscribe().await?; - let stream = stream::unfold(listener, |mut l| async move { - let vec = get_events_from_block(&mut l).await.ok(); - vec.map(|v| (v, l)) - }) - .flat_map(stream::iter); - Ok(Box::pin(stream)) - } -} - -async fn get_events_from_block( - listener: &mut gclient::EventListener, -) -> Result)>> { - let vec = listener - .proc_many( - |e| { - if let gclient::Event::Gear(gclient::GearEvent::UserMessageSent { - message: - GenUserMessage { - id: _, - source, - destination, - payload, - .. - }, - .. - }) = e - { - let source = ActorId::from(source); - if ActorId::from(destination) == ActorId::zero() { - Some((source, payload.0)) - } else { - None - } - } else { - None - } - }, - |v| (v, true), - ) - .await?; - Ok(vec) -} +use crate::{ + calls::Remoting, + errors::{Result, RtlError}, + events::Listener, + prelude::*, +}; +use core::future::Future; +use futures::{stream, Stream, StreamExt}; +use gclient::metadata::runtime_types::{ + gear_core::message::user::UserMessage as GenUserMessage, + pallet_gear_voucher::internal::VoucherId, +}; +use gclient::{ext::sp_core::ByteArray, EventProcessor, GearApi}; +use gear_core_errors::ReplyCode; + +#[derive(Debug, Default)] +pub struct GClientArgs { + voucher: Option<(VoucherId, bool)>, +} + +impl GClientArgs { + pub fn with_voucher(mut self, voucher_id: VoucherId, keep_alive: bool) -> Self { + self.voucher = Some((voucher_id, keep_alive)); + self + } +} + +#[derive(Clone)] +pub struct GClientRemoting { + api: GearApi, +} + +impl GClientRemoting { + pub fn new(api: GearApi) -> Self { + Self { api } + } + + pub fn with_suri(self, suri: impl AsRef) -> Self { + let api = self.api.with(suri).unwrap(); + Self { api } + } + + pub fn api(&self) -> &GearApi { + &self.api + } + + pub async fn upload_code_by_path(&self, path: &str) -> Result { + let (code_id, ..) = self.api.upload_code_by_path(path).await?; + Ok(code_id) + } +} + +impl Remoting for GClientRemoting { + type Args = GClientArgs; + + async fn activate( + self, + code_id: CodeId, + salt: impl AsRef<[u8]>, + payload: impl AsRef<[u8]>, + gas_limit: Option, + value: ValueUnit, + _args: GClientArgs, + ) -> Result)>>> { + let api = self.api; + // Calculate gas amount if it is not explicitly set + let gas_limit = if let Some(gas_limit) = gas_limit { + gas_limit + } else { + // Calculate gas amount needed for initialization + let gas_info = api + .calculate_create_gas(None, code_id, Vec::from(payload.as_ref()), value, true) + .await?; + gas_info.min_limit + }; + + let mut listener = api.subscribe().await?; + let (message_id, program_id, ..) = api + .create_program_bytes(code_id, salt, payload, gas_limit, value) + .await?; + + Ok(async move { + let (_, result, _) = listener.reply_bytes_on(message_id).await?; + let reply = result.map_err(RtlError::ReplyHasErrorString)?; + Ok((program_id, reply)) + }) + } + + async fn message( + self, + target: ActorId, + payload: impl AsRef<[u8]>, + gas_limit: Option, + value: ValueUnit, + args: GClientArgs, + ) -> Result>>> { + let api = self.api; + // Calculate gas amount if it is not explicitly set + let gas_limit = if let Some(gas_limit) = gas_limit { + gas_limit + } else { + // Calculate gas amount needed for handling the message + let gas_info = api + .calculate_handle_gas(None, target, Vec::from(payload.as_ref()), value, true) + .await?; + gas_info.min_limit + }; + + let mut listener = api.subscribe().await?; + let (message_id, ..) = if let Some((voucher_id, keep_alive)) = args.voucher { + api.send_message_bytes_with_voucher( + voucher_id, target, payload, gas_limit, value, keep_alive, + ) + .await? + } else { + api.send_message_bytes(target, payload, gas_limit, value) + .await? + }; + + Ok(async move { + let (_, result, _) = listener.reply_bytes_on(message_id).await?; + let reply = result.map_err(RtlError::ReplyHasErrorString)?; + Ok(reply) + }) + } + + async fn query( + self, + target: ActorId, + payload: impl AsRef<[u8]>, + gas_limit: Option, + value: ValueUnit, + _args: GClientArgs, + ) -> Result> { + let api = self.api; + // Get Max gas amount if it is not explicitly set + let gas_limit = if let Some(gas_limit) = gas_limit { + gas_limit + } else { + api.block_gas_limit()? + }; + let origin = H256::from_slice(api.account_id().as_slice()); + let payload = payload.as_ref().to_vec(); + + let reply_info = api + .calculate_reply_for_handle(Some(origin), target, payload, gas_limit, value) + .await?; + + match reply_info.code { + ReplyCode::Success(_) => Ok(reply_info.payload), + ReplyCode::Error(reason) => { + let message = String::from_utf8_lossy(&reply_info.payload).to_string(); + Err(RtlError::ReplyHasError(reason, message))? + } + ReplyCode::Unsupported => Err(RtlError::ReplyIsMissing)?, + } + } +} + +impl Listener> for GClientRemoting { + async fn listen(&mut self) -> Result)> + Unpin> { + let listener = self.api.subscribe().await?; + let stream = stream::unfold(listener, |mut l| async move { + let vec = get_events_from_block(&mut l).await.ok(); + vec.map(|v| (v, l)) + }) + .flat_map(stream::iter); + Ok(Box::pin(stream)) + } +} + +async fn get_events_from_block( + listener: &mut gclient::EventListener, +) -> Result)>> { + let vec = listener + .proc_many( + |e| { + if let gclient::Event::Gear(gclient::GearEvent::UserMessageSent { + message: + GenUserMessage { + id: _, + source, + destination, + payload, + .. + }, + .. + }) = e + { + let source = ActorId::from(source); + if ActorId::from(destination) == ActorId::zero() { + Some((source, payload.0)) + } else { + None + } + } else { + None + } + }, + |v| (v, true), + ) + .await?; + Ok(vec) +} diff --git a/rs/src/gtest/calls.rs b/rs/src/gtest/calls.rs index 51ef23a6..575639fd 100644 --- a/rs/src/gtest/calls.rs +++ b/rs/src/gtest/calls.rs @@ -11,7 +11,7 @@ use futures::{ Stream, }; use gear_core_errors::{ReplyCode, SuccessReplyReason}; -use gtest::{Program, RunResult, System}; +use gtest::{BlockRunResult, Program, System}; type EventSender = UnboundedSender<(ActorId, Vec)>; @@ -67,11 +67,11 @@ impl GTestRemoting { } impl GTestRemoting { - fn extract_reply(run_result: &RunResult) -> Result> { + fn extract_reply(run_result: &BlockRunResult, message_id: MessageId) -> Result> { let mut reply_iter = run_result .log() .iter() - .filter(|entry| entry.reply_to() == Some(run_result.sent_message_id())); + .filter(|entry| entry.reply_to() == Some(message_id)); let reply = reply_iter.next().ok_or(RtlError::ReplyIsMissing)?; if reply_iter.next().is_some() { Err(RtlError::ReplyIsAmbiguous)? @@ -87,7 +87,7 @@ impl GTestRemoting { Ok(reply.payload().to_vec()) } - fn extract_and_send_events(run_result: &RunResult, senders: &mut Vec) { + fn extract_and_send_events(run_result: &BlockRunResult, senders: &mut Vec) { let events: Vec<(ActorId, Vec)> = run_result .log() .iter() @@ -109,19 +109,21 @@ impl GTestRemoting { gas_limit: Option, value: ValueUnit, args: GTestArgs, - ) -> Result { + ) -> Result<(BlockRunResult, MessageId)> { let gas_limit = gas_limit.unwrap_or(gtest::constants::GAS_ALLOWANCE); let program = self .system .get_program(target.as_ref()) .ok_or(RtlError::ProgramIsNotFound)?; let actor_id = args.actor_id.unwrap_or(self.actor_id); - Ok(program.send_bytes_with_gas( + let message_id = program.send_bytes_with_gas( actor_id.as_ref(), payload.as_ref().to_vec(), gas_limit, value, - )) + ); + let run_result = self.system.run_next_block(); + Ok((run_result, message_id)) } } @@ -145,14 +147,15 @@ impl Remoting for GTestRemoting { let program_id = gtest::calculate_program_id(code_id, salt.as_ref(), None); let program = Program::from_binary_with_id(&self.system, program_id, code); let actor_id = args.actor_id.unwrap_or(self.actor_id); - let run_result = program.send_bytes_with_gas( + let message_id = program.send_bytes_with_gas( actor_id.as_ref(), payload.as_ref().to_vec(), gas_limit, value, ); + let run_result = self.system.run_next_block(); Ok(async move { - let reply = Self::extract_reply(&run_result)?; + let reply = Self::extract_reply(&run_result, message_id)?; Ok((program_id, reply)) }) } @@ -165,9 +168,10 @@ impl Remoting for GTestRemoting { value: ValueUnit, args: GTestArgs, ) -> Result>>> { - let run_result = self.send_and_get_result(target, payload, gas_limit, value, args)?; + let (run_result, message_id) = + self.send_and_get_result(target, payload, gas_limit, value, args)?; Self::extract_and_send_events(&run_result, self.event_senders.borrow_mut().as_mut()); - Ok(async move { Self::extract_reply(&run_result) }) + Ok(async move { Self::extract_reply(&run_result, message_id) }) } async fn query( @@ -178,8 +182,9 @@ impl Remoting for GTestRemoting { value: ValueUnit, args: GTestArgs, ) -> Result> { - let run_result = self.send_and_get_result(target, payload, gas_limit, value, args)?; - Self::extract_reply(&run_result) + let (run_result, message_id) = + self.send_and_get_result(target, payload, gas_limit, value, args)?; + Self::extract_reply(&run_result, message_id) } }