diff --git a/Cargo.lock b/Cargo.lock index 5d13d7c..f6f4b95 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -161,7 +161,7 @@ checksum = "fe233a377643e0fc1a56421d7c90acdec45c291b30345eb9f08e8d0ddce5a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -172,36 +172,36 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-primitives" -version = "1.4.1" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" +checksum = "3b88cf92ed20685979ed1d8472422f0c6c2d010cec77caf63aaa7669cc1a7bc2" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", - "derive_more 2.0.1", + "derive_more 2.1.1", "foldhash 0.2.0", "hashbrown 0.16.1", - "indexmap 2.12.1", + "indexmap 2.13.0", "itoa", "k256 0.13.4", "keccak-asm", "paste", "proptest", "rand 0.9.2", + "rapidhash", "ruint", "rustc-hash 2.1.1", "serde", "sha3 0.10.8", - "tiny-keccak", ] [[package]] name = "alloy-rlp" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f70d83b765fdc080dbcd4f4db70d8d23fe4761f2f02ebfa9146b833900634b4" +checksum = "e93e50f64a77ad9c5470bf2ad0ca02f228da70c792a8f06634801e202579f35e" dependencies = [ "arrayvec", "bytes", @@ -219,7 +219,7 @@ dependencies = [ [[package]] name = "anemo" version = "0.0.0" -source = "git+https://github.com/mystenlabs/anemo.git?rev=9c52c3c7946532163a79129db15180cdb984bab4#9c52c3c7946532163a79129db15180cdb984bab4" +source = "git+https://github.com/mystenlabs/anemo.git?rev=4b5f0f1d06a31c8ef78ec2e5b446bc633e4e2f77#4b5f0f1d06a31c8ef78ec2e5b446bc633e4e2f77" dependencies = [ "anyhow", "async-trait", @@ -254,7 +254,7 @@ dependencies = [ [[package]] name = "anemo-tower" version = "0.0.0" -source = "git+https://github.com/mystenlabs/anemo.git?rev=9c52c3c7946532163a79129db15180cdb984bab4#9c52c3c7946532163a79129db15180cdb984bab4" +source = "git+https://github.com/mystenlabs/anemo.git?rev=4b5f0f1d06a31c8ef78ec2e5b446bc633e4e2f77#4b5f0f1d06a31c8ef78ec2e5b446bc633e4e2f77" dependencies = [ "anemo", "bytes", @@ -330,9 +330,9 @@ dependencies = [ [[package]] name = "antithesis_sdk" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dafc0460f582169b1414074fd82bedbda60456fb4df0a78dc7fef1306e732ea3" +checksum = "18dbd97a5b6c21cc9176891cf715f7f0c273caf3959897f43b9bd1231939e675" dependencies = [ "libc", "libloading", @@ -346,20 +346,26 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" dependencies = [ "backtrace", ] +[[package]] +name = "append-only-vec" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2114736faba96bcd79595c700d03183f61357b9fbce14852515e59f3bee4ed4a" + [[package]] name = "ar_archive_writer" -version = "0.2.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c269894b6fe5e9d7ada0cf69b5bf847ff35bc25fc271f08e1d080fce80339a" +checksum = "7eb93bbb63b9c227414f6eb3a0adfddca591a8ce1e9b60661bb08969b87e340b" dependencies = [ - "object 0.32.2", + "object", ] [[package]] @@ -370,9 +376,9 @@ checksum = "825297538d77367557b912770ca3083f778a196054b3ee63b22673c4a3cae0a5" [[package]] name = "arbitrary-int" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c858caffa49edfc4ecc45a4bec37abd3e88041a2903816f10f990b7b41abc281" +checksum = "2575572fb5455467946777af62fbed3b3f96df50f6af4f1aa825182a6e881207" [[package]] name = "ark-bn254" @@ -505,7 +511,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -543,7 +549,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -727,7 +733,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror 2.0.17", + "thiserror 2.0.18", "time", ] @@ -739,7 +745,7 @@ checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "synstructure 0.13.2", ] @@ -751,18 +757,17 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "async-compression" -version = "0.4.34" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e86f6d3dc9dc4352edeea6b8e499e13e3f5dc3b964d7ca5fd411415a3498473" +checksum = "68650b7df54f0293fd061972a0fb05aaf4fc0879d3b3d21a638a182c5c543b9f" dependencies = [ "compression-codecs", "compression-core", - "futures-core", "pin-project-lite", "tokio", ] @@ -786,7 +791,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -797,7 +802,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -814,7 +819,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -831,9 +836,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b098575ebe77cb6d14fc7f32749631a6e44edbef6b796f89b020e99ba20d425" +checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" dependencies = [ "axum-core", "axum-macros", @@ -860,16 +865,16 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-tungstenite", - "tower 0.5.2", + "tower 0.5.3", "tower-layer", "tower-service", ] [[package]] name = "axum-core" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" +checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" dependencies = [ "bytes", "futures-core", @@ -891,7 +896,7 @@ checksum = "604fde5e028fea851ce1d8570bbdc034bec850d157f7569d10f347d06808c05c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -904,9 +909,9 @@ dependencies = [ "cfg-if", "libc", "miniz_oxide", - "object 0.37.3", + "object", "rustc-demangle", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -951,9 +956,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.0" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" [[package]] name = "bcs" @@ -1021,10 +1026,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + [[package]] name = "bin-version" -version = "1.60.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +version = "1.65.2" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "const-str 0.5.7", "git-version", @@ -1074,7 +1085,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -1092,7 +1103,7 @@ dependencies = [ "regex", "rustc-hash 2.1.1", "shlex", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -1152,7 +1163,7 @@ dependencies = [ "arbitrary-int 1.3.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -1229,9 +1240,9 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" +checksum = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3" dependencies = [ "arrayref", "arrayvec", @@ -1240,9 +1251,9 @@ dependencies = [ [[package]] name = "blake2s_simd" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e90f7deecfac93095eb874a40febd69427776e24e1bd7f87f33ac62d6f0174df" +checksum = "ee29928bad1e3f94c9d1528da29e07a1d3d04817ae8332de1e8b846c8439f4b3" dependencies = [ "arrayref", "arrayvec", @@ -1356,11 +1367,32 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "bulletproofs" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "012e2e5f88332083bd4235d445ae78081c00b2558443821a9ca5adfe1070073d" +dependencies = [ + "byteorder", + "clear_on_drop", + "curve25519-dalek", + "digest 0.10.7", + "group 0.13.0", + "merlin", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "serde_derive", + "sha3 0.10.8", + "subtle", + "thiserror 1.0.69", +] + [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" [[package]] name = "byte-slice-cast" @@ -1376,9 +1408,9 @@ checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" [[package]] name = "bytemuck" -version = "1.24.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" [[package]] name = "byteorder" @@ -1388,9 +1420,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" dependencies = [ "serde", ] @@ -1415,9 +1447,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.47" +version = "1.2.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd405d82c84ff7f35739f175f67d8b9fb7687a0e84ccdc78bd3568839827cf07" +checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" dependencies = [ "find-msvc-tools", "jobserver", @@ -1460,16 +1492,16 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" dependencies = [ "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -1522,9 +1554,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.53" +version = "4.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" +checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a" dependencies = [ "clap_builder", "clap_derive", @@ -1532,9 +1564,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.53" +version = "4.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" +checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238" dependencies = [ "anstream", "anstyle", @@ -1545,21 +1577,30 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.49" +version = "4.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" +checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "clap_lex" -version = "0.7.6" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" + +[[package]] +name = "clear_on_drop" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" +checksum = "38508a63f4979f0048febc9966fadbd48e5dab31fd0ec6a3f151bbf4a74f7423" +dependencies = [ + "cc", +] [[package]] name = "clipboard-win" @@ -1582,7 +1623,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" dependencies = [ - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -1661,9 +1702,9 @@ dependencies = [ [[package]] name = "compression-codecs" -version = "0.4.33" +version = "0.4.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302266479cb963552d11bd042013a58ef1adc56768016c8b82b4199488f2d4ad" +checksum = "00828ba6fd27b45a448e57dbfe84f1029d4c9f26b368157e9a448a5f49a2ec2a" dependencies = [ "brotli", "compression-core", @@ -1682,9 +1723,9 @@ checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" [[package]] name = "consensus-config" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "mysten-network", "rand 0.8.5", "serde", @@ -1694,11 +1735,11 @@ dependencies = [ [[package]] name = "consensus-types" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "base64 0.21.7", "consensus-config", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "serde", ] @@ -1775,9 +1816,9 @@ dependencies = [ [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" [[package]] name = "convert_case" @@ -1794,6 +1835,15 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "convert_case" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -1841,9 +1891,9 @@ dependencies = [ [[package]] name = "cpp_demangle" -version = "0.4.5" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2bb79cb74d735044c972aae58ed0aaa9a837e85b01106a54c39e42e97f62253" +checksum = "0667304c32ea56cb4cd6d2d7c0cfe9a2f8041229db8c033af7f8d69492429def" dependencies = [ "cfg-if", ] @@ -1974,9 +2024,9 @@ dependencies = [ [[package]] name = "ctor" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ffc71fcdcdb40d6f087edddf7f8f1f8f79e6cf922f555a9ee8779752d4819bd" +checksum = "424e0138278faeb2b401f174ad17e715c829512d74f3d1e81eb43365c2e0590e" dependencies = [ "ctor-proc-macro", "dtor", @@ -1997,6 +2047,36 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "group 0.13.0", + "rand_core 0.6.4", + "rustc_version 0.4.1", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "curve25519-dalek-ng" version = "4.1.1" @@ -2038,7 +2118,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.111", + "syn 2.0.114", "thiserror 1.0.69", ] @@ -2048,7 +2128,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3136ed6464e975162667c08092fcb54947ce08785fca301162fd614c4dfd974f" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "lalrpop-util 0.22.2", "logos 0.14.4", ] @@ -2062,7 +2142,7 @@ dependencies = [ "cynic-codegen", "darling 0.20.11", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2120,7 +2200,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2134,7 +2214,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2156,7 +2236,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2167,7 +2247,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2185,15 +2265,15 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" [[package]] name = "data-encoding-macro" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" +checksum = "8142a83c17aa9461d637e649271eae18bf2edd00e91f2e105df36c3c16355bdb" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -2201,12 +2281,12 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" +checksum = "7ab67060fc6b8ef687992d439ca0fa36e7ed17e9a0b16b25b601e8757df720de" dependencies = [ "data-encoding", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2267,9 +2347,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +checksum = "cc3dc5ad92c2e2d1c193bbbbdf2ea477cb81331de4f3103f267ca18368b988c4" dependencies = [ "powerfmt", "serde_core", @@ -2297,6 +2377,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-where" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "derive_more" version = "0.99.20" @@ -2307,7 +2398,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2321,11 +2412,11 @@ dependencies = [ [[package]] name = "derive_more" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" dependencies = [ - "derive_more-impl 2.0.1", + "derive_more-impl 2.1.1", ] [[package]] @@ -2337,19 +2428,21 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "unicode-xid", ] [[package]] name = "derive_more-impl" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" dependencies = [ + "convert_case 0.10.0", "proc-macro2", "quote", - "syn 2.0.111", + "rustc_version 0.4.1", + "syn 2.0.114", "unicode-xid", ] @@ -2445,7 +2538,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2498,7 +2591,7 @@ checksum = "83e195b4945e88836d826124af44fdcb262ec01ef94d44f14f4fb5103f19892a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2559,6 +2652,20 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + [[package]] name = "educe" version = "0.4.23" @@ -2580,7 +2687,7 @@ dependencies = [ "enum-ordinalize 4.3.2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2642,9 +2749,9 @@ checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" [[package]] name = "ena" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +checksum = "eabffdaee24bd1bf95c5ef7cec31260444317e72ea56c4c91750e8b7ee58d5f1" dependencies = [ "log", ] @@ -2673,7 +2780,7 @@ checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" [[package]] name = "enum-compat-util" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "serde_yaml", ] @@ -2688,7 +2795,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2708,7 +2815,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2720,7 +2827,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2763,7 +2870,7 @@ checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -2846,12 +2953,13 @@ dependencies = [ [[package]] name = "fastbloom" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18c1ddb9231d8554c2d6bdf4cfaabf0c59251658c68b6c95cd52dd0c513a912a" +checksum = "4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4" dependencies = [ "getrandom 0.3.4", "libm", + "rand 0.9.2", "siphasher", ] @@ -2859,6 +2967,58 @@ dependencies = [ name = "fastcrypto" version = "0.1.9" source = "git+https://github.com/MystenLabs/fastcrypto?rev=09f86974195ec85d8aae386b1909d341d3ccfe52#09f86974195ec85d8aae386b1909d341d3ccfe52" +dependencies = [ + "ark-ec", + "ark-ff 0.4.2", + "ark-secp256k1", + "ark-secp256r1", + "ark-serialize 0.4.2", + "auto_ops", + "base64ct", + "bcs", + "bech32", + "bincode 1.3.3", + "blake2", + "blst", + "bs58 0.4.0", + "curve25519-dalek-ng", + "derive_more 0.99.20", + "digest 0.10.7", + "ecdsa 0.16.9", + "ed25519-consensus", + "elliptic-curve 0.13.8", + "fastcrypto-derive 0.1.3 (git+https://github.com/MystenLabs/fastcrypto?rev=09f86974195ec85d8aae386b1909d341d3ccfe52)", + "generic-array", + "hex", + "hex-literal", + "hkdf", + "lazy_static", + "num-bigint 0.4.6", + "once_cell", + "p256", + "rand 0.8.5", + "readonly", + "rfc6979 0.4.0", + "rsa", + "schemars 0.8.22", + "secp256k1", + "serde", + "serde_json", + "serde_with", + "sha2 0.10.9", + "sha3 0.10.8", + "signature 2.2.0", + "static_assertions", + "thiserror 1.0.69", + "tokio", + "typenum", + "zeroize", +] + +[[package]] +name = "fastcrypto" +version = "0.1.9" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb#d2e2d13be3e550745739144e2a090b9675e4ffcb" dependencies = [ "aes", "aes-gcm", @@ -2876,20 +3036,22 @@ dependencies = [ "blake2", "blst", "bs58 0.4.0", + "bulletproofs", "cbc", "ctr", - "curve25519-dalek-ng", + "curve25519-dalek", "derive_more 0.99.20", "digest 0.10.7", "ecdsa 0.16.9", "ed25519-consensus", "elliptic-curve 0.13.8", - "fastcrypto-derive", + "fastcrypto-derive 0.1.3 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "generic-array", "hex", "hex-literal", "hkdf", "lazy_static", + "merlin", "num-bigint 0.4.6", "once_cell", "p256", @@ -2921,14 +3083,23 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "fastcrypto-derive" +version = "0.1.3" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb#d2e2d13be3e550745739144e2a090b9675e4ffcb" +dependencies = [ + "quote", + "syn 1.0.109", +] + [[package]] name = "fastcrypto-tbls" version = "0.1.0" -source = "git+https://github.com/MystenLabs/fastcrypto?rev=09f86974195ec85d8aae386b1909d341d3ccfe52#09f86974195ec85d8aae386b1909d341d3ccfe52" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb#d2e2d13be3e550745739144e2a090b9675e4ffcb" dependencies = [ "bcs", "digest 0.10.7", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "hex", "itertools 0.10.5", "rand 0.8.5", @@ -2944,10 +3115,10 @@ dependencies = [ [[package]] name = "fastcrypto-vdf" version = "0.1.0" -source = "git+https://github.com/MystenLabs/fastcrypto?rev=09f86974195ec85d8aae386b1909d341d3ccfe52#09f86974195ec85d8aae386b1909d341d3ccfe52" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb#d2e2d13be3e550745739144e2a090b9675e4ffcb" dependencies = [ "bcs", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "lazy_static", "num-bigint 0.4.6", "num-integer", @@ -2961,7 +3132,7 @@ dependencies = [ [[package]] name = "fastcrypto-zkp" version = "0.1.3" -source = "git+https://github.com/MystenLabs/fastcrypto?rev=09f86974195ec85d8aae386b1909d341d3ccfe52#09f86974195ec85d8aae386b1909d341d3ccfe52" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb#d2e2d13be3e550745739144e2a090b9675e4ffcb" dependencies = [ "ark-bn254", "ark-ec", @@ -2973,7 +3144,7 @@ dependencies = [ "bcs", "byte-slice-cast", "derive_more 0.99.20", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "ff 0.13.1", "im", "itertools 0.12.1", @@ -3066,11 +3237,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + [[package]] name = "find-msvc-tools" -version = "0.1.5" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "findshlibs" @@ -3122,9 +3299,9 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.1.5" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", "miniz_oxide", @@ -3197,6 +3374,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "fs4" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4" +dependencies = [ + "rustix", + "windows-sys 0.59.0", +] + [[package]] name = "funty" version = "1.1.0" @@ -3265,7 +3452,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3338,9 +3525,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", "js-sys", @@ -3363,6 +3550,19 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + [[package]] name = "ghash" version = "0.5.1" @@ -3396,7 +3596,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3451,9 +3651,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ "atomic-waker", "bytes", @@ -3461,7 +3661,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.12.1", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -3536,6 +3736,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "heck" version = "0.4.1" @@ -3604,13 +3813,13 @@ dependencies = [ [[package]] name = "hostname" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" +checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" dependencies = [ "cfg-if", "libc", - "windows-link 0.1.3", + "windows-link", ] [[package]] @@ -3743,14 +3952,13 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.18" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e9a2a24dc5c6821e71a7030e1e14b7b632acac55c40e9d2e082c621261bb56" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ "base64 0.22.1", "bytes", "futures-channel", - "futures-core", "futures-util", "http", "http-body", @@ -3759,7 +3967,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.1", + "socket2 0.6.2", "system-configuration", "tokio", "tower-service", @@ -3769,9 +3977,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3839,9 +4047,9 @@ checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" dependencies = [ "icu_collections", "icu_locale_core", @@ -3853,9 +4061,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" @@ -3872,6 +4080,12 @@ dependencies = [ "zerovec", ] +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + [[package]] name = "ident_case" version = "1.0.1" @@ -3948,7 +4162,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -3970,9 +4184,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", "hashbrown 0.16.1", @@ -3980,6 +4194,15 @@ dependencies = [ "serde_core", ] +[[package]] +name = "indoc" +version = "2.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] + [[package]] name = "inferno" version = "0.11.21" @@ -3987,7 +4210,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "232929e1d75fe899576a3d5c7416ad0d88dbfbb3c3d6aa00873a7408a50ddb88" dependencies = [ "ahash", - "indexmap 2.12.1", + "indexmap 2.13.0", "is-terminal", "itoa", "log", @@ -4016,14 +4239,15 @@ dependencies = [ [[package]] name = "insta" -version = "1.44.3" +version = "1.46.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5c943d4415edd8153251b6f197de5eb1640e56d84e8d9159bea190421c73698" +checksum = "e82db8c87c7f1ccecb34ce0c24399b8a73081427f3c7c50a5d597925356115e4" dependencies = [ "console", "once_cell", "serde", "similar", + "tempfile", ] [[package]] @@ -4052,9 +4276,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" +checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" dependencies = [ "memchr", "serde", @@ -4115,15 +4339,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jiff" -version = "0.2.16" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35" +checksum = "d89a5b5e10d5a9ad6e5d1f4bd58225f655d6fe9767575a5e8ac5a6fe64e04495" dependencies = [ "jiff-static", "log", @@ -4134,13 +4358,13 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.16" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" +checksum = "ff7a39c8862fc1369215ccf0a8f12dd4598c7f6484704359f0351bd617034dbf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -4177,9 +4401,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.82" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" dependencies = [ "once_cell", "wasm-bindgen", @@ -4197,7 +4421,7 @@ dependencies = [ [[package]] name = "jsonrpc" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "serde", "serde_json", @@ -4306,7 +4530,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -4398,9 +4622,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" +checksum = "b646a74e746cd25045aa0fd42f4f7f78aa6d119380182c7e63a5593c4ab8df6f" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -4470,6 +4694,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "libafl" version = "0.15.4" @@ -4477,7 +4707,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81e13655171e69ad9094dd1be1948950a36d228f01a7cb9f6d8477090d98c6e4" dependencies = [ "ahash", - "arbitrary-int 2.0.0", + "arbitrary-int 2.1.0", "backtrace", "bincode 2.0.1", "bitbybit", @@ -4516,7 +4746,7 @@ checksum = "52cbae44f69156f035ae2196b135ad27ea95020767e6787bfe45e8c2438c67b9" dependencies = [ "ahash", "backtrace", - "ctor 0.6.1", + "ctor 0.6.3", "erased-serde 0.4.9", "hashbrown 0.16.1", "hostname", @@ -4529,7 +4759,7 @@ dependencies = [ "num_enum 0.7.5", "once_cell", "postcard", - "rand_core 0.9.3", + "rand_core 0.9.5", "rustversion", "serde", "serial_test", @@ -4554,14 +4784,14 @@ checksum = "61adf76899bffdcd15ae7fea42b978e7df7cf9213aacdd8cdcda89e4bb3bc32d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "libc" -version = "0.2.177" +version = "0.2.181" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "459427e2af2b9c839b132acb702a1c654d95e10f8c326bfc2ad11310e458b1c5" [[package]] name = "libloading" @@ -4570,26 +4800,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-link 0.2.1", + "windows-link", ] [[package]] name = "libm" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libmdbx-remote" -version = "0.4.2" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d7a331de31c46c0c9dfaeb87c91bd41095f45ba3f47ef36bb361fd93ee4243d" +checksum = "408a5c3b03dff46ba4f07a0e1c9249f02f5cbc45bf259cab1ca299389e468ebe" dependencies = [ "async-stream", "bitflags 2.10.0", "byteorder", "derive_more 1.0.0", - "indexmap 2.12.1", + "indexmap 2.13.0", "mdbx-remote-sys", "parking_lot 0.12.5", "serde", @@ -4604,13 +4834,13 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ "bitflags 2.10.0", "libc", - "redox_syscall 0.5.18", + "redox_syscall 0.7.0", ] [[package]] @@ -4636,7 +4866,7 @@ checksum = "e5cec0ec4228b4853bb129c84dbf093a27e6c7a20526da046defc334a1b017f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -4662,11 +4892,11 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -4687,6 +4917,15 @@ dependencies = [ "logos-derive 0.14.4", ] +[[package]] +name = "logos" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff472f899b4ec2d99161c51f60ff7075eeb3097069a36050d8037a6325eb8154" +dependencies = [ + "logos-derive 0.15.1", +] + [[package]] name = "logos-codegen" version = "0.14.4" @@ -4698,8 +4937,24 @@ dependencies = [ "lazy_static", "proc-macro2", "quote", - "regex-syntax 0.8.8", - "syn 2.0.111", + "regex-syntax 0.8.9", + "syn 2.0.114", +] + +[[package]] +name = "logos-codegen" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "192a3a2b90b0c05b27a0b2c43eecdb7c415e29243acc3f89cc8247a5b693045c" +dependencies = [ + "beef", + "fnv", + "lazy_static", + "proc-macro2", + "quote", + "regex-syntax 0.8.9", + "rustc_version 0.4.1", + "syn 2.0.114", ] [[package]] @@ -4722,7 +4977,16 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24fb722b06a9dc12adb0963ed585f19fc61dc5413e6a9be9422ef92c091e731d" dependencies = [ - "logos-codegen", + "logos-codegen 0.14.4", +] + +[[package]] +name = "logos-derive" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "605d9697bcd5ef3a42d38efc51541aa3d6a4a25f7ab6d1ed0da5ac632a26b470" +dependencies = [ + "logos-codegen 0.15.1", ] [[package]] @@ -4792,13 +5056,22 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" [[package]] name = "match-lookup" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1265724d8cb29dbbc2b0f06fffb8bf1a8c0cf73a78eede9ba73a4a66c52a981e" +checksum = "757aee279b8bdbb9f9e676796fd459e4207a1f986e87886700abf589f5abf771" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.114", +] + +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", ] [[package]] @@ -4825,9 +5098,9 @@ dependencies = [ [[package]] name = "mdbx-derive" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e7ec4dfcb2b4f2ac1305d2bc006407d446e093c9d38ff9e2ab2244f63687be2" +checksum = "e66c6c7952ad62428e79d536ee3cc283245c7eb49cdc48f86805fa796c194f68" dependencies = [ "bcs", "bincode 2.0.1", @@ -4840,35 +5113,35 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.111", + "syn 2.0.114", "tuple_list", "zstd", ] [[package]] name = "mdbx-derive-macros" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50a1759a1adffa3264365fbf028c5563362d953b391a80600824f52a8c3f67f4" +checksum = "218fb0cf5590029543ee1e893c98357e3611ccc5265a7fece0219c80643ab230" dependencies = [ "heck 0.5.0", "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "mdbx-derive-traits" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dfd6c9d2bb0f1fcaf93690c819fca8af571c68b8a1919654456501b9bc04386" +checksum = "07af495ea6bec46ff37738defee437695f755c50a02308ac4e14b370e961043f" dependencies = [ "bcs", "bincode 2.0.1", "libmdbx-remote", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tuple_list", "typeid", "zstd", @@ -4876,9 +5149,9 @@ dependencies = [ [[package]] name = "mdbx-remote-sys" -version = "0.4.2" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f941fa25ba466a21bc8ec2d009b8eb6844f4edd8ca6922b8aafece683fe57143" +checksum = "690656a582633aa731b3c8d9385b201a0b42dee67c6ac73012fd687a38caed79" dependencies = [ "bindgen 0.70.1", "cc", @@ -4887,9 +5160,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "meminterval" @@ -4928,6 +5201,40 @@ dependencies = [ "autocfg", ] +[[package]] +name = "merlin" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "miette" +version = "7.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" +dependencies = [ + "cfg-if", + "miette-derive", + "unicode-width", +] + +[[package]] +name = "miette-derive" +version = "7.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "mime" version = "0.3.17" @@ -4962,9 +5269,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", "wasi 0.11.1+wasi-snapshot-preview1", @@ -5001,29 +5308,30 @@ dependencies = [ [[package]] name = "move-abstract-interpreter" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" [[package]] name = "move-abstract-interpreter-v2" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "move-binary-format", + "move-binary-format", ] [[package]] name = "move-abstract-stack" version = "0.0.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" [[package]] name = "move-binary-format" version = "0.0.3" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "enum-compat-util", - "indexmap 2.12.1", + "indexmap 2.13.0", "move-abstract-interpreter", "move-core-types", "move-proc-macros", @@ -5035,18 +5343,21 @@ dependencies = [ [[package]] name = "move-borrow-graph" version = "0.0.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" [[package]] name = "move-bytecode-source-map" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", "move-binary-format", "move-command-line-common", "move-core-types", + "move-binary-format", + "move-command-line-common", + "move-core-types", "move-ir-types", "move-symbol-pool", "serde", @@ -5056,10 +5367,10 @@ dependencies = [ [[package]] name = "move-bytecode-utils" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", - "indexmap 2.12.1", + "indexmap 2.13.0", "move-binary-format", "move-core-types", "petgraph 0.8.3", @@ -5069,7 +5380,7 @@ dependencies = [ [[package]] name = "move-bytecode-verifier" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "move-abstract-interpreter", "move-abstract-stack", @@ -5085,7 +5396,7 @@ dependencies = [ [[package]] name = "move-bytecode-verifier-meter" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "move-binary-format", "move-core-types", @@ -5095,7 +5406,7 @@ dependencies = [ [[package]] name = "move-bytecode-verifier-v0" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "move-abstract-interpreter-v2", "move-abstract-stack", @@ -5104,13 +5415,19 @@ dependencies = [ "move-bytecode-verifier-meter", "move-core-types", "move-vm-config", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", "petgraph 0.8.3", ] [[package]] name = "move-bytecode-verifier-v1" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "move-abstract-interpreter-v2", "move-abstract-stack", @@ -5119,13 +5436,19 @@ dependencies = [ "move-bytecode-verifier-meter", "move-core-types", "move-vm-config", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", "petgraph 0.8.3", ] [[package]] name = "move-bytecode-verifier-v2" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "move-abstract-interpreter-v2", "move-abstract-stack", @@ -5134,13 +5457,19 @@ dependencies = [ "move-bytecode-verifier-meter", "move-core-types", "move-vm-config", + "move-abstract-stack", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", "petgraph 0.8.3", ] [[package]] name = "move-command-line-common" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", @@ -5150,7 +5479,7 @@ dependencies = [ "insta", "move-binary-format", "move-core-types", - "once_cell", + "move-symbol-pool", "packed_struct", "serde", "sha2 0.9.9", @@ -5161,7 +5490,7 @@ dependencies = [ [[package]] name = "move-compiler" version = "0.0.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", @@ -5174,15 +5503,21 @@ dependencies = [ "move-abstract-interpreter", "move-binary-format", "move-borrow-graph", + "move-abstract-interpreter", + "move-binary-format", + "move-borrow-graph", "move-bytecode-source-map", "move-bytecode-verifier", "move-command-line-common", "move-core-types", + "move-bytecode-verifier", + "move-command-line-common", + "move-core-types", "move-ir-to-bytecode", "move-ir-types", "move-proc-macros", + "move-proc-macros", "move-symbol-pool", - "once_cell", "petgraph 0.8.3", "rayon", "regex", @@ -5197,18 +5532,17 @@ dependencies = [ [[package]] name = "move-core-types" version = "0.0.4" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", "enum-compat-util", "ethnum", "hex", - "indexmap 2.12.1", + "indexmap 2.13.0", "leb128", "move-proc-macros", "num", - "once_cell", "primitive-types 0.10.1", "rand 0.8.5", "ref-cast", @@ -5222,24 +5556,30 @@ dependencies = [ [[package]] name = "move-coverage" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", "clap", "codespan", "colored", - "indexmap 2.12.1", + "indexmap 2.13.0", "lcov", "move-abstract-interpreter", "move-binary-format", + "move-abstract-interpreter", + "move-binary-format", "move-bytecode-source-map", "move-bytecode-verifier", "move-command-line-common", + "move-bytecode-verifier", + "move-command-line-common", "move-compiler", "move-core-types", + "move-core-types", "move-ir-types", "move-trace-format", + "move-trace-format", "petgraph 0.8.3", "serde", ] @@ -5247,7 +5587,7 @@ dependencies = [ [[package]] name = "move-disassembler" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", @@ -5256,10 +5596,14 @@ dependencies = [ "inline_colorization", "move-abstract-interpreter", "move-binary-format", + "move-abstract-interpreter", + "move-binary-format", "move-bytecode-source-map", "move-command-line-common", + "move-command-line-common", "move-compiler", "move-core-types", + "move-core-types", "move-coverage", "move-ir-types", "move-symbol-pool", @@ -5268,7 +5612,7 @@ dependencies = [ [[package]] name = "move-docgen" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "clap", @@ -5277,13 +5621,14 @@ dependencies = [ "itertools 0.10.5", "log", "move-binary-format", + "move-binary-format", "move-compiler", "move-core-types", + "move-core-types", "move-ir-types", "move-model-2", "move-symbol-pool", "num", - "once_cell", "regex", "serde", ] @@ -5291,15 +5636,18 @@ dependencies = [ [[package]] name = "move-ir-to-bytecode" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "codespan-reporting", "log", "move-binary-format", + "move-binary-format", "move-bytecode-source-map", "move-command-line-common", "move-core-types", + "move-command-line-common", + "move-core-types", "move-ir-to-bytecode-syntax", "move-ir-types", "move-symbol-pool", @@ -5309,12 +5657,14 @@ dependencies = [ [[package]] name = "move-ir-to-bytecode-syntax" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "hex", "move-command-line-common", "move-core-types", + "move-command-line-common", + "move-core-types", "move-ir-types", "move-symbol-pool", ] @@ -5322,20 +5672,21 @@ dependencies = [ [[package]] name = "move-ir-types" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "hex", "move-command-line-common", "move-core-types", + "move-command-line-common", + "move-core-types", "move-symbol-pool", - "once_cell", "serde", ] [[package]] name = "move-model" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "codespan", @@ -5343,15 +5694,17 @@ dependencies = [ "itertools 0.10.5", "log", "move-binary-format", + "move-binary-format", "move-bytecode-source-map", "move-command-line-common", + "move-command-line-common", "move-compiler", "move-core-types", + "move-core-types", "move-disassembler", "move-ir-types", "move-symbol-pool", "num", - "once_cell", "regex", "serde", ] @@ -5359,18 +5712,20 @@ dependencies = [ [[package]] name = "move-model-2" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", "codespan", "codespan-reporting", - "indexmap 2.12.1", + "indexmap 2.13.0", "move-binary-format", "move-bytecode-source-map", "move-command-line-common", + "move-command-line-common", "move-compiler", "move-core-types", + "move-core-types", "move-disassembler", "move-ir-types", "move-symbol-pool", @@ -5383,7 +5738,7 @@ dependencies = [ [[package]] name = "move-package" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "clap", @@ -5391,17 +5746,19 @@ dependencies = [ "dunce", "itertools 0.10.5", "move-binary-format", + "move-binary-format", "move-bytecode-source-map", "move-bytecode-utils", "move-command-line-common", + "move-command-line-common", "move-compiler", "move-core-types", + "move-core-types", "move-disassembler", "move-docgen", "move-model-2", "move-symbol-pool", "named-lock", - "once_cell", "petgraph 0.8.3", "regex", "serde", @@ -5416,31 +5773,106 @@ dependencies = [ "whoami", ] +[[package]] +name = "move-package-alt" +version = "0.1.0" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" +dependencies = [ + "anyhow", + "append-only-vec", + "bimap", + "clap", + "codespan-reporting", + "colored", + "derive-where", + "fs4", + "futures", + "heck 0.3.3", + "indexmap 2.13.0", + "indoc", + "itertools 0.10.5", + "jsonrpc", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-symbol-pool", + "named-lock", + "path-clean", + "petgraph 0.8.3", + "pretty_assertions", + "regex", + "serde", + "serde_json", + "serde_spanned 0.6.9", + "sha2 0.9.9", + "tempfile", + "thiserror 1.0.69", + "tokio", + "toml 0.5.11", + "toml_edit 0.22.27", + "tracing", + "tracing-subscriber", + "walkdir", + "whoami", +] + +[[package]] +name = "move-package-alt-compilation" +version = "0.1.0" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" +dependencies = [ + "anyhow", + "clap", + "colored", + "dunce", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-docgen", + "move-model-2", + "move-package-alt", + "move-symbol-pool", + "petgraph 0.8.3", + "serde", + "serde_yaml", + "toml_edit 0.22.27", + "tracing", + "vfs", +] + [[package]] name = "move-proc-macros" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ + "enum-compat-util", "enum-compat-util", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "move-regex-borrow-graph" version = "0.0.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ + "insta", "itertools 0.10.5", "move-binary-format", + "move-command-line-common", "move-core-types", "petgraph 0.8.3", + "proptest", ] [[package]] name = "move-stackless-bytecode" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "codespan", "codespan-reporting", @@ -5450,8 +5882,11 @@ dependencies = [ "log", "move-binary-format", "move-command-line-common", + "move-binary-format", + "move-command-line-common", "move-compiler", "move-core-types", + "move-core-types", "move-model", "num", "petgraph 0.8.3", @@ -5461,13 +5896,17 @@ dependencies = [ [[package]] name = "move-stdlib-natives" version = "0.1.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "hex", "move-binary-format", "move-core-types", "move-vm-runtime", "move-vm-types", + "move-binary-format", + "move-core-types", + "move-vm-runtime", + "move-vm-types", "sha2 0.9.9", "sha3 0.9.1", "smallvec", @@ -5476,11 +5915,13 @@ dependencies = [ [[package]] name = "move-stdlib-natives-v0" version = "0.1.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "hex", "move-binary-format", "move-core-types", + "move-binary-format", + "move-core-types", "move-vm-runtime-v0", "move-vm-types-v0", "sha2 0.9.9", @@ -5491,11 +5932,13 @@ dependencies = [ [[package]] name = "move-stdlib-natives-v1" version = "0.1.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "hex", "move-binary-format", "move-core-types", + "move-binary-format", + "move-core-types", "move-vm-runtime-v1", "move-vm-types-v1", "sha2 0.9.9", @@ -5506,11 +5949,13 @@ dependencies = [ [[package]] name = "move-stdlib-natives-v2" version = "0.1.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "hex", "move-binary-format", "move-core-types", + "move-binary-format", + "move-core-types", "move-vm-runtime-v2", "move-vm-types-v2", "sha2 0.9.9", @@ -5521,9 +5966,8 @@ dependencies = [ [[package]] name = "move-symbol-pool" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ - "once_cell", "phf", "serde", ] @@ -5531,11 +5975,10 @@ dependencies = [ [[package]] name = "move-trace-format" version = "0.0.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "move-binary-format", "move-core-types", - "move-vm-stack", "serde", "serde_json", "zstd", @@ -5544,19 +5987,18 @@ dependencies = [ [[package]] name = "move-vm-config" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "move-binary-format", - "once_cell", ] [[package]] name = "move-vm-profiler" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ + "move-trace-format", "move-vm-config", - "once_cell", "serde", "serde_json", "tracing", @@ -5565,7 +6007,7 @@ dependencies = [ [[package]] name = "move-vm-runtime" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "better_any", "fail", @@ -5574,9 +6016,7 @@ dependencies = [ "move-core-types", "move-trace-format", "move-vm-config", - "move-vm-stack", "move-vm-types", - "once_cell", "parking_lot 0.11.2", "smallvec", "tracing", @@ -5585,14 +6025,17 @@ dependencies = [ [[package]] name = "move-vm-runtime-v0" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "better_any", "fail", "move-binary-format", + "move-binary-format", "move-bytecode-verifier-v0", "move-core-types", "move-vm-config", + "move-core-types", + "move-vm-config", "move-vm-types-v0", "once_cell", "parking_lot 0.11.2", @@ -5603,14 +6046,17 @@ dependencies = [ [[package]] name = "move-vm-runtime-v1" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "better_any", "fail", "move-binary-format", + "move-binary-format", "move-bytecode-verifier-v1", "move-core-types", "move-vm-config", + "move-core-types", + "move-vm-config", "move-vm-types-v1", "once_cell", "parking_lot 0.11.2", @@ -5621,14 +6067,17 @@ dependencies = [ [[package]] name = "move-vm-runtime-v2" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "better_any", "fail", "move-binary-format", + "move-binary-format", "move-bytecode-verifier-v2", "move-core-types", "move-vm-config", + "move-core-types", + "move-vm-config", "move-vm-types-v2", "once_cell", "parking_lot 0.11.2", @@ -5636,33 +6085,23 @@ dependencies = [ "tracing", ] -[[package]] -name = "move-vm-stack" -version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" -dependencies = [ - "move-bytecode-verifier", - "move-vm-types", -] - [[package]] name = "move-vm-test-utils" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "move-binary-format", "move-core-types", "move-vm-profiler", "move-vm-types", - "once_cell", "serde", ] [[package]] name = "move-vm-types" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "bcs", "move-binary-format", @@ -5675,11 +6114,13 @@ dependencies = [ [[package]] name = "move-vm-types-v0" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "bcs", "move-binary-format", "move-core-types", + "move-binary-format", + "move-core-types", "serde", "smallvec", ] @@ -5687,11 +6128,13 @@ dependencies = [ [[package]] name = "move-vm-types-v1" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "bcs", "move-binary-format", "move-core-types", + "move-binary-format", + "move-core-types", "serde", "smallvec", ] @@ -5699,11 +6142,13 @@ dependencies = [ [[package]] name = "move-vm-types-v2" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "bcs", "move-binary-format", "move-core-types", + "move-binary-format", + "move-core-types", "serde", "smallvec", ] @@ -5756,17 +6201,18 @@ dependencies = [ "anyhow", "color-eyre", "const-hex", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=09f86974195ec85d8aae386b1909d341d3ccfe52)", "itertools 0.14.0", "libafl", "libafl_bolts", "log", "move-binary-format", "move-core-types", + "move-binary-format", + "move-core-types", "move-model", "move-stackless-bytecode", "move-trace-format", - "move-vm-stack", "move-vm-types", "movy-analysis", "movy-replay", @@ -5777,7 +6223,7 @@ dependencies = [ "rand 0.8.5", "rand 0.9.2", "rand_core 0.6.4", - "rand_core 0.9.3", + "rand_core 0.9.5", "serde", "serde_json", "serde_json_any_key", @@ -5800,7 +6246,7 @@ dependencies = [ "color-eyre", "const-hex", "cynic", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=09f86974195ec85d8aae386b1909d341d3ccfe52)", "itertools 0.14.0", "libafl", "libafl_bolts", @@ -5810,7 +6256,6 @@ dependencies = [ "move-core-types", "move-trace-format", "move-vm-runtime", - "move-vm-stack", "move-vm-types", "movy-analysis", "movy-sui", @@ -5841,6 +6286,8 @@ dependencies = [ "log", "move-binary-format", "move-core-types", + "move-binary-format", + "move-core-types", "move-model", "move-stackless-bytecode", "movy-replay", @@ -5860,15 +6307,18 @@ dependencies = [ "const-hex", "cynic", "cynic-codegen", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=09f86974195ec85d8aae386b1909d341d3ccfe52)", "itertools 0.14.0", "log", "mdbx-derive", "move-binary-format", + "move-binary-format", "move-compiler", "move-package", "move-trace-format", "move-vm-runtime", + "move-trace-format", + "move-vm-runtime", "movy-types", "prometheus", "rand 0.9.2", @@ -5879,9 +6329,9 @@ dependencies = [ "sui-execution", "sui-move-build", "sui-package-management", - "sui-rpc", + "sui-rpc 0.0.8", "sui-sdk", - "sui-sdk-types", + "sui-sdk-types 0.0.8", "sui-types", "tempfile", "tokio", @@ -5900,7 +6350,7 @@ dependencies = [ "bitflags 2.10.0", "color-eyre", "const-hex", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=09f86974195ec85d8aae386b1909d341d3ccfe52)", "glob", "itertools 0.14.0", "libafl", @@ -5908,22 +6358,22 @@ dependencies = [ "mdbx-derive", "move-binary-format", "move-core-types", - "object_store", + "object_store 0.11.2", "reqwest", "serde", "serde_json", "sui-sdk", "sui-types", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", - "toml 0.9.8", + "toml 0.9.12+spec-1.1.0", "tonic", ] [[package]] name = "msim-macros" version = "0.1.0" -source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=427147994705914a2f5afa42bc140794e31113b9#427147994705914a2f5afa42bc140794e31113b9" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=213e543d83b91c4aa904166bef255a6c0054c8a7#213e543d83b91c4aa904166bef255a6c0054c8a7" dependencies = [ "darling 0.14.4", "proc-macro2", @@ -5987,15 +6437,21 @@ dependencies = [ "synstructure 0.12.6", ] +[[package]] +name = "multimap" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" + [[package]] name = "mysten-common" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "antithesis_sdk", "anyhow", "either", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "futures", "mysten-metrics", "once_cell", @@ -6013,7 +6469,7 @@ dependencies = [ [[package]] name = "mysten-metrics" version = "0.7.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "async-trait", "axum", @@ -6034,24 +6490,28 @@ dependencies = [ [[package]] name = "mysten-network" version = "0.2.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anemo", "anemo-tower", + "anyhow", "async-stream", "bcs", "bytes", + "dashmap", "eyre", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "futures", "http", "http-body", "hyper-rustls", "hyper-util", "multiaddr", + "mysten-metrics", "once_cell", "pin-project-lite", "prometheus", + "quinn-proto", "rand 0.8.5", "rustls", "serde", @@ -6062,7 +6522,7 @@ dependencies = [ "tokio-stream", "tonic", "tonic-health", - "tower 0.5.2", + "tower 0.5.3", "tower-http 0.5.2", "tracing", ] @@ -6090,7 +6550,7 @@ dependencies = [ "libc", "log", "openssl", - "openssl-probe", + "openssl-probe 0.1.6", "openssl-sys", "schannel", "security-framework 2.11.1", @@ -6189,6 +6649,9 @@ name = "nonempty" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "995defdca0a589acfdd1bd2e8e3b896b4d4f7675a31fd14c32611440c7f608e6" +dependencies = [ + "serde", +] [[package]] name = "nonzero_ext" @@ -6202,6 +6665,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "num" version = "0.4.3" @@ -6266,9 +6738,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" [[package]] name = "num-format" @@ -6386,7 +6858,7 @@ dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -6397,57 +6869,75 @@ checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "object" -version = "0.32.2" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ "memchr", ] [[package]] -name = "object" -version = "0.37.3" +name = "object_store" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +checksum = "3cfccb68961a56facde1163f9319e0d15743352344e7808a11795fb99698dcaf" dependencies = [ - "memchr", + "async-trait", + "bytes", + "chrono", + "futures", + "humantime", + "itertools 0.13.0", + "parking_lot 0.12.5", + "percent-encoding", + "snafu", + "tokio", + "tracing", + "url", + "walkdir", ] [[package]] name = "object_store" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cfccb68961a56facde1163f9319e0d15743352344e7808a11795fb99698dcaf" +checksum = "c2858065e55c148d294a9f3aae3b0fa9458edadb41a108397094566f4e3c0dfb" dependencies = [ "async-trait", "base64 0.22.1", "bytes", "chrono", + "form_urlencoded", "futures", + "http", + "http-body-util", "httparse", "humantime", "hyper", - "itertools 0.13.0", + "itertools 0.14.0", "md-5", "parking_lot 0.12.5", "percent-encoding", - "quick-xml 0.37.5", - "rand 0.8.5", + "quick-xml 0.38.4", + "rand 0.9.2", "reqwest", "ring", - "rustls-pemfile", + "rustls-pki-types", "serde", "serde_json", - "snafu", + "serde_urlencoded", + "thiserror 2.0.18", "tokio", "tracing", "url", "walkdir", + "wasm-bindgen-futures", + "web-time", ] [[package]] @@ -6500,7 +6990,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -6509,6 +6999,12 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + [[package]] name = "openssl-sys" version = "0.9.111" @@ -6596,7 +7092,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -6609,7 +7105,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -6735,7 +7231,7 @@ dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -6783,7 +7279,7 @@ dependencies = [ "libc", "redox_syscall 0.5.18", "smallvec", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -6796,9 +7292,9 @@ dependencies = [ "ciborium", "coset", "data-encoding", - "getrandom 0.2.16", + "getrandom 0.2.17", "hmac", - "indexmap 2.12.1", + "indexmap 2.13.0", "rand 0.8.5", "serde", "serde_json", @@ -6831,6 +7327,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "path-clean" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -6876,9 +7378,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.4" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" +checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" dependencies = [ "memchr", "ucd-trie", @@ -6891,7 +7393,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset 0.4.2", - "indexmap 2.12.1", + "indexmap 2.13.0", ] [[package]] @@ -6902,7 +7404,7 @@ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset 0.5.7", "hashbrown 0.15.5", - "indexmap 2.12.1", + "indexmap 2.13.0", "serde", "serde_derive", ] @@ -6937,7 +7439,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -6966,7 +7468,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -7033,15 +7535,15 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.11.1" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" dependencies = [ "portable-atomic", ] @@ -7092,7 +7594,7 @@ dependencies = [ "spin 0.10.0", "symbolic-demangle", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -7140,6 +7642,16 @@ dependencies = [ "termtree", ] +[[package]] +name = "pretty_assertions" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" +dependencies = [ + "diff", + "yansi", +] + [[package]] name = "pretty_simple" version = "0.1.3" @@ -7150,6 +7662,16 @@ dependencies = [ "once_cell", ] +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.114", +] + [[package]] name = "primeorder" version = "0.13.6" @@ -7198,7 +7720,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit 0.23.7", + "toml_edit 0.23.10+spec-1.0.0", ] [[package]] @@ -7227,9 +7749,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -7242,7 +7764,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "version_check", "yansi", ] @@ -7265,7 +7787,7 @@ dependencies = [ [[package]] name = "prometheus-closure-metric" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "prometheus", @@ -7274,9 +7796,9 @@ dependencies = [ [[package]] name = "proptest" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" +checksum = "37566cb3fdacef14c0737f9546df7cfeadbfbc9fef10991038bf5015d0c80532" dependencies = [ "bit-set 0.8.0", "bit-vec 0.8.0", @@ -7285,7 +7807,7 @@ dependencies = [ "rand 0.9.2", "rand_chacha 0.9.0", "rand_xorshift 0.4.0", - "regex-syntax 0.8.8", + "regex-syntax 0.8.9", "rusty-fork", "tempfile", "unarray", @@ -7299,37 +7821,70 @@ checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "prost" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" +checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" dependencies = [ "bytes", "prost-derive", ] +[[package]] +name = "prost-build" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" +dependencies = [ + "heck 0.5.0", + "itertools 0.14.0", + "log", + "multimap", + "petgraph 0.8.3", + "prettyplease", + "prost", + "prost-types", + "pulldown-cmark", + "pulldown-cmark-to-cmark", + "regex", + "syn 2.0.114", + "tempfile", +] + [[package]] name = "prost-derive" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" +checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" dependencies = [ "anyhow", "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", +] + +[[package]] +name = "prost-reflect" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b89455ef41ed200cafc47c76c552ee7792370ac420497e551f16123a9135f76e" +dependencies = [ + "logos 0.15.1", + "miette", + "prost", + "prost-types", ] [[package]] name = "prost-types" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" +checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" dependencies = [ "prost", ] @@ -7343,11 +7898,38 @@ dependencies = [ "bytes", ] +[[package]] +name = "protox" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f25a07a73c6717f0b9bbbd685918f5df9815f7efba450b83d9c9dea41f0e3a1" +dependencies = [ + "bytes", + "miette", + "prost", + "prost-reflect", + "prost-types", + "protox-parse", + "thiserror 2.0.18", +] + +[[package]] +name = "protox-parse" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "072eee358134396a4643dff81cfff1c255c9fbd3fb296be14bdb6a26f9156366" +dependencies = [ + "logos 0.15.1", + "miette", + "prost-types", + "thiserror 2.0.18", +] + [[package]] name = "psm" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d11f2fedc3b7dafdc2851bc52f277377c5473d378859be234bc7ebb593144d01" +checksum = "3852766467df634d74f0b2d7819bf8dc483a0eb2e3b0f50f756f9cfe8b0d18d8" dependencies = [ "ar_archive_writer", "cc", @@ -7362,6 +7944,26 @@ dependencies = [ "serde", ] +[[package]] +name = "pulldown-cmark" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" +dependencies = [ + "bitflags 2.10.0", + "memchr", + "unicase", +] + +[[package]] +name = "pulldown-cmark-to-cmark" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50793def1b900256624a709439404384204a5dc3a6ec580281bfaac35e882e90" +dependencies = [ + "pulldown-cmark", +] + [[package]] name = "quanta" version = "0.12.6" @@ -7394,9 +7996,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.37.5" +version = "0.38.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" +checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" dependencies = [ "memchr", "serde", @@ -7416,8 +8018,8 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.1", "rustls", - "socket2 0.6.1", - "thiserror 2.0.17", + "socket2 0.6.2", + "thiserror 2.0.18", "tokio", "tracing", "web-time", @@ -7430,6 +8032,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", + "fastbloom", "getrandom 0.3.4", "lru-slab", "rand 0.9.2", @@ -7438,7 +8041,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.17", + "thiserror 2.0.18", "tinyvec", "tracing", "web-time", @@ -7453,16 +8056,16 @@ dependencies = [ "cfg_aliases 0.2.1", "libc", "once_cell", - "socket2 0.6.1", + "socket2 0.6.2", "tracing", "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.42" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" dependencies = [ "proc-macro2", ] @@ -7526,7 +8129,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.3", + "rand_core 0.9.5", "serde", ] @@ -7557,7 +8160,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] @@ -7575,14 +8178,14 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", ] [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ "getrandom 0.3.4", "serde", @@ -7612,7 +8215,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] @@ -7624,6 +8227,15 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rapidhash" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84816e4c99c467e92cf984ee6328caa976dfecd33a673544489d79ca2caaefe5" +dependencies = [ + "rustversion", +] + [[package]] name = "raw-cpuid" version = "11.6.0" @@ -7674,7 +8286,7 @@ checksum = "f2a62d85ed81ca5305dc544bd42c8804c5060b78ffa5ad3c64b0fb6a8c13d062" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -7695,13 +8307,22 @@ dependencies = [ "bitflags 2.10.0", ] +[[package]] +name = "redox_syscall" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27" +dependencies = [ + "bitflags 2.10.0", +] + [[package]] name = "redox_users" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "libredox", "thiserror 1.0.69", ] @@ -7723,30 +8344,30 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "regex" -version = "1.12.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", "regex-automata", - "regex-syntax 0.8.8", + "regex-syntax 0.8.9", ] [[package]] name = "regex-automata" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.8", + "regex-syntax 0.8.9", ] [[package]] @@ -7757,15 +8378,15 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" [[package]] name = "reqwest" -version = "0.12.24" +version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ "base64 0.22.1", "bytes", @@ -7799,8 +8420,8 @@ dependencies = [ "tokio-native-tls", "tokio-rustls", "tokio-util", - "tower 0.5.2", - "tower-http 0.6.7", + "tower 0.5.3", + "tower-http 0.6.8", "tower-service", "url", "wasm-bindgen", @@ -7848,7 +8469,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.16", + "getrandom 0.2.17", "libc", "untrusted", "windows-sys 0.52.0", @@ -7885,9 +8506,9 @@ dependencies = [ [[package]] name = "roaring" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f08d6a905edb32d74a5d5737a0c9d7e950c312f3c46cb0ca0a2ca09ea11878a0" +checksum = "8ba9ce64a8f45d7fc86358410bb1a82e8c987504c0d4900e9141d69a9f26c885" dependencies = [ "bytemuck", "byteorder", @@ -7922,9 +8543,9 @@ dependencies = [ [[package]] name = "ruint" -version = "1.17.0" +version = "1.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" +checksum = "c141e807189ad38a07276942c6623032d3753c8859c146104ac2e4d68865945a" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", @@ -7956,9 +8577,9 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rustc-demangle" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" [[package]] name = "rustc-hash" @@ -8017,9 +8638,9 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" dependencies = [ "bitflags 2.10.0", "errno", @@ -8030,9 +8651,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.35" +version = "0.23.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" +checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" dependencies = [ "log", "once_cell", @@ -8045,30 +8666,21 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9980d917ebb0c0536119ba501e90834767bffc3d60641457fd84a1f3fd337923" +checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" dependencies = [ - "openssl-probe", + "openssl-probe 0.2.1", "rustls-pki-types", "schannel", "security-framework 3.5.1", ] -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "rustls-pki-types" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ "web-time", "zeroize", @@ -8103,9 +8715,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.8" +version = "0.103.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" +checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" dependencies = [ "ring", "rustls-pki-types", @@ -8154,9 +8766,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "safe_arch" @@ -8263,9 +8875,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" dependencies = [ "dyn-clone", "ref-cast", @@ -8282,7 +8894,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8445,9 +9057,9 @@ dependencies = [ [[package]] name = "serde-reflection" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe23e63efbe7af1bc1859ead4a05014bdd5478be550762a40f6fcf91ad5473c" +checksum = "68fb2363ca88876b3e16442b02dde5305646fd50df297c79a4b54fc5f5cf51d4" dependencies = [ "erased-discriminant", "once_cell", @@ -8484,7 +9096,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8495,21 +9107,21 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -8541,7 +9153,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8555,9 +9167,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" +checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" dependencies = [ "serde_core", ] @@ -8576,17 +9188,17 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.0" +version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1" +checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.12.1", + "indexmap 2.13.0", "schemars 0.9.0", - "schemars 1.1.0", + "schemars 1.2.1", "serde_core", "serde_json", "serde_with_macros", @@ -8595,14 +9207,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.0" +version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b" +checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8619,9 +9231,9 @@ dependencies = [ [[package]] name = "serial_test" -version = "3.2.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" +checksum = "0d0b343e184fc3b7bb44dff0705fffcf4b3756ba6aff420dddd8b24ca145e555" dependencies = [ "log", "once_cell", @@ -8632,13 +9244,13 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "3.2.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" +checksum = "6f50427f258fb77356e4cd4aa0e87e2bd2c66dbcee41dc405282cae2bfc26c83" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8700,9 +9312,9 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +checksum = "b31139435f327c93c6038ed350ae4588e2c70a13d50599509fee6349967ba35a" dependencies = [ "cc", "cfg-if", @@ -8720,11 +9332,11 @@ dependencies = [ [[package]] name = "shared-crypto" version = "0.0.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "bcs", "eyre", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "serde", "serde_repr", ] @@ -8737,10 +9349,11 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.7" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] @@ -8766,9 +9379,9 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" [[package]] name = "similar" @@ -8784,9 +9397,9 @@ checksum = "16e78919e05c9b8e123d435a4ad104b488ad1585631830e413830985c214086e" [[package]] name = "siphasher" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" [[package]] name = "sized-chunks" @@ -8800,9 +9413,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "slip10_ed25519" @@ -8837,7 +9450,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -8858,9 +9471,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" dependencies = [ "libc", "windows-sys 0.60.2", @@ -8934,9 +9547,9 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stacker" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1f8b29fb42aafcea4edeeb6b2f2d7ecd0d969c48b4cf0d2e64aafc471dd6e59" +checksum = "08d74a23609d509411d10e2176dc2a4346e3b4aea2e7b1869f19fdedbc71c013" dependencies = [ "cc", "cfg-if", @@ -8994,7 +9607,7 @@ dependencies = [ "dupe", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -9099,7 +9712,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -9111,7 +9724,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -9129,13 +9742,15 @@ checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" [[package]] name = "sui-adapter-latest" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", - "indexmap 2.12.1", + "either", + "indexmap 2.13.0", "leb128", "move-binary-format", + "move-binary-format", "move-bytecode-utils", "move-bytecode-verifier", "move-bytecode-verifier-meter", @@ -9146,8 +9761,18 @@ dependencies = [ "move-vm-profiler", "move-vm-runtime", "move-vm-types", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-regex-borrow-graph", + "move-trace-format", + "move-vm-config", + "move-vm-profiler", + "move-vm-runtime", + "move-vm-types", "mysten-common", "mysten-metrics", + "nonempty", "parking_lot 0.12.5", "serde", "serde_json", @@ -9162,18 +9787,23 @@ dependencies = [ [[package]] name = "sui-adapter-v0" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", "leb128", "move-binary-format", + "move-binary-format", "move-bytecode-utils", "move-bytecode-verifier-meter", + "move-bytecode-verifier-meter", "move-bytecode-verifier-v0", "move-core-types", "move-vm-config", "move-vm-profiler", + "move-core-types", + "move-vm-config", + "move-vm-profiler", "move-vm-runtime-v0", "move-vm-types-v0", "once_cell", @@ -9190,18 +9820,23 @@ dependencies = [ [[package]] name = "sui-adapter-v1" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", "leb128", "move-binary-format", + "move-binary-format", "move-bytecode-utils", "move-bytecode-verifier-meter", + "move-bytecode-verifier-meter", "move-bytecode-verifier-v1", "move-core-types", "move-vm-config", "move-vm-profiler", + "move-core-types", + "move-vm-config", + "move-vm-profiler", "move-vm-runtime-v1", "move-vm-types-v1", "parking_lot 0.12.5", @@ -9217,18 +9852,23 @@ dependencies = [ [[package]] name = "sui-adapter-v2" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", "leb128", "move-binary-format", + "move-binary-format", "move-bytecode-utils", "move-bytecode-verifier-meter", + "move-bytecode-verifier-meter", "move-bytecode-verifier-v2", "move-core-types", "move-vm-config", "move-vm-profiler", + "move-core-types", + "move-vm-config", + "move-vm-profiler", "move-vm-runtime-v2", "move-vm-types-v2", "parking_lot 0.12.5", @@ -9244,7 +9884,7 @@ dependencies = [ [[package]] name = "sui-config" version = "0.0.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anemo", "anyhow", @@ -9253,11 +9893,11 @@ dependencies = [ "consensus-config", "csv", "dirs", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "move-vm-config", "mysten-common", "nonzero_ext", - "object_store", + "object_store 0.13.1", "once_cell", "prometheus", "rand 0.8.5", @@ -9274,10 +9914,35 @@ dependencies = [ "tracing", ] +[[package]] +name = "sui-crypto" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui-rust-sdk.git?rev=aef7655b45dcf3747281456f4999542dc52f6af6#aef7655b45dcf3747281456f4999542dc52f6af6" +dependencies = [ + "ark-bn254", + "ark-ff 0.4.2", + "ark-groth16", + "ark-snark", + "ark-std 0.4.0", + "base64ct", + "bnum", + "ed25519-dalek", + "itertools 0.14.0", + "k256 0.13.4", + "p256", + "rand_core 0.6.4", + "serde", + "serde_derive", + "serde_json", + "sha2 0.10.9", + "signature 2.2.0", + "sui-sdk-types 0.2.2", +] + [[package]] name = "sui-enum-compat-util" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "serde_yaml", ] @@ -9285,23 +9950,31 @@ dependencies = [ [[package]] name = "sui-execution" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ + "move-abstract-interpreter", "move-abstract-interpreter", "move-abstract-interpreter-v2", "move-binary-format", "move-bytecode-verifier", "move-bytecode-verifier-meter", + "move-binary-format", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", "move-bytecode-verifier-v0", "move-bytecode-verifier-v1", "move-bytecode-verifier-v2", "move-trace-format", "move-vm-config", "move-vm-runtime", + "move-trace-format", + "move-vm-config", + "move-vm-runtime", "move-vm-runtime-v0", "move-vm-runtime-v1", "move-vm-runtime-v2", "move-vm-types", + "move-vm-types", "move-vm-types-v0", "move-vm-types-v1", "move-vm-types-v2", @@ -9324,11 +9997,13 @@ dependencies = [ [[package]] name = "sui-framework" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "bcs", "move-binary-format", "move-core-types", + "move-binary-format", + "move-core-types", "once_cell", "serde", "sui-types", @@ -9337,8 +10012,8 @@ dependencies = [ [[package]] name = "sui-framework-snapshot" -version = "1.60.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +version = "1.65.2" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", @@ -9353,7 +10028,7 @@ dependencies = [ [[package]] name = "sui-http" version = "0.0.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "bytes", "http", @@ -9366,21 +10041,22 @@ dependencies = [ "tokio", "tokio-rustls", "tokio-util", - "tower 0.5.2", + "tower 0.5.3", "tracing", ] [[package]] name = "sui-json" version = "0.0.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "move-binary-format", "move-bytecode-utils", "move-core-types", + "move-core-types", "schemars 0.8.22", "serde", "serde_json", @@ -9390,10 +10066,10 @@ dependencies = [ [[package]] name = "sui-json-rpc-api" version = "0.0.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "jsonrpsee", "mysten-metrics", "once_cell", @@ -9410,22 +10086,26 @@ dependencies = [ [[package]] name = "sui-json-rpc-types" version = "0.0.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "bcs", "colored", "enum_dispatch", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "itertools 0.13.0", "json_to_table", "move-binary-format", + "move-binary-format", "move-bytecode-utils", "move-command-line-common", "move-core-types", + "move-command-line-common", + "move-core-types", "move-disassembler", "move-ir-types", "mysten-metrics", + "nonempty", "schemars 0.8.22", "serde", "serde_json", @@ -9443,7 +10123,7 @@ dependencies = [ [[package]] name = "sui-keys" version = "0.0.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "async-trait", @@ -9451,7 +10131,7 @@ dependencies = [ "bcs", "bip32", "colored", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "jsonrpc", "mockall", "rand 0.8.5", @@ -9469,7 +10149,7 @@ dependencies = [ [[package]] name = "sui-macros" version = "0.7.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "futures", "once_cell", @@ -9479,45 +10159,54 @@ dependencies = [ [[package]] name = "sui-move-build" -version = "1.60.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +version = "1.65.2" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", + "futures", "move-binary-format", "move-bytecode-utils", "move-bytecode-verifier", "move-command-line-common", + "move-bytecode-verifier", + "move-command-line-common", "move-compiler", "move-core-types", + "move-core-types", "move-ir-types", - "move-package", + "move-package-alt", + "move-package-alt-compilation", "move-symbol-pool", "mysten-common", "serde-reflection", - "sui-package-management", + "sui-package-alt", "sui-protocol-config", "sui-types", "sui-verifier-latest", "tempfile", + "thiserror 1.0.69", + "tokio", ] [[package]] name = "sui-move-natives-latest" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "bcs", "better_any", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "fastcrypto-vdf", "fastcrypto-zkp", - "indexmap 2.12.1", + "indexmap 2.13.0", "move-binary-format", "move-core-types", "move-stdlib-natives", "move-vm-runtime", "move-vm-types", + "move-vm-runtime", + "move-vm-types", "rand 0.8.5", "smallvec", "sui-protocol-config", @@ -9528,15 +10217,17 @@ dependencies = [ [[package]] name = "sui-move-natives-v0" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "bcs", "better_any", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "fastcrypto-zkp", "linked-hash-map", "move-binary-format", "move-core-types", + "move-binary-format", + "move-core-types", "move-stdlib-natives-v0", "move-vm-runtime-v0", "move-vm-types-v0", @@ -9549,15 +10240,17 @@ dependencies = [ [[package]] name = "sui-move-natives-v1" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "bcs", "better_any", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "fastcrypto-zkp", "linked-hash-map", "move-binary-format", "move-core-types", + "move-binary-format", + "move-core-types", "move-stdlib-natives-v1", "move-vm-runtime-v1", "move-vm-types-v1", @@ -9570,13 +10263,13 @@ dependencies = [ [[package]] name = "sui-move-natives-v2" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "bcs", "better_any", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "fastcrypto-zkp", - "indexmap 2.12.1", + "indexmap 2.13.0", "move-binary-format", "move-core-types", "move-stdlib-natives-v2", @@ -9588,10 +10281,22 @@ dependencies = [ "tracing", ] +[[package]] +name = "sui-name-service" +version = "1.65.2" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" +dependencies = [ + "bcs", + "move-core-types", + "serde", + "sui-types", + "thiserror 1.0.69", +] + [[package]] name = "sui-open-rpc" -version = "1.60.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +version = "1.65.2" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "bcs", "schemars 0.8.22", @@ -9603,7 +10308,7 @@ dependencies = [ [[package]] name = "sui-open-rpc-macros" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "derive-syn-parse", "itertools 0.13.0", @@ -9613,14 +10318,38 @@ dependencies = [ "unescape", ] +[[package]] +name = "sui-package-alt" +version = "1.65.2" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" +dependencies = [ + "anyhow", + "bin-version", + "clap", + "indexmap 2.13.0", + "move-compiler", + "move-core-types", + "move-package-alt", + "move-package-alt-compilation", + "serde", + "shared-crypto", + "sui-config", + "sui-json-rpc-types", + "sui-keys", + "sui-package-management", + "sui-sdk", + "tokio", + "toml 0.7.8", + "tracing", +] + [[package]] name = "sui-package-management" -version = "1.60.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +version = "1.65.2" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "move-core-types", - "move-package", "move-symbol-pool", "sui-framework-snapshot", "sui-json-rpc-types", @@ -9634,7 +10363,7 @@ dependencies = [ [[package]] name = "sui-package-resolver" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "async-trait", "bcs", @@ -9643,6 +10372,9 @@ dependencies = [ "move-binary-format", "move-command-line-common", "move-core-types", + "move-binary-format", + "move-command-line-common", + "move-core-types", "serde", "sui-types", "thiserror 1.0.69", @@ -9652,25 +10384,26 @@ dependencies = [ [[package]] name = "sui-proc-macros" version = "0.7.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "msim-macros", "proc-macro2", "quote", "sui-enum-compat-util", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "sui-protocol-config" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "clap", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "move-binary-format", "move-core-types", "move-vm-config", + "mysten-common", "schemars 0.8.22", "serde", "serde-env", @@ -9682,7 +10415,7 @@ dependencies = [ [[package]] name = "sui-protocol-config-macros" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "proc-macro2", "quote", @@ -9703,17 +10436,93 @@ dependencies = [ "prost-types", "serde", "serde_json", - "sui-sdk-types", + "sui-sdk-types 0.0.8", + "tap", + "tokio", + "tonic", + "tonic-prost", +] + +[[package]] +name = "sui-rpc" +version = "0.2.2" +source = "git+https://github.com/MystenLabs/sui-rust-sdk.git?rev=aef7655b45dcf3747281456f4999542dc52f6af6#aef7655b45dcf3747281456f4999542dc52f6af6" +dependencies = [ + "base64 0.22.1", + "bcs", + "bytes", + "futures", + "http", + "prost", + "prost-types", + "serde", + "serde_json", + "sui-sdk-types 0.2.2", + "tap", + "tokio", + "tonic", + "tonic-prost", +] + +[[package]] +name = "sui-rpc-api" +version = "0.1.0" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" +dependencies = [ + "anyhow", + "async-stream", + "async-trait", + "axum", + "base64 0.21.7", + "bcs", + "bytes", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", + "futures", + "http", + "itertools 0.13.0", + "mime", + "move-binary-format", + "move-core-types", + "mysten-network", + "prometheus", + "prost", + "prost-types", + "protox", + "rand 0.8.5", + "roaring 0.10.12", + "serde", + "serde_json", + "serde_with", + "sui-config", + "sui-crypto", + "sui-macros", + "sui-name-service", + "sui-package-resolver", + "sui-protocol-config", + "sui-rpc 0.2.2", + "sui-sdk-types 0.2.2", + "sui-transaction-builder", + "sui-types", "tap", + "thiserror 1.0.69", "tokio", + "tokio-stream", "tonic", + "tonic-health", "tonic-prost", + "tonic-prost-build", + "tonic-reflection", + "tonic-web", + "tower 0.5.3", + "tracing", + "url", + "walkdir", ] [[package]] name = "sui-sdk" -version = "1.60.1" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +version = "1.65.2" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "async-trait", @@ -9721,21 +10530,26 @@ dependencies = [ "bcs", "clap", "colored", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "futures", "futures-core", "jsonrpsee", "move-core-types", + "mysten-common", "reqwest", "serde", "serde_json", "serde_with", "shared-crypto", "sui-config", + "sui-crypto", "sui-json", "sui-json-rpc-api", "sui-json-rpc-types", "sui-keys", + "sui-rpc 0.2.2", + "sui-rpc-api", + "sui-sdk-types 0.2.2", "sui-transaction-builder", "sui-types", "thiserror 1.0.69", @@ -9756,18 +10570,39 @@ dependencies = [ "bytes", "bytestring", "itertools 0.14.0", - "roaring 0.11.2", + "roaring 0.11.3", + "serde", + "serde_derive", + "serde_json", + "serde_with", + "winnow 0.7.14", +] + +[[package]] +name = "sui-sdk-types" +version = "0.2.2" +source = "git+https://github.com/MystenLabs/sui-rust-sdk.git?rev=aef7655b45dcf3747281456f4999542dc52f6af6#aef7655b45dcf3747281456f4999542dc52f6af6" +dependencies = [ + "base64ct", + "bcs", + "blake2", + "bnum", + "bs58 0.5.1", + "bytes", + "bytestring", + "itertools 0.14.0", + "roaring 0.11.3", "serde", "serde_derive", "serde_json", "serde_with", - "winnow", + "winnow 0.7.14", ] [[package]] name = "sui-transaction-builder" version = "0.0.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anyhow", "async-trait", @@ -9775,6 +10610,8 @@ dependencies = [ "futures", "move-binary-format", "move-core-types", + "move-binary-format", + "move-core-types", "sui-json", "sui-json-rpc-types", "sui-protocol-config", @@ -9784,7 +10621,7 @@ dependencies = [ [[package]] name = "sui-types" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "anemo", "anyhow", @@ -9802,18 +10639,22 @@ dependencies = [ "derive_more 1.0.0", "enum_dispatch", "eyre", - "fastcrypto", + "fastcrypto 0.1.9 (git+https://github.com/MystenLabs/fastcrypto?rev=d2e2d13be3e550745739144e2a090b9675e4ffcb)", "fastcrypto-tbls", "fastcrypto-zkp", "im", - "indexmap 2.12.1", + "indexmap 2.13.0", "itertools 0.13.0", "lru 0.10.1", "move-binary-format", + "move-binary-format", "move-bytecode-utils", "move-core-types", "move-trace-format", "move-vm-profiler", + "move-core-types", + "move-trace-format", + "move-vm-profiler", "move-vm-test-utils", "mysten-common", "mysten-metrics", @@ -9833,7 +10674,7 @@ dependencies = [ "prost-types", "rand 0.8.5", "roaring 0.10.12", - "rustls-pemfile", + "rustls-pki-types", "schemars 0.8.22", "serde", "serde-name", @@ -9847,8 +10688,8 @@ dependencies = [ "sui-enum-compat-util", "sui-macros", "sui-protocol-config", - "sui-rpc", - "sui-sdk-types", + "sui-rpc 0.2.2", + "sui-sdk-types 0.2.2", "tap", "thiserror 1.0.69", "tonic", @@ -9860,8 +10701,10 @@ dependencies = [ [[package]] name = "sui-verifier-latest" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ + "move-abstract-stack", + "move-binary-format", "move-abstract-stack", "move-binary-format", "move-bytecode-utils", @@ -9869,6 +10712,10 @@ dependencies = [ "move-bytecode-verifier-meter", "move-core-types", "move-vm-config", + "move-bytecode-verifier", + "move-bytecode-verifier-meter", + "move-core-types", + "move-vm-config", "sui-protocol-config", "sui-types", ] @@ -9876,15 +10723,20 @@ dependencies = [ [[package]] name = "sui-verifier-v0" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ + "move-abstract-stack", + "move-binary-format", "move-abstract-stack", "move-binary-format", "move-bytecode-utils", "move-bytecode-verifier-meter", + "move-bytecode-verifier-meter", "move-bytecode-verifier-v0", "move-core-types", "move-vm-config", + "move-core-types", + "move-vm-config", "sui-protocol-config", "sui-types", ] @@ -9892,39 +10744,49 @@ dependencies = [ [[package]] name = "sui-verifier-v1" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ + "move-abstract-stack", + "move-binary-format", "move-abstract-stack", "move-binary-format", "move-bytecode-utils", "move-bytecode-verifier-meter", + "move-bytecode-verifier-meter", "move-bytecode-verifier-v1", "move-core-types", "move-vm-config", + "move-core-types", + "move-vm-config", "sui-types", ] [[package]] name = "sui-verifier-v2" version = "0.1.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ + "move-abstract-stack", + "move-binary-format", "move-abstract-stack", "move-binary-format", "move-bytecode-utils", "move-bytecode-verifier-meter", + "move-bytecode-verifier-meter", "move-bytecode-verifier-v2", "move-core-types", "move-vm-config", + "move-core-types", + "move-vm-config", "sui-protocol-config", "sui-types", ] [[package]] name = "symbolic-common" -version = "12.17.0" +version = "12.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d8046c5674ab857104bc4559d505f4809b8060d57806e45d49737c97afeb60" +checksum = "751a2823d606b5d0a7616499e4130a516ebd01a44f39811be2b9600936509c23" dependencies = [ "debugid", "memmap2", @@ -9934,9 +10796,9 @@ dependencies = [ [[package]] name = "symbolic-demangle" -version = "12.17.0" +version = "12.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1accb6e5c4b0f682de907623912e616b44be1c9e725775155546669dbff720ec" +checksum = "79b237cfbe320601dd24b4ac817a5b68bb28f5508e33f08d42be0682cadc8ac9" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -9956,9 +10818,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.111" +version = "2.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" dependencies = [ "proc-macro2", "quote", @@ -9994,14 +10856,14 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "system-configuration" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ "bitflags 2.10.0", "core-foundation 0.9.4", @@ -10085,12 +10947,12 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.23.0" +version = "3.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.1", "once_cell", "rustix", "windows-sys 0.61.2", @@ -10152,11 +11014,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -10167,18 +11029,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -10201,30 +11063,30 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", "num-conv", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" dependencies = [ "num-conv", "time-core", @@ -10285,9 +11147,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.48.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" dependencies = [ "bytes", "libc", @@ -10295,7 +11157,7 @@ dependencies = [ "parking_lot 0.12.5", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.1", + "socket2 0.6.2", "tokio-macros", "windows-sys 0.61.2", ] @@ -10308,7 +11170,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -10349,9 +11211,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" dependencies = [ "futures-core", "pin-project-lite", @@ -10373,9 +11235,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.17" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", @@ -10397,17 +11259,30 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.8" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "indexmap 2.13.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "serde_core", - "serde_spanned 1.0.3", - "toml_datetime 0.7.3", + "serde_spanned 1.0.4", + "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", "toml_writer", - "winnow", + "winnow 0.7.14", ] [[package]] @@ -10421,46 +11296,59 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.3" +version = "0.7.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" dependencies = [ "serde_core", ] +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.13.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "winnow 0.5.40", +] + [[package]] name = "toml_edit" version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.13.0", "serde", "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", - "winnow", + "winnow 0.7.14", ] [[package]] name = "toml_edit" -version = "0.23.7" +version = "0.23.10+spec-1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" +checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" dependencies = [ - "indexmap 2.12.1", - "toml_datetime 0.7.3", + "indexmap 2.13.0", + "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", - "winnow", + "winnow 0.7.14", ] [[package]] name = "toml_parser" -version = "1.0.4" +version = "1.0.7+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +checksum = "247eaa3197818b831697600aadf81514e577e0cba5eab10f7e064e78ae154df1" dependencies = [ - "winnow", + "winnow 0.7.14", ] [[package]] @@ -10471,15 +11359,15 @@ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "toml_writer" -version = "1.0.4" +version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" +checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" [[package]] name = "tonic" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" +checksum = "a286e33f82f8a1ee2df63f4fa35c0becf4a85a0cb03091a15fd7bf0b402dc94a" dependencies = [ "async-trait", "axum", @@ -10494,12 +11382,12 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "socket2 0.6.1", + "socket2 0.6.2", "sync_wrapper", "tokio", "tokio-rustls", "tokio-stream", - "tower 0.5.2", + "tower 0.5.3", "tower-layer", "tower-service", "tracing", @@ -10507,11 +11395,23 @@ dependencies = [ "zstd", ] +[[package]] +name = "tonic-build" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27aac809edf60b741e2d7db6367214d078856b8a5bff0087e94ff330fb97b6fc" +dependencies = [ + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "tonic-health" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a82868bf299e0a1d2e8dce0dc33a46c02d6f045b2c1f1d6cc8dc3d0bf1812ef" +checksum = "8dbde2c702c4be12b9b2f6f7e6c824a84a7b7be177070cada8ee575a581af359" dependencies = [ "prost", "tokio", @@ -10522,15 +11422,63 @@ dependencies = [ [[package]] name = "tonic-prost" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" +checksum = "d6c55a2d6a14174563de34409c9f92ff981d006f56da9c6ecd40d9d4a31500b0" dependencies = [ "bytes", "prost", "tonic", ] +[[package]] +name = "tonic-prost-build" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4556786613791cfef4ed134aa670b61a85cfcacf71543ef33e8d801abae988f" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn 2.0.114", + "tempfile", + "tonic-build", +] + +[[package]] +name = "tonic-reflection" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "758112f988818866f38face806ebf8c8961ad2c087e2ba89ad30010ba5fd80c1" +dependencies = [ + "prost", + "prost-types", + "tokio", + "tokio-stream", + "tonic", + "tonic-prost", +] + +[[package]] +name = "tonic-web" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d84e41438a9108d27d348e2139ce58cc85bf411aeffb0493f96f992e72a970" +dependencies = [ + "base64 0.22.1", + "bytes", + "http", + "http-body", + "pin-project", + "tokio-stream", + "tonic", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower" version = "0.4.13" @@ -10554,14 +11502,14 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", "hdrhistogram", - "indexmap 2.12.1", + "indexmap 2.13.0", "pin-project-lite", "slab", "sync_wrapper", @@ -10605,9 +11553,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ "bitflags 2.10.0", "bytes", @@ -10616,7 +11564,7 @@ dependencies = [ "http-body", "iri-string", "pin-project-lite", - "tower 0.5.2", + "tower 0.5.3", "tower-layer", "tower-service", ] @@ -10635,9 +11583,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "log", "pin-project-lite", @@ -10647,20 +11595,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -10676,6 +11624,17 @@ dependencies = [ "tracing-subscriber", ] +[[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-opentelemetry" version = "0.18.0" @@ -10691,13 +11650,20 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", "sharded-slab", + "smallvec", "thread_local", + "tracing", "tracing-core", + "tracing-log", ] [[package]] @@ -10736,7 +11702,7 @@ dependencies = [ "log", "rand 0.9.2", "sha1", - "thiserror 2.0.17", + "thiserror 2.0.18", "utf-8", ] @@ -10763,13 +11729,13 @@ checksum = "0e48cea23f68d1f78eb7bc092881b6bb88d3d6b5b7e6234f6f9c911da1ffb221" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] name = "typed-store-error" version = "0.4.0" -source = "git+https://github.com/wtdcode/sui?branch=v1.60.1-fuzz#713a04540246ec1b21d599213da1a775b34b375b" +source = "git+https://github.com/wtdcode/sui?branch=v1.65.2-fuzz#8d5095459e4f7df388f7d31ef386bf833b02abb1" dependencies = [ "serde", "thiserror 1.0.69", @@ -10789,9 +11755,9 @@ checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "typeshare" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19be0f411120091e76e13e5a0186d8e2bcc3e7e244afdb70152197f1a8486ceb" +checksum = "da1bf9fe204f358ffea7f8f779b53923a20278b3ab8e8d97962c5e1b3a54edb7" dependencies = [ "chrono", "serde", @@ -10801,12 +11767,12 @@ dependencies = [ [[package]] name = "typeshare-annotation" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a615d6c2764852a2e88a4f16e9ce1ea49bb776b5872956309e170d63a042a34f" +checksum = "621963e302416b389a1ec177397e9e62de849a78bd8205d428608553def75350" dependencies = [ "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -10856,15 +11822,15 @@ checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" [[package]] name = "unicase" -version = "2.8.1" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" [[package]] name = "unicode-normalization" @@ -10923,14 +11889,15 @@ checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", "percent-encoding", "serde", + "serde_derive", ] [[package]] @@ -10953,14 +11920,14 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.1" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" dependencies = [ "getrandom 0.3.4", "js-sys", "rand 0.9.2", - "serde", + "serde_core", "wasm-bindgen", ] @@ -10978,7 +11945,7 @@ checksum = "a1935e10c6f04d22688d07c0790f2fc0e1b1c5c2c55bc0cc87ed67656e587dd8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -11057,9 +12024,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ "wit-bindgen", ] @@ -11072,9 +12048,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.105" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" dependencies = [ "cfg-if", "once_cell", @@ -11085,11 +12061,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.55" +version = "0.4.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" +checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" dependencies = [ "cfg-if", + "futures-util", "js-sys", "once_cell", "wasm-bindgen", @@ -11098,9 +12075,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.105" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11108,26 +12085,48 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.105" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.105" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder", + "wasmparser", +] + [[package]] name = "wasm-streams" version = "0.4.2" @@ -11141,11 +12140,23 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.10.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver 1.0.27", +] + [[package]] name = "web-sys" -version = "0.3.82" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" +checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" dependencies = [ "js-sys", "wasm-bindgen", @@ -11167,23 +12178,23 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" dependencies = [ - "webpki-root-certs 1.0.4", + "webpki-root-certs 1.0.6", ] [[package]] name = "webpki-root-certs" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3e3b5f5e80bc89f30ce8d0343bf4e5f12341c51f3e26cbeecbc7c85443e85b" +checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" dependencies = [ "rustls-pki-types", ] [[package]] name = "webpki-roots" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" dependencies = [ "rustls-pki-types", ] @@ -11275,7 +12286,7 @@ checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link 0.2.1", + "windows-link", "windows-result", "windows-strings", ] @@ -11287,7 +12298,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" dependencies = [ "windows-core", - "windows-link 0.2.1", + "windows-link", "windows-threading", ] @@ -11299,7 +12310,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -11310,15 +12321,9 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] -[[package]] -name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - [[package]] name = "windows-link" version = "0.2.1" @@ -11332,7 +12337,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ "windows-core", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -11341,7 +12346,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ - "windows-link 0.2.1", + "windows-link", "windows-result", "windows-strings", ] @@ -11352,7 +12357,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -11361,7 +12366,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -11406,7 +12411,7 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -11446,7 +12451,7 @@ version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.2.1", + "windows-link", "windows_aarch64_gnullvm 0.53.1", "windows_aarch64_msvc 0.53.1", "windows_i686_gnu 0.53.1", @@ -11463,7 +12468,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -11606,18 +12611,109 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.13" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" dependencies = [ "memchr", ] [[package]] name = "wit-bindgen" -version = "0.46.0" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.13.0", + "prettyplease", + "syn 2.0.114", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.114", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.10.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver 1.0.27", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] [[package]] name = "writeable" @@ -11654,7 +12750,7 @@ dependencies = [ "oid-registry", "ring", "rusticata-macros", - "thiserror 2.0.17", + "thiserror 2.0.18", "time", ] @@ -11707,7 +12803,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "synstructure 0.13.2", ] @@ -11734,22 +12830,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.30" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea879c944afe8a2b25fef16bb4ba234f47c694565e97383b36f3a878219065c" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.30" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf955aa904d6040f70dc8e9384444cb1030aed272ba3cb09bbc4ab9e7c1f34f5" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -11769,7 +12865,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", "synstructure 0.13.2", ] @@ -11784,13 +12880,13 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] [[package]] @@ -11823,9 +12919,15 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.114", ] +[[package]] +name = "zmij" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7" + [[package]] name = "zstd" version = "0.13.3" diff --git a/Cargo.toml b/Cargo.toml index 5b39c9b..df92984 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,7 +46,7 @@ rand_core_sui = {version = "0.6.4", package = "rand_core"} rand_core_libafl = {version = "0.9", package = "rand_core"} const-hex = "1.14.1" serde_json_any_key = "2.0.0" -pprof = { version = "0.15"} +pprof = { version = "0.15", features = ["frame-pointer"]} z3 = "0.16" z3-sys = "0.9.10" tempfile = "3" @@ -61,34 +61,33 @@ tonic = "0.14" url = "2.5.7" # Sui dependencies -move-binary-format = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -move-trace-format = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -move-package = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -move-compiler = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -move-disassembler = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -move-ir-types = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -move-core-types = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -move-vm-types = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -move-vm-stack = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -move-vm-runtime = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz", features = ["tracing", "testing"]} -move-model = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -move-stackless-bytecode = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -sui-move-build = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -sui-json-rpc-types = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -sui-types = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -sui-package-management = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -sui-sdk = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -sui-config = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -sui-storage = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -sui-snapshot = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -sui-core = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -sui-execution = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz", features = ["testing"]} -shared-crypto = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} -# sui-adapter-v2 = {git = "https://github.com/wtdcode/sui", branch = "v1.60.1-fuzz"} +move-binary-format = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +move-trace-format = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +move-package = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +move-compiler = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +move-disassembler = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +move-ir-types = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +move-core-types = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +move-vm-types = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +move-vm-runtime = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz", features = ["tracing"]} +move-model = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +move-stackless-bytecode = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +sui-move-build = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +sui-json-rpc-types = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +sui-types = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +sui-package-management = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +sui-sdk = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +sui-config = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +sui-storage = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +sui-snapshot = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +sui-core = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +sui-execution = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +shared-crypto = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} +# sui-adapter-v2 = {git = "https://github.com/wtdcode/sui", branch = "v1.65.2-fuzz"} -sui-rpc = { git = "https://github.com/MystenLabs/sui-rust-sdk.git", rev = "fb62af78b30f5dc64eeaec0094ab95b5ce5b7ce2" } -sui-sdk-types = { git = "https://github.com/MystenLabs/sui-rust-sdk.git", rev = "fb62af78b30f5dc64eeaec0094ab95b5ce5b7ce2" } -fastcrypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "09f86974195ec85d8aae386b1909d341d3ccfe52"} # sui use git dependency =/ +sui-rpc = { git = "https://github.com/MystenLabs/sui-rust-sdk.git", rev = "aef7655b45dcf3747281456f4999542dc52f6af6" } +sui-sdk-types = { git = "https://github.com/MystenLabs/sui-rust-sdk.git", rev = "aef7655b45dcf3747281456f4999542dc52f6af6" } +fastcrypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "d2e2d13be3e550745739144e2a090b9675e4ffcb"} # sui use git dependency =/ # move-stackless-bytecode = {path = "../sui/external-crates/move/crates/move-stackless-bytecode"} # move-model = {path = "../sui/external-crates/move/crates/move-model"} @@ -100,7 +99,6 @@ fastcrypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "09f86974 # move-ir-types = {path = "../sui/external-crates/move/crates/move-ir-types"} # move-core-types = {path = "../sui/external-crates/move/crates/move-core-types"} # move-vm-types = {path = "../sui/external-crates/move/crates/move-vm-types"} -# move-vm-stack = {path = "../sui/external-crates/move/crates/move-vm-stack"} # move-vm-runtime = {path = "../sui/external-crates/move/crates/move-vm-runtime", features = ["tracing", "testing"]} # sui-move-build = {path = "../sui/crates/sui-move-build"} # sui-json-rpc-types = {path = "../sui/crates/sui-json-rpc-types"} @@ -128,4 +126,4 @@ movy-static-analysis = {version = "0.0.1", default-features = false, path = "cra [profile.dev.build-override] -opt-level = 3 \ No newline at end of file +opt-level = 3 diff --git a/crates/movy-fuzz/Cargo.toml b/crates/movy-fuzz/Cargo.toml index 0fc2158..5704675 100644 --- a/crates/movy-fuzz/Cargo.toml +++ b/crates/movy-fuzz/Cargo.toml @@ -38,7 +38,6 @@ move-core-types = {workspace = true} move-model = {workspace = true} move-stackless-bytecode = {workspace = true} move-trace-format = {workspace = true} -move-vm-stack = {workspace = true} move-vm-types = {workspace = true} sui-types = {workspace = true} sui-json-rpc-types = {workspace = true} diff --git a/crates/movy-fuzz/src/executor.rs b/crates/movy-fuzz/src/executor.rs index 47faa3a..a2fe3a7 100644 --- a/crates/movy-fuzz/src/executor.rs +++ b/crates/movy-fuzz/src/executor.rs @@ -10,6 +10,7 @@ use libafl_bolts::tuples::{Handle, MatchNameRef, RefIndexable}; use log::trace; use movy_replay::{ db::{ObjectStoreInfo, ObjectStoreMintObject}, + event::{ModuleProvider, NotifierTracer}, exec::{ExecutionTracedResults, SuiExecutor}, tracer::{concolic::ConcolicState, fuzz::SuiFuzzTracer, op::Log, oracle::SuiGeneralOracle}, }; @@ -18,6 +19,8 @@ use movy_types::{ input::{FunctionIdent, MoveAddress}, oracle::{Event, OracleFinding}, }; +use move_core_types::account_address::AccountAddress; +use movy_types::error::MovyError; use serde::{Deserialize, Serialize}; use sui_types::{ effects::TransactionEffectsAPI, @@ -33,6 +36,51 @@ use crate::{ pub const CODE_OBSERVER_NAME: &str = "code_observer"; +pub struct FuzzModuleProvider<'a, E> { + env: &'a E, +} + +impl<'a, E> FuzzModuleProvider<'a, E> +where + E: ObjectStore, +{ + pub fn new(env: &'a E) -> Self { + Self { env } + } +} + +impl<'a, E> ModuleProvider for FuzzModuleProvider<'a, E> +where + E: ObjectStore, +{ + fn get_module( + &mut self, + address: AccountAddress, + name: &str, + ) -> Result, MovyError> { + use sui_types::base_types::ObjectID; + + let db = self.env; + let package_id = ObjectID::from(address); + + let package_obj = match db.get_object(&package_id) { + Some(obj) => obj, + None => return Ok(None), + }; + + if let Some(pkg) = package_obj.data.try_as_package() { + for (module_name, bytes) in pkg.serialized_module_map() { + if module_name.as_str() == name { + let module = move_binary_format::CompiledModule::deserialize_with_defaults(bytes)?; + return Ok(Some(module)); + } + } + } + + Ok(None) + } +} + #[derive(Debug, Clone, PartialEq, Eq)] pub struct ExecutionExtraOutcome { pub logs: BTreeMap>, @@ -92,6 +140,7 @@ impl HasObservers for SuiFuzzExecutor { impl Executor for SuiFuzzExecutor where T: ObjectStore + BackingStore + ObjectSuiStoreCommit + ObjectStoreMintObject + ObjectStoreInfo, + E: ObjectStore, OT: ObserversTuple, RT: for<'a> SuiGeneralOracle, S>, I: MoveInput, @@ -127,8 +176,16 @@ where trace!("Executing input: {}", input.sequence()); state.executions_mut().add_assign(1); let gas_id = state.fuzz_state().gas_id; - let tracer = SuiFuzzTracer::new(&mut self.ob, state, &mut self.oracles, CODE_OBSERVER_NAME); - + let provider = FuzzModuleProvider::new(&self.executor.db); + let tracer = NotifierTracer::with_provider( + SuiFuzzTracer::new( + &mut self.ob, + state, + &mut self.oracles, + CODE_OBSERVER_NAME, + ), + provider, + ); let result = self.executor.run_ptb_with_gas( input.sequence().to_ptb()?, epoch, @@ -146,6 +203,7 @@ where let mut trace_outcome = tracer .expect("tracer should be present when tracing is enabled") + .into_inner() .outcome(); trace!("Execution finished with status: {:?}", effects.status()); diff --git a/crates/movy-fuzz/src/oracles/sui/bool_judgement.rs b/crates/movy-fuzz/src/oracles/sui/bool_judgement.rs index 88f37d3..aa5806e 100644 --- a/crates/movy-fuzz/src/oracles/sui/bool_judgement.rs +++ b/crates/movy-fuzz/src/oracles/sui/bool_judgement.rs @@ -1,6 +1,5 @@ use move_binary_format::file_format::Bytecode; use move_trace_format::format::TraceEvent; -use move_vm_stack::Stack; use serde_json::json; use sui_types::effects::TransactionEffects; use z3::{ @@ -11,6 +10,7 @@ use z3::{ use movy_replay::tracer::{ concolic::{ConcolicState, SymbolValue}, oracle::SuiGeneralOracle, + trace::TraceState, }; use movy_types::{ error::MovyError, @@ -36,13 +36,13 @@ impl SuiGeneralOracle for BoolJudgementOracle { fn event( &mut self, event: &TraceEvent, - _stack: Option<&Stack>, + _trace_state: &TraceState, symbol_stack: &ConcolicState, current_function: Option<&movy_types::input::FunctionIdent>, _state: &mut S, ) -> Result, MovyError> { match event { - TraceEvent::BeforeInstruction { + TraceEvent::Instruction { pc, instruction, .. } => { let stack_syms = &symbol_stack.stack; diff --git a/crates/movy-fuzz/src/oracles/sui/infinite_loop.rs b/crates/movy-fuzz/src/oracles/sui/infinite_loop.rs index d8f0a33..21e7946 100644 --- a/crates/movy-fuzz/src/oracles/sui/infinite_loop.rs +++ b/crates/movy-fuzz/src/oracles/sui/infinite_loop.rs @@ -2,12 +2,12 @@ use std::collections::BTreeMap; use move_binary_format::file_format::Bytecode; use move_trace_format::format::TraceEvent; -use move_vm_stack::Stack; use serde_json::json; use movy_replay::tracer::{ concolic::{ConcolicState, SymbolValue}, oracle::SuiGeneralOracle, + trace::TraceState, }; use movy_types::{ error::MovyError, @@ -38,7 +38,7 @@ impl SuiGeneralOracle for InfiniteLoopOracle { fn event( &mut self, event: &TraceEvent, - _stack: Option<&Stack>, + _trace_state: &TraceState, symbol_stack: &ConcolicState, current_function: Option<&movy_types::input::FunctionIdent>, _state: &mut S, @@ -49,7 +49,7 @@ impl SuiGeneralOracle for InfiniteLoopOracle { let key = hash_to_u64(&key); self.branch_counts.remove(&key); } - TraceEvent::BeforeInstruction { + TraceEvent::Instruction { pc, instruction, .. } => { match instruction { diff --git a/crates/movy-fuzz/src/oracles/sui/overflow.rs b/crates/movy-fuzz/src/oracles/sui/overflow.rs index f692e50..e990821 100644 --- a/crates/movy-fuzz/src/oracles/sui/overflow.rs +++ b/crates/movy-fuzz/src/oracles/sui/overflow.rs @@ -1,12 +1,12 @@ use move_binary_format::file_format::Bytecode; use move_core_types::u256::U256; -use move_trace_format::format::TraceEvent; -use move_vm_stack::Stack; +use move_trace_format::format::{TraceEvent, TraceValue}; use serde_json::json; use movy_replay::tracer::{ concolic::{ConcolicState, value_bitwidth, value_to_u256}, oracle::SuiGeneralOracle, + trace::TraceState, }; use movy_types::{ error::MovyError, @@ -19,7 +19,7 @@ use sui_types::effects::TransactionEffects; pub struct OverflowOracle; /// Count the number of significant bits in the concrete value (0 => 0 bits). -fn value_sig_bits(v: &move_vm_types::values::Value) -> u32 { +fn value_sig_bits(v: &TraceValue) -> u32 { let as_u256 = value_to_u256(v); if as_u256 == U256::zero() { 0 @@ -41,27 +41,24 @@ impl SuiGeneralOracle for OverflowOracle { fn event( &mut self, event: &TraceEvent, - stack: Option<&Stack>, + trace_state: &TraceState, _symbol_stack: &ConcolicState, current_function: Option<&movy_types::input::FunctionIdent>, _state: &mut S, ) -> Result, MovyError> { match event { - TraceEvent::BeforeInstruction { + TraceEvent::Instruction { pc, instruction, .. } => { if !matches!(instruction, Bytecode::Shl) { return Ok(vec![]); } - let stack = match stack { - Some(s) => s, - None => return Ok(vec![]), - }; - let Ok(vals_iter) = stack.last_n(2) else { + let stack = &trace_state.operand_stack; + if stack.len() < 2 { return Ok(vec![]); - }; - let vals: Vec<_> = vals_iter.collect(); - let (lhs, rhs) = (vals[0], vals[1]); + } + let lhs = &stack[stack.len() - 2]; + let rhs = &stack[stack.len() - 1]; let lhs_width_bits = value_bitwidth(lhs); // type width (u8/u16/...) let lhs_sig_bits = value_sig_bits(lhs); // actual significant bits of the value let rhs_bits = value_to_u256(rhs); diff --git a/crates/movy-fuzz/src/oracles/sui/precision_loss.rs b/crates/movy-fuzz/src/oracles/sui/precision_loss.rs index 9f50ccc..15fa85c 100644 --- a/crates/movy-fuzz/src/oracles/sui/precision_loss.rs +++ b/crates/movy-fuzz/src/oracles/sui/precision_loss.rs @@ -1,10 +1,10 @@ use move_trace_format::format::TraceEvent; -use move_vm_stack::Stack; use serde_json::json; use movy_replay::tracer::{ concolic::{ConcolicState, SymbolValue}, oracle::SuiGeneralOracle, + trace::TraceState, }; use movy_types::{error::MovyError, input::MoveSequence, oracle::OracleFinding}; use sui_types::effects::TransactionEffects; @@ -26,13 +26,13 @@ impl SuiGeneralOracle for PrecisionLossOracle { fn event( &mut self, event: &TraceEvent, - _stack: Option<&Stack>, + _trace_state: &TraceState, symbol_stack: &ConcolicState, current_function: Option<&movy_types::input::FunctionIdent>, _state: &mut S, ) -> Result, MovyError> { match event { - TraceEvent::BeforeInstruction { + TraceEvent::Instruction { pc, instruction, .. } => { let loss = match instruction { diff --git a/crates/movy-fuzz/src/oracles/sui/proceeds.rs b/crates/movy-fuzz/src/oracles/sui/proceeds.rs index 9ee6c5d..902604f 100644 --- a/crates/movy-fuzz/src/oracles/sui/proceeds.rs +++ b/crates/movy-fuzz/src/oracles/sui/proceeds.rs @@ -4,10 +4,9 @@ use std::{ }; use log::debug; -use move_trace_format::format::TraceEvent; -use move_vm_stack::Stack; +use move_trace_format::{format::TraceEvent}; -use movy_replay::tracer::{concolic::ConcolicState, oracle::SuiGeneralOracle}; +use movy_replay::tracer::{concolic::ConcolicState, oracle::SuiGeneralOracle, trace::TraceState}; use movy_types::{ error::MovyError, input::{InputArgument, MoveSequence, SuiObjectInputArgument}, @@ -216,7 +215,7 @@ where fn event( &mut self, _event: &TraceEvent, - _stack: Option<&Stack>, + _trace_state: &TraceState, _symbol_stack: &ConcolicState, _current_function: Option<&movy_types::input::FunctionIdent>, _state: &mut S, diff --git a/crates/movy-fuzz/src/oracles/sui/type_conversion.rs b/crates/movy-fuzz/src/oracles/sui/type_conversion.rs index ba0247c..507fac8 100644 --- a/crates/movy-fuzz/src/oracles/sui/type_conversion.rs +++ b/crates/movy-fuzz/src/oracles/sui/type_conversion.rs @@ -1,12 +1,11 @@ use move_binary_format::file_format::Bytecode; use move_trace_format::format::TraceEvent; -use move_vm_stack::Stack; use movy_types::input::MoveSequence; use movy_types::oracle::OracleFinding; use serde_json::json; use movy_replay::tracer::concolic::value_bitwidth; -use movy_replay::tracer::{concolic::ConcolicState, oracle::SuiGeneralOracle}; +use movy_replay::tracer::{concolic::ConcolicState, oracle::SuiGeneralOracle, trace::TraceState}; use movy_types::error::MovyError; use sui_types::effects::TransactionEffects; @@ -26,24 +25,20 @@ impl SuiGeneralOracle for TypeConversionOracle { fn event( &mut self, event: &TraceEvent, - stack: Option<&Stack>, + trace_state: &TraceState, _symbol_stack: &ConcolicState, current_function: Option<&movy_types::input::FunctionIdent>, _state: &mut S, ) -> Result, MovyError> { match event { - TraceEvent::BeforeInstruction { + TraceEvent::Instruction { pc, instruction, .. } => { - let stack = match stack { - Some(s) => s, - None => return Ok(vec![]), - }; - let Ok(vals_iter) = stack.last_n(1) else { + let stack = &trace_state.operand_stack; + if stack.len() < 1 { return Ok(vec![]); - }; - let vals: Vec<_> = vals_iter.collect(); - let val = vals.first().unwrap(); + } + let val = &stack[stack.len() - 1]; let unnecessary = match instruction { Bytecode::CastU8 => value_bitwidth(val) == 8, Bytecode::CastU16 => value_bitwidth(val) == 16, diff --git a/crates/movy-fuzz/src/oracles/sui/typed_bug.rs b/crates/movy-fuzz/src/oracles/sui/typed_bug.rs index cc06eee..782f240 100644 --- a/crates/movy-fuzz/src/oracles/sui/typed_bug.rs +++ b/crates/movy-fuzz/src/oracles/sui/typed_bug.rs @@ -1,8 +1,7 @@ use log::{debug, trace}; -use move_trace_format::format::TraceEvent; -use move_vm_stack::Stack; +use move_trace_format::{format::TraceEvent}; -use movy_replay::tracer::{concolic::ConcolicState, oracle::SuiGeneralOracle}; +use movy_replay::tracer::{concolic::ConcolicState, oracle::SuiGeneralOracle, trace::TraceState}; use movy_types::{error::MovyError, input::MoveSequence, oracle::OracleFinding}; use serde_json::json; use sui_types::{ @@ -52,7 +51,7 @@ where fn event( &mut self, _event: &TraceEvent, - _stack: Option<&Stack>, + _trace_state: &TraceState, _symbol_stack: &ConcolicState, _current_function: Option<&movy_types::input::FunctionIdent>, _state: &mut S, diff --git a/crates/movy-replay/Cargo.toml b/crates/movy-replay/Cargo.toml index 6002a7f..9f9fbf8 100644 --- a/crates/movy-replay/Cargo.toml +++ b/crates/movy-replay/Cargo.toml @@ -36,7 +36,6 @@ libafl = {workspace = true} libafl_bolts = {workspace = true} alloy-primitives = {workspace = true} const-hex = {workspace = true} -move-vm-stack = { workspace = true } mdbx-derive = {workspace = true} z3 = {workspace = true } tokio-stream = {workspace = true} @@ -51,4 +50,4 @@ movy-sui = {workspace = true} tempfile.workspace = true serde_json.workspace = true movy-sui = {workspace = true} -movy-types = {workspace = true} \ No newline at end of file +movy-types = {workspace = true} diff --git a/crates/movy-replay/build.rs b/crates/movy-replay/build.rs index a7c26e7..049ef18 100644 --- a/crates/movy-replay/build.rs +++ b/crates/movy-replay/build.rs @@ -15,27 +15,25 @@ fn build_std(dir: &Path, test: bool) -> Vec { if previous_build.exists() { std::fs::remove_dir_all(&previous_build).unwrap(); } - let (_, resolved) = build_package_resolved(dir, test).unwrap(); + let (_, package_paths) = build_package_resolved(dir, test).unwrap(); let flag = if test { "testing" } else { "non-testing" }; let mut deps = vec![]; - for (package_name, package) in resolved.package_table.iter() { - if package_name.as_str() != "hello_std" { - cargo_print!( - "Building {} std {} at {}", - flag, - package_name.as_str(), - package.package_path.display() - ); + for package_path in package_paths { + cargo_print!( + "Building {} std package at {}", + flag, + package_path.display() + ); - let out = - SuiCompiledPackage::build_all_unpublished_from_folder(&package.package_path, test) - .unwrap(); - let build_directory = package.package_path.join("build"); - if build_directory.exists() { - std::fs::remove_dir_all(&build_directory).unwrap(); - } + let out = + SuiCompiledPackage::build_all_unpublished_from_folder(&package_path, test).unwrap(); + if out.package_name != "hello_std" { deps.push(out); } + let build_directory = package_path.join("build"); + if build_directory.exists() { + std::fs::remove_dir_all(&build_directory).unwrap(); + } } deps } diff --git a/crates/movy-replay/src/event.rs b/crates/movy-replay/src/event.rs new file mode 100644 index 0000000..4c45d43 --- /dev/null +++ b/crates/movy-replay/src/event.rs @@ -0,0 +1,294 @@ +use std::{collections::BTreeMap, marker::PhantomData}; + +use move_binary_format::CompiledModule; +use move_core_types::account_address::AccountAddress; +use move_trace_format::{ + format::TraceEvent, + interface::{Tracer, Writer}, +}; +use movy_types::error::MovyError; + +pub trait ModuleProvider { + fn get_module( + &mut self, + address: AccountAddress, + name: &str, + ) -> Result, MovyError>; +} + +pub struct NoModuleProvider; + +impl ModuleProvider for NoModuleProvider { + fn get_module( + &mut self, + _address: AccountAddress, + _name: &str, + ) -> Result, MovyError> { + Ok(None) + } +} + +pub trait TraceNotifier { + fn notify_event(&mut self, event: &TraceEvent) -> Result<(), MovyError>; + fn notify( + &mut self, + _ctx: &TraceEvent, + _extra: Option<&InstructionExtraInformation>, + ) -> Result<(), MovyError> { + Ok(()) + } + fn notify(&mut self, event: &TraceEvent, writer: &mut Writer<'_>); +} + +pub struct NotifierTracer +where + N: TraceNotifier, + P: ModuleProvider, +{ + pub notifier: N, + module_provider: P, + module_stack: Vec<(AccountAddress, String)>, + module_cache: BTreeMap<(AccountAddress, String), CompiledModule>, + _phantom: PhantomData

, +} + +impl NotifierTracer +where + N: TraceNotifier, +{ + pub fn new(notifier: N) -> Self { + Self { + notifier, + module_provider: NoModuleProvider, + module_stack: Vec::new(), + module_cache: BTreeMap::new(), + _phantom: PhantomData, + } + } +} + +impl NotifierTracer +where + N: TraceNotifier, + P: ModuleProvider, +{ + pub fn with_provider(notifier: N, provider: P) -> Self { + Self { + notifier, + module_provider: provider, + module_stack: Vec::new(), + module_cache: BTreeMap::new(), + _phantom: PhantomData, + } + } + + pub fn notifier_mut(&mut self) -> &mut N { + &mut self.notifier + } + + pub fn notifier(&self) -> &N { + &self.notifier + } + + pub fn into_inner(self) -> N { + self.notifier + } + fn current_module(&self) -> Option<(AccountAddress, String)> { + self.module_stack.last().cloned() + } + fn get_or_load_module( + &mut self, + address: AccountAddress, + name: &str, + ) -> Option<&CompiledModule> { + let key = (address, name.to_string()); + + if !self.module_cache.contains_key(&key) { + if let Ok(Some(module)) = self.module_provider.get_module(address, name) { + self.module_cache.insert(key.clone(), module); + } + } + + self.module_cache.get(&key) + } +} + +#[derive(Debug, Clone, Eq, PartialEq)] +pub enum InstructionExtraInformation { + Pack(usize), + PackGeneric(usize), + PackVariant(usize), + PackVariantGeneric(usize), + Unpack(usize), + UnpackVariant(usize), + UnpackGeneric(usize), + UnpackVariantGeneric(usize), +} + +fn create_instruction_extra( + tracer: &mut NotifierTracer, + event: &TraceEvent, +) -> Option +where + N: TraceNotifier, + P: ModuleProvider, +{ + match event { + TraceEvent::Instruction { instruction, .. } => { + use move_binary_format::file_format::Bytecode as B; + use move_binary_format::file_format::StructFieldInformation; + let mut extra = None; + + if let Some((address, name)) = tracer.current_module() { + if let Some(module) = tracer.get_or_load_module(address, &name) { + match instruction { + B::Unpack(sidx) => { + let struct_def = module.struct_def_at(*sidx); + let field_count = match &struct_def.field_information { + StructFieldInformation::Native => 0, + StructFieldInformation::Declared(fields) => fields.len(), + }; + extra = Some(InstructionExtraInformation::Unpack(field_count as usize)); + } + B::UnpackVariant(vidx) + | B::UnpackVariantImmRef(vidx) + | B::UnpackVariantMutRef(vidx) => { + let variant_handle = module.variant_handle_at(*vidx); + let variant_def = module + .variant_def_at(variant_handle.enum_def, variant_handle.variant); + let field_count = variant_def.fields.len(); + extra = Some(InstructionExtraInformation::UnpackVariant( + field_count as usize, + )); + } + B::UnpackGeneric(sidx) => { + let struct_inst = module.struct_instantiation_at(*sidx); + let struct_def = module.struct_def_at(struct_inst.def); + let field_count = match &struct_def.field_information { + StructFieldInformation::Native => 0, + StructFieldInformation::Declared(fields) => fields.len(), + }; + extra = Some(InstructionExtraInformation::UnpackGeneric( + field_count as usize, + )); + } + B::UnpackVariantGeneric(vidx) + | B::UnpackVariantGenericImmRef(vidx) + | B::UnpackVariantGenericMutRef(vidx) => { + let variant_inst_handle = module.variant_instantiation_handle_at(*vidx); + let enum_inst = + module.enum_instantiation_at(variant_inst_handle.enum_def); + let variant_def = + module.variant_def_at(enum_inst.def, variant_inst_handle.variant); + let field_count = variant_def.fields.len(); + extra = Some(InstructionExtraInformation::UnpackVariantGeneric( + field_count as usize, + )); + } + B::Pack(sidx) => { + let struct_def = module.struct_def_at(*sidx); + let field_count = match &struct_def.field_information { + StructFieldInformation::Native => 0, + StructFieldInformation::Declared(fields) => fields.len(), + }; + extra = Some(InstructionExtraInformation::Pack(field_count as usize)); + } + B::PackGeneric(sidx) => { + let struct_inst = module.struct_instantiation_at(*sidx); + let struct_def = module.struct_def_at(struct_inst.def); + let field_count = match &struct_def.field_information { + StructFieldInformation::Native => 0, + StructFieldInformation::Declared(fields) => fields.len(), + }; + extra = Some(InstructionExtraInformation::PackGeneric( + field_count as usize, + )); + } + B::PackVariant(vidx) => { + let variant_handle = module.variant_handle_at(*vidx); + let variant_def = module + .variant_def_at(variant_handle.enum_def, variant_handle.variant); + let field_count = variant_def.fields.len(); + extra = Some(InstructionExtraInformation::PackVariant( + field_count as usize, + )); + } + B::PackVariantGeneric(vidx) => { + let variant_inst_handle = module.variant_instantiation_handle_at(*vidx); + let enum_inst = + module.enum_instantiation_at(variant_inst_handle.enum_def); + let variant_def = + module.variant_def_at(enum_inst.def, variant_inst_handle.variant); + let field_count = variant_def.fields.len(); + extra = Some(InstructionExtraInformation::PackVariantGeneric( + field_count as usize, + )); + } + _ => {} + } + } else { + } + } + + extra + } + _ => None, + } +} + +impl Tracer for NotifierTracer +where + N: TraceNotifier, + P: ModuleProvider, +{ + fn notify(&mut self, event: &TraceEvent, mut writer: Writer<'_>) -> bool { + self.notifier.notify(event, &mut writer); + + match event { + TraceEvent::OpenFrame { frame, gas_left: _ } => { + let address = *frame.module.address(); + let name = frame.module.name().to_string(); + // self.module_stack = Some((address, name)); + self.module_stack.push((address, name)); + if let Err(e) = self.notifier.notify_event(event) { + log::error!("NotifierTracer: failed to notify OpenFrame: {:?}", e); + } + } + + TraceEvent::CloseFrame { + frame_id: _, + return_: _, + gas_left: _, + } => { + // self.module_stack = None; + self.module_stack.pop(); + if let Err(e) = self.notifier.notify_event(event) { + log::error!("NotifierTracer: failed to notify CloseFrame: {:?}", e); + } + } + + TraceEvent::Instruction { .. } => { + let extra = create_instruction_extra(self, event); + if let Err(e) = self + .notifier + .handle_before_instruction(event, extra.as_ref()) + { + log::error!( + "NotifierTracer: failed to handle before instruction: {:?}", + e + ); + } + if let Err(e) = self.notifier.notify_event(event) { + log::error!("NotifierTracer: failed to notify Instruction: {:?}", e); + } + } + + _ => { + if let Err(e) = self.notifier.notify_event(event) { + log::error!("NotifierTracer: failed to notify event: {:?}", e); + } + } + } + true + } +} diff --git a/crates/movy-replay/src/lib.rs b/crates/movy-replay/src/lib.rs index 73685fb..96374fe 100644 --- a/crates/movy-replay/src/lib.rs +++ b/crates/movy-replay/src/lib.rs @@ -1,5 +1,6 @@ pub mod db; pub mod env; +pub mod event; pub mod exec; pub mod meta; pub mod tracer; diff --git a/crates/movy-replay/src/tracer/concolic.rs b/crates/movy-replay/src/tracer/concolic.rs index ba92064..b2ba11d 100644 --- a/crates/movy-replay/src/tracer/concolic.rs +++ b/crates/movy-replay/src/tracer/concolic.rs @@ -1,11 +1,14 @@ use std::{cmp::Ordering, collections::BTreeMap, str::FromStr}; -use log::{debug, trace, warn}; +use crate::event::InstructionExtraInformation; +use crate::tracer::trace::TraceState; +use log::{trace, warn}; use move_binary_format::file_format::Bytecode; use move_core_types::{language_storage::TypeTag, u256::U256}; -use move_trace_format::format::{Effect, ExtraInstructionInformation, TraceEvent, TypeTagWithRefs}; -use move_vm_stack::Stack; -use move_vm_types::values::{Reference, VMValueCast, Value}; +use move_trace_format::{ + format::{Effect, TraceEvent, TraceValue, TypeTagWithRefs}, + value::SerializableMoveValue, +}; use z3::ast::{Ast, Bool, Int}; #[derive(Clone, Debug, PartialEq, Eq)] @@ -19,13 +22,6 @@ enum PrimitiveValue { U256(U256), } -fn try_value_as(v: &Value) -> Option -where - Value: VMValueCast, -{ - v.copy_value().ok()?.value_as::().ok() -} - #[derive(Clone, Debug, PartialEq, Eq)] pub enum SymbolValue { Value(Int), @@ -37,6 +33,7 @@ pub struct ConcolicState { pub stack: Vec, pub locals: Vec>, pub args: Vec>, + pub pending_instruction_extra: Option, pub disable: bool, } @@ -72,37 +69,17 @@ impl PrimitiveValue { } } -fn extract_primitive_value(v: &Value) -> PrimitiveValue { - if let Some(reference) = try_value_as::(v) { - let inner = reference - .read_ref() - .expect("failed to read reference for comparison"); - return extract_primitive_value(&inner); - } - - if let Some(b) = try_value_as::(v) { - return PrimitiveValue::Bool(b); - } - if let Some(u) = try_value_as::(v) { - return PrimitiveValue::U8(u); - } - if let Some(u) = try_value_as::(v) { - return PrimitiveValue::U16(u); +fn extract_primitive_value(v: &TraceValue) -> PrimitiveValue { + match v.snapshot() { + SerializableMoveValue::Bool(b) => PrimitiveValue::Bool(*b), + SerializableMoveValue::U8(u) => PrimitiveValue::U8(*u), + SerializableMoveValue::U16(u) => PrimitiveValue::U16(*u), + SerializableMoveValue::U32(u) => PrimitiveValue::U32(*u), + SerializableMoveValue::U64(u) => PrimitiveValue::U64(*u), + SerializableMoveValue::U128(u) => PrimitiveValue::U128(*u), + SerializableMoveValue::U256(u) => PrimitiveValue::U256(*u), + v => panic!("Unsupported value type {:?} for comparison", v), } - if let Some(u) = try_value_as::(v) { - return PrimitiveValue::U32(u); - } - if let Some(u) = try_value_as::(v) { - return PrimitiveValue::U64(u); - } - if let Some(u) = try_value_as::(v) { - return PrimitiveValue::U128(u); - } - if let Some(u) = try_value_as::(v) { - return PrimitiveValue::U256(u); - } - - panic!("Unsupported value type {:?} for comparison", v); } fn compare_value_impl(v1: &PrimitiveValue, v2: &PrimitiveValue) -> Ordering { @@ -121,20 +98,29 @@ fn compare_value_impl(v1: &PrimitiveValue, v2: &PrimitiveValue) -> Ordering { } } -pub fn compare_value(v1: &Value, v2: &Value) -> Ordering { +pub fn compare_value(v1: &TraceValue, v2: &TraceValue) -> Ordering { let p1 = extract_primitive_value(v1); let p2 = extract_primitive_value(v2); compare_value_impl(&p1, &p2) } -pub fn value_to_u256(v: &Value) -> U256 { +pub fn value_to_u256(v: &TraceValue) -> U256 { extract_primitive_value(v).as_u256() } -pub fn value_bitwidth(v: &Value) -> u32 { +pub fn value_bitwidth(v: &TraceValue) -> u32 { extract_primitive_value(v).bitwidth() } +fn stack_top2(stack: &[TraceValue]) -> (&TraceValue, &TraceValue) { + let len = stack.len(); + (&stack[len - 2], &stack[len - 1]) +} + +fn stack_top1(stack: &[TraceValue]) -> &TraceValue { + &stack[stack.len() - 1] +} + fn int_two_pow(bits: u32) -> Int { let v = U256::one() << bits; Int::from_str(&v.to_string()).unwrap() @@ -242,11 +228,25 @@ pub fn int_bvxor_const(x: &Int, mask: U256, bits: u32) -> Int { } impl ConcolicState { + pub fn handle_before_instruction( + &mut self, + ctx: &TraceEvent, + extra: Option<&InstructionExtraInformation>, + trace_state: &TraceState, + ) -> Option { + if !matches!(ctx, TraceEvent::Instruction { .. }) { + return None; + } + self.pending_instruction_extra = extra.cloned(); + self.notify_event(ctx, trace_state) + } + pub fn new() -> Self { Self { stack: Vec::new(), locals: Vec::new(), args: Vec::new(), + pending_instruction_extra: None, disable: false, } } @@ -287,7 +287,7 @@ impl ConcolicState { } } - fn resolve_value(value: &Value) -> Int { + fn resolve_value(value: &TraceValue) -> Int { match extract_primitive_value(value) { PrimitiveValue::Bool(b) => { let int_val = if b { 1 } else { 0 }; @@ -301,53 +301,41 @@ impl ConcolicState { PrimitiveValue::U256(u) => Int::from_str(&u.to_string()).unwrap(), } } - - pub fn notify_event(&mut self, event: &TraceEvent, stack: Option<&Stack>) -> Option { - if self.disable { - return None; - } - if let Some(s) = stack { - if self.stack.len() != s.value.len() && s.value.is_empty() { - self.stack.clear(); + #[inline] + fn process_binary_op(&mut self, stack: &[TraceValue]) -> Option<(Int, Int)> { + let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); + let stack_len = stack.len(); + let true_lhs = &stack[stack_len - 2]; + let true_rhs = &stack[stack_len - 1]; + let (new_l, new_r) = match (lhs, rhs) { + (SymbolValue::Value(l), SymbolValue::Value(r)) => (l, r), + (SymbolValue::Value(l), SymbolValue::Unknown) => { + let new_r = Self::resolve_value(true_rhs); + (l, new_r) } - if let TraceEvent::Effect(v) = event - && let Effect::ExecutionError(_) = v.as_ref() - { - self.stack.pop(); + (SymbolValue::Unknown, SymbolValue::Value(r)) => { + let new_l = Self::resolve_value(true_lhs); + (new_l, r) } - if self.stack.len() != s.value.len() { - warn!( - "stack: {:?}, stack from trace: {:?}, event: {:?}, disabling concolic execution", - self.stack, s.value, event - ); - self.disable = true; + (SymbolValue::Unknown, SymbolValue::Unknown) => { return None; } - } else { - trace!("No stack available for event: {:?}", event); - } - - let mut process_binary_op = || { - let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); - let mut stack_iter = stack.unwrap().last_n(2).unwrap(); - let true_lhs = stack_iter.next().unwrap(); - let true_rhs = stack_iter.next().unwrap(); - let (new_l, new_r) = match (lhs, rhs) { - (SymbolValue::Value(l), SymbolValue::Value(r)) => (l, r), - (SymbolValue::Value(l), SymbolValue::Unknown) => { - let new_r = Self::resolve_value(true_rhs); - (l, new_r) - } - (SymbolValue::Unknown, SymbolValue::Value(r)) => { - let new_l = Self::resolve_value(true_lhs); - (new_l, r) - } - (SymbolValue::Unknown, SymbolValue::Unknown) => { - return None; - } - }; - Some((new_l, new_r)) }; + Some((new_l, new_r)) + } + pub fn notify_event(&mut self, event: &TraceEvent, trace_state: &TraceState) -> Option { + if self.disable { + return None; + } + let stack = &trace_state.operand_stack; + // if self.stack.len() != stack.len() && stack.is_empty() { + // self.stack.clear(); + // } + if let TraceEvent::Effect(v) = event + && let Effect::ExecutionError(_) = v.as_ref() + { + self.stack.pop(); + } match event { TraceEvent::External(v) => { @@ -359,7 +347,7 @@ impl ConcolicState { } TraceEvent::OpenFrame { frame, gas_left: _ } => { trace!("Open frame: {:?}", frame); - trace!("Current stack: {:?}", stack.map(|s| &s.value)); + trace!("Current stack: {:?}", &trace_state.operand_stack); let param_count = frame.parameters.len(); if self.locals.is_empty() { let mut locals = if frame.locals_types.is_empty() { @@ -413,22 +401,30 @@ impl ConcolicState { return_: _, gas_left: _, } => { - trace!("Close frame. Current stack: {:?}", stack.map(|s| &s.value)); + trace!( + "Close frame. Current stack: {:?}", + &trace_state.operand_stack + ); self.locals.pop(); } - TraceEvent::BeforeInstruction { + TraceEvent::Instruction { type_parameters: _, pc, gas_left: _, instruction, - extra, } => { + let extra = self.pending_instruction_extra.take(); + if self.stack.len() != stack.len() { + warn!( + "stack: {:?}, stack from trace: {:?}, event: {:?}, disabling concolic execution", + self.stack, stack, event + ); + self.disable = true; + return None; + } trace!( "Before instruction at pc {}: {:?}, extra: {:?}. Current stack: {:?}", - pc, - instruction, - extra, - stack.map(|s| &s.value) + pc, instruction, extra, &trace_state.operand_stack ); match instruction { Bytecode::Pop @@ -500,7 +496,7 @@ impl ConcolicState { } } Bytecode::Add => { - if let Some((l, r)) = process_binary_op() { + if let Some((l, r)) = self.process_binary_op(stack) { // overflow check not implemented yet let sum = l + r; self.stack.push(SymbolValue::Value(sum)); @@ -509,7 +505,7 @@ impl ConcolicState { } } Bytecode::Sub => { - if let Some((l, r)) = process_binary_op() { + if let Some((l, r)) = self.process_binary_op(stack) { // overflow check not implemented yet let diff = l - r; self.stack.push(SymbolValue::Value(diff)); @@ -518,7 +514,7 @@ impl ConcolicState { } } Bytecode::Mul => { - if let Some((l, r)) = process_binary_op() { + if let Some((l, r)) = self.process_binary_op(stack) { // overflow check not implemented yet let prod = l * r; self.stack.push(SymbolValue::Value(prod)); @@ -527,7 +523,7 @@ impl ConcolicState { } } Bytecode::Div => { - if let Some((l, r)) = process_binary_op() { + if let Some((l, r)) = self.process_binary_op(stack) { // overflow check not implemented yet let quot = l / r; self.stack.push(SymbolValue::Value(quot)); @@ -536,7 +532,7 @@ impl ConcolicState { } } Bytecode::Mod => { - if let Some((l, r)) = process_binary_op() { + if let Some((l, r)) = self.process_binary_op(stack) { // overflow check not implemented yet let rem = l % r; self.stack.push(SymbolValue::Value(rem)); @@ -546,9 +542,7 @@ impl ConcolicState { } Bytecode::And | Bytecode::BitAnd => { let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); - let mut stack_iter = stack.unwrap().last_n(2).unwrap(); - let true_lhs = stack_iter.next().unwrap(); - let true_rhs = stack_iter.next().unwrap(); + let (true_lhs, true_rhs) = stack_top2(stack); let bit_width = value_bitwidth(true_lhs); let (true_l, true_r) = (value_to_u256(true_lhs), value_to_u256(true_rhs)); @@ -571,9 +565,7 @@ impl ConcolicState { } Bytecode::Or | Bytecode::BitOr => { let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); - let mut stack_iter = stack.unwrap().last_n(2).unwrap(); - let true_lhs = stack_iter.next().unwrap(); - let true_rhs = stack_iter.next().unwrap(); + let (true_lhs, true_rhs) = stack_top2(stack); let bit_width = value_bitwidth(true_lhs); let (true_l, true_r) = (value_to_u256(true_lhs), value_to_u256(true_rhs)); @@ -596,9 +588,7 @@ impl ConcolicState { } Bytecode::Xor => { let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); - let mut stack_iter = stack.unwrap().last_n(2).unwrap(); - let true_lhs = stack_iter.next().unwrap(); - let true_rhs = stack_iter.next().unwrap(); + let (true_lhs, true_rhs) = stack_top2(stack); let bit_width = value_bitwidth(true_lhs); let (true_l, true_r) = (value_to_u256(true_lhs), value_to_u256(true_rhs)); @@ -621,9 +611,7 @@ impl ConcolicState { } Bytecode::Shl => { let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); - let mut stack_iter = stack.unwrap().last_n(2).unwrap(); - let true_lhs = stack_iter.next().unwrap(); - let true_rhs = stack_iter.next().unwrap(); + let (true_lhs, true_rhs) = stack_top2(stack); let bit_width = value_bitwidth(true_lhs); let true_r = value_to_u256(true_rhs).unchecked_as_u32(); let threshold = Self::max_u_bits(bit_width); @@ -647,9 +635,7 @@ impl ConcolicState { } Bytecode::Shr => { let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); - let mut stack_iter = stack.unwrap().last_n(2).unwrap(); - let _true_lhs = stack_iter.next().unwrap(); - let true_rhs = stack_iter.next().unwrap(); + let (_true_lhs, true_rhs) = stack_top2(stack); let true_r = value_to_u256(true_rhs).unchecked_as_u32(); match (lhs, rhs) { @@ -672,9 +658,7 @@ impl ConcolicState { if let Some(v) = self.stack.pop() { match v { SymbolValue::Value(n) => { - let bit_width = value_bitwidth( - stack.unwrap().last_n(1).unwrap().next().unwrap(), - ); + let bit_width = value_bitwidth(stack_top1(stack)); let not_n = int_bvnot(&n, bit_width); self.stack.push(SymbolValue::Value(not_n)); } @@ -739,9 +723,7 @@ impl ConcolicState { } Bytecode::Eq => { let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); - let mut stack_iter = stack.unwrap().last_n(2).unwrap(); - let true_lhs = stack_iter.next().unwrap(); - let true_rhs = stack_iter.next().unwrap(); + let (true_lhs, true_rhs) = stack_top2(stack); let (new_l, new_r) = match (lhs, rhs) { (SymbolValue::Value(l), SymbolValue::Value(r)) => (l, r), (SymbolValue::Value(l), SymbolValue::Unknown) => { @@ -772,9 +754,7 @@ impl ConcolicState { } Bytecode::Neq => { let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); - let mut stack_iter = stack.unwrap().last_n(2).unwrap(); - let true_lhs = stack_iter.next().unwrap(); - let true_rhs = stack_iter.next().unwrap(); + let (true_lhs, true_rhs) = stack_top2(stack); let (new_l, new_r) = match (lhs, rhs) { (SymbolValue::Value(l), SymbolValue::Value(r)) => (l, r), (SymbolValue::Value(l), SymbolValue::Unknown) => { @@ -805,9 +785,7 @@ impl ConcolicState { } Bytecode::Lt => { let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); - let mut stack_iter = stack.unwrap().last_n(2).unwrap(); - let true_lhs = stack_iter.next().unwrap(); - let true_rhs = stack_iter.next().unwrap(); + let (true_lhs, true_rhs) = stack_top2(stack); let (new_l, new_r) = match (lhs, rhs) { (SymbolValue::Value(l), SymbolValue::Value(r)) => (l, r), (SymbolValue::Value(l), SymbolValue::Unknown) => { @@ -838,9 +816,7 @@ impl ConcolicState { } Bytecode::Le => { let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); - let mut stack_iter = stack.unwrap().last_n(2).unwrap(); - let true_lhs = stack_iter.next().unwrap(); - let true_rhs = stack_iter.next().unwrap(); + let (true_lhs, true_rhs) = stack_top2(stack); let (new_l, new_r) = match (lhs, rhs) { (SymbolValue::Value(l), SymbolValue::Value(r)) => (l, r), (SymbolValue::Value(l), SymbolValue::Unknown) => { @@ -871,9 +847,7 @@ impl ConcolicState { } Bytecode::Gt => { let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); - let mut stack_iter = stack.unwrap().last_n(2).unwrap(); - let true_lhs = stack_iter.next().unwrap(); - let true_rhs = stack_iter.next().unwrap(); + let (true_lhs, true_rhs) = stack_top2(stack); let (new_l, new_r) = match (lhs, rhs) { (SymbolValue::Value(l), SymbolValue::Value(r)) => (l, r), (SymbolValue::Value(l), SymbolValue::Unknown) => { @@ -904,9 +878,7 @@ impl ConcolicState { } Bytecode::Ge => { let (rhs, lhs) = (self.stack.pop().unwrap(), self.stack.pop().unwrap()); - let mut stack_iter = stack.unwrap().last_n(2).unwrap(); - let true_lhs = stack_iter.next().unwrap(); - let true_rhs = stack_iter.next().unwrap(); + let (true_lhs, true_rhs) = stack_top2(stack); let (new_l, new_r) = match (lhs, rhs) { (SymbolValue::Value(l), SymbolValue::Value(r)) => (l, r), (SymbolValue::Value(l), SymbolValue::Unknown) => { @@ -954,8 +926,8 @@ impl ConcolicState { } Bytecode::Pack(_) | Bytecode::PackGeneric(_) => { match extra.as_ref().unwrap() { - ExtraInstructionInformation::Pack(count) - | ExtraInstructionInformation::PackGeneric(count) => { + InstructionExtraInformation::Pack(count) + | InstructionExtraInformation::PackGeneric(count) => { for _ in 0..*count { self.stack.pop(); } @@ -967,8 +939,8 @@ impl ConcolicState { Bytecode::Unpack(_) | Bytecode::UnpackGeneric(_) => { self.stack.pop(); match extra.as_ref().unwrap() { - ExtraInstructionInformation::Unpack(count) - | ExtraInstructionInformation::UnpackGeneric(count) => { + InstructionExtraInformation::Unpack(count) + | InstructionExtraInformation::UnpackGeneric(count) => { for _ in 0..*count { self.stack.push(SymbolValue::Unknown); // represent each field as unknown } @@ -978,8 +950,8 @@ impl ConcolicState { } Bytecode::PackVariant(_) | Bytecode::PackVariantGeneric(_) => { match extra.as_ref().unwrap() { - ExtraInstructionInformation::PackVariant(count) - | ExtraInstructionInformation::PackVariantGeneric(count) => { + InstructionExtraInformation::PackVariant(count) + | InstructionExtraInformation::PackVariantGeneric(count) => { for _ in 0..*count { self.stack.pop(); } @@ -1001,8 +973,8 @@ impl ConcolicState { return None; } match extra.as_ref().unwrap() { - ExtraInstructionInformation::UnpackVariant(count) - | ExtraInstructionInformation::UnpackVariantGeneric(count) => { + InstructionExtraInformation::UnpackVariant(count) + | InstructionExtraInformation::UnpackVariantGeneric(count) => { for _ in 0..*count { self.stack.push(SymbolValue::Unknown); // represent each field as unknown } diff --git a/crates/movy-replay/src/tracer/fuzz.rs b/crates/movy-replay/src/tracer/fuzz.rs index 6a4b8d1..d70d8e2 100644 --- a/crates/movy-replay/src/tracer/fuzz.rs +++ b/crates/movy-replay/src/tracer/fuzz.rs @@ -1,22 +1,24 @@ use std::{borrow::Cow, collections::BTreeMap, marker::PhantomData}; -use color_eyre::eyre::{OptionExt, eyre}; +use color_eyre::eyre::eyre; use libafl::{executors::ExitKind, observers::StdMapObserver}; use libafl_bolts::tuples::{Handle, MatchName, MatchNameRef}; use log::{trace, warn}; use move_binary_format::file_format::Bytecode; use move_trace_format::{ - format::{Effect, TraceEvent}, - interface::Tracer, + format::{Effect, TraceEvent, TraceValue}, + interface::{Tracer, Writer}, }; -use move_vm_stack::Stack; -use move_vm_types::values::IntegerValue; use movy_types::{error::MovyError, input::FunctionIdent, oracle::OracleFinding}; -use crate::tracer::{ - concolic::ConcolicState, - op::{CastLog, CmpLog, CmpOp, Log, Magic, ShlLog}, - oracle::SuiGeneralOracle, +use crate::{ + event::InstructionExtraInformation, + tracer::{ + concolic::ConcolicState, + op::{CastLog, CmpLog, CmpOp, Log, Magic, ShlLog}, + oracle::SuiGeneralOracle, + trace::TraceState, + }, }; #[derive(Debug)] @@ -127,6 +129,7 @@ where { current_functions: Vec, coverage: CoverageTracer<'a, OT>, + trace_state: TraceState, state: &'s mut S, outcome: TraceOutcome, oracles: &'s mut O, @@ -147,6 +150,7 @@ where Self { current_functions: vec![], coverage: CoverageTracer::new(ob, ob_name), + trace_state: TraceState::new(), state, outcome: TraceOutcome::new(), oracles, @@ -158,37 +162,19 @@ where self.outcome } - fn bin_ops(stack: Option<&Stack>) -> Result<(Magic, Magic), MovyError> { - if let Some(stack) = stack { - let stack_len = stack.value.len(); - let rhs = stack - .value - .get(stack_len - 1) - .ok_or_else(|| eyre!("stack less than 2?!"))? - .copy_value()? - .value_as::()? - .into(); - let lhs = stack - .value - .get(stack_len - 2) - .ok_or_else(|| eyre!("stack less than 2?!"))? - .copy_value()? - .value_as::()? - .into(); - Ok((lhs, rhs)) - } else { - Err(eyre!("we need two values on top of stack but get none...").into()) + fn bin_ops(stack: &[TraceValue]) -> Result<(Magic, Magic), MovyError> { + if stack.len() < 2 { + return Err(eyre!("stack less than 2?!").into()); } + let lhs = Magic::try_from(&stack[stack.len() - 2])?; + let rhs = Magic::try_from(&stack[stack.len() - 1])?; + Ok((lhs, rhs)) } - pub fn notify_event( - &mut self, - event: &TraceEvent, - stack: Option<&move_vm_stack::Stack>, - ) -> Result<(), MovyError> { + fn apply_oracle_findings(&mut self, event: &TraceEvent) -> Result<(), MovyError> { let oracle_vulns = self.oracles.event( event, - stack, + &self.trace_state, &self.outcome.concolic, self.current_functions.last(), self.state, @@ -199,7 +185,118 @@ where for info in oracle_vulns { self.outcome.findings.push(info); } - let constraint = self.outcome.concolic.notify_event(event, stack); + Ok(()) + } + + pub fn handle_before_instruction( + &mut self, + ctx: &TraceEvent, + extra: Option<&InstructionExtraInformation>, + ) -> Result<(), MovyError> { + let TraceEvent::Instruction { + pc, instruction, .. + } = ctx + else { + return Ok(()); + }; + + self.apply_oracle_findings(ctx)?; + let constraint = + self.outcome + .concolic + .handle_before_instruction(ctx, extra, &self.trace_state); + + self.coverage.may_do_coverage(*pc); + match instruction { + Bytecode::BrFalse(_) + | Bytecode::BrTrue(_) + | Bytecode::Branch(_) + | Bytecode::VariantSwitch(_) => { + self.coverage.will_branch(); + } + Bytecode::Lt + | Bytecode::Le + | Bytecode::Ge + | Bytecode::Gt + | Bytecode::Neq + | Bytecode::Eq => match Self::bin_ops(&self.trace_state.operand_stack) { + Ok((lhs, rhs)) => { + if let Some(current_function) = self.current_functions.first() { + let op = CmpOp::try_from(instruction)?; + self.outcome + .logs + .entry(current_function.clone()) + .or_default() + .push(Log::CmpLog(CmpLog { + lhs, + rhs, + op, + constraint, + })); + } else { + warn!("Fail to track cmplog because of no current function") + } + } + Err(e) => { + if !matches!(instruction, Bytecode::Eq) && !matches!(instruction, Bytecode::Neq) + { + warn!("Can not track cmplog due to {}", e); + } + } + }, + Bytecode::Shl => match Self::bin_ops(&self.trace_state.operand_stack) { + Ok((lhs, rhs)) => { + if let Some(current_function) = self.current_functions.first() { + self.outcome + .logs + .entry(current_function.clone()) + .or_default() + .push(Log::ShlLog(ShlLog { + lhs, + rhs, + constraint, + })); + } else { + warn!("Fail to track cmplog because of no current function") + } + } + Err(e) => { + if !matches!(instruction, Bytecode::Eq) && !matches!(instruction, Bytecode::Neq) + { + warn!("Can not track cmplog due to {}", e); + } + } + }, + Bytecode::CastU8 + | Bytecode::CastU16 + | Bytecode::CastU32 + | Bytecode::CastU64 + | Bytecode::CastU128 => { + if let Some(lhs) = self.trace_state.operand_stack.last() { + let lhs: Magic = Magic::try_from(lhs)?; + if let Some(current_function) = self.current_functions.first() { + self.outcome + .logs + .entry(current_function.clone()) + .or_default() + .push(Log::CastLog(CastLog { lhs, constraint })); + } else { + warn!("Fail to track castlog because of no current function") + } + } else { + warn!("Can not track castlog due to stack empty"); + } + } + _ => {} + } + Ok(()) + } + + pub fn notify_event(&mut self, event: &TraceEvent) -> Result<(), MovyError> { + if !matches!(event, TraceEvent::Instruction { .. }) { + self.apply_oracle_findings(event)?; + let _ = self.outcome.concolic.notify_event(event, &self.trace_state); + } trace!("Tracing event: {:?}", event); match event { TraceEvent::OpenFrame { frame, gas_left: _ } => { @@ -225,107 +322,6 @@ where self.coverage.call_end_package(); self.current_functions.pop(); } - TraceEvent::BeforeInstruction { - type_parameters: _, - pc, - gas_left: _, - instruction, - extra: _, - } => { - // if let Some(metrics) = self.state.eval_metrics_mut() { - // if let Some(current) = self.current_functions.last() { - // metrics.on_pc(¤t.0, ¤t.1, *pc); - // } else { - // warn!("no current function when before instruction at {}", pc); - // } - // } - self.coverage.may_do_coverage(*pc); - match instruction { - Bytecode::BrFalse(_) - | Bytecode::BrTrue(_) - | Bytecode::Branch(_) - | Bytecode::VariantSwitch(_) => { - self.coverage.will_branch(); - } - Bytecode::Lt - | Bytecode::Le - | Bytecode::Ge - | Bytecode::Gt - | Bytecode::Neq - | Bytecode::Eq => match Self::bin_ops(stack) { - Ok((lhs, rhs)) => { - if let Some(current_function) = self.current_functions.first() { - let op = CmpOp::try_from(instruction)?; - self.outcome - .logs - .entry(current_function.clone()) - .or_default() - .push(Log::CmpLog(CmpLog { - lhs, - rhs, - op, - constraint, - })); - } else { - warn!("Fail to track cmplog because of no current function") - } - } - Err(e) => { - if !matches!(instruction, Bytecode::Eq) - && !matches!(instruction, Bytecode::Neq) - { - warn!("Can not track cmplog due to {}", e); - } - } - }, - Bytecode::Shl => match Self::bin_ops(stack) { - Ok((lhs, rhs)) => { - if let Some(current_function) = self.current_functions.first() { - self.outcome - .logs - .entry(current_function.clone()) - .or_default() - .push(Log::ShlLog(ShlLog { - lhs, - rhs, - constraint, - })); - } else { - warn!("Fail to track cmplog because of no current function") - } - } - Err(e) => { - if !matches!(instruction, Bytecode::Eq) - && !matches!(instruction, Bytecode::Neq) - { - warn!("Can not track cmplog due to {}", e); - } - } - }, - Bytecode::CastU8 - | Bytecode::CastU16 - | Bytecode::CastU32 - | Bytecode::CastU64 - | Bytecode::CastU128 => { - if let Some(Some(lhs)) = stack.map(|s| s.value.last()) { - let lhs: Magic = lhs.copy_value()?.value_as::()?.into(); - if let Some(current_function) = self.current_functions.first() { - self.outcome - .logs - .entry(current_function.clone()) - .or_default() - .push(Log::CastLog(CastLog { lhs, constraint })); - } else { - warn!("Fail to track castlog because of no current function") - } - } else { - warn!("Can not track castlog due to stack empty"); - } - } - - _ => {} - } - } TraceEvent::Effect(e) => { if let Effect::ExecutionError(e) = e.as_ref() && e.contains("!! TRACING ERROR !!") @@ -340,19 +336,23 @@ where } } -impl<'a, 's, S, O, T, OT> Tracer for SuiFuzzTracer<'a, 's, S, O, T, OT> +impl<'a, 's, S, O, T, OT> crate::event::TraceNotifier for SuiFuzzTracer<'a, 's, S, O, T, OT> where O: SuiGeneralOracle, OT: MatchNameRef + MatchName, { - fn notify( + fn notify(&mut self, event: &TraceEvent, writer: &mut Writer<'_>) { + let _ = writer; + self.trace_state.notify_event(event); + } + fn notify_event(&mut self, event: &TraceEvent) -> Result<(), MovyError> { + SuiFuzzTracer::notify_event(self, event) + } + fn handle_before_instruction( &mut self, - event: &TraceEvent, - _writer: &mut move_trace_format::interface::Writer<'_>, - stack: Option<&move_vm_stack::Stack>, - ) { - if let Err(e) = self.notify_event(event, stack) { - warn!("Error during tracing: {}", e); - } + ctx: &TraceEvent, + extra: Option<&InstructionExtraInformation>, + ) -> Result<(), MovyError> { + SuiFuzzTracer::handle_before_instruction(self, ctx, extra) } } diff --git a/crates/movy-replay/src/tracer/mod.rs b/crates/movy-replay/src/tracer/mod.rs index 1cb5e43..1e47087 100644 --- a/crates/movy-replay/src/tracer/mod.rs +++ b/crates/movy-replay/src/tracer/mod.rs @@ -4,8 +4,8 @@ pub mod concolic; pub mod fuzz; pub mod op; pub mod oracle; +pub mod trace; pub mod tree; - #[derive(Default)] pub struct NopTracer; @@ -13,9 +13,9 @@ impl Tracer for NopTracer { fn notify( &mut self, _event: &move_trace_format::format::TraceEvent, - _writer: &mut move_trace_format::interface::Writer<'_>, - _stack: Option<&move_vm_stack::Stack>, - ) { + _writer: move_trace_format::interface::Writer<'_>, + ) -> bool { + true } } @@ -32,12 +32,11 @@ where fn notify( &mut self, event: &move_trace_format::format::TraceEvent, - writer: &mut move_trace_format::interface::Writer<'_>, - stack: Option<&move_vm_stack::Stack>, - ) { + writer: move_trace_format::interface::Writer<'_>, + ) -> bool { match self { - Self::T1(t) => t.notify(event, writer, stack), - Self::T2(t) => t.notify(event, writer, stack), + Self::T1(t) => t.notify(event, writer), + Self::T2(t) => t.notify(event, writer), } } } @@ -62,11 +61,12 @@ where fn notify( &mut self, event: &move_trace_format::format::TraceEvent, - writer: &mut move_trace_format::interface::Writer<'_>, - stack: Option<&move_vm_stack::Stack>, - ) { + writer: move_trace_format::interface::Writer<'_>, + ) -> bool { if let Some(tracer) = &mut self.tracer { - tracer.notify(event, writer, stack); + tracer.notify(event, writer) + } else { + true } } } @@ -84,10 +84,8 @@ where fn notify( &mut self, event: &move_trace_format::format::TraceEvent, - writer: &mut move_trace_format::interface::Writer<'_>, - stack: Option<&move_vm_stack::Stack>, - ) { - self.t1.notify(event, writer, stack); - self.t2.notify(event, writer, stack); + writer: move_trace_format::interface::Writer<'_>, + ) -> bool { + self.t1.notify(event, writer) } } diff --git a/crates/movy-replay/src/tracer/op.rs b/crates/movy-replay/src/tracer/op.rs index db01123..5799f1b 100644 --- a/crates/movy-replay/src/tracer/op.rs +++ b/crates/movy-replay/src/tracer/op.rs @@ -3,6 +3,10 @@ use std::fmt::Display; use alloy_primitives::U256; use color_eyre::eyre::eyre; use move_binary_format::file_format::Bytecode; +use move_trace_format::{ + format::TraceValue, + value::{SerializableMoveValue, SimplifiedMoveStruct}, +}; use move_vm_types::values::IntegerValue; use movy_types::error::MovyError; use serde::{Deserialize, Serialize}; @@ -45,6 +49,40 @@ impl From for Magic { } } +impl TryFrom<&SerializableMoveValue> for Magic { + type Error = MovyError; + + fn try_from(value: &SerializableMoveValue) -> Result { + match value { + SerializableMoveValue::Bool(v) => Ok(Self::U8(if *v { 1 } else { 0 })), + SerializableMoveValue::U8(v) => Ok(Self::U8(*v)), + SerializableMoveValue::U16(v) => Ok(Self::U16(*v)), + SerializableMoveValue::U32(v) => Ok(Self::U32(*v)), + SerializableMoveValue::U64(v) => Ok(Self::U64(*v)), + SerializableMoveValue::U128(v) => Ok(Self::U128(*v)), + SerializableMoveValue::U256(v) => Ok(Self::U256(U256::from_be_bytes(v.to_be_bytes()))), + SerializableMoveValue::Address(bytes) => Ok(Self::Bytes(bytes.to_vec())), + SerializableMoveValue::Struct(data) => { + // TODO: more generic way to serialize struct into bytes + let SimplifiedMoveStruct { type_, .. } = data; + let mut bytes = type_.address.to_vec(); + bytes.extend_from_slice(type_.module.as_bytes()); + bytes.extend_from_slice(type_.name.as_bytes()); + Ok(Self::Bytes(bytes)) + } + _ => Err(eyre!("TraceValue is not an integer {:?}", value).into()), + } + } +} + +impl TryFrom<&TraceValue> for Magic { + type Error = MovyError; + + fn try_from(value: &TraceValue) -> Result { + Magic::try_from(value.snapshot()) + } +} + #[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone, Copy)] pub enum CmpOp { LT, diff --git a/crates/movy-replay/src/tracer/oracle.rs b/crates/movy-replay/src/tracer/oracle.rs index 29fc3c0..27fdfe5 100644 --- a/crates/movy-replay/src/tracer/oracle.rs +++ b/crates/movy-replay/src/tracer/oracle.rs @@ -1,5 +1,4 @@ use move_trace_format::format::TraceEvent; -use move_vm_stack::Stack; use movy_types::{ error::MovyError, input::{FunctionIdent, MoveSequence}, @@ -7,7 +6,7 @@ use movy_types::{ }; use sui_types::effects::TransactionEffects; -use crate::tracer::concolic::ConcolicState; +use crate::tracer::{concolic::ConcolicState, trace::TraceState}; pub trait SuiGeneralOracle { fn pre_execution( @@ -20,7 +19,7 @@ pub trait SuiGeneralOracle { fn event( &mut self, event: &TraceEvent, - stack: Option<&Stack>, + trace_state: &TraceState, symbol_stack: &ConcolicState, current_function: Option<&FunctionIdent>, state: &mut S, @@ -47,7 +46,7 @@ impl SuiGeneralOracle for () { fn event( &mut self, _event: &TraceEvent, - _stack: Option<&Stack>, + _trace_state: &TraceState, _symbol_stack: &ConcolicState, _current_function: Option<&movy_types::input::FunctionIdent>, _state: &mut S, @@ -83,18 +82,24 @@ where fn event( &mut self, event: &TraceEvent, - stack: Option<&Stack>, + trace_state: &TraceState, symbol_stack: &ConcolicState, current_function: Option<&movy_types::input::FunctionIdent>, state: &mut S, ) -> Result, MovyError> { Ok(self .0 - .event(event, stack, symbol_stack, current_function.clone(), state)? + .event( + event, + trace_state, + symbol_stack, + current_function.clone(), + state, + )? .into_iter() .chain( self.1 - .event(event, stack, symbol_stack, current_function, state)? + .event(event, trace_state, symbol_stack, current_function, state)? .into_iter(), ) .collect()) @@ -145,7 +150,7 @@ where fn event( &mut self, event: &TraceEvent, - stack: Option<&Stack>, + trace_state: &TraceState, symbol_stack: &ConcolicState, current_function: Option<&FunctionIdent>, state: &mut S, @@ -154,7 +159,7 @@ where return Ok(vec![]); } self.oracle - .event(event, stack, symbol_stack, current_function, state) + .event(event, trace_state, symbol_stack, current_function, state) } fn done_execution( diff --git a/crates/movy-replay/src/tracer/trace.rs b/crates/movy-replay/src/tracer/trace.rs new file mode 100644 index 0000000..210ced6 --- /dev/null +++ b/crates/movy-replay/src/tracer/trace.rs @@ -0,0 +1,163 @@ +// Copyright (c) The Move Contributors +// SPDX-License-Identifier: Apache-2.0 + +//! This module contains the implementation of the memory tracer. The memory tracer is a tracer +//! that takes a stream of trace events, and uses these events to create a snapshot of the memory +//! state (operand stack, locals, and globals) at each point in time during execution. +//! +//! The memory tracer then emits `External` events with the current VM state for every instruction, +//! and open/close frame event that is has built up. +//! +//! The memory tracer is useful for debugging, and as an example of how to build up this +//! state for more advanced analysis and also using the custom tracing trait. +use core::fmt; +use move_trace_format::{ + format::{DataLoad, Effect, Location, Read, TraceEvent, TraceIndex, TraceValue, Write}, + interface::{Tracer, Writer}, + value::SerializableMoveValue, +}; +use std::collections::BTreeMap; + +#[derive(Debug, Clone)] +pub struct TraceState { + // Tracks "global memory" state (i.e., references out in to global memory/references returned + // from native functions). + pub loaded_state: BTreeMap, + // The current state (i.e., values) of the VM's operand stack. + pub operand_stack: Vec, + // The current call stack indexed by frame id. Maps from the frame id to the current state of + // the frame's locals. The bool indicates if the frame is native or not. + pub call_stack: BTreeMap, bool)>, +} + +impl TraceState { + pub fn new() -> Self { + Self { + loaded_state: BTreeMap::new(), + operand_stack: vec![], + call_stack: BTreeMap::new(), + } + } + + pub fn notify_event(&mut self, event: &TraceEvent) { + self.apply_event(event); + } + + /// Apply an event to the state machine and update the locals state accordingly. + fn apply_event(&mut self, event: &TraceEvent) { + match event { + TraceEvent::OpenFrame { frame, .. } => { + let mut locals = BTreeMap::new(); + for (i, p) in frame.parameters.iter().enumerate() { + // NB: parameters are passed directly, so we just pop to make sure they aren't also + // left on the operand stack. For the initial call, these pops may (should) fail, but that + // is fine as we already have the values in the parameter list. + self.operand_stack.pop(); + locals.insert(i, p.clone()); + } + + self.call_stack + .insert(frame.frame_id, (locals, frame.is_native)); + } + TraceEvent::CloseFrame { .. } => { + self.call_stack + .pop_last() + .expect("Unbalanced call stack in memory tracer -- this should never happen"); + } + TraceEvent::Effect(ef) => match &**ef { + Effect::ExecutionError(_) => (), + Effect::Push(value) => { + self.operand_stack.push(value.clone()); + } + Effect::Pop(_) => { + self.operand_stack.pop().expect( + "Tried to pop off the empty operand stack -- this should never happen", + ); + } + Effect::Read(Read { + location, + root_value_read: _, + moved, + }) => { + if *moved { + match location { + Location::Local(frame_idx, idx) => { + let frame = self.call_stack.get_mut(frame_idx).unwrap(); + frame.0.remove(idx); + } + Location::Indexed(..) => { + panic!("Cannot move from indexed location"); + } + Location::Global(..) => { + panic!("Cannot move from global location"); + } + } + } + } + Effect::Write(Write { + location, + root_value_after_write: value_written, + }) => match location { + Location::Local(frame_idx, idx) => { + let frame = self.call_stack.get_mut(frame_idx).unwrap(); + frame.0.insert(*idx, value_written.clone()); + } + Location::Indexed(location, _idx) => { + let val = self.get_mut_location(location); + *val = value_written.clone().snapshot().clone(); + } + Location::Global(id) => { + let val = self.loaded_state.get_mut(id).unwrap(); + *val = value_written.snapshot().clone(); + } + }, + Effect::DataLoad(DataLoad { + location, snapshot, .. + }) => { + let Location::Global(id) = location else { + unreachable!("Dataload by reference must have a global location"); + }; + self.loaded_state.insert(*id, snapshot.clone()); + } + }, + // External events are treated opaquely unless they define a trace boundary. + TraceEvent::External(external) => { + if external.as_str().is_some_and(|s| s == "MoveCallStart") { + // New trace boundary. Reset reconstructed runtime state to avoid + // leaking values across calls/txns. + self.loaded_state.clear(); + self.operand_stack.clear(); + self.call_stack.clear(); + } + } + // Instructions + _ => (), + } + } + + /// Given a reference "location" return a mutable reference to the value it points to so that + /// it can be updated. + fn get_mut_location(&mut self, location: &Location) -> &mut SerializableMoveValue { + match location { + Location::Local(frame_idx, idx) => { + let frame = self.call_stack.get_mut(frame_idx).unwrap(); + frame.0.get_mut(idx).unwrap().value_mut().unwrap() + } + Location::Indexed(loc, _offset) => self.get_mut_location(loc), + Location::Global(id) => self.loaded_state.get_mut(id).unwrap(), + } + } +} + +impl Default for TraceState { + fn default() -> Self { + Self::new() + } +} + +impl Tracer for TraceState { + fn notify(&mut self, event: &TraceEvent, _write: Writer<'_>) -> bool { + self.notify_event(event); + true + } +} diff --git a/crates/movy-replay/src/tracer/tree.rs b/crates/movy-replay/src/tracer/tree.rs index 93f1311..bb9c450 100644 --- a/crates/movy-replay/src/tracer/tree.rs +++ b/crates/movy-replay/src/tracer/tree.rs @@ -6,7 +6,6 @@ use move_trace_format::{ format::{Frame, TraceEvent, TraceValue}, interface::Tracer, }; -use move_vm_stack::Stack; #[derive(Debug, Clone)] pub struct FrameTraced { @@ -131,9 +130,8 @@ impl Tracer for TreeTracer { fn notify( &mut self, event: &move_trace_format::format::TraceEvent, - _writer: &mut move_trace_format::interface::Writer<'_>, - _stack: Option<&Stack>, - ) { + _writer: move_trace_format::interface::Writer<'_>, + ) -> bool { let inner = &mut self.inner; inner.evs.push(event.clone()); match event { @@ -163,5 +161,6 @@ impl Tracer for TreeTracer { } _ => {} } + true } } diff --git a/crates/movy-sui/src/compile.rs b/crates/movy-sui/src/compile.rs index 7e59d3d..83af073 100644 --- a/crates/movy-sui/src/compile.rs +++ b/crates/movy-sui/src/compile.rs @@ -5,43 +5,78 @@ use itertools::Itertools; use log::{debug, trace}; use move_binary_format::CompiledModule; use move_compiler::editions::Flavor; -use move_package::{ - resolution::resolution_graph::ResolvedGraph, source_package::layout::SourcePackageLayout, -}; use movy_types::{ abi::{MOVY_INIT, MOVY_ORACLE, MovePackageAbi}, error::MovyError, input::MoveAddress, }; use serde::{Deserialize, Serialize}; -use sui_move_build::{BuildConfig, CompiledPackage, build_from_resolution_graph, implicit_deps}; -use sui_package_management::{PublishedAtError, system_package_versions::latest_system_packages}; +use sui_move_build::{BuildConfig, CompiledPackage}; use sui_types::{base_types::ObjectID, digests::get_mainnet_chain_identifier}; pub fn build_package_resolved( folder: &Path, test_mode: bool, -) -> Result<(CompiledPackage, ResolvedGraph), MovyError> { - let mut cfg = move_package::BuildConfig::default(); - cfg.implicit_dependencies = implicit_deps(latest_system_packages()); - cfg.default_flavor = Some(Flavor::Sui); - cfg.lock_file = Some(folder.join(SourcePackageLayout::Lock.path())); - cfg.test_mode = test_mode; - cfg.silence_warnings = true; - - let cfg = BuildConfig { - config: cfg, - run_bytecode_verifier: false, - print_diags_to_stderr: false, - chain_id: Some(get_mainnet_chain_identifier().to_string()), - }; +) -> Result<(CompiledPackage, Vec), MovyError> { + let mut cfg = BuildConfig::new_for_testing(); + cfg.config.default_flavor = Some(Flavor::Sui); + cfg.config.test_mode = test_mode; + cfg.config.silence_warnings = true; + cfg.run_bytecode_verifier = false; + cfg.print_diags_to_stderr = false; + cfg.environment.id = get_mainnet_chain_identifier().to_string(); + cfg.environment.name = "mainnet".to_string(); trace!("Build config is {:?}", &cfg.config); - // cfg.compile_package(path, writer) // reference - let chain_id = cfg.chain_id.clone(); - let resolution_graph = cfg.resolution_graph(folder, chain_id.clone())?; - let artifacts = build_from_resolution_graph(resolution_graph.clone(), false, false, chain_id)?; - Ok((artifacts, resolution_graph)) + let artifacts = cfg.build(folder)?; + let mut package_paths = BTreeSet::new(); + for unit in artifacts.package.all_compiled_units_with_source() { + let mut current = unit.source_path.parent(); + while let Some(path) = current { + if path.join("Move.toml").exists() { + package_paths.insert(path.to_path_buf()); + break; + } + current = path.parent(); + } + } + if package_paths.is_empty() { + package_paths.insert(folder.to_path_buf()); + } + + Ok((artifacts, package_paths.into_iter().collect())) +} + +mod compiled_module_serde { + use move_binary_format::CompiledModule; + use serde::{Deserialize, Deserializer, Serialize, Serializer, de::Error as DeError}; + + pub fn serialize(modules: &[CompiledModule], serializer: S) -> Result + where + S: Serializer, + { + let mut raw = Vec::with_capacity(modules.len()); + for module in modules { + let mut bytes = Vec::new(); + module + .serialize_with_version(module.version, &mut bytes) + .map_err(serde::ser::Error::custom)?; + raw.push(bytes); + } + raw.serialize(serializer) + } + + pub fn deserialize<'de, D>(deserializer: D) -> Result, D::Error> + where + D: Deserializer<'de>, + { + let raw = Vec::>::deserialize(deserializer)?; + raw.into_iter() + .map(|bytes| { + CompiledModule::deserialize_with_defaults(&bytes).map_err(D::Error::custom) + }) + .collect() + } } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -49,6 +84,7 @@ pub struct SuiCompiledPackage { pub package_id: ObjectID, pub package_name: String, pub package_names: Vec, + #[serde(with = "compiled_module_serde")] modules: Vec, dependencies: Vec, published_dependencies: Vec, @@ -144,17 +180,9 @@ impl SuiCompiledPackage { test_mode: bool, ) -> Result { let (artifacts, _) = build_package_resolved(folder, test_mode)?; - debug!( - "artifacts dep: {:?}", - artifacts.dependency_graph.topological_order() - ); debug!("published: {:?}", artifacts.dependency_ids.published); - let root_address = match artifacts.published_at { - Ok(address) => address, - Err(PublishedAtError::NotPresent) => ObjectID::ZERO, - _ => return Err(eyre!("Invalid published-at: {:?}", &artifacts.published_at).into()), - }; + let root_address = artifacts.published_at.unwrap_or(ObjectID::ZERO); debug!("Root address is {}", root_address); let package_name = artifacts .package @@ -261,7 +289,7 @@ mod test { path::PathBuf, }; - use crate::compile::{SuiCompiledPackage, build_package_resolved}; + use crate::compile::SuiCompiledPackage; #[test] fn test_build_simple() {