diff --git a/Cargo.lock b/Cargo.lock index e591bf43..a2c701f3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -204,7 +204,7 @@ dependencies = [ "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -382,9 +382,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" [[package]] name = "arbitrary" @@ -773,7 +773,7 @@ dependencies = [ "futures-util", "pin-project", "rustc_version", - "tokio 1.40.0", + "tokio 1.44.1", ] [[package]] @@ -892,9 +892,9 @@ dependencies = [ [[package]] name = "avif-serialize" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876c75a42f6364451a033496a14c44bffe41f5f4a8236f697391f11024e596d2" +checksum = "98922d6a4cfbcb08820c69d8eeccc05bb1f29bfa06b4f5b1dbfe9a868bd7608e" dependencies = [ "arrayvec 0.7.6", ] @@ -3387,6 +3387,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", +] + [[package]] name = "gif" version = "0.13.1" @@ -3604,7 +3616,7 @@ dependencies = [ "backtrace", "chrono", "curve25519-dalek 4.1.3", - "dirs 5.0.1", + "dirs 6.0.0", "ed25519-dalek 2.1.1", "eframe", "egui", @@ -3636,12 +3648,11 @@ dependencies = [ "log", "nokhwa 0.10.5", "nokhwa 0.10.7", - "openssl-sys", "parking_lot 0.12.3", "pin-project", "qrcode", "qrcodegen", - "rand 0.8.5", + "rand 0.9.0", "rfd", "rkv", "rqrr", @@ -3655,7 +3666,7 @@ dependencies = [ "tls-api", "tls-api-native-tls", "tokio 0.2.25", - "tokio 1.40.0", + "tokio 1.44.1", "tokio-util 0.2.0", "toml 0.8.19", "tor-config", @@ -4154,7 +4165,7 @@ dependencies = [ "http 0.2.12", "indexmap 2.6.0", "slab", - "tokio 1.40.0", + "tokio 1.44.1", "tokio-util 0.7.12", "tracing", ] @@ -4431,7 +4442,7 @@ dependencies = [ "itoa 1.0.11", "pin-project-lite 0.2.14", "socket2 0.5.7", - "tokio 1.40.0", + "tokio 1.44.1", "tower-service", "tracing", "want", @@ -4505,7 +4516,7 @@ dependencies = [ "bytes 1.7.2", "hyper 0.14.31", "native-tls", - "tokio 1.40.0", + "tokio 1.44.1", "tokio-native-tls", ] @@ -4641,9 +4652,9 @@ dependencies = [ [[package]] name = "image" -version = "0.25.2" +version = "0.25.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" +checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a" dependencies = [ "bytemuck", "byteorder-lite", @@ -4664,9 +4675,9 @@ dependencies = [ [[package]] name = "image-webp" -version = "0.1.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79afb8cbee2ef20f59ccd477a218c12a93943d075b492015ecb1bb81f8ee904" +checksum = "b77d01e822461baa8409e156015a1d91735549f0f2c17691bd2d996bef238f7f" dependencies = [ "byteorder-lite", "quick-error", @@ -4765,7 +4776,7 @@ dependencies = [ "futures-core", "libc", "recvmsg", - "tokio 1.40.0", + "tokio 1.44.1", "widestring", "windows-sys 0.52.0", ] @@ -5023,9 +5034,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "libc" -version = "0.2.159" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libfuzzer-sys" @@ -5183,9 +5194,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" dependencies = [ "serde", ] @@ -5288,6 +5299,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" dependencies = [ "cfg-if 1.0.0", + "rayon", ] [[package]] @@ -6617,18 +6629,18 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project" -version = "1.1.6" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.6" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.37", @@ -6763,7 +6775,7 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -6971,6 +6983,12 @@ dependencies = [ "proc-macro2 1.0.93", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "radium" version = "0.7.0" @@ -7033,6 +7051,17 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "zerocopy 0.8.24", +] + [[package]] name = "rand_chacha" version = "0.1.1" @@ -7063,6 +7092,16 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", +] + [[package]] name = "rand_core" version = "0.3.1" @@ -7096,6 +7135,15 @@ dependencies = [ "getrandom 0.2.15", ] +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.2", +] + [[package]] name = "rand_hc" version = "0.1.0" @@ -7225,15 +7273,16 @@ dependencies = [ [[package]] name = "ravif" -version = "0.11.10" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f0bfd976333248de2078d350bfdf182ff96e168a24d23d2436cef320dd4bdd" +checksum = "2413fd96bd0ea5cdeeb37eaf446a22e6ed7b981d792828721e74ded1980a45c6" dependencies = [ "avif-serialize", "imgref", "loop9", "quick-error", "rav1e", + "rayon", "rgb", ] @@ -7961,9 +8010,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] @@ -7989,9 +8038,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.37", @@ -8009,9 +8058,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa 1.0.11", "memchr", @@ -8841,7 +8890,7 @@ dependencies = [ "pem", "tempfile", "thiserror 2.0.11", - "tokio 1.40.0", + "tokio 1.44.1", ] [[package]] @@ -8854,7 +8903,7 @@ dependencies = [ "native-tls", "thiserror 2.0.11", "tls-api", - "tokio 1.40.0", + "tokio 1.44.1", ] [[package]] @@ -8883,9 +8932,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.40.0" +version = "1.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" dependencies = [ "backtrace", "bytes 1.7.2", @@ -8895,7 +8944,7 @@ dependencies = [ "pin-project-lite 0.2.14", "signal-hook-registry", "socket2 0.5.7", - "tokio-macros 2.4.0", + "tokio-macros 2.5.0", "windows-sys 0.52.0", ] @@ -8922,9 +8971,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.37", @@ -8938,7 +8987,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ "native-tls", - "tokio 1.40.0", + "tokio 1.44.1", ] [[package]] @@ -9027,7 +9076,7 @@ dependencies = [ "futures-io", "futures-sink", "pin-project-lite 0.2.14", - "tokio 1.40.0", + "tokio 1.44.1", ] [[package]] @@ -9962,7 +10011,7 @@ dependencies = [ "static_assertions", "subtle", "thiserror 2.0.11", - "tokio 1.40.0", + "tokio 1.44.1", "tokio-util 0.7.12", "tor-async-utils", "tor-basic-utils", @@ -10058,7 +10107,7 @@ dependencies = [ "paste", "pin-project", "thiserror 2.0.11", - "tokio 1.40.0", + "tokio 1.44.1", "tokio-util 0.7.12", "tor-error", "tor-general-addr", @@ -10588,6 +10637,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasix" version = "0.12.21" @@ -11402,6 +11460,15 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.9.0", +] + [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -11664,7 +11731,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" +dependencies = [ + "zerocopy-derive 0.8.24", ] [[package]] @@ -11678,6 +11754,17 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "zerocopy-derive" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +dependencies = [ + "proc-macro2 1.0.93", + "quote 1.0.37", + "syn 2.0.96", +] + [[package]] name = "zeroize" version = "1.8.1" diff --git a/Cargo.toml b/Cargo.toml index d2b64730..570d96d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "grim" version = "0.2.3" -authors = ["Ardocrat "] +authors = ["Ardocrat "] description = "Cross-platform GUI for Grin with focus on usability and availability to be used by anyone, anywhere." license = "Apache-2.0" -repository = "https://github.com/ardocrat/grim" +repository = "https://gri.mw/code/GUI/grim" keywords = [ "crypto", "grin", "mimblewimble" ] edition = "2021" @@ -25,10 +25,9 @@ codegen-units = 1 panic = "abort" [dependencies] -log = "0.4.22" +log = "0.4.27" ## node -openssl-sys = { version = "0.9.103", features = ["vendored"] } grin_api = "5.3.3" grin_chain = "5.3.3" grin_config = "5.3.3" @@ -51,12 +50,12 @@ egui_extras = { version = "0.29.1", features = ["image", "svg"] } rust-i18n = "2.3.1" ## other -anyhow = "1.0.89" -pin-project = "1.1.6" +anyhow = "1.0.97" +pin-project = "1.1.10" backtrace = "0.3.74" thiserror = "1.0.64" futures = "0.3.31" -dirs = "5.0.1" +dirs = "6.0.0" sys-locale = "0.3.1" chrono = "0.4.38" parking_lot = "0.12.3" @@ -65,11 +64,11 @@ toml = "0.8.19" serde = "1.0.210" local-ip-address = "0.6.3" url = "2.5.2" -rand = "0.8.5" -serde_derive = "1.0.210" -serde_json = "1.0.128" -tokio = { version = "1.40.0", features = ["full"] } -image = "0.25.2" +rand = "0.9.0" +serde_derive = "1.0.219" +serde_json = "1.0.140" +tokio = { version = "1.44.1", features = ["full"] } +image = "0.25.6" rqrr = "0.8.0" qrcodegen = "1.8.0" qrcode = "0.14.1" @@ -91,7 +90,7 @@ tor-error = "0.28.0" sha2 = "0.10.8" ed25519-dalek = "2.1.1" curve25519-dalek = "4.1.3" -hyper = { version = "0.14.30", features = ["full"] } +hyper = { version = "0.14.31", features = ["full"] } hyper-tls = "0.5.0" tls-api = "0.12.0" tls-api-native-tls = "0.12.1" diff --git a/src/node/config.rs b/src/node/config.rs index 840913b0..a1184a15 100644 --- a/src/node/config.rs +++ b/src/node/config.rs @@ -190,13 +190,13 @@ impl NodeConfig { fn setup_default_ports(config: &mut ConfigMembers) { let (api, p2p) = match config.server.chain_type { ChainTypes::Mainnet => { - let api = rand::thread_rng().gen_range(30000..33000); - let p2p = rand::thread_rng().gen_range(33000..37000); + let api = rand::rng().random_range(30000..33000); + let p2p = rand::rng().random_range(33000..37000); (api, p2p) }, _ => { - let api = rand::thread_rng().gen_range(40000..43000); - let p2p = rand::thread_rng().gen_range(43000..47000); + let api = rand::rng().random_range(40000..43000); + let p2p = rand::rng().random_range(43000..47000); (api, p2p) } }; diff --git a/src/node/mine_block.rs b/src/node/mine_block.rs index f7c46a4d..aeb1b27b 100644 --- a/src/node/mine_block.rs +++ b/src/node/mine_block.rs @@ -16,7 +16,7 @@ //! them into a block and returns it. use chrono::prelude::{DateTime, Utc}; -use rand::{thread_rng, Rng}; +use rand::{rng, Rng}; use serde_json::{json, Value}; use std::sync::Arc; use std::thread; @@ -174,7 +174,7 @@ fn build_block( // making sure we're not spending time mining a useless block b.validate(&head.total_kernel_offset)?; - b.header.pow.nonce = thread_rng().gen(); + b.header.pow.nonce = rng().random(); b.header.pow.secondary_scaling = difficulty.secondary_scaling; b.header.timestamp = DateTime::from_timestamp(now_sec, 0).unwrap(); diff --git a/src/wallet/config.rs b/src/wallet/config.rs index 79591551..a52e19ba 100644 --- a/src/wallet/config.rs +++ b/src/wallet/config.rs @@ -81,7 +81,7 @@ impl WalletConfig { min_confirmations: MIN_CONFIRMATIONS_DEFAULT, use_dandelion: Some(true), enable_tor_listener: Some(false), - api_port: Some(rand::thread_rng().gen_range(10000..30000)), + api_port: Some(rand::rng().random_range(10000..30000)), }; Settings::write_to_file(&config, config_path); config diff --git a/src/wallet/mnemonic.rs b/src/wallet/mnemonic.rs index 914e8491..2986dc42 100644 --- a/src/wallet/mnemonic.rs +++ b/src/wallet/mnemonic.rs @@ -14,7 +14,7 @@ use grin_keychain::mnemonic::{from_entropy, search, to_entropy}; use grin_util::ZeroingString; -use rand::{Rng, thread_rng}; +use rand::Rng; use crate::wallet::types::{PhraseMode, PhraseSize, PhraseWord}; @@ -100,10 +100,10 @@ impl Mnemonic { fn generate_words(mode: &PhraseMode, size: &PhraseSize) -> Vec { match mode { PhraseMode::Generate => { - let mut rng = thread_rng(); + let mut rng = rand::rng(); let mut entropy: Vec = Vec::with_capacity(size.entropy_size()); for _ in 0..size.entropy_size() { - entropy.push(rng.gen()); + entropy.push(rng.random()); } from_entropy(&entropy).unwrap() .split(" ") diff --git a/src/wallet/wallet.rs b/src/wallet/wallet.rs index cc28a3d0..49a3bf37 100644 --- a/src/wallet/wallet.rs +++ b/src/wallet/wallet.rs @@ -1415,7 +1415,7 @@ fn sync_wallet_data(wallet: &Wallet, from_node: bool) { /// Start Foreign API server to receive txs over transport and mining rewards. fn start_api_server(wallet: &Wallet) -> Result<(ApiServer, u16), Error> { let host = "127.0.0.1"; - let port = wallet.get_config().api_port.unwrap_or(rand::thread_rng().gen_range(10000..30000)); + let port = wallet.get_config().api_port.unwrap_or(rand::rng().random_range(10000..30000)); let free_port = (port..).find(|port| { return match TcpListener::bind((host, port.to_owned())) { Ok(_) => {