[INFO] cloning repository https://github.com/techcoderx/vsc-blocks-backend [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/techcoderx/vsc-blocks-backend" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftechcoderx%2Fvsc-blocks-backend", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftechcoderx%2Fvsc-blocks-backend'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 29ecbbfc3f1a208f3570eb1915c2fd72cc36c196 [INFO] linting techcoderx/vsc-blocks-backend against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftechcoderx%2Fvsc-blocks-backend" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/techcoderx/vsc-blocks-backend [INFO] finished tweaking git repo https://github.com/techcoderx/vsc-blocks-backend [INFO] tweaked toml for git repo https://github.com/techcoderx/vsc-blocks-backend written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/techcoderx/vsc-blocks-backend on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/techcoderx/vsc-blocks-backend already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded walrus-macro v0.22.0 [INFO] [stderr] Downloaded id-arena v2.2.1 [INFO] [stderr] Downloaded skeptic v0.13.7 [INFO] [stderr] Downloaded hyperlocal v0.9.1 [INFO] [stderr] Downloaded libipld-pb v0.16.0 [INFO] [stderr] Downloaded poise_macros v0.6.1 [INFO] [stderr] Downloaded macro_magic_core_macros v0.5.1 [INFO] [stderr] Downloaded mongodb-internal-macros v3.2.3 [INFO] [stderr] Downloaded macro_magic_macros v0.5.1 [INFO] [stderr] Downloaded unsigned-varint v0.7.2 [INFO] [stderr] Downloaded hyper-named-pipe v0.1.0 [INFO] [stderr] Downloaded serde_plain v1.0.2 [INFO] [stderr] Downloaded parse-size v1.1.0 [INFO] [stderr] Downloaded impl-more v0.1.9 [INFO] [stderr] Downloaded actix-cors v0.7.1 [INFO] [stderr] Downloaded actix-service v2.0.3 [INFO] [stderr] Downloaded actix-multipart v0.7.2 [INFO] [stderr] Downloaded widestring v1.2.0 [INFO] [stderr] Downloaded pulldown-cmark v0.9.6 [INFO] [stderr] Downloaded bollard v0.18.1 [INFO] [stderr] Downloaded bson v2.14.0 [INFO] [stderr] Downloaded utoipa-gen v5.4.0 [INFO] [stderr] Downloaded h2 v0.4.8 [INFO] [stderr] Downloaded actix-http v3.10.0 [INFO] [stderr] Downloaded brotli-decompressor v4.0.2 [INFO] [stderr] Downloaded actix-web v4.10.2 [INFO] [stderr] Downloaded webpki-roots v1.0.0 [INFO] [stderr] Downloaded openssl v0.10.71 [INFO] [stderr] Downloaded git2 v0.20.2 [INFO] [stderr] Downloaded chrono v0.4.40 [INFO] [stderr] Downloaded rustls v0.22.4 [INFO] [stderr] Downloaded rustls v0.23.23 [INFO] [stderr] Downloaded hickory-proto v0.24.4 [INFO] [stderr] Downloaded mongodb v3.2.3 [INFO] [stderr] Downloaded rustix v1.0.2 [INFO] [stderr] Downloaded clap_builder v4.5.32 [INFO] [stderr] Downloaded portable-atomic v1.11.0 [INFO] [stderr] Downloaded blake3 v1.6.1 [INFO] [stderr] Downloaded reqwest v0.12.14 [INFO] [stderr] Downloaded winnow v0.7.4 [INFO] [stderr] Downloaded serenity v0.12.4 [INFO] [stderr] Downloaded wasmparser v0.214.0 [INFO] [stderr] Downloaded serde_with v3.12.0 [INFO] [stderr] Downloaded time v0.3.39 [INFO] [stderr] Downloaded walrus v0.23.3 [INFO] [stderr] Downloaded tokio-util v0.7.14 [INFO] [stderr] Downloaded poise v0.6.1 [INFO] [stderr] Downloaded cc v1.2.16 [INFO] [stderr] Downloaded hickory-resolver v0.24.4 [INFO] [stderr] Downloaded utoipa v5.4.0 [INFO] [stderr] Downloaded jiff v0.2.4 [INFO] [stderr] Downloaded actix-server v2.5.1 [INFO] [stderr] Downloaded bollard-stubs v1.47.1-rc.27.3.1 [INFO] [stderr] Downloaded gimli v0.26.2 [INFO] [stderr] Downloaded clap_derive v4.5.32 [INFO] [stderr] Downloaded derive_more v0.99.19 [INFO] [stderr] Downloaded zstd-sys v2.0.14+zstd.1.5.7 [INFO] [stderr] Downloaded tokio v1.44.1 [INFO] [stderr] Downloaded libz-sys v1.1.22 [INFO] [stderr] Downloaded crossbeam-channel v0.5.15 [INFO] [stderr] Downloaded openssl-sys v0.9.106 [INFO] [stderr] Downloaded wasm-encoder v0.214.0 [INFO] [stderr] Downloaded indexmap v2.8.0 [INFO] [stderr] Downloaded clap v4.5.32 [INFO] [stderr] Downloaded jiff-static v0.2.4 [INFO] [stderr] Downloaded uuid v1.16.0 [INFO] [stderr] Downloaded darling_core v0.20.10 [INFO] [stderr] Downloaded mini-moka v0.10.3 [INFO] [stderr] Downloaded toml v0.8.20 [INFO] [stderr] Downloaded actix-multipart-derive v0.7.0 [INFO] [stderr] Downloaded zstd-safe v7.2.3 [INFO] [stderr] Downloaded bytestring v1.4.0 [INFO] [stderr] Downloaded libipld-core v0.16.0 [INFO] [stderr] Downloaded blake2b_simd v1.0.3 [INFO] [stderr] Downloaded derive-where v1.2.7 [INFO] [stderr] Downloaded async-trait v0.1.88 [INFO] [stderr] Downloaded time-macros v0.2.20 [INFO] [stderr] Downloaded tempfile v3.19.0 [INFO] [stderr] Downloaded multihash v0.18.1 [INFO] [stderr] Downloaded derive-syn-parse v0.2.0 [INFO] [stderr] Downloaded hyper-rustls v0.27.5 [INFO] [stderr] Downloaded rustls-pki-types v1.11.0 [INFO] [stderr] Downloaded anyhow v1.0.97 [INFO] [stderr] Downloaded env_logger v0.11.7 [INFO] [stderr] Downloaded blake2s_simd v1.0.3 [INFO] [stderr] Downloaded pem v3.0.5 [INFO] [stderr] Downloaded resolv-conf v0.7.1 [INFO] [stderr] Downloaded serde_with_macros v3.12.0 [INFO] [stderr] Downloaded typed-builder v0.10.0 [INFO] [stderr] Downloaded tokio-rustls v0.25.0 [INFO] [stderr] Downloaded brotli v7.0.0 [INFO] [stderr] Downloaded triomphe v0.1.14 [INFO] [stderr] Downloaded time-core v0.1.3 [INFO] [stderr] Downloaded rustls-pemfile v2.2.0 [INFO] [stderr] Downloaded libipld-cbor v0.16.0 [INFO] [stderr] Downloaded libipld-cbor-derive v0.16.0 [INFO] [stderr] Downloaded libipld-json v0.16.0 [INFO] [stderr] Downloaded data-encoding-macro-internal v0.1.15 [INFO] [stderr] Downloaded data-encoding-macro v0.1.17 [INFO] [stderr] Downloaded darling_macro v0.20.10 [INFO] [stderr] Downloaded cargo_metadata v0.14.2 [INFO] [stderr] Downloaded typesize v0.1.14 [INFO] [stderr] Downloaded cid v0.10.1 [INFO] [stderr] Downloaded take_mut v0.2.2 [INFO] [stderr] Downloaded darling v0.20.10 [INFO] [stderr] Downloaded litemap v0.7.5 [INFO] [stderr] Downloaded rustversion v1.0.20 [INFO] [stderr] Downloaded libipld v0.16.0 [INFO] [stderr] Downloaded macro_magic v0.5.1 [INFO] [stderr] Downloaded rustc_version_runtime v0.3.0 [INFO] [stderr] Downloaded typemap_rev v0.3.0 [INFO] [stderr] Downloaded once_cell v1.21.1 [INFO] [stderr] Downloaded libgit2-sys v0.18.2+1.9.1 [INFO] [stderr] Downloaded secrecy v0.8.0 [INFO] [stderr] Downloaded redox_syscall v0.5.10 [INFO] [stderr] Downloaded macro_magic_core v0.5.1 [INFO] [stderr] Downloaded serde_cow v0.1.2 [INFO] [stderr] Downloaded bytecount v0.6.8 [INFO] [stderr] Downloaded typesize-derive v0.1.11 [INFO] [stderr] Downloaded windows-registry v0.4.0 [INFO] [stderr] Downloaded libipld-macro v0.16.0 [INFO] [stderr] Downloaded multihash-derive v0.8.1 [INFO] [stderr] Downloaded linux-raw-sys v0.9.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1954909574f71316f47c6d561f2a22a21f86f55ac15f353db1e30d5edcd4712d [INFO] running `Command { std: "docker" "start" "-a" "1954909574f71316f47c6d561f2a22a21f86f55ac15f353db1e30d5edcd4712d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1954909574f71316f47c6d561f2a22a21f86f55ac15f353db1e30d5edcd4712d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1954909574f71316f47c6d561f2a22a21f86f55ac15f353db1e30d5edcd4712d", kill_on_drop: false }` [INFO] [stdout] 1954909574f71316f47c6d561f2a22a21f86f55ac15f353db1e30d5edcd4712d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1df585058a1a2dabc3fa908f481c9499555e3d26536cd9cedb7669fea8f29ee0 [INFO] running `Command { std: "docker" "start" "-a" "1df585058a1a2dabc3fa908f481c9499555e3d26536cd9cedb7669fea8f29ee0", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.94 [INFO] [stderr] Compiling libc v0.2.171 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking log v0.4.26 [INFO] [stderr] Checking bytes v1.10.1 [INFO] [stderr] Checking pin-project-lite v0.2.16 [INFO] [stderr] Checking smallvec v1.14.0 [INFO] [stderr] Checking itoa v1.0.15 [INFO] [stderr] Checking once_cell v1.21.1 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Checking hashbrown v0.15.2 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Checking litemap v0.7.5 [INFO] [stderr] Checking writeable v0.5.5 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Checking icu_locid_transform_data v1.5.0 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling zerocopy v0.8.23 [INFO] [stderr] Checking icu_properties_data v1.5.0 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Checking bitflags v2.9.0 [INFO] [stderr] Checking utf16_iter v1.0.5 [INFO] [stderr] Checking write16 v1.0.0 [INFO] [stderr] Checking icu_normalizer_data v1.5.0 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Checking ryu v1.0.20 [INFO] [stderr] Checking data-encoding v2.8.0 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Checking httpdate v1.0.3 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling getrandom v0.3.1 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling time-core v0.1.3 [INFO] [stderr] Checking try-lock v0.2.5 [INFO] [stderr] Checking http v1.3.1 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Checking constant_time_eq v0.3.1 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Checking arrayref v0.3.9 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling crunchy v0.2.3 [INFO] [stderr] Checking tower-service v0.3.3 [INFO] [stderr] Compiling time-macros v0.2.20 [INFO] [stderr] Compiling anyhow v1.0.97 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Checking socket2 v0.5.8 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Compiling cc v1.2.16 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking rustls-pki-types v1.11.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Checking keccak v0.1.5 [INFO] [stderr] Checking core2 v0.4.0 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Checking base-x v0.2.11 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Checking unsigned-varint v0.7.2 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Checking adler2 v2.0.0 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Compiling rustls v0.22.4 [INFO] [stderr] Checking miniz_oxide v0.8.5 [INFO] [stderr] Compiling const-random-macro v0.1.16 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Checking ipnet v2.11.0 [INFO] [stderr] Checking local-waker v0.1.4 [INFO] [stderr] Checking alloc-no-stdlib v2.0.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking atomic-waker v1.1.2 [INFO] [stderr] Compiling zstd-safe v7.2.3 [INFO] [stderr] Compiling const-random v0.1.18 [INFO] [stderr] Checking alloc-stdlib v0.2.2 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling unicase v2.8.1 [INFO] [stderr] Compiling openssl v0.10.71 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking rand v0.9.0 [INFO] [stderr] Checking flate2 v1.1.0 [INFO] [stderr] Checking tinyvec v1.9.0 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking brotli-decompressor v4.0.2 [INFO] [stderr] Checking actix-utils v3.0.1 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking sha3 v0.10.8 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling bytestring v1.4.0 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Checking actix-service v2.0.3 [INFO] [stderr] Compiling cookie v0.16.2 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Compiling regex-lite v0.1.6 [INFO] [stderr] Compiling radium v0.7.0 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking openssl-probe v0.1.6 [INFO] [stderr] Checking iana-time-zone v0.1.61 [INFO] [stderr] Checking anstyle-parse v0.2.6 [INFO] [stderr] Checking brotli v7.0.0 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Checking local-channel v0.1.5 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Checking webpki-roots v1.0.0 [INFO] [stderr] Checking colorchoice v1.0.3 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking foldhash v0.1.4 [INFO] [stderr] Checking is_terminal_polyfill v1.70.1 [INFO] [stderr] Checking tap v1.0.1 [INFO] [stderr] Checking utf-8 v0.7.6 [INFO] [stderr] Checking language-tags v0.3.2 [INFO] [stderr] Compiling rustix v1.0.2 [INFO] [stderr] Checking webpki-roots v0.25.4 [INFO] [stderr] Checking anstyle-query v1.1.2 [INFO] [stderr] Checking anstyle v1.0.10 [INFO] [stderr] Compiling toml v0.5.11 [INFO] [stderr] Checking wyz v0.5.1 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling rustc_version_runtime v0.3.0 [INFO] [stderr] Checking anstream v0.6.18 [INFO] [stderr] Checking quick-protobuf v0.8.1 [INFO] [stderr] Checking hostname v0.4.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling openssl-sys v0.9.106 [INFO] [stderr] Compiling blake3 v1.6.1 [INFO] [stderr] Compiling zstd-sys v2.0.14+zstd.1.5.7 [INFO] [stderr] Compiling libz-sys v1.1.22 [INFO] [stderr] Compiling libssh2-sys v0.3.1 [INFO] [stderr] Compiling libgit2-sys v0.18.2+1.9.1 [INFO] [stderr] Compiling serenity v0.12.4 [INFO] [stderr] Checking impl-more v0.1.9 [INFO] [stderr] Checking linked-hash-map v0.5.6 [INFO] [stderr] Checking funty v2.0.0 [INFO] [stderr] Checking leb128 v0.2.5 [INFO] [stderr] Checking linux-raw-sys v0.9.3 [INFO] [stderr] Compiling convert_case v0.4.0 [INFO] [stderr] Checking fallible-iterator v0.2.0 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stderr] Checking sync_wrapper v0.1.2 [INFO] [stderr] Checking gimli v0.26.2 [INFO] [stderr] Checking bitvec v1.0.1 [INFO] [stderr] Checking wasm-encoder v0.214.0 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Checking lru-cache v0.1.2 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking resolv-conf v0.7.1 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking unicode-normalization v0.1.24 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Checking id-arena v2.2.1 [INFO] [stderr] Checking typemap_rev v0.3.0 [INFO] [stderr] Checking clap_lex v0.7.4 [INFO] [stderr] Checking unicode-properties v0.1.3 [INFO] [stderr] Checking unicode-bidi v0.3.18 [INFO] [stderr] Checking tower-layer v0.3.3 [INFO] [stderr] Compiling parse-size v1.1.0 [INFO] [stderr] Checking bit-vec v0.8.0 [INFO] [stderr] Checking winnow v0.7.4 [INFO] [stderr] Checking clap_builder v4.5.32 [INFO] [stderr] Checking bit-set v0.8.0 [INFO] [stderr] Checking env_filter v0.1.3 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Compiling synstructure v0.13.1 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Checking sha-1 v0.10.1 [INFO] [stderr] Checking pbkdf2 v0.11.0 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking stringprep v0.1.5 [INFO] [stderr] Checking rustls-pemfile v2.2.0 [INFO] [stderr] Checking pem v3.0.5 [INFO] [stderr] Checking jiff v0.2.4 [INFO] [stderr] Checking take_mut v0.2.2 [INFO] [stderr] Checking bv_decoder v0.1.0 (/opt/rustwide/workdir/lib/bv_decoder) [INFO] [stderr] Checking formatter v0.1.0 (/opt/rustwide/workdir/lib/formatter) [INFO] [stderr] Compiling typed-builder v0.10.0 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Checking tempfile v3.19.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.7.5 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling zerovec-derive v0.10.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Checking tokio v1.44.1 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling icu_provider_macros v1.5.0 [INFO] [stderr] Compiling data-encoding-macro-internal v0.1.15 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling derive-syn-parse v0.2.0 [INFO] [stderr] Compiling macro_magic_core_macros v0.5.1 [INFO] [stderr] Checking data-encoding-macro v0.1.17 [INFO] [stderr] Checking multibase v0.9.1 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.7.5 [INFO] [stderr] Compiling proc-macro-crate v1.1.3 [INFO] [stderr] Compiling macro_magic_core v0.5.1 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Compiling enum-as-inner v0.6.1 [INFO] [stderr] Checking zerovec v0.10.4 [INFO] [stderr] Compiling multihash-derive v0.8.1 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Compiling serde_with_macros v3.12.0 [INFO] [stderr] Compiling macro_magic_macros v0.5.1 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Checking rustls-webpki v0.102.8 [INFO] [stderr] Checking thiserror v2.0.12 [INFO] [stderr] Compiling libipld-cbor-derive v0.16.0 [INFO] [stderr] Compiling derive_more v0.99.19 [INFO] [stderr] Checking tinystr v0.7.6 [INFO] [stderr] Checking icu_collections v1.5.0 [INFO] [stderr] Compiling macro_magic v0.5.1 [INFO] [stderr] Compiling walrus-macro v0.22.0 [INFO] [stderr] Checking icu_locid v1.5.0 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling mongodb-internal-macros v3.2.3 [INFO] [stderr] Checking icu_provider v1.5.0 [INFO] [stderr] Compiling actix-multipart-derive v0.7.0 [INFO] [stderr] Checking icu_locid_transform v1.5.0 [INFO] [stderr] Compiling poise_macros v0.6.1 [INFO] [stderr] Compiling derive-where v1.2.7 [INFO] [stderr] Compiling derive_more-impl v1.0.0 [INFO] [stderr] Checking icu_properties v1.5.1 [INFO] [stderr] Compiling clap_derive v4.5.32 [INFO] [stderr] Compiling utoipa-gen v5.4.0 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking env_logger v0.11.7 [INFO] [stderr] Checking derive_more v2.0.1 [INFO] [stderr] Checking tokio-util v0.7.14 [INFO] [stderr] Checking actix-rt v2.10.0 [INFO] [stderr] Checking tokio-rustls v0.24.1 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking actix-server v2.5.1 [INFO] [stderr] Checking tokio-rustls v0.25.0 [INFO] [stderr] Checking indexmap v2.8.0 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking chrono v0.4.40 [INFO] [stderr] Checking serde_with v3.12.0 [INFO] [stderr] Checking blake2s_simd v1.0.3 [INFO] [stderr] Checking blake2b_simd v1.0.3 [INFO] [stderr] Checking actix-codec v0.5.2 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking h2 v0.4.8 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking wasmparser v0.214.0 [INFO] [stderr] Checking time v0.3.39 [INFO] [stderr] Checking multihash v0.18.1 [INFO] [stderr] Checking secrecy v0.8.0 [INFO] [stderr] Checking cid v0.10.1 [INFO] [stderr] Checking toml_datetime v0.6.8 [INFO] [stderr] Checking serde_bytes v0.11.17 [INFO] [stderr] Checking serde_spanned v0.6.8 [INFO] [stderr] Checking serde_cow v0.1.2 [INFO] [stderr] Checking libipld-core v0.16.0 [INFO] [stderr] Checking uuid v1.16.0 [INFO] [stderr] Checking serde_plain v1.0.2 [INFO] [stderr] Checking toml_edit v0.22.24 [INFO] [stderr] Checking derive_more v1.0.0 [INFO] [stderr] Checking libipld-cbor v0.16.0 [INFO] [stderr] Checking libipld-json v0.16.0 [INFO] [stderr] Checking libipld-macro v0.16.0 [INFO] [stderr] Checking libipld-pb v0.16.0 [INFO] [stderr] Checking clap v4.5.32 [INFO] [stderr] Checking icu_normalizer v1.5.0 [INFO] [stderr] Checking libipld v0.16.0 [INFO] [stderr] Checking ipfs_dag v0.1.0 (/opt/rustwide/workdir/lib/ipfs_dag) [INFO] [stderr] Checking idna_adapter v1.2.0 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking bollard-stubs v1.47.1-rc.27.3.1 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking simple_asn1 v0.6.3 [INFO] [stderr] Checking bson v2.14.0 [INFO] [stderr] Checking toml v0.8.20 [INFO] [stderr] Checking jsonwebtoken v9.3.1 [INFO] [stderr] Checking tungstenite v0.21.0 [INFO] [stderr] Checking hickory-proto v0.24.4 [INFO] [stderr] Checking tokio-tungstenite v0.21.0 [INFO] [stderr] Checking walrus v0.23.3 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking zstd v0.13.3 [INFO] [stderr] Checking utoipa v5.4.0 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking actix-http v3.10.0 [INFO] [stderr] Checking hickory-resolver v0.24.4 [INFO] [stderr] Checking hyper-util v0.1.10 [INFO] [stderr] Checking wasm_utils v0.1.0 (/opt/rustwide/workdir/lib/wasm_utils) [INFO] [stderr] Checking mongodb v3.2.3 [INFO] [stderr] Checking git2 v0.20.2 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking hyperlocal v0.9.1 [INFO] [stderr] Checking reqwest v0.12.14 [INFO] [stderr] Checking actix-web v4.10.2 [INFO] [stderr] Checking hyper-rustls v0.24.2 [INFO] [stderr] Checking reqwest v0.11.27 [INFO] [stderr] Checking bollard v0.18.1 [INFO] [stderr] Checking actix-cors v0.7.1 [INFO] [stderr] Checking actix-multipart v0.7.2 [INFO] [stderr] Checking poise v0.6.1 [INFO] [stderr] Checking vsc-blocks-backend v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/mongo.rs:84:7 [INFO] [stdout] | [INFO] [stdout] 84 | cv_contracts: cv_contracts, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cv_contracts` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/mongo.rs:84:7 [INFO] [stdout] | [INFO] [stdout] 84 | cv_contracts: cv_contracts, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cv_contracts` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/endpoints/cv_api.rs:285:5 [INFO] [stdout] | [INFO] [stdout] 285 | repo_branch: repo_branch, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `repo_branch` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/compiler.rs:84:7 [INFO] [stdout] | [INFO] [stdout] 84 | docker: docker, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `docker` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/endpoints/cv_api.rs:285:5 [INFO] [stdout] | [INFO] [stdout] 285 | repo_branch: repo_branch, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `repo_branch` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/compiler.rs:84:7 [INFO] [stdout] | [INFO] [stdout] 84 | docker: docker, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `docker` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:105:23 [INFO] [stdout] | [INFO] [stdout] 105 | network: Some(format!("mainnet")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mainnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:108:22 [INFO] [stdout] | [INFO] [stdout] 108 | mongo_url: format!("mongodb://localhost:27017"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mongodb://localhost:27017".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:109:25 [INFO] [stdout] | [INFO] [stdout] 109 | magi_db_name: format!("go-vsc"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"go-vsc".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:110:23 [INFO] [stdout] | [INFO] [stdout] 110 | be_db_name: format!("vsc2"), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"vsc2".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:111:23 [INFO] [stdout] | [INFO] [stdout] 111 | cv_db_name: format!("vsc-cv"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"vsc-cv".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | wasm_strip: format!("wasm-strip"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"wasm-strip".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:126:23 [INFO] [stdout] | [INFO] [stdout] 126 | wasm_tools: format!("wasm-tools"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"wasm-tools".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/constants.rs:17:3 [INFO] [stdout] | [INFO] [stdout] 17 | / return NetworkConsts { [INFO] [stdout] 18 | | name: format!("mainnet"), [INFO] [stdout] 19 | | magi_explorer_url: format!("https://vsc.techcoderx.com"), [INFO] [stdout] 20 | | l1_explorer_url: format!("https://hivehub.dev"), [INFO] [stdout] 21 | | start_date: format!("2025-03-31"), [INFO] [stdout] 22 | | }; [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 17 ~ NetworkConsts { [INFO] [stdout] 18 + name: format!("mainnet"), [INFO] [stdout] 19 + magi_explorer_url: format!("https://vsc.techcoderx.com"), [INFO] [stdout] 20 + l1_explorer_url: format!("https://hivehub.dev"), [INFO] [stdout] 21 + start_date: format!("2025-03-31"), [INFO] [stdout] 22 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | name: format!("mainnet"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mainnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | magi_explorer_url: format!("https://vsc.techcoderx.com"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://vsc.techcoderx.com".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:20:22 [INFO] [stdout] | [INFO] [stdout] 20 | l1_explorer_url: format!("https://hivehub.dev"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://hivehub.dev".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | start_date: format!("2025-03-31"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"2025-03-31".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/constants.rs:26:3 [INFO] [stdout] | [INFO] [stdout] 26 | / return NetworkConsts { [INFO] [stdout] 27 | | name: format!("testnet"), [INFO] [stdout] 28 | | magi_explorer_url: format!("https://testnet.magi.techcoderx.com"), [INFO] [stdout] 29 | | l1_explorer_url: format!("https://testnet.techcoderx.com/explorer"), [INFO] [stdout] 30 | | start_date: format!("2026-01-24"), [INFO] [stdout] 31 | | }; [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 ~ NetworkConsts { [INFO] [stdout] 27 + name: format!("testnet"), [INFO] [stdout] 28 + magi_explorer_url: format!("https://testnet.magi.techcoderx.com"), [INFO] [stdout] 29 + l1_explorer_url: format!("https://testnet.techcoderx.com/explorer"), [INFO] [stdout] 30 + start_date: format!("2026-01-24"), [INFO] [stdout] 31 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 27 | name: format!("testnet"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"testnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:28:24 [INFO] [stdout] | [INFO] [stdout] 28 | magi_explorer_url: format!("https://testnet.magi.techcoderx.com"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://testnet.magi.techcoderx.com".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:29:22 [INFO] [stdout] | [INFO] [stdout] 29 | l1_explorer_url: format!("https://testnet.techcoderx.com/explorer"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://testnet.techcoderx.com/explorer".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | start_date: format!("2026-01-24"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"2026-01-24".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:38:46 [INFO] [stdout] | [INFO] [stdout] 38 | let net = config.network.clone().unwrap_or(format!("mainnet")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mainnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:105:23 [INFO] [stdout] | [INFO] [stdout] 105 | network: Some(format!("mainnet")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mainnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:108:22 [INFO] [stdout] | [INFO] [stdout] 108 | mongo_url: format!("mongodb://localhost:27017"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mongodb://localhost:27017".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:109:25 [INFO] [stdout] | [INFO] [stdout] 109 | magi_db_name: format!("go-vsc"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"go-vsc".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:110:23 [INFO] [stdout] | [INFO] [stdout] 110 | be_db_name: format!("vsc2"), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"vsc2".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:111:23 [INFO] [stdout] | [INFO] [stdout] 111 | cv_db_name: format!("vsc-cv"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"vsc-cv".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | wasm_strip: format!("wasm-strip"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"wasm-strip".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:126:23 [INFO] [stdout] | [INFO] [stdout] 126 | wasm_tools: format!("wasm-tools"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"wasm-tools".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/constants.rs:17:3 [INFO] [stdout] | [INFO] [stdout] 17 | / return NetworkConsts { [INFO] [stdout] 18 | | name: format!("mainnet"), [INFO] [stdout] 19 | | magi_explorer_url: format!("https://vsc.techcoderx.com"), [INFO] [stdout] 20 | | l1_explorer_url: format!("https://hivehub.dev"), [INFO] [stdout] 21 | | start_date: format!("2025-03-31"), [INFO] [stdout] 22 | | }; [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 17 ~ NetworkConsts { [INFO] [stdout] 18 + name: format!("mainnet"), [INFO] [stdout] 19 + magi_explorer_url: format!("https://vsc.techcoderx.com"), [INFO] [stdout] 20 + l1_explorer_url: format!("https://hivehub.dev"), [INFO] [stdout] 21 + start_date: format!("2025-03-31"), [INFO] [stdout] 22 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | name: format!("mainnet"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mainnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | magi_explorer_url: format!("https://vsc.techcoderx.com"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://vsc.techcoderx.com".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:20:22 [INFO] [stdout] | [INFO] [stdout] 20 | l1_explorer_url: format!("https://hivehub.dev"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://hivehub.dev".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | start_date: format!("2025-03-31"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"2025-03-31".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/constants.rs:26:3 [INFO] [stdout] | [INFO] [stdout] 26 | / return NetworkConsts { [INFO] [stdout] 27 | | name: format!("testnet"), [INFO] [stdout] 28 | | magi_explorer_url: format!("https://testnet.magi.techcoderx.com"), [INFO] [stdout] 29 | | l1_explorer_url: format!("https://testnet.techcoderx.com/explorer"), [INFO] [stdout] 30 | | start_date: format!("2026-01-24"), [INFO] [stdout] 31 | | }; [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 ~ NetworkConsts { [INFO] [stdout] 27 + name: format!("testnet"), [INFO] [stdout] 28 + magi_explorer_url: format!("https://testnet.magi.techcoderx.com"), [INFO] [stdout] 29 + l1_explorer_url: format!("https://testnet.techcoderx.com/explorer"), [INFO] [stdout] 30 + start_date: format!("2026-01-24"), [INFO] [stdout] 31 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 27 | name: format!("testnet"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"testnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:28:24 [INFO] [stdout] | [INFO] [stdout] 28 | magi_explorer_url: format!("https://testnet.magi.techcoderx.com"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://testnet.magi.techcoderx.com".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:29:22 [INFO] [stdout] | [INFO] [stdout] 29 | l1_explorer_url: format!("https://testnet.techcoderx.com/explorer"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://testnet.techcoderx.com/explorer".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | start_date: format!("2026-01-24"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"2026-01-24".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:38:46 [INFO] [stdout] | [INFO] [stdout] 38 | let net = config.network.clone().unwrap_or(format!("mainnet")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mainnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/types/server.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | if e.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!e.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:118:7 [INFO] [stdout] | [INFO] [stdout] 118 | format!("0.38.0"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"0.38.0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | go: format!("1.24.4"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"1.24.4".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:121:15 [INFO] [stdout] | [INFO] [stdout] 121 | llvm: format!("19.1.2"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"19.1.2".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:122:21 [INFO] [stdout] | [INFO] [stdout] 122 | img_digest: format!("sha256:98447dff0e56426b98f96a1d47ac7c1d82d27e3cd630cba81732cfc13c9a410f") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"sha256:98447dff0e56426b98f96a1d47ac7c1d82d27e3cd630cba81732cfc13c9a410f".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:126:7 [INFO] [stdout] | [INFO] [stdout] 126 | format!("0.39.0"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"0.39.0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:128:13 [INFO] [stdout] | [INFO] [stdout] 128 | go: format!("1.25.0"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"1.25.0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:129:15 [INFO] [stdout] | [INFO] [stdout] 129 | llvm: format!("19.1.2"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"19.1.2".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:130:21 [INFO] [stdout] | [INFO] [stdout] 130 | img_digest: format!("sha256:0e51d243c1b84ec650f2dcd1cce3a09bb09730e1134771aeace2240ade4b32f5") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"sha256:0e51d243c1b84ec650f2dcd1cce3a09bb09730e1134771aeace2240ade4b32f5".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:134:7 [INFO] [stdout] | [INFO] [stdout] 134 | format!("0.40.1"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"0.40.1".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | go: format!("1.25.5"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"1.25.5".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:137:15 [INFO] [stdout] | [INFO] [stdout] 137 | llvm: format!("20.1.1"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"20.1.1".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:138:21 [INFO] [stdout] | [INFO] [stdout] 138 | img_digest: format!("sha256:89a77cc87b191399077be51a295d1d29569314931f334b2730427d7ed3a2b18e") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"sha256:89a77cc87b191399077be51a295d1d29569314931f334b2730427d7ed3a2b18e".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proposer` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:86:32 [INFO] [stdout] | [INFO] [stdout] 85 | if proposer.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = proposer` [INFO] [stdout] 86 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/endpoints/be_api.rs:77:15 [INFO] [stdout] | [INFO] [stdout] 77 | let count = min(max(1, params.count.unwrap_or(100)), 100); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `params.count.unwrap_or(100).clamp(1, 100)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/endpoints/be_api.rs:86:31 [INFO] [stdout] | [INFO] [stdout] 86 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `proposer.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `last_block_id` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:146:54 [INFO] [stdout] | [INFO] [stdout] 145 | if last_block_id.is_some() { [INFO] [stdout] | -------------------------- help: try: `if let Some() = last_block_id` [INFO] [stdout] 146 | filter.insert("be_info.block_id", doc! { "$lte": last_block_id.unwrap() }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proposer` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:149:32 [INFO] [stdout] | [INFO] [stdout] 148 | if proposer.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = proposer` [INFO] [stdout] 149 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `epoch` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:152:36 [INFO] [stdout] | [INFO] [stdout] 151 | if epoch.is_some() { [INFO] [stdout] | ------------------ help: try: `if let Some() = epoch` [INFO] [stdout] 152 | filter.insert("be_info.epoch", epoch.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/endpoints/be_api.rs:139:15 [INFO] [stdout] | [INFO] [stdout] 139 | let count = min(max(1, params.count.unwrap_or(100)), 100); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `params.count.unwrap_or(100).clamp(1, 100)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/endpoints/be_api.rs:149:31 [INFO] [stdout] | [INFO] [stdout] 149 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `proposer.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `election` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:350:76 [INFO] [stdout] | [INFO] [stdout] 349 | if election.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = election` [INFO] [stdout] 350 | return Ok(HttpResponse::Ok().json(json!({"type": "election", "result": election.unwrap().epoch}))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/endpoints/cv_api.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | !verify_req.error.is_some() && verify_req.result.is_some() && verify_req.result.unwrap().clone()["valid"].as_bool().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `verify_req.error.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: taken reference of right operand [INFO] [stdout] --> src/endpoints/cv_api.rs:87:26 [INFO] [stdout] | [INFO] [stdout] 87 | if parts.len() != 6 || parts[1] != &config.auth.id.clone().unwrap() || parts[2] != "hive" { [INFO] [stdout] | ^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | help: use the right value directly: `config.auth.id.clone().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/endpoints/cv_api.rs:95:18 [INFO] [stdout] | [INFO] [stdout] 95 | let original = (&parts[0..5]).join(":"); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `parts[0..5]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of left operand [INFO] [stdout] --> src/endpoints/cv_api.rs:140:6 [INFO] [stdout] | [INFO] [stdout] 140 | if &dgp_at_block.hash != parts[4] { [INFO] [stdout] | ------------------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: use the left value directly: `dgp_at_block.hash` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:213:39 [INFO] [stdout] | [INFO] [stdout] 213 | } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 213 - } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] 213 + } else if whitelist.is_empty() && prefixed_username != contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:213:82 [INFO] [stdout] | [INFO] [stdout] 213 | } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 213 - } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] 213 + } else if whitelist.is_empty() && &prefixed_username != &contract.creator && prefixed_username != contract.owner { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/endpoints/cv_api.rs:218:3 [INFO] [stdout] | [INFO] [stdout] 218 | / match ctx.db.cv_contracts.find_one(doc! { "_id": &contract.code }).await.map_err(|e| RespErr::DbErr { msg: e.to_string() })? { [INFO] [stdout] 219 | | Some(similar) => { [INFO] [stdout] 220 | | let is_fail = similar.status == "failed" || similar.status == "not match"; [INFO] [stdout] 221 | | if similar.status == CVStatus::Success.to_string() { [INFO] [stdout] ... | [INFO] [stdout] 237 | | None => (), [INFO] [stdout] 238 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 218 ~ if let Some(similar) = ctx.db.cv_contracts.find_one(doc! { "_id": &contract.code }).await.map_err(|e| RespErr::DbErr { msg: e.to_string() })? { [INFO] [stdout] 219 + let is_fail = similar.status == "failed" || similar.status == "not match"; [INFO] [stdout] 220 + if similar.status == CVStatus::Success.to_string() { [INFO] [stdout] 221 + if &similar.contract_id == &address { [INFO] [stdout] 222 + return Err(RespErr::BadRequest { msg: String::from("Contract is already verified") }); [INFO] [stdout] 223 + } else { [INFO] [stdout] 224 + return Err(RespErr::CvSimilarMatch); [INFO] [stdout] 225 + } [INFO] [stdout] 226 + } else if is_fail && similar.request_ts.to_chrono() + Duration::hours(12) > Utc::now() { [INFO] [stdout] 227 + return Err(RespErr::CvRetryLater); [INFO] [stdout] 228 + } else if similar.status == "queued" { [INFO] [stdout] 229 + if &similar.contract_id == &address { [INFO] [stdout] 230 + return Err(RespErr::BadRequest { msg: String::from("Contract is already queued for verification.") }); [INFO] [stdout] 231 + } else { [INFO] [stdout] 232 + return Err(RespErr::BadRequest { msg: String::from("A similar contract is already queued for verification.") }); [INFO] [stdout] 233 + } [INFO] [stdout] 234 + } [INFO] [stdout] 235 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | if &similar.contract_id == &address { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 222 - if &similar.contract_id == &address { [INFO] [stdout] 222 + if similar.contract_id == address { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:230:12 [INFO] [stdout] | [INFO] [stdout] 230 | if &similar.contract_id == &address { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 230 - if &similar.contract_id == &address { [INFO] [stdout] 230 + if similar.contract_id == address { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/endpoints/cv_api.rs:249:60 [INFO] [stdout] | [INFO] [stdout] 249 | let repo_branch = req_data.repo_branch.clone().unwrap_or(format!("")); [INFO] [stdout] | ^^^^^^^^^^^ help: consider using `String::new()`: `String::new()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/endpoints/cv_api.rs:263:7 [INFO] [stdout] | [INFO] [stdout] 263 | / if &tool != "wabt" && &tool != "wasm-tools" { [INFO] [stdout] 264 | | return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] 265 | | } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 262 ~ Some(tool) [INFO] [stdout] 263 ~ if &tool != "wabt" && &tool != "wasm-tools" => { [INFO] [stdout] 264 | return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] 265 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/endpoints/cv_api.rs:261:3 [INFO] [stdout] | [INFO] [stdout] 261 | / match req_data.strip_tool.clone() { [INFO] [stdout] 262 | | Some(tool) => { [INFO] [stdout] 263 | | if &tool != "wabt" && &tool != "wasm-tools" { [INFO] [stdout] 264 | | return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] ... | [INFO] [stdout] 267 | | None => (), [INFO] [stdout] 268 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 261 ~ if let Some(tool) = req_data.strip_tool.clone() { [INFO] [stdout] 262 + if &tool != "wabt" && &tool != "wasm-tools" { [INFO] [stdout] 263 + return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] 264 + } [INFO] [stdout] 265 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/endpoints/cv_api.rs:323:3 [INFO] [stdout] | [INFO] [stdout] 323 | / match [INFO] [stdout] 324 | | ctx.db.cv_contracts [INFO] [stdout] 325 | | .find_one(doc! { "_id": &deployed_contract.code }).await [INFO] [stdout] 326 | | .map_err(|e| RespErr::DbErr { msg: e.to_string() })? [INFO] [stdout] ... | [INFO] [stdout] 351 | | None => (), [INFO] [stdout] 352 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 323 ~ if let Some(similar) = ctx.db.cv_contracts [INFO] [stdout] 324 + .find_one(doc! { "_id": &deployed_contract.code }).await [INFO] [stdout] 325 + .map_err(|e| RespErr::DbErr { msg: e.to_string() })? { [INFO] [stdout] 326 + return Ok( [INFO] [stdout] 327 + HttpResponse::Ok().json(CVContractResult { [INFO] [stdout] 328 + address: addr, [INFO] [stdout] 329 + code: similar.code, [INFO] [stdout] 330 + similar_match: Some(similar.contract_id), [INFO] [stdout] 331 + verifier: similar.verifier, [INFO] [stdout] 332 + request_ts: similar.request_ts.to_chrono().format(TIMESTAMP_FORMAT).to_string(), [INFO] [stdout] 333 + verified_ts: similar.verified_ts.map(|t| t.to_chrono().format(TIMESTAMP_FORMAT).to_string()), [INFO] [stdout] 334 + status: similar.status.clone(), [INFO] [stdout] 335 + repo_name: similar.repo_name, [INFO] [stdout] 336 + repo_branch: similar.repo_branch, [INFO] [stdout] 337 + git_commit: similar.git_commit, [INFO] [stdout] 338 + tinygo_version: similar.tinygo_version, [INFO] [stdout] 339 + go_version: similar.go_version, [INFO] [stdout] 340 + llvm_version: similar.llvm_version, [INFO] [stdout] 341 + strip_tool: similar.strip_tool, [INFO] [stdout] 342 + exports: similar.exports, [INFO] [stdout] 343 + license: similar.license, [INFO] [stdout] 344 + lang: similar.lang.clone(), [INFO] [stdout] 345 + }) [INFO] [stdout] 346 + ); [INFO] [stdout] 347 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/endpoints/cv_api.rs:367:3 [INFO] [stdout] | [INFO] [stdout] 367 | return Ok(HttpResponse::Ok().json(result)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 367 - return Ok(HttpResponse::Ok().json(result)); [INFO] [stdout] 367 + Ok(HttpResponse::Ok().json(result)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/blocks.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / return BlockIndexer { [INFO] [stdout] 21 | | http_client: http_client.clone(), [INFO] [stdout] 22 | | db: db.clone(), [INFO] [stdout] 23 | | is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 24 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 ~ BlockIndexer { [INFO] [stdout] 21 + http_client: http_client.clone(), [INFO] [stdout] 22 + db: db.clone(), [INFO] [stdout] 23 + is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 24 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `sync_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:43:22 [INFO] [stdout] | [INFO] [stdout] 42 | if sync_state.is_err() { [INFO] [stdout] | ---------------------- help: try: `if let Err() = sync_state` [INFO] [stdout] 43 | error!("{}", sync_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `next_blocks` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:60:24 [INFO] [stdout] | [INFO] [stdout] 59 | if next_blocks.is_err() { [INFO] [stdout] | ----------------------- help: try: `if let Err() = next_blocks` [INFO] [stdout] 60 | error!("{}", next_blocks.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `b` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:68:62 [INFO] [stdout] | [INFO] [stdout] 67 | if b.is_err() { [INFO] [stdout] | ------------- help: try: `if let Err() = b` [INFO] [stdout] 68 | error!("Failed to deserialize block header: {}", b.unwrap_err().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `tx` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:77:26 [INFO] [stdout] | [INFO] [stdout] 76 | if tx.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = tx` [INFO] [stdout] 77 | error!("{}", tx.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `epoch` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:113:58 [INFO] [stdout] | [INFO] [stdout] 112 | if epoch.is_err() { [INFO] [stdout] | ----------------- help: try: `if let Err() = epoch` [INFO] [stdout] 113 | error!("Failed to qeury epoch in block: {}", epoch.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `bv` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:120:47 [INFO] [stdout] | [INFO] [stdout] 119 | if bv.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = bv` [INFO] [stdout] 120 | error!("Failed to decode bv: {}", bv.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `up` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:144:43 [INFO] [stdout] | [INFO] [stdout] 143 | if up.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = up` [INFO] [stdout] 144 | error!("Failed to update {}", up.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `up` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:153:43 [INFO] [stdout] | [INFO] [stdout] 152 | if up.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = up` [INFO] [stdout] 153 | error!("Failed to update {}", up.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `upd_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:179:47 [INFO] [stdout] | [INFO] [stdout] 178 | if upd_state.is_err() { [INFO] [stdout] | --------------------- help: try: `if let Err() = upd_state` [INFO] [stdout] 179 | error!("Failed to update state {}", upd_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/indexer/blocks.rs:157:11 [INFO] [stdout] | [INFO] [stdout] 157 | / match witness_stats.find_one(doc! { "_id": &block.proposer }).await { [INFO] [stdout] 158 | | Ok(last_stat) => { [INFO] [stdout] 159 | | if last_stat.is_none() || (last_stat.unwrap().last_block.unwrap_or(0) as u32) < next_nums.1 { [INFO] [stdout] 160 | | let _ = witness_stats [INFO] [stdout] ... | [INFO] [stdout] 171 | | Err(_) => (), [INFO] [stdout] 172 | | } [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 157 ~ if let Ok(last_stat) = witness_stats.find_one(doc! { "_id": &block.proposer }).await { [INFO] [stdout] 158 + if last_stat.is_none() || (last_stat.unwrap().last_block.unwrap_or(0) as u32) < next_nums.1 { [INFO] [stdout] 159 + let _ = witness_stats [INFO] [stdout] 160 + .update_one( [INFO] [stdout] 161 + doc! { "_id": &block.proposer }, [INFO] [stdout] 162 + doc! { [INFO] [stdout] 163 + "$set": doc! {"last_block": next_nums.1 as i32}, [INFO] [stdout] 164 + "$inc": doc! {"block_count": 1} [INFO] [stdout] 165 + } [INFO] [stdout] 166 + ) [INFO] [stdout] 167 + .upsert(true).await; [INFO] [stdout] 168 + } [INFO] [stdout] 169 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/epoch.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | return ElectionIndexer { http_client: http_client.clone(), db: db.clone(), is_running: Arc::new(RwLock::new(false)) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 - return ElectionIndexer { http_client: http_client.clone(), db: db.clone(), is_running: Arc::new(RwLock::new(false)) }; [INFO] [stdout] 20 + ElectionIndexer { http_client: http_client.clone(), db: db.clone(), is_running: Arc::new(RwLock::new(false)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `sync_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:38:22 [INFO] [stdout] | [INFO] [stdout] 37 | if sync_state.is_err() { [INFO] [stdout] | ---------------------- help: try: `if let Err() = sync_state` [INFO] [stdout] 38 | error!("{}", sync_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `next_epochs` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:55:24 [INFO] [stdout] | [INFO] [stdout] 54 | if next_epochs.is_err() { [INFO] [stdout] | ----------------------- help: try: `if let Err() = next_epochs` [INFO] [stdout] 55 | error!("{}", next_epochs.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `ep` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:63:58 [INFO] [stdout] | [INFO] [stdout] 62 | if ep.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = ep` [INFO] [stdout] 63 | error!("Failed to deserialize election: {}", ep.unwrap_err().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `tx` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:72:26 [INFO] [stdout] | [INFO] [stdout] 71 | if tx.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = tx` [INFO] [stdout] 72 | error!("{}", tx.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `up` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:132:43 [INFO] [stdout] | [INFO] [stdout] 131 | if up.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = up` [INFO] [stdout] 132 | error!("Failed to update {}", up.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `upd_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:155:47 [INFO] [stdout] | [INFO] [stdout] 154 | if upd_state.is_err() { [INFO] [stdout] | --------------------- help: try: `if let Err() = upd_state` [INFO] [stdout] 155 | error!("Failed to update state {}", upd_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> src/indexer/epoch.rs:120:31 [INFO] [stdout] | [INFO] [stdout] 120 | doc! { "epoch": epoch.epoch as i64 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `epoch.epoch` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/indexer/epoch.rs:136:11 [INFO] [stdout] | [INFO] [stdout] 136 | / match witness_stats.find_one(doc! { "_id": &epoch.proposer }).await { [INFO] [stdout] 137 | | Ok(last_stat) => { [INFO] [stdout] 138 | | if last_stat.is_none() || (last_stat.unwrap().last_epoch.unwrap_or(-1) as i64) < epoch.epoch { [INFO] [stdout] 139 | | let _ = witness_stats [INFO] [stdout] ... | [INFO] [stdout] 150 | | Err(_) => (), [INFO] [stdout] 151 | | } [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 136 ~ if let Ok(last_stat) = witness_stats.find_one(doc! { "_id": &epoch.proposer }).await { [INFO] [stdout] 137 + if last_stat.is_none() || (last_stat.unwrap().last_epoch.unwrap_or(-1) as i64) < epoch.epoch { [INFO] [stdout] 138 + let _ = witness_stats [INFO] [stdout] 139 + .update_one( [INFO] [stdout] 140 + doc! { "_id": &epoch.proposer }, [INFO] [stdout] 141 + doc! { [INFO] [stdout] 142 + "$set": doc! {"last_epoch": epoch.epoch as i32}, [INFO] [stdout] 143 + "$inc": doc! {"election_count": 1} [INFO] [stdout] 144 + } [INFO] [stdout] 145 + ) [INFO] [stdout] 146 + .upsert(true).await; [INFO] [stdout] 147 + } [INFO] [stdout] 148 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/types/server.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | if e.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!e.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/indexer/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | pub mod indexer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/indexer.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / return Indexer { [INFO] [stdout] 17 | | block_idxer: BlockIndexer::init(http_client, db), [INFO] [stdout] 18 | | election_idxer: ElectionIndexer::init(http_client, db), [INFO] [stdout] 19 | | bridge_stats_idxer: BridgeStatsIndexer::init(db), [INFO] [stdout] 20 | | network_stats_idxer: NetworkStatsIndexer::init(http_client, db), [INFO] [stdout] 21 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 16 ~ Indexer { [INFO] [stdout] 17 + block_idxer: BlockIndexer::init(http_client, db), [INFO] [stdout] 18 + election_idxer: ElectionIndexer::init(http_client, db), [INFO] [stdout] 19 + bridge_stats_idxer: BridgeStatsIndexer::init(db), [INFO] [stdout] 20 + network_stats_idxer: NetworkStatsIndexer::init(http_client, db), [INFO] [stdout] 21 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/bridge.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | return BridgeStatsIndexer { db: db.clone() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 - return BridgeStatsIndexer { db: db.clone() }; [INFO] [stdout] 14 + BridgeStatsIndexer { db: db.clone() } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `deposits` after checking its variant with `is_ok` [INFO] [stdout] --> src/indexer/bridge.rs:31:49 [INFO] [stdout] | [INFO] [stdout] 27 | if deposits.is_ok() && withdrawals.is_ok() { [INFO] [stdout] | ---------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 31 | doc! { "$set": doc! { "deposits": deposits.unwrap() as i64, "withdrawals": withdrawals.unwrap() as i64 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `withdrawals` after checking its variant with `is_ok` [INFO] [stdout] --> src/indexer/bridge.rs:31:90 [INFO] [stdout] | [INFO] [stdout] 27 | if deposits.is_ok() && withdrawals.is_ok() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 31 | doc! { "$set": doc! { "deposits": deposits.unwrap() as i64, "withdrawals": withdrawals.unwrap() as i64 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/stats.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / return NetworkStatsIndexer { [INFO] [stdout] 27 | | http_client: http_client.clone(), [INFO] [stdout] 28 | | db: db.clone(), [INFO] [stdout] 29 | | is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 30 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 ~ NetworkStatsIndexer { [INFO] [stdout] 27 + http_client: http_client.clone(), [INFO] [stdout] 28 + db: db.clone(), [INFO] [stdout] 29 + is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 30 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `sync_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/stats.rs:52:22 [INFO] [stdout] | [INFO] [stdout] 51 | if sync_state.is_err() { [INFO] [stdout] | ---------------------- help: try: `if let Err() = sync_state` [INFO] [stdout] 52 | error!("{}", sync_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `stat_day` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/stats.rs:179:72 [INFO] [stdout] | [INFO] [stdout] 178 | if stat_day.is_err() { [INFO] [stdout] | -------------------- help: try: `if let Err() = stat_day` [INFO] [stdout] 179 | error!("Failed to insert stats for date {}: {}", date_str, stat_day.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `idx_state_upd` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/stats.rs:188:80 [INFO] [stdout] | [INFO] [stdout] 187 | if idx_state_upd.is_err() { [INFO] [stdout] | ------------------------- help: try: `if let Err() = idx_state_upd` [INFO] [stdout] 188 | error!("Failed to update indexer state for date {}: {}", date_str, idx_state_upd.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `DateTime` which implements the `Copy` trait [INFO] [stdout] --> src/indexer/stats.rs:192:23 [INFO] [stdout] | [INFO] [stdout] 192 | last_date = date.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `date` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/compiler.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / for entry in dir { [INFO] [stdout] 35 | | if let Ok(entry) = entry { [INFO] [stdout] 36 | | let path = entry.path(); [INFO] [stdout] 37 | | if path.is_dir() { [INFO] [stdout] ... | [INFO] [stdout] 43 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/compiler.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | / if let Ok(entry) = entry { [INFO] [stdout] 36 | | let path = entry.path(); [INFO] [stdout] 37 | | if path.is_dir() { [INFO] [stdout] 38 | | fs::remove_dir_all(path).expect("Failed to remove a dir"); [INFO] [stdout] ... | [INFO] [stdout] 42 | | } [INFO] [stdout] | |_______^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 34 ~ for entry in dir.flatten() { [INFO] [stdout] 35 + let path = entry.path(); [INFO] [stdout] 36 + if path.is_dir() { [INFO] [stdout] 37 + fs::remove_dir_all(path).expect("Failed to remove a dir"); [INFO] [stdout] 38 + } else { [INFO] [stdout] 39 + fs::remove_file(path).expect("Failed to remove a file"); [INFO] [stdout] 40 + } [INFO] [stdout] 41 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/compiler.rs:53:16 [INFO] [stdout] | [INFO] [stdout] 53 | fn chown(path: &String, uid: usize, gid: usize) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 53 ~ fn chown(path: &str, uid: usize, gid: usize) { [INFO] [stdout] 54 ~ let _ = Command::new("chown").arg("-R").arg(format!("{}:{}", uid, gid)).arg(path.to_owned()).status(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | / return Compiler { [INFO] [stdout] 82 | | db: db.clone(), [INFO] [stdout] 83 | | running: Arc::new(Mutex::new(false)), [INFO] [stdout] 84 | | docker: docker, [INFO] [stdout] ... | [INFO] [stdout] 87 | | go_options: go_options.clone(), [INFO] [stdout] 88 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 81 ~ Compiler { [INFO] [stdout] 82 + db: db.clone(), [INFO] [stdout] 83 + running: Arc::new(Mutex::new(false)), [INFO] [stdout] 84 + docker: docker, [INFO] [stdout] 85 + http_client: http_client.clone(), [INFO] [stdout] 86 + options: options.clone(), [INFO] [stdout] 87 + go_options: go_options.clone(), [INFO] [stdout] 88 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `start_container` after checking its variant with `is_err` [INFO] [stdout] --> src/compiler.rs:282:52 [INFO] [stdout] | [INFO] [stdout] 280 | if start_container.is_err() { [INFO] [stdout] | --------------------------- help: try: `if let Err() = start_container` [INFO] [stdout] 281 | let _ = update_status(&db, &next_contract.code, CVStatus::Failed).await; [INFO] [stdout] 282 | debug!("Failed to start compiler: {}", start_container.unwrap_err().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/compiler.rs:175:14 [INFO] [stdout] | [INFO] [stdout] 175 | if branch_name.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `branch_name.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` on a future [INFO] [stdout] --> src/compiler.rs:237:13 [INFO] [stdout] | [INFO] [stdout] 237 | let _ = update_status(&db, &next_contract.code, CVStatus::Failed); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider awaiting the future or dropping explicitly with `std::mem::drop` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_future [INFO] [stdout] = note: `#[warn(clippy::let_underscore_future)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/compiler.rs:330:31 [INFO] [stdout] | [INFO] [stdout] 330 | let cid_match = &output_cid == &next_contract.code; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 330 - let cid_match = &output_cid == &next_contract.code; [INFO] [stdout] 330 + let cid_match = output_cid == next_contract.code; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/compiler.rs:333:22 [INFO] [stdout] | [INFO] [stdout] 333 | .map(|e| Some(e)) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:118:7 [INFO] [stdout] | [INFO] [stdout] 118 | format!("0.38.0"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"0.38.0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | go: format!("1.24.4"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"1.24.4".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:121:15 [INFO] [stdout] | [INFO] [stdout] 121 | llvm: format!("19.1.2"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"19.1.2".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:122:21 [INFO] [stdout] | [INFO] [stdout] 122 | img_digest: format!("sha256:98447dff0e56426b98f96a1d47ac7c1d82d27e3cd630cba81732cfc13c9a410f") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"sha256:98447dff0e56426b98f96a1d47ac7c1d82d27e3cd630cba81732cfc13c9a410f".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:126:7 [INFO] [stdout] | [INFO] [stdout] 126 | format!("0.39.0"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"0.39.0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:128:13 [INFO] [stdout] | [INFO] [stdout] 128 | go: format!("1.25.0"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"1.25.0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:129:15 [INFO] [stdout] | [INFO] [stdout] 129 | llvm: format!("19.1.2"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"19.1.2".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:130:21 [INFO] [stdout] | [INFO] [stdout] 130 | img_digest: format!("sha256:0e51d243c1b84ec650f2dcd1cce3a09bb09730e1134771aeace2240ade4b32f5") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"sha256:0e51d243c1b84ec650f2dcd1cce3a09bb09730e1134771aeace2240ade4b32f5".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:134:7 [INFO] [stdout] | [INFO] [stdout] 134 | format!("0.40.1"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"0.40.1".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | go: format!("1.25.5"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"1.25.5".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:137:15 [INFO] [stdout] | [INFO] [stdout] 137 | llvm: format!("20.1.1"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"20.1.1".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:138:21 [INFO] [stdout] | [INFO] [stdout] 138 | img_digest: format!("sha256:89a77cc87b191399077be51a295d1d29569314931f334b2730427d7ed3a2b18e") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"sha256:89a77cc87b191399077be51a295d1d29569314931f334b2730427d7ed3a2b18e".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/db.rs:40:3 [INFO] [stdout] | [INFO] [stdout] 40 | / return Ok(Props { [INFO] [stdout] 41 | | last_processed_block: last_l1_block, [INFO] [stdout] 42 | | l2_block_height: block_count, [INFO] [stdout] 43 | | witnesses: witness_count, [INFO] [stdout] ... | [INFO] [stdout] 46 | | transactions: tx_count, [INFO] [stdout] 47 | | }); [INFO] [stdout] | |____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 ~ Ok(Props { [INFO] [stdout] 41 + last_processed_block: last_l1_block, [INFO] [stdout] 42 + l2_block_height: block_count, [INFO] [stdout] 43 + witnesses: witness_count, [INFO] [stdout] 44 + epoch: epoch.saturating_sub(1), [INFO] [stdout] 45 + contracts, [INFO] [stdout] 46 + transactions: tx_count, [INFO] [stdout] 47 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proposer` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:86:32 [INFO] [stdout] | [INFO] [stdout] 85 | if proposer.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = proposer` [INFO] [stdout] 86 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/endpoints/be_api.rs:77:15 [INFO] [stdout] | [INFO] [stdout] 77 | let count = min(max(1, params.count.unwrap_or(100)), 100); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `params.count.unwrap_or(100).clamp(1, 100)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/endpoints/be_api.rs:86:31 [INFO] [stdout] | [INFO] [stdout] 86 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `proposer.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/helpers/db.rs:171:85 [INFO] [stdout] | [INFO] [stdout] 171 | .get(format!("{}/hafah-api/global-state?block-num={}", rpc, last_processed_block.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `last_block_id` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:146:54 [INFO] [stdout] | [INFO] [stdout] 145 | if last_block_id.is_some() { [INFO] [stdout] | -------------------------- help: try: `if let Some() = last_block_id` [INFO] [stdout] 146 | filter.insert("be_info.block_id", doc! { "$lte": last_block_id.unwrap() }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proposer` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:149:32 [INFO] [stdout] | [INFO] [stdout] 148 | if proposer.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = proposer` [INFO] [stdout] 149 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `epoch` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:152:36 [INFO] [stdout] | [INFO] [stdout] 151 | if epoch.is_some() { [INFO] [stdout] | ------------------ help: try: `if let Some() = epoch` [INFO] [stdout] 152 | filter.insert("be_info.epoch", epoch.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/endpoints/be_api.rs:139:15 [INFO] [stdout] | [INFO] [stdout] 139 | let count = min(max(1, params.count.unwrap_or(100)), 100); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `params.count.unwrap_or(100).clamp(1, 100)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/endpoints/be_api.rs:149:31 [INFO] [stdout] | [INFO] [stdout] 149 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `proposer.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `election` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:350:76 [INFO] [stdout] | [INFO] [stdout] 349 | if election.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = election` [INFO] [stdout] 350 | return Ok(HttpResponse::Ok().json(json!({"type": "election", "result": election.unwrap().epoch}))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/endpoints/cv_api.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | !verify_req.error.is_some() && verify_req.result.is_some() && verify_req.result.unwrap().clone()["valid"].as_bool().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `verify_req.error.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: taken reference of right operand [INFO] [stdout] --> src/endpoints/cv_api.rs:87:26 [INFO] [stdout] | [INFO] [stdout] 87 | if parts.len() != 6 || parts[1] != &config.auth.id.clone().unwrap() || parts[2] != "hive" { [INFO] [stdout] | ^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | help: use the right value directly: `config.auth.id.clone().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/endpoints/cv_api.rs:95:18 [INFO] [stdout] | [INFO] [stdout] 95 | let original = (&parts[0..5]).join(":"); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `parts[0..5]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of left operand [INFO] [stdout] --> src/endpoints/cv_api.rs:140:6 [INFO] [stdout] | [INFO] [stdout] 140 | if &dgp_at_block.hash != parts[4] { [INFO] [stdout] | ------------------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: use the left value directly: `dgp_at_block.hash` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:213:39 [INFO] [stdout] | [INFO] [stdout] 213 | } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 213 - } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] 213 + } else if whitelist.is_empty() && prefixed_username != contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:213:82 [INFO] [stdout] | [INFO] [stdout] 213 | } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 213 - } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] 213 + } else if whitelist.is_empty() && &prefixed_username != &contract.creator && prefixed_username != contract.owner { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/endpoints/cv_api.rs:218:3 [INFO] [stdout] | [INFO] [stdout] 218 | / match ctx.db.cv_contracts.find_one(doc! { "_id": &contract.code }).await.map_err(|e| RespErr::DbErr { msg: e.to_string() })? { [INFO] [stdout] 219 | | Some(similar) => { [INFO] [stdout] 220 | | let is_fail = similar.status == "failed" || similar.status == "not match"; [INFO] [stdout] 221 | | if similar.status == CVStatus::Success.to_string() { [INFO] [stdout] ... | [INFO] [stdout] 237 | | None => (), [INFO] [stdout] 238 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 218 ~ if let Some(similar) = ctx.db.cv_contracts.find_one(doc! { "_id": &contract.code }).await.map_err(|e| RespErr::DbErr { msg: e.to_string() })? { [INFO] [stdout] 219 + let is_fail = similar.status == "failed" || similar.status == "not match"; [INFO] [stdout] 220 + if similar.status == CVStatus::Success.to_string() { [INFO] [stdout] 221 + if &similar.contract_id == &address { [INFO] [stdout] 222 + return Err(RespErr::BadRequest { msg: String::from("Contract is already verified") }); [INFO] [stdout] 223 + } else { [INFO] [stdout] 224 + return Err(RespErr::CvSimilarMatch); [INFO] [stdout] 225 + } [INFO] [stdout] 226 + } else if is_fail && similar.request_ts.to_chrono() + Duration::hours(12) > Utc::now() { [INFO] [stdout] 227 + return Err(RespErr::CvRetryLater); [INFO] [stdout] 228 + } else if similar.status == "queued" { [INFO] [stdout] 229 + if &similar.contract_id == &address { [INFO] [stdout] 230 + return Err(RespErr::BadRequest { msg: String::from("Contract is already queued for verification.") }); [INFO] [stdout] 231 + } else { [INFO] [stdout] 232 + return Err(RespErr::BadRequest { msg: String::from("A similar contract is already queued for verification.") }); [INFO] [stdout] 233 + } [INFO] [stdout] 234 + } [INFO] [stdout] 235 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | if &similar.contract_id == &address { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 222 - if &similar.contract_id == &address { [INFO] [stdout] 222 + if similar.contract_id == address { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:230:12 [INFO] [stdout] | [INFO] [stdout] 230 | if &similar.contract_id == &address { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 230 - if &similar.contract_id == &address { [INFO] [stdout] 230 + if similar.contract_id == address { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/endpoints/cv_api.rs:249:60 [INFO] [stdout] | [INFO] [stdout] 249 | let repo_branch = req_data.repo_branch.clone().unwrap_or(format!("")); [INFO] [stdout] | ^^^^^^^^^^^ help: consider using `String::new()`: `String::new()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/endpoints/cv_api.rs:263:7 [INFO] [stdout] | [INFO] [stdout] 263 | / if &tool != "wabt" && &tool != "wasm-tools" { [INFO] [stdout] 264 | | return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] 265 | | } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 262 ~ Some(tool) [INFO] [stdout] 263 ~ if &tool != "wabt" && &tool != "wasm-tools" => { [INFO] [stdout] 264 | return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] 265 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/endpoints/cv_api.rs:261:3 [INFO] [stdout] | [INFO] [stdout] 261 | / match req_data.strip_tool.clone() { [INFO] [stdout] 262 | | Some(tool) => { [INFO] [stdout] 263 | | if &tool != "wabt" && &tool != "wasm-tools" { [INFO] [stdout] 264 | | return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] ... | [INFO] [stdout] 267 | | None => (), [INFO] [stdout] 268 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 261 ~ if let Some(tool) = req_data.strip_tool.clone() { [INFO] [stdout] 262 + if &tool != "wabt" && &tool != "wasm-tools" { [INFO] [stdout] 263 + return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] 264 + } [INFO] [stdout] 265 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/endpoints/cv_api.rs:323:3 [INFO] [stdout] | [INFO] [stdout] 323 | / match [INFO] [stdout] 324 | | ctx.db.cv_contracts [INFO] [stdout] 325 | | .find_one(doc! { "_id": &deployed_contract.code }).await [INFO] [stdout] 326 | | .map_err(|e| RespErr::DbErr { msg: e.to_string() })? [INFO] [stdout] ... | [INFO] [stdout] 351 | | None => (), [INFO] [stdout] 352 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 323 ~ if let Some(similar) = ctx.db.cv_contracts [INFO] [stdout] 324 + .find_one(doc! { "_id": &deployed_contract.code }).await [INFO] [stdout] 325 + .map_err(|e| RespErr::DbErr { msg: e.to_string() })? { [INFO] [stdout] 326 + return Ok( [INFO] [stdout] 327 + HttpResponse::Ok().json(CVContractResult { [INFO] [stdout] 328 + address: addr, [INFO] [stdout] 329 + code: similar.code, [INFO] [stdout] 330 + similar_match: Some(similar.contract_id), [INFO] [stdout] 331 + verifier: similar.verifier, [INFO] [stdout] 332 + request_ts: similar.request_ts.to_chrono().format(TIMESTAMP_FORMAT).to_string(), [INFO] [stdout] 333 + verified_ts: similar.verified_ts.map(|t| t.to_chrono().format(TIMESTAMP_FORMAT).to_string()), [INFO] [stdout] 334 + status: similar.status.clone(), [INFO] [stdout] 335 + repo_name: similar.repo_name, [INFO] [stdout] 336 + repo_branch: similar.repo_branch, [INFO] [stdout] 337 + git_commit: similar.git_commit, [INFO] [stdout] 338 + tinygo_version: similar.tinygo_version, [INFO] [stdout] 339 + go_version: similar.go_version, [INFO] [stdout] 340 + llvm_version: similar.llvm_version, [INFO] [stdout] 341 + strip_tool: similar.strip_tool, [INFO] [stdout] 342 + exports: similar.exports, [INFO] [stdout] 343 + license: similar.license, [INFO] [stdout] 344 + lang: similar.lang.clone(), [INFO] [stdout] 345 + }) [INFO] [stdout] 346 + ); [INFO] [stdout] 347 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/endpoints/cv_api.rs:367:3 [INFO] [stdout] | [INFO] [stdout] 367 | return Ok(HttpResponse::Ok().json(result)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 367 - return Ok(HttpResponse::Ok().json(result)); [INFO] [stdout] 367 + Ok(HttpResponse::Ok().json(result)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/blocks.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / return BlockIndexer { [INFO] [stdout] 21 | | http_client: http_client.clone(), [INFO] [stdout] 22 | | db: db.clone(), [INFO] [stdout] 23 | | is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 24 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 ~ BlockIndexer { [INFO] [stdout] 21 + http_client: http_client.clone(), [INFO] [stdout] 22 + db: db.clone(), [INFO] [stdout] 23 + is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 24 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `sync_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:43:22 [INFO] [stdout] | [INFO] [stdout] 42 | if sync_state.is_err() { [INFO] [stdout] | ---------------------- help: try: `if let Err() = sync_state` [INFO] [stdout] 43 | error!("{}", sync_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `next_blocks` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:60:24 [INFO] [stdout] | [INFO] [stdout] 59 | if next_blocks.is_err() { [INFO] [stdout] | ----------------------- help: try: `if let Err() = next_blocks` [INFO] [stdout] 60 | error!("{}", next_blocks.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `b` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:68:62 [INFO] [stdout] | [INFO] [stdout] 67 | if b.is_err() { [INFO] [stdout] | ------------- help: try: `if let Err() = b` [INFO] [stdout] 68 | error!("Failed to deserialize block header: {}", b.unwrap_err().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `tx` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:77:26 [INFO] [stdout] | [INFO] [stdout] 76 | if tx.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = tx` [INFO] [stdout] 77 | error!("{}", tx.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `epoch` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:113:58 [INFO] [stdout] | [INFO] [stdout] 112 | if epoch.is_err() { [INFO] [stdout] | ----------------- help: try: `if let Err() = epoch` [INFO] [stdout] 113 | error!("Failed to qeury epoch in block: {}", epoch.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `bv` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:120:47 [INFO] [stdout] | [INFO] [stdout] 119 | if bv.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = bv` [INFO] [stdout] 120 | error!("Failed to decode bv: {}", bv.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `up` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:144:43 [INFO] [stdout] | [INFO] [stdout] 143 | if up.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = up` [INFO] [stdout] 144 | error!("Failed to update {}", up.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `up` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:153:43 [INFO] [stdout] | [INFO] [stdout] 152 | if up.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = up` [INFO] [stdout] 153 | error!("Failed to update {}", up.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `upd_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:179:47 [INFO] [stdout] | [INFO] [stdout] 178 | if upd_state.is_err() { [INFO] [stdout] | --------------------- help: try: `if let Err() = upd_state` [INFO] [stdout] 179 | error!("Failed to update state {}", upd_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/indexer/blocks.rs:157:11 [INFO] [stdout] | [INFO] [stdout] 157 | / match witness_stats.find_one(doc! { "_id": &block.proposer }).await { [INFO] [stdout] 158 | | Ok(last_stat) => { [INFO] [stdout] 159 | | if last_stat.is_none() || (last_stat.unwrap().last_block.unwrap_or(0) as u32) < next_nums.1 { [INFO] [stdout] 160 | | let _ = witness_stats [INFO] [stdout] ... | [INFO] [stdout] 171 | | Err(_) => (), [INFO] [stdout] 172 | | } [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 157 ~ if let Ok(last_stat) = witness_stats.find_one(doc! { "_id": &block.proposer }).await { [INFO] [stdout] 158 + if last_stat.is_none() || (last_stat.unwrap().last_block.unwrap_or(0) as u32) < next_nums.1 { [INFO] [stdout] 159 + let _ = witness_stats [INFO] [stdout] 160 + .update_one( [INFO] [stdout] 161 + doc! { "_id": &block.proposer }, [INFO] [stdout] 162 + doc! { [INFO] [stdout] 163 + "$set": doc! {"last_block": next_nums.1 as i32}, [INFO] [stdout] 164 + "$inc": doc! {"block_count": 1} [INFO] [stdout] 165 + } [INFO] [stdout] 166 + ) [INFO] [stdout] 167 + .upsert(true).await; [INFO] [stdout] 168 + } [INFO] [stdout] 169 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/epoch.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | return ElectionIndexer { http_client: http_client.clone(), db: db.clone(), is_running: Arc::new(RwLock::new(false)) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 - return ElectionIndexer { http_client: http_client.clone(), db: db.clone(), is_running: Arc::new(RwLock::new(false)) }; [INFO] [stdout] 20 + ElectionIndexer { http_client: http_client.clone(), db: db.clone(), is_running: Arc::new(RwLock::new(false)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `sync_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:38:22 [INFO] [stdout] | [INFO] [stdout] 37 | if sync_state.is_err() { [INFO] [stdout] | ---------------------- help: try: `if let Err() = sync_state` [INFO] [stdout] 38 | error!("{}", sync_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `next_epochs` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:55:24 [INFO] [stdout] | [INFO] [stdout] 54 | if next_epochs.is_err() { [INFO] [stdout] | ----------------------- help: try: `if let Err() = next_epochs` [INFO] [stdout] 55 | error!("{}", next_epochs.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `ep` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:63:58 [INFO] [stdout] | [INFO] [stdout] 62 | if ep.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = ep` [INFO] [stdout] 63 | error!("Failed to deserialize election: {}", ep.unwrap_err().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `tx` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:72:26 [INFO] [stdout] | [INFO] [stdout] 71 | if tx.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = tx` [INFO] [stdout] 72 | error!("{}", tx.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `up` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:132:43 [INFO] [stdout] | [INFO] [stdout] 131 | if up.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = up` [INFO] [stdout] 132 | error!("Failed to update {}", up.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `upd_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:155:47 [INFO] [stdout] | [INFO] [stdout] 154 | if upd_state.is_err() { [INFO] [stdout] | --------------------- help: try: `if let Err() = upd_state` [INFO] [stdout] 155 | error!("Failed to update state {}", upd_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> src/indexer/epoch.rs:120:31 [INFO] [stdout] | [INFO] [stdout] 120 | doc! { "epoch": epoch.epoch as i64 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `epoch.epoch` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/indexer/epoch.rs:136:11 [INFO] [stdout] | [INFO] [stdout] 136 | / match witness_stats.find_one(doc! { "_id": &epoch.proposer }).await { [INFO] [stdout] 137 | | Ok(last_stat) => { [INFO] [stdout] 138 | | if last_stat.is_none() || (last_stat.unwrap().last_epoch.unwrap_or(-1) as i64) < epoch.epoch { [INFO] [stdout] 139 | | let _ = witness_stats [INFO] [stdout] ... | [INFO] [stdout] 150 | | Err(_) => (), [INFO] [stdout] 151 | | } [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 136 ~ if let Ok(last_stat) = witness_stats.find_one(doc! { "_id": &epoch.proposer }).await { [INFO] [stdout] 137 + if last_stat.is_none() || (last_stat.unwrap().last_epoch.unwrap_or(-1) as i64) < epoch.epoch { [INFO] [stdout] 138 + let _ = witness_stats [INFO] [stdout] 139 + .update_one( [INFO] [stdout] 140 + doc! { "_id": &epoch.proposer }, [INFO] [stdout] 141 + doc! { [INFO] [stdout] 142 + "$set": doc! {"last_epoch": epoch.epoch as i32}, [INFO] [stdout] 143 + "$inc": doc! {"election_count": 1} [INFO] [stdout] 144 + } [INFO] [stdout] 145 + ) [INFO] [stdout] 146 + .upsert(true).await; [INFO] [stdout] 147 + } [INFO] [stdout] 148 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/indexer/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | pub mod indexer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/indexer.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / return Indexer { [INFO] [stdout] 17 | | block_idxer: BlockIndexer::init(http_client, db), [INFO] [stdout] 18 | | election_idxer: ElectionIndexer::init(http_client, db), [INFO] [stdout] 19 | | bridge_stats_idxer: BridgeStatsIndexer::init(db), [INFO] [stdout] 20 | | network_stats_idxer: NetworkStatsIndexer::init(http_client, db), [INFO] [stdout] 21 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 16 ~ Indexer { [INFO] [stdout] 17 + block_idxer: BlockIndexer::init(http_client, db), [INFO] [stdout] 18 + election_idxer: ElectionIndexer::init(http_client, db), [INFO] [stdout] 19 + bridge_stats_idxer: BridgeStatsIndexer::init(db), [INFO] [stdout] 20 + network_stats_idxer: NetworkStatsIndexer::init(http_client, db), [INFO] [stdout] 21 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/bridge.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | return BridgeStatsIndexer { db: db.clone() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 - return BridgeStatsIndexer { db: db.clone() }; [INFO] [stdout] 14 + BridgeStatsIndexer { db: db.clone() } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `deposits` after checking its variant with `is_ok` [INFO] [stdout] --> src/indexer/bridge.rs:31:49 [INFO] [stdout] | [INFO] [stdout] 27 | if deposits.is_ok() && withdrawals.is_ok() { [INFO] [stdout] | ---------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 31 | doc! { "$set": doc! { "deposits": deposits.unwrap() as i64, "withdrawals": withdrawals.unwrap() as i64 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `withdrawals` after checking its variant with `is_ok` [INFO] [stdout] --> src/indexer/bridge.rs:31:90 [INFO] [stdout] | [INFO] [stdout] 27 | if deposits.is_ok() && withdrawals.is_ok() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 31 | doc! { "$set": doc! { "deposits": deposits.unwrap() as i64, "withdrawals": withdrawals.unwrap() as i64 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/stats.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / return NetworkStatsIndexer { [INFO] [stdout] 27 | | http_client: http_client.clone(), [INFO] [stdout] 28 | | db: db.clone(), [INFO] [stdout] 29 | | is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 30 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 ~ NetworkStatsIndexer { [INFO] [stdout] 27 + http_client: http_client.clone(), [INFO] [stdout] 28 + db: db.clone(), [INFO] [stdout] 29 + is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 30 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `sync_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/stats.rs:52:22 [INFO] [stdout] | [INFO] [stdout] 51 | if sync_state.is_err() { [INFO] [stdout] | ---------------------- help: try: `if let Err() = sync_state` [INFO] [stdout] 52 | error!("{}", sync_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `stat_day` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/stats.rs:179:72 [INFO] [stdout] | [INFO] [stdout] 178 | if stat_day.is_err() { [INFO] [stdout] | -------------------- help: try: `if let Err() = stat_day` [INFO] [stdout] 179 | error!("Failed to insert stats for date {}: {}", date_str, stat_day.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `idx_state_upd` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/stats.rs:188:80 [INFO] [stdout] | [INFO] [stdout] 187 | if idx_state_upd.is_err() { [INFO] [stdout] | ------------------------- help: try: `if let Err() = idx_state_upd` [INFO] [stdout] 188 | error!("Failed to update indexer state for date {}: {}", date_str, idx_state_upd.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `DateTime` which implements the `Copy` trait [INFO] [stdout] --> src/indexer/stats.rs:192:23 [INFO] [stdout] | [INFO] [stdout] 192 | last_date = date.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `date` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/compiler.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / for entry in dir { [INFO] [stdout] 35 | | if let Ok(entry) = entry { [INFO] [stdout] 36 | | let path = entry.path(); [INFO] [stdout] 37 | | if path.is_dir() { [INFO] [stdout] ... | [INFO] [stdout] 43 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/compiler.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | / if let Ok(entry) = entry { [INFO] [stdout] 36 | | let path = entry.path(); [INFO] [stdout] 37 | | if path.is_dir() { [INFO] [stdout] 38 | | fs::remove_dir_all(path).expect("Failed to remove a dir"); [INFO] [stdout] ... | [INFO] [stdout] 42 | | } [INFO] [stdout] | |_______^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 34 ~ for entry in dir.flatten() { [INFO] [stdout] 35 + let path = entry.path(); [INFO] [stdout] 36 + if path.is_dir() { [INFO] [stdout] 37 + fs::remove_dir_all(path).expect("Failed to remove a dir"); [INFO] [stdout] 38 + } else { [INFO] [stdout] 39 + fs::remove_file(path).expect("Failed to remove a file"); [INFO] [stdout] 40 + } [INFO] [stdout] 41 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/compiler.rs:53:16 [INFO] [stdout] | [INFO] [stdout] 53 | fn chown(path: &String, uid: usize, gid: usize) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 53 ~ fn chown(path: &str, uid: usize, gid: usize) { [INFO] [stdout] 54 ~ let _ = Command::new("chown").arg("-R").arg(format!("{}:{}", uid, gid)).arg(path.to_owned()).status(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | / return Compiler { [INFO] [stdout] 82 | | db: db.clone(), [INFO] [stdout] 83 | | running: Arc::new(Mutex::new(false)), [INFO] [stdout] 84 | | docker: docker, [INFO] [stdout] ... | [INFO] [stdout] 87 | | go_options: go_options.clone(), [INFO] [stdout] 88 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 81 ~ Compiler { [INFO] [stdout] 82 + db: db.clone(), [INFO] [stdout] 83 + running: Arc::new(Mutex::new(false)), [INFO] [stdout] 84 + docker: docker, [INFO] [stdout] 85 + http_client: http_client.clone(), [INFO] [stdout] 86 + options: options.clone(), [INFO] [stdout] 87 + go_options: go_options.clone(), [INFO] [stdout] 88 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `start_container` after checking its variant with `is_err` [INFO] [stdout] --> src/compiler.rs:282:52 [INFO] [stdout] | [INFO] [stdout] 280 | if start_container.is_err() { [INFO] [stdout] | --------------------------- help: try: `if let Err() = start_container` [INFO] [stdout] 281 | let _ = update_status(&db, &next_contract.code, CVStatus::Failed).await; [INFO] [stdout] 282 | debug!("Failed to start compiler: {}", start_container.unwrap_err().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/compiler.rs:175:14 [INFO] [stdout] | [INFO] [stdout] 175 | if branch_name.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `branch_name.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` on a future [INFO] [stdout] --> src/compiler.rs:237:13 [INFO] [stdout] | [INFO] [stdout] 237 | let _ = update_status(&db, &next_contract.code, CVStatus::Failed); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider awaiting the future or dropping explicitly with `std::mem::drop` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_future [INFO] [stdout] = note: `#[warn(clippy::let_underscore_future)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/compiler.rs:330:31 [INFO] [stdout] | [INFO] [stdout] 330 | let cid_match = &output_cid == &next_contract.code; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 330 - let cid_match = &output_cid == &next_contract.code; [INFO] [stdout] 330 + let cid_match = output_cid == next_contract.code; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/compiler.rs:333:22 [INFO] [stdout] | [INFO] [stdout] 333 | .map(|e| Some(e)) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/db.rs:40:3 [INFO] [stdout] | [INFO] [stdout] 40 | / return Ok(Props { [INFO] [stdout] 41 | | last_processed_block: last_l1_block, [INFO] [stdout] 42 | | l2_block_height: block_count, [INFO] [stdout] 43 | | witnesses: witness_count, [INFO] [stdout] ... | [INFO] [stdout] 46 | | transactions: tx_count, [INFO] [stdout] 47 | | }); [INFO] [stdout] | |____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 ~ Ok(Props { [INFO] [stdout] 41 + last_processed_block: last_l1_block, [INFO] [stdout] 42 + l2_block_height: block_count, [INFO] [stdout] 43 + witnesses: witness_count, [INFO] [stdout] 44 + epoch: epoch.saturating_sub(1), [INFO] [stdout] 45 + contracts, [INFO] [stdout] 46 + transactions: tx_count, [INFO] [stdout] 47 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/helpers/db.rs:171:85 [INFO] [stdout] | [INFO] [stdout] 171 | .get(format!("{}/hafah-api/global-state?block-num={}", rpc, last_processed_block.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/helpers/datetime.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | assert_eq!(parsed.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 21 - assert_eq!(parsed.is_ok(), true); [INFO] [stdout] 21 + assert!(parsed.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/e2e.rs:80:7 [INFO] [stdout] | [INFO] [stdout] 80 | src_dir: src_dir, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `src_dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> tests/e2e.rs:98:30 [INFO] [stdout] | [INFO] [stdout] 98 | let server_ctx = Context { db: db, compiler: Some(compiler), http_client: http_client.clone() }; [INFO] [stdout] | ^^^^^^ help: replace it with: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tests/e2e.rs:63:3 [INFO] [stdout] | [INFO] [stdout] 63 | return db; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 63 - return db; [INFO] [stdout] 63 + db [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> tests/e2e.rs:44:18 [INFO] [stdout] | [INFO] [stdout] 44 | mongo_url: format!("mongodb://127.0.0.1:27017"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mongodb://127.0.0.1:27017".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> tests/e2e.rs:45:21 [INFO] [stdout] | [INFO] [stdout] 45 | magi_db_name: format!("mbb-e2e"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mbb-e2e".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> tests/e2e.rs:46:19 [INFO] [stdout] | [INFO] [stdout] 46 | be_db_name: format!("mbb-e2e-be"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mbb-e2e-be".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> tests/e2e.rs:47:19 [INFO] [stdout] | [INFO] [stdout] 47 | cv_db_name: format!("mbb-e2e-cv"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mbb-e2e-cv".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> tests/e2e.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | .map(|k| Some(k)) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> tests/e2e.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 92 | wasm_strip: format!("/usr/local/bin/wasm-strip"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"/usr/local/bin/wasm-strip".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> tests/e2e.rs:93:19 [INFO] [stdout] | [INFO] [stdout] 93 | wasm_tools: format!("/usr/local/bin/wasm-tools"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"/usr/local/bin/wasm-tools".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/e2e.rs:128:3 [INFO] [stdout] | [INFO] [stdout] 128 | assert_eq!(resp.success.unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 128 - assert_eq!(resp.success.unwrap(), true); [INFO] [stdout] 128 + assert!(resp.success.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/e2e.rs:158:7 [INFO] [stdout] | [INFO] [stdout] 158 | assert_eq!(resp.exports.is_some(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 158 - assert_eq!(resp.exports.is_some(), true); [INFO] [stdout] 158 + assert!(resp.exports.is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/e2e.rs:159:7 [INFO] [stdout] | [INFO] [stdout] 159 | assert_eq!(resp.verified_ts.is_some(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 159 - assert_eq!(resp.verified_ts.is_some(), true); [INFO] [stdout] 159 + assert!(resp.verified_ts.is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/e2e.rs:160:7 [INFO] [stdout] | [INFO] [stdout] 160 | assert_eq!(resp.git_commit.is_some(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 160 - assert_eq!(resp.git_commit.is_some(), true); [INFO] [stdout] 160 + assert!(resp.git_commit.is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/e2e.rs:164:7 [INFO] [stdout] | [INFO] [stdout] 164 | assert_eq!(exports.contains(&String::from("entrypoint")), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 164 - assert_eq!(exports.contains(&String::from("entrypoint")), true); [INFO] [stdout] 164 + assert!(exports.contains(&String::from("entrypoint"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/e2e.rs:165:7 [INFO] [stdout] | [INFO] [stdout] 165 | assert_eq!(exports.contains(&String::from("hello_world")), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 165 - assert_eq!(exports.contains(&String::from("hello_world")), true); [INFO] [stdout] 165 + assert!(exports.contains(&String::from("hello_world"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/e2e.rs:198:3 [INFO] [stdout] | [INFO] [stdout] 198 | assert_eq!(resp.success.unwrap(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 198 - assert_eq!(resp.success.unwrap(), true); [INFO] [stdout] 198 + assert!(resp.success.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/e2e.rs:228:7 [INFO] [stdout] | [INFO] [stdout] 228 | assert_eq!(resp.exports.is_some(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 228 - assert_eq!(resp.exports.is_some(), true); [INFO] [stdout] 228 + assert!(resp.exports.is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/e2e.rs:229:7 [INFO] [stdout] | [INFO] [stdout] 229 | assert_eq!(resp.verified_ts.is_some(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 229 - assert_eq!(resp.verified_ts.is_some(), true); [INFO] [stdout] 229 + assert!(resp.verified_ts.is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/e2e.rs:230:7 [INFO] [stdout] | [INFO] [stdout] 230 | assert_eq!(resp.git_commit.is_some(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 230 - assert_eq!(resp.git_commit.is_some(), true); [INFO] [stdout] 230 + assert!(resp.git_commit.is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/e2e.rs:234:7 [INFO] [stdout] | [INFO] [stdout] 234 | assert_eq!(exports.contains(&String::from("entrypoint")), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 234 - assert_eq!(exports.contains(&String::from("entrypoint")), true); [INFO] [stdout] 234 + assert!(exports.contains(&String::from("entrypoint"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/e2e.rs:235:7 [INFO] [stdout] | [INFO] [stdout] 235 | assert_eq!(exports.contains(&String::from("hello_world")), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 235 - assert_eq!(exports.contains(&String::from("hello_world")), true); [INFO] [stdout] 235 + assert!(exports.contains(&String::from("hello_world"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | use reqwest; [INFO] [stdout] | ^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | use env_logger; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/config.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | use env_logger; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/config.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | use hex; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/config.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | use toml; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/mongo.rs:84:7 [INFO] [stdout] | [INFO] [stdout] 84 | cv_contracts: cv_contracts, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cv_contracts` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | use reqwest; [INFO] [stdout] | ^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | use env_logger; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/config.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | use env_logger; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/config.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | use hex; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/config.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | use toml; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/mongo.rs:84:7 [INFO] [stdout] | [INFO] [stdout] 84 | cv_contracts: cv_contracts, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cv_contracts` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/endpoints/cv_api.rs:285:5 [INFO] [stdout] | [INFO] [stdout] 285 | repo_branch: repo_branch, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `repo_branch` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/compiler.rs:84:7 [INFO] [stdout] | [INFO] [stdout] 84 | docker: docker, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `docker` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/endpoints/cv_api.rs:285:5 [INFO] [stdout] | [INFO] [stdout] 285 | repo_branch: repo_branch, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `repo_branch` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/compiler.rs:84:7 [INFO] [stdout] | [INFO] [stdout] 84 | docker: docker, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `docker` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:105:23 [INFO] [stdout] | [INFO] [stdout] 105 | network: Some(format!("mainnet")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mainnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:108:22 [INFO] [stdout] | [INFO] [stdout] 108 | mongo_url: format!("mongodb://localhost:27017"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mongodb://localhost:27017".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:109:25 [INFO] [stdout] | [INFO] [stdout] 109 | magi_db_name: format!("go-vsc"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"go-vsc".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:110:23 [INFO] [stdout] | [INFO] [stdout] 110 | be_db_name: format!("vsc2"), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"vsc2".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:111:23 [INFO] [stdout] | [INFO] [stdout] 111 | cv_db_name: format!("vsc-cv"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"vsc-cv".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | wasm_strip: format!("wasm-strip"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"wasm-strip".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:126:23 [INFO] [stdout] | [INFO] [stdout] 126 | wasm_tools: format!("wasm-tools"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"wasm-tools".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/constants.rs:17:3 [INFO] [stdout] | [INFO] [stdout] 17 | / return NetworkConsts { [INFO] [stdout] 18 | | name: format!("mainnet"), [INFO] [stdout] 19 | | magi_explorer_url: format!("https://vsc.techcoderx.com"), [INFO] [stdout] 20 | | l1_explorer_url: format!("https://hivehub.dev"), [INFO] [stdout] 21 | | start_date: format!("2025-03-31"), [INFO] [stdout] 22 | | }; [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 17 ~ NetworkConsts { [INFO] [stdout] 18 + name: format!("mainnet"), [INFO] [stdout] 19 + magi_explorer_url: format!("https://vsc.techcoderx.com"), [INFO] [stdout] 20 + l1_explorer_url: format!("https://hivehub.dev"), [INFO] [stdout] 21 + start_date: format!("2025-03-31"), [INFO] [stdout] 22 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | name: format!("mainnet"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mainnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | magi_explorer_url: format!("https://vsc.techcoderx.com"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://vsc.techcoderx.com".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:20:22 [INFO] [stdout] | [INFO] [stdout] 20 | l1_explorer_url: format!("https://hivehub.dev"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://hivehub.dev".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | start_date: format!("2025-03-31"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"2025-03-31".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/constants.rs:26:3 [INFO] [stdout] | [INFO] [stdout] 26 | / return NetworkConsts { [INFO] [stdout] 27 | | name: format!("testnet"), [INFO] [stdout] 28 | | magi_explorer_url: format!("https://testnet.magi.techcoderx.com"), [INFO] [stdout] 29 | | l1_explorer_url: format!("https://testnet.techcoderx.com/explorer"), [INFO] [stdout] 30 | | start_date: format!("2026-01-24"), [INFO] [stdout] 31 | | }; [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 ~ NetworkConsts { [INFO] [stdout] 27 + name: format!("testnet"), [INFO] [stdout] 28 + magi_explorer_url: format!("https://testnet.magi.techcoderx.com"), [INFO] [stdout] 29 + l1_explorer_url: format!("https://testnet.techcoderx.com/explorer"), [INFO] [stdout] 30 + start_date: format!("2026-01-24"), [INFO] [stdout] 31 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 27 | name: format!("testnet"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"testnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:28:24 [INFO] [stdout] | [INFO] [stdout] 28 | magi_explorer_url: format!("https://testnet.magi.techcoderx.com"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://testnet.magi.techcoderx.com".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:29:22 [INFO] [stdout] | [INFO] [stdout] 29 | l1_explorer_url: format!("https://testnet.techcoderx.com/explorer"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://testnet.techcoderx.com/explorer".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | start_date: format!("2026-01-24"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"2026-01-24".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:38:46 [INFO] [stdout] | [INFO] [stdout] 38 | let net = config.network.clone().unwrap_or(format!("mainnet")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mainnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:105:23 [INFO] [stdout] | [INFO] [stdout] 105 | network: Some(format!("mainnet")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mainnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:108:22 [INFO] [stdout] | [INFO] [stdout] 108 | mongo_url: format!("mongodb://localhost:27017"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mongodb://localhost:27017".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:109:25 [INFO] [stdout] | [INFO] [stdout] 109 | magi_db_name: format!("go-vsc"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"go-vsc".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:110:23 [INFO] [stdout] | [INFO] [stdout] 110 | be_db_name: format!("vsc2"), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"vsc2".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:111:23 [INFO] [stdout] | [INFO] [stdout] 111 | cv_db_name: format!("vsc-cv"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"vsc-cv".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | wasm_strip: format!("wasm-strip"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"wasm-strip".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/config.rs:126:23 [INFO] [stdout] | [INFO] [stdout] 126 | wasm_tools: format!("wasm-tools"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"wasm-tools".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/constants.rs:17:3 [INFO] [stdout] | [INFO] [stdout] 17 | / return NetworkConsts { [INFO] [stdout] 18 | | name: format!("mainnet"), [INFO] [stdout] 19 | | magi_explorer_url: format!("https://vsc.techcoderx.com"), [INFO] [stdout] 20 | | l1_explorer_url: format!("https://hivehub.dev"), [INFO] [stdout] 21 | | start_date: format!("2025-03-31"), [INFO] [stdout] 22 | | }; [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 17 ~ NetworkConsts { [INFO] [stdout] 18 + name: format!("mainnet"), [INFO] [stdout] 19 + magi_explorer_url: format!("https://vsc.techcoderx.com"), [INFO] [stdout] 20 + l1_explorer_url: format!("https://hivehub.dev"), [INFO] [stdout] 21 + start_date: format!("2025-03-31"), [INFO] [stdout] 22 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | name: format!("mainnet"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mainnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | magi_explorer_url: format!("https://vsc.techcoderx.com"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://vsc.techcoderx.com".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:20:22 [INFO] [stdout] | [INFO] [stdout] 20 | l1_explorer_url: format!("https://hivehub.dev"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://hivehub.dev".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | start_date: format!("2025-03-31"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"2025-03-31".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/constants.rs:26:3 [INFO] [stdout] | [INFO] [stdout] 26 | / return NetworkConsts { [INFO] [stdout] 27 | | name: format!("testnet"), [INFO] [stdout] 28 | | magi_explorer_url: format!("https://testnet.magi.techcoderx.com"), [INFO] [stdout] 29 | | l1_explorer_url: format!("https://testnet.techcoderx.com/explorer"), [INFO] [stdout] 30 | | start_date: format!("2026-01-24"), [INFO] [stdout] 31 | | }; [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 ~ NetworkConsts { [INFO] [stdout] 27 + name: format!("testnet"), [INFO] [stdout] 28 + magi_explorer_url: format!("https://testnet.magi.techcoderx.com"), [INFO] [stdout] 29 + l1_explorer_url: format!("https://testnet.techcoderx.com/explorer"), [INFO] [stdout] 30 + start_date: format!("2026-01-24"), [INFO] [stdout] 31 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 27 | name: format!("testnet"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"testnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:28:24 [INFO] [stdout] | [INFO] [stdout] 28 | magi_explorer_url: format!("https://testnet.magi.techcoderx.com"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://testnet.magi.techcoderx.com".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:29:22 [INFO] [stdout] | [INFO] [stdout] 29 | l1_explorer_url: format!("https://testnet.techcoderx.com/explorer"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://testnet.techcoderx.com/explorer".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | start_date: format!("2026-01-24"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"2026-01-24".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/constants.rs:38:46 [INFO] [stdout] | [INFO] [stdout] 38 | let net = config.network.clone().unwrap_or(format!("mainnet")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"mainnet".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/types/server.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | if e.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!e.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:118:7 [INFO] [stdout] | [INFO] [stdout] 118 | format!("0.38.0"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"0.38.0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | go: format!("1.24.4"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"1.24.4".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:121:15 [INFO] [stdout] | [INFO] [stdout] 121 | llvm: format!("19.1.2"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"19.1.2".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:122:21 [INFO] [stdout] | [INFO] [stdout] 122 | img_digest: format!("sha256:98447dff0e56426b98f96a1d47ac7c1d82d27e3cd630cba81732cfc13c9a410f") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"sha256:98447dff0e56426b98f96a1d47ac7c1d82d27e3cd630cba81732cfc13c9a410f".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:126:7 [INFO] [stdout] | [INFO] [stdout] 126 | format!("0.39.0"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"0.39.0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:128:13 [INFO] [stdout] | [INFO] [stdout] 128 | go: format!("1.25.0"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"1.25.0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:129:15 [INFO] [stdout] | [INFO] [stdout] 129 | llvm: format!("19.1.2"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"19.1.2".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:130:21 [INFO] [stdout] | [INFO] [stdout] 130 | img_digest: format!("sha256:0e51d243c1b84ec650f2dcd1cce3a09bb09730e1134771aeace2240ade4b32f5") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"sha256:0e51d243c1b84ec650f2dcd1cce3a09bb09730e1134771aeace2240ade4b32f5".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:134:7 [INFO] [stdout] | [INFO] [stdout] 134 | format!("0.40.1"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"0.40.1".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | go: format!("1.25.5"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"1.25.5".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:137:15 [INFO] [stdout] | [INFO] [stdout] 137 | llvm: format!("20.1.1"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"20.1.1".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:138:21 [INFO] [stdout] | [INFO] [stdout] 138 | img_digest: format!("sha256:89a77cc87b191399077be51a295d1d29569314931f334b2730427d7ed3a2b18e") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"sha256:89a77cc87b191399077be51a295d1d29569314931f334b2730427d7ed3a2b18e".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proposer` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:86:32 [INFO] [stdout] | [INFO] [stdout] 85 | if proposer.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = proposer` [INFO] [stdout] 86 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/endpoints/be_api.rs:77:15 [INFO] [stdout] | [INFO] [stdout] 77 | let count = min(max(1, params.count.unwrap_or(100)), 100); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `params.count.unwrap_or(100).clamp(1, 100)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/endpoints/be_api.rs:86:31 [INFO] [stdout] | [INFO] [stdout] 86 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `proposer.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `last_block_id` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:146:54 [INFO] [stdout] | [INFO] [stdout] 145 | if last_block_id.is_some() { [INFO] [stdout] | -------------------------- help: try: `if let Some() = last_block_id` [INFO] [stdout] 146 | filter.insert("be_info.block_id", doc! { "$lte": last_block_id.unwrap() }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proposer` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:149:32 [INFO] [stdout] | [INFO] [stdout] 148 | if proposer.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = proposer` [INFO] [stdout] 149 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `epoch` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:152:36 [INFO] [stdout] | [INFO] [stdout] 151 | if epoch.is_some() { [INFO] [stdout] | ------------------ help: try: `if let Some() = epoch` [INFO] [stdout] 152 | filter.insert("be_info.epoch", epoch.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/endpoints/be_api.rs:139:15 [INFO] [stdout] | [INFO] [stdout] 139 | let count = min(max(1, params.count.unwrap_or(100)), 100); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `params.count.unwrap_or(100).clamp(1, 100)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/endpoints/be_api.rs:149:31 [INFO] [stdout] | [INFO] [stdout] 149 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `proposer.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `election` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:350:76 [INFO] [stdout] | [INFO] [stdout] 349 | if election.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = election` [INFO] [stdout] 350 | return Ok(HttpResponse::Ok().json(json!({"type": "election", "result": election.unwrap().epoch}))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/endpoints/cv_api.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | !verify_req.error.is_some() && verify_req.result.is_some() && verify_req.result.unwrap().clone()["valid"].as_bool().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `verify_req.error.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: taken reference of right operand [INFO] [stdout] --> src/endpoints/cv_api.rs:87:26 [INFO] [stdout] | [INFO] [stdout] 87 | if parts.len() != 6 || parts[1] != &config.auth.id.clone().unwrap() || parts[2] != "hive" { [INFO] [stdout] | ^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | help: use the right value directly: `config.auth.id.clone().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/endpoints/cv_api.rs:95:18 [INFO] [stdout] | [INFO] [stdout] 95 | let original = (&parts[0..5]).join(":"); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `parts[0..5]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of left operand [INFO] [stdout] --> src/endpoints/cv_api.rs:140:6 [INFO] [stdout] | [INFO] [stdout] 140 | if &dgp_at_block.hash != parts[4] { [INFO] [stdout] | ------------------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: use the left value directly: `dgp_at_block.hash` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:213:39 [INFO] [stdout] | [INFO] [stdout] 213 | } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 213 - } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] 213 + } else if whitelist.is_empty() && prefixed_username != contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:213:82 [INFO] [stdout] | [INFO] [stdout] 213 | } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 213 - } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] 213 + } else if whitelist.is_empty() && &prefixed_username != &contract.creator && prefixed_username != contract.owner { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/endpoints/cv_api.rs:218:3 [INFO] [stdout] | [INFO] [stdout] 218 | / match ctx.db.cv_contracts.find_one(doc! { "_id": &contract.code }).await.map_err(|e| RespErr::DbErr { msg: e.to_string() })? { [INFO] [stdout] 219 | | Some(similar) => { [INFO] [stdout] 220 | | let is_fail = similar.status == "failed" || similar.status == "not match"; [INFO] [stdout] 221 | | if similar.status == CVStatus::Success.to_string() { [INFO] [stdout] ... | [INFO] [stdout] 237 | | None => (), [INFO] [stdout] 238 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 218 ~ if let Some(similar) = ctx.db.cv_contracts.find_one(doc! { "_id": &contract.code }).await.map_err(|e| RespErr::DbErr { msg: e.to_string() })? { [INFO] [stdout] 219 + let is_fail = similar.status == "failed" || similar.status == "not match"; [INFO] [stdout] 220 + if similar.status == CVStatus::Success.to_string() { [INFO] [stdout] 221 + if &similar.contract_id == &address { [INFO] [stdout] 222 + return Err(RespErr::BadRequest { msg: String::from("Contract is already verified") }); [INFO] [stdout] 223 + } else { [INFO] [stdout] 224 + return Err(RespErr::CvSimilarMatch); [INFO] [stdout] 225 + } [INFO] [stdout] 226 + } else if is_fail && similar.request_ts.to_chrono() + Duration::hours(12) > Utc::now() { [INFO] [stdout] 227 + return Err(RespErr::CvRetryLater); [INFO] [stdout] 228 + } else if similar.status == "queued" { [INFO] [stdout] 229 + if &similar.contract_id == &address { [INFO] [stdout] 230 + return Err(RespErr::BadRequest { msg: String::from("Contract is already queued for verification.") }); [INFO] [stdout] 231 + } else { [INFO] [stdout] 232 + return Err(RespErr::BadRequest { msg: String::from("A similar contract is already queued for verification.") }); [INFO] [stdout] 233 + } [INFO] [stdout] 234 + } [INFO] [stdout] 235 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | if &similar.contract_id == &address { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 222 - if &similar.contract_id == &address { [INFO] [stdout] 222 + if similar.contract_id == address { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:230:12 [INFO] [stdout] | [INFO] [stdout] 230 | if &similar.contract_id == &address { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 230 - if &similar.contract_id == &address { [INFO] [stdout] 230 + if similar.contract_id == address { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/endpoints/cv_api.rs:249:60 [INFO] [stdout] | [INFO] [stdout] 249 | let repo_branch = req_data.repo_branch.clone().unwrap_or(format!("")); [INFO] [stdout] | ^^^^^^^^^^^ help: consider using `String::new()`: `String::new()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/endpoints/cv_api.rs:263:7 [INFO] [stdout] | [INFO] [stdout] 263 | / if &tool != "wabt" && &tool != "wasm-tools" { [INFO] [stdout] 264 | | return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] 265 | | } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 262 ~ Some(tool) [INFO] [stdout] 263 ~ if &tool != "wabt" && &tool != "wasm-tools" => { [INFO] [stdout] 264 | return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] 265 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/endpoints/cv_api.rs:261:3 [INFO] [stdout] | [INFO] [stdout] 261 | / match req_data.strip_tool.clone() { [INFO] [stdout] 262 | | Some(tool) => { [INFO] [stdout] 263 | | if &tool != "wabt" && &tool != "wasm-tools" { [INFO] [stdout] 264 | | return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] ... | [INFO] [stdout] 267 | | None => (), [INFO] [stdout] 268 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 261 ~ if let Some(tool) = req_data.strip_tool.clone() { [INFO] [stdout] 262 + if &tool != "wabt" && &tool != "wasm-tools" { [INFO] [stdout] 263 + return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] 264 + } [INFO] [stdout] 265 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/endpoints/cv_api.rs:323:3 [INFO] [stdout] | [INFO] [stdout] 323 | / match [INFO] [stdout] 324 | | ctx.db.cv_contracts [INFO] [stdout] 325 | | .find_one(doc! { "_id": &deployed_contract.code }).await [INFO] [stdout] 326 | | .map_err(|e| RespErr::DbErr { msg: e.to_string() })? [INFO] [stdout] ... | [INFO] [stdout] 351 | | None => (), [INFO] [stdout] 352 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 323 ~ if let Some(similar) = ctx.db.cv_contracts [INFO] [stdout] 324 + .find_one(doc! { "_id": &deployed_contract.code }).await [INFO] [stdout] 325 + .map_err(|e| RespErr::DbErr { msg: e.to_string() })? { [INFO] [stdout] 326 + return Ok( [INFO] [stdout] 327 + HttpResponse::Ok().json(CVContractResult { [INFO] [stdout] 328 + address: addr, [INFO] [stdout] 329 + code: similar.code, [INFO] [stdout] 330 + similar_match: Some(similar.contract_id), [INFO] [stdout] 331 + verifier: similar.verifier, [INFO] [stdout] 332 + request_ts: similar.request_ts.to_chrono().format(TIMESTAMP_FORMAT).to_string(), [INFO] [stdout] 333 + verified_ts: similar.verified_ts.map(|t| t.to_chrono().format(TIMESTAMP_FORMAT).to_string()), [INFO] [stdout] 334 + status: similar.status.clone(), [INFO] [stdout] 335 + repo_name: similar.repo_name, [INFO] [stdout] 336 + repo_branch: similar.repo_branch, [INFO] [stdout] 337 + git_commit: similar.git_commit, [INFO] [stdout] 338 + tinygo_version: similar.tinygo_version, [INFO] [stdout] 339 + go_version: similar.go_version, [INFO] [stdout] 340 + llvm_version: similar.llvm_version, [INFO] [stdout] 341 + strip_tool: similar.strip_tool, [INFO] [stdout] 342 + exports: similar.exports, [INFO] [stdout] 343 + license: similar.license, [INFO] [stdout] 344 + lang: similar.lang.clone(), [INFO] [stdout] 345 + }) [INFO] [stdout] 346 + ); [INFO] [stdout] 347 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/endpoints/cv_api.rs:367:3 [INFO] [stdout] | [INFO] [stdout] 367 | return Ok(HttpResponse::Ok().json(result)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 367 - return Ok(HttpResponse::Ok().json(result)); [INFO] [stdout] 367 + Ok(HttpResponse::Ok().json(result)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/blocks.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / return BlockIndexer { [INFO] [stdout] 21 | | http_client: http_client.clone(), [INFO] [stdout] 22 | | db: db.clone(), [INFO] [stdout] 23 | | is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 24 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 ~ BlockIndexer { [INFO] [stdout] 21 + http_client: http_client.clone(), [INFO] [stdout] 22 + db: db.clone(), [INFO] [stdout] 23 + is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 24 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `sync_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:43:22 [INFO] [stdout] | [INFO] [stdout] 42 | if sync_state.is_err() { [INFO] [stdout] | ---------------------- help: try: `if let Err() = sync_state` [INFO] [stdout] 43 | error!("{}", sync_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `next_blocks` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:60:24 [INFO] [stdout] | [INFO] [stdout] 59 | if next_blocks.is_err() { [INFO] [stdout] | ----------------------- help: try: `if let Err() = next_blocks` [INFO] [stdout] 60 | error!("{}", next_blocks.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `b` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:68:62 [INFO] [stdout] | [INFO] [stdout] 67 | if b.is_err() { [INFO] [stdout] | ------------- help: try: `if let Err() = b` [INFO] [stdout] 68 | error!("Failed to deserialize block header: {}", b.unwrap_err().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `tx` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:77:26 [INFO] [stdout] | [INFO] [stdout] 76 | if tx.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = tx` [INFO] [stdout] 77 | error!("{}", tx.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `epoch` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:113:58 [INFO] [stdout] | [INFO] [stdout] 112 | if epoch.is_err() { [INFO] [stdout] | ----------------- help: try: `if let Err() = epoch` [INFO] [stdout] 113 | error!("Failed to qeury epoch in block: {}", epoch.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `bv` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:120:47 [INFO] [stdout] | [INFO] [stdout] 119 | if bv.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = bv` [INFO] [stdout] 120 | error!("Failed to decode bv: {}", bv.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `up` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:144:43 [INFO] [stdout] | [INFO] [stdout] 143 | if up.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = up` [INFO] [stdout] 144 | error!("Failed to update {}", up.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `up` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:153:43 [INFO] [stdout] | [INFO] [stdout] 152 | if up.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = up` [INFO] [stdout] 153 | error!("Failed to update {}", up.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `upd_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:179:47 [INFO] [stdout] | [INFO] [stdout] 178 | if upd_state.is_err() { [INFO] [stdout] | --------------------- help: try: `if let Err() = upd_state` [INFO] [stdout] 179 | error!("Failed to update state {}", upd_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/types/server.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | if e.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!e.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/indexer/blocks.rs:157:11 [INFO] [stdout] | [INFO] [stdout] 157 | / match witness_stats.find_one(doc! { "_id": &block.proposer }).await { [INFO] [stdout] 158 | | Ok(last_stat) => { [INFO] [stdout] 159 | | if last_stat.is_none() || (last_stat.unwrap().last_block.unwrap_or(0) as u32) < next_nums.1 { [INFO] [stdout] 160 | | let _ = witness_stats [INFO] [stdout] ... | [INFO] [stdout] 171 | | Err(_) => (), [INFO] [stdout] 172 | | } [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 157 ~ if let Ok(last_stat) = witness_stats.find_one(doc! { "_id": &block.proposer }).await { [INFO] [stdout] 158 + if last_stat.is_none() || (last_stat.unwrap().last_block.unwrap_or(0) as u32) < next_nums.1 { [INFO] [stdout] 159 + let _ = witness_stats [INFO] [stdout] 160 + .update_one( [INFO] [stdout] 161 + doc! { "_id": &block.proposer }, [INFO] [stdout] 162 + doc! { [INFO] [stdout] 163 + "$set": doc! {"last_block": next_nums.1 as i32}, [INFO] [stdout] 164 + "$inc": doc! {"block_count": 1} [INFO] [stdout] 165 + } [INFO] [stdout] 166 + ) [INFO] [stdout] 167 + .upsert(true).await; [INFO] [stdout] 168 + } [INFO] [stdout] 169 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/epoch.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | return ElectionIndexer { http_client: http_client.clone(), db: db.clone(), is_running: Arc::new(RwLock::new(false)) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 - return ElectionIndexer { http_client: http_client.clone(), db: db.clone(), is_running: Arc::new(RwLock::new(false)) }; [INFO] [stdout] 20 + ElectionIndexer { http_client: http_client.clone(), db: db.clone(), is_running: Arc::new(RwLock::new(false)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `sync_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:38:22 [INFO] [stdout] | [INFO] [stdout] 37 | if sync_state.is_err() { [INFO] [stdout] | ---------------------- help: try: `if let Err() = sync_state` [INFO] [stdout] 38 | error!("{}", sync_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `next_epochs` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:55:24 [INFO] [stdout] | [INFO] [stdout] 54 | if next_epochs.is_err() { [INFO] [stdout] | ----------------------- help: try: `if let Err() = next_epochs` [INFO] [stdout] 55 | error!("{}", next_epochs.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `ep` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:63:58 [INFO] [stdout] | [INFO] [stdout] 62 | if ep.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = ep` [INFO] [stdout] 63 | error!("Failed to deserialize election: {}", ep.unwrap_err().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `tx` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:72:26 [INFO] [stdout] | [INFO] [stdout] 71 | if tx.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = tx` [INFO] [stdout] 72 | error!("{}", tx.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `up` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:132:43 [INFO] [stdout] | [INFO] [stdout] 131 | if up.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = up` [INFO] [stdout] 132 | error!("Failed to update {}", up.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `upd_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:155:47 [INFO] [stdout] | [INFO] [stdout] 154 | if upd_state.is_err() { [INFO] [stdout] | --------------------- help: try: `if let Err() = upd_state` [INFO] [stdout] 155 | error!("Failed to update state {}", upd_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> src/indexer/epoch.rs:120:31 [INFO] [stdout] | [INFO] [stdout] 120 | doc! { "epoch": epoch.epoch as i64 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `epoch.epoch` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/indexer/epoch.rs:136:11 [INFO] [stdout] | [INFO] [stdout] 136 | / match witness_stats.find_one(doc! { "_id": &epoch.proposer }).await { [INFO] [stdout] 137 | | Ok(last_stat) => { [INFO] [stdout] 138 | | if last_stat.is_none() || (last_stat.unwrap().last_epoch.unwrap_or(-1) as i64) < epoch.epoch { [INFO] [stdout] 139 | | let _ = witness_stats [INFO] [stdout] ... | [INFO] [stdout] 150 | | Err(_) => (), [INFO] [stdout] 151 | | } [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 136 ~ if let Ok(last_stat) = witness_stats.find_one(doc! { "_id": &epoch.proposer }).await { [INFO] [stdout] 137 + if last_stat.is_none() || (last_stat.unwrap().last_epoch.unwrap_or(-1) as i64) < epoch.epoch { [INFO] [stdout] 138 + let _ = witness_stats [INFO] [stdout] 139 + .update_one( [INFO] [stdout] 140 + doc! { "_id": &epoch.proposer }, [INFO] [stdout] 141 + doc! { [INFO] [stdout] 142 + "$set": doc! {"last_epoch": epoch.epoch as i32}, [INFO] [stdout] 143 + "$inc": doc! {"election_count": 1} [INFO] [stdout] 144 + } [INFO] [stdout] 145 + ) [INFO] [stdout] 146 + .upsert(true).await; [INFO] [stdout] 147 + } [INFO] [stdout] 148 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/indexer/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | pub mod indexer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/indexer.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / return Indexer { [INFO] [stdout] 17 | | block_idxer: BlockIndexer::init(http_client, db), [INFO] [stdout] 18 | | election_idxer: ElectionIndexer::init(http_client, db), [INFO] [stdout] 19 | | bridge_stats_idxer: BridgeStatsIndexer::init(db), [INFO] [stdout] 20 | | network_stats_idxer: NetworkStatsIndexer::init(http_client, db), [INFO] [stdout] 21 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 16 ~ Indexer { [INFO] [stdout] 17 + block_idxer: BlockIndexer::init(http_client, db), [INFO] [stdout] 18 + election_idxer: ElectionIndexer::init(http_client, db), [INFO] [stdout] 19 + bridge_stats_idxer: BridgeStatsIndexer::init(db), [INFO] [stdout] 20 + network_stats_idxer: NetworkStatsIndexer::init(http_client, db), [INFO] [stdout] 21 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/bridge.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | return BridgeStatsIndexer { db: db.clone() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 - return BridgeStatsIndexer { db: db.clone() }; [INFO] [stdout] 14 + BridgeStatsIndexer { db: db.clone() } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `deposits` after checking its variant with `is_ok` [INFO] [stdout] --> src/indexer/bridge.rs:31:49 [INFO] [stdout] | [INFO] [stdout] 27 | if deposits.is_ok() && withdrawals.is_ok() { [INFO] [stdout] | ---------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 31 | doc! { "$set": doc! { "deposits": deposits.unwrap() as i64, "withdrawals": withdrawals.unwrap() as i64 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `withdrawals` after checking its variant with `is_ok` [INFO] [stdout] --> src/indexer/bridge.rs:31:90 [INFO] [stdout] | [INFO] [stdout] 27 | if deposits.is_ok() && withdrawals.is_ok() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 31 | doc! { "$set": doc! { "deposits": deposits.unwrap() as i64, "withdrawals": withdrawals.unwrap() as i64 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/stats.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / return NetworkStatsIndexer { [INFO] [stdout] 27 | | http_client: http_client.clone(), [INFO] [stdout] 28 | | db: db.clone(), [INFO] [stdout] 29 | | is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 30 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 ~ NetworkStatsIndexer { [INFO] [stdout] 27 + http_client: http_client.clone(), [INFO] [stdout] 28 + db: db.clone(), [INFO] [stdout] 29 + is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 30 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:118:7 [INFO] [stdout] | [INFO] [stdout] 118 | format!("0.38.0"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"0.38.0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | go: format!("1.24.4"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"1.24.4".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:121:15 [INFO] [stdout] | [INFO] [stdout] 121 | llvm: format!("19.1.2"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"19.1.2".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:122:21 [INFO] [stdout] | [INFO] [stdout] 122 | img_digest: format!("sha256:98447dff0e56426b98f96a1d47ac7c1d82d27e3cd630cba81732cfc13c9a410f") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"sha256:98447dff0e56426b98f96a1d47ac7c1d82d27e3cd630cba81732cfc13c9a410f".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:126:7 [INFO] [stdout] | [INFO] [stdout] 126 | format!("0.39.0"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"0.39.0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:128:13 [INFO] [stdout] | [INFO] [stdout] 128 | go: format!("1.25.0"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"1.25.0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:129:15 [INFO] [stdout] | [INFO] [stdout] 129 | llvm: format!("19.1.2"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"19.1.2".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:130:21 [INFO] [stdout] | [INFO] [stdout] 130 | img_digest: format!("sha256:0e51d243c1b84ec650f2dcd1cce3a09bb09730e1134771aeace2240ade4b32f5") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"sha256:0e51d243c1b84ec650f2dcd1cce3a09bb09730e1134771aeace2240ade4b32f5".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:134:7 [INFO] [stdout] | [INFO] [stdout] 134 | format!("0.40.1"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"0.40.1".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | go: format!("1.25.5"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"1.25.5".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:137:15 [INFO] [stdout] | [INFO] [stdout] 137 | llvm: format!("20.1.1"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"20.1.1".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/types/cv.rs:138:21 [INFO] [stdout] | [INFO] [stdout] 138 | img_digest: format!("sha256:89a77cc87b191399077be51a295d1d29569314931f334b2730427d7ed3a2b18e") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"sha256:89a77cc87b191399077be51a295d1d29569314931f334b2730427d7ed3a2b18e".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `sync_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/stats.rs:52:22 [INFO] [stdout] | [INFO] [stdout] 51 | if sync_state.is_err() { [INFO] [stdout] | ---------------------- help: try: `if let Err() = sync_state` [INFO] [stdout] 52 | error!("{}", sync_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `stat_day` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/stats.rs:179:72 [INFO] [stdout] | [INFO] [stdout] 178 | if stat_day.is_err() { [INFO] [stdout] | -------------------- help: try: `if let Err() = stat_day` [INFO] [stdout] 179 | error!("Failed to insert stats for date {}: {}", date_str, stat_day.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `idx_state_upd` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/stats.rs:188:80 [INFO] [stdout] | [INFO] [stdout] 187 | if idx_state_upd.is_err() { [INFO] [stdout] | ------------------------- help: try: `if let Err() = idx_state_upd` [INFO] [stdout] 188 | error!("Failed to update indexer state for date {}: {}", date_str, idx_state_upd.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proposer` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:86:32 [INFO] [stdout] | [INFO] [stdout] 85 | if proposer.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = proposer` [INFO] [stdout] 86 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/endpoints/be_api.rs:77:15 [INFO] [stdout] | [INFO] [stdout] 77 | let count = min(max(1, params.count.unwrap_or(100)), 100); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `params.count.unwrap_or(100).clamp(1, 100)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/endpoints/be_api.rs:86:31 [INFO] [stdout] | [INFO] [stdout] 86 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `proposer.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `last_block_id` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:146:54 [INFO] [stdout] | [INFO] [stdout] 145 | if last_block_id.is_some() { [INFO] [stdout] | -------------------------- help: try: `if let Some() = last_block_id` [INFO] [stdout] 146 | filter.insert("be_info.block_id", doc! { "$lte": last_block_id.unwrap() }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proposer` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:149:32 [INFO] [stdout] | [INFO] [stdout] 148 | if proposer.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = proposer` [INFO] [stdout] 149 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `epoch` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:152:36 [INFO] [stdout] | [INFO] [stdout] 151 | if epoch.is_some() { [INFO] [stdout] | ------------------ help: try: `if let Some() = epoch` [INFO] [stdout] 152 | filter.insert("be_info.epoch", epoch.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/endpoints/be_api.rs:139:15 [INFO] [stdout] | [INFO] [stdout] 139 | let count = min(max(1, params.count.unwrap_or(100)), 100); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `params.count.unwrap_or(100).clamp(1, 100)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/endpoints/be_api.rs:149:31 [INFO] [stdout] | [INFO] [stdout] 149 | filter.insert("proposer", &proposer.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `proposer.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `DateTime` which implements the `Copy` trait [INFO] [stdout] --> src/indexer/stats.rs:192:23 [INFO] [stdout] | [INFO] [stdout] 192 | last_date = date.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `date` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/compiler.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / for entry in dir { [INFO] [stdout] 35 | | if let Ok(entry) = entry { [INFO] [stdout] 36 | | let path = entry.path(); [INFO] [stdout] 37 | | if path.is_dir() { [INFO] [stdout] ... | [INFO] [stdout] 43 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/compiler.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | / if let Ok(entry) = entry { [INFO] [stdout] 36 | | let path = entry.path(); [INFO] [stdout] 37 | | if path.is_dir() { [INFO] [stdout] 38 | | fs::remove_dir_all(path).expect("Failed to remove a dir"); [INFO] [stdout] ... | [INFO] [stdout] 42 | | } [INFO] [stdout] | |_______^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 34 ~ for entry in dir.flatten() { [INFO] [stdout] 35 + let path = entry.path(); [INFO] [stdout] 36 + if path.is_dir() { [INFO] [stdout] 37 + fs::remove_dir_all(path).expect("Failed to remove a dir"); [INFO] [stdout] 38 + } else { [INFO] [stdout] 39 + fs::remove_file(path).expect("Failed to remove a file"); [INFO] [stdout] 40 + } [INFO] [stdout] 41 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/compiler.rs:53:16 [INFO] [stdout] | [INFO] [stdout] 53 | fn chown(path: &String, uid: usize, gid: usize) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 53 ~ fn chown(path: &str, uid: usize, gid: usize) { [INFO] [stdout] 54 ~ let _ = Command::new("chown").arg("-R").arg(format!("{}:{}", uid, gid)).arg(path.to_owned()).status(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | / return Compiler { [INFO] [stdout] 82 | | db: db.clone(), [INFO] [stdout] 83 | | running: Arc::new(Mutex::new(false)), [INFO] [stdout] 84 | | docker: docker, [INFO] [stdout] ... | [INFO] [stdout] 87 | | go_options: go_options.clone(), [INFO] [stdout] 88 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 81 ~ Compiler { [INFO] [stdout] 82 + db: db.clone(), [INFO] [stdout] 83 + running: Arc::new(Mutex::new(false)), [INFO] [stdout] 84 + docker: docker, [INFO] [stdout] 85 + http_client: http_client.clone(), [INFO] [stdout] 86 + options: options.clone(), [INFO] [stdout] 87 + go_options: go_options.clone(), [INFO] [stdout] 88 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `start_container` after checking its variant with `is_err` [INFO] [stdout] --> src/compiler.rs:282:52 [INFO] [stdout] | [INFO] [stdout] 280 | if start_container.is_err() { [INFO] [stdout] | --------------------------- help: try: `if let Err() = start_container` [INFO] [stdout] 281 | let _ = update_status(&db, &next_contract.code, CVStatus::Failed).await; [INFO] [stdout] 282 | debug!("Failed to start compiler: {}", start_container.unwrap_err().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/compiler.rs:175:14 [INFO] [stdout] | [INFO] [stdout] 175 | if branch_name.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `branch_name.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` on a future [INFO] [stdout] --> src/compiler.rs:237:13 [INFO] [stdout] | [INFO] [stdout] 237 | let _ = update_status(&db, &next_contract.code, CVStatus::Failed); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider awaiting the future or dropping explicitly with `std::mem::drop` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_future [INFO] [stdout] = note: `#[warn(clippy::let_underscore_future)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `election` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/be_api.rs:350:76 [INFO] [stdout] | [INFO] [stdout] 349 | if election.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = election` [INFO] [stdout] 350 | return Ok(HttpResponse::Ok().json(json!({"type": "election", "result": election.unwrap().epoch}))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/compiler.rs:330:31 [INFO] [stdout] | [INFO] [stdout] 330 | let cid_match = &output_cid == &next_contract.code; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 330 - let cid_match = &output_cid == &next_contract.code; [INFO] [stdout] 330 + let cid_match = output_cid == next_contract.code; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/compiler.rs:333:22 [INFO] [stdout] | [INFO] [stdout] 333 | .map(|e| Some(e)) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/chatbot/discord.rs:33:3 [INFO] [stdout] | [INFO] [stdout] 33 | / format!("{}", match net_name.as_str() { [INFO] [stdout] 34 | | "mainnet" => "b", [INFO] [stdout] 35 | | "testnet" => "block", [INFO] [stdout] 36 | | _ => "", [INFO] [stdout] 37 | | }) [INFO] [stdout] | |____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 33 ~ (match net_name.as_str() { [INFO] [stdout] 34 + "mainnet" => "b", [INFO] [stdout] 35 + "testnet" => "block", [INFO] [stdout] 36 + _ => "", [INFO] [stdout] 37 + }).to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/endpoints/cv_api.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | !verify_req.error.is_some() && verify_req.result.is_some() && verify_req.result.unwrap().clone()["valid"].as_bool().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `verify_req.error.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: taken reference of right operand [INFO] [stdout] --> src/endpoints/cv_api.rs:87:26 [INFO] [stdout] | [INFO] [stdout] 87 | if parts.len() != 6 || parts[1] != &config.auth.id.clone().unwrap() || parts[2] != "hive" { [INFO] [stdout] | ^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | help: use the right value directly: `config.auth.id.clone().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/endpoints/cv_api.rs:95:18 [INFO] [stdout] | [INFO] [stdout] 95 | let original = (&parts[0..5]).join(":"); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `parts[0..5]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/chatbot/discord.rs:129:44 [INFO] [stdout] | [INFO] [stdout] 129 | members.push(ElectionMember { account: format!("..."), key: format!("") }); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"...".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/chatbot/discord.rs:129:65 [INFO] [stdout] | [INFO] [stdout] 129 | members.push(ElectionMember { account: format!("..."), key: format!("") }); [INFO] [stdout] | ^^^^^^^^^^^ help: consider using `String::new()`: `String::new()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of left operand [INFO] [stdout] --> src/endpoints/cv_api.rs:140:6 [INFO] [stdout] | [INFO] [stdout] 140 | if &dgp_at_block.hash != parts[4] { [INFO] [stdout] | ------------------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: use the left value directly: `dgp_at_block.hash` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:213:39 [INFO] [stdout] | [INFO] [stdout] 213 | } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 213 - } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] 213 + } else if whitelist.is_empty() && prefixed_username != contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:213:82 [INFO] [stdout] | [INFO] [stdout] 213 | } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 213 - } else if whitelist.is_empty() && &prefixed_username != &contract.creator && &prefixed_username != &contract.owner { [INFO] [stdout] 213 + } else if whitelist.is_empty() && &prefixed_username != &contract.creator && prefixed_username != contract.owner { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/endpoints/cv_api.rs:218:3 [INFO] [stdout] | [INFO] [stdout] 218 | / match ctx.db.cv_contracts.find_one(doc! { "_id": &contract.code }).await.map_err(|e| RespErr::DbErr { msg: e.to_string() })? { [INFO] [stdout] 219 | | Some(similar) => { [INFO] [stdout] 220 | | let is_fail = similar.status == "failed" || similar.status == "not match"; [INFO] [stdout] 221 | | if similar.status == CVStatus::Success.to_string() { [INFO] [stdout] ... | [INFO] [stdout] 237 | | None => (), [INFO] [stdout] 238 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 218 ~ if let Some(similar) = ctx.db.cv_contracts.find_one(doc! { "_id": &contract.code }).await.map_err(|e| RespErr::DbErr { msg: e.to_string() })? { [INFO] [stdout] 219 + let is_fail = similar.status == "failed" || similar.status == "not match"; [INFO] [stdout] 220 + if similar.status == CVStatus::Success.to_string() { [INFO] [stdout] 221 + if &similar.contract_id == &address { [INFO] [stdout] 222 + return Err(RespErr::BadRequest { msg: String::from("Contract is already verified") }); [INFO] [stdout] 223 + } else { [INFO] [stdout] 224 + return Err(RespErr::CvSimilarMatch); [INFO] [stdout] 225 + } [INFO] [stdout] 226 + } else if is_fail && similar.request_ts.to_chrono() + Duration::hours(12) > Utc::now() { [INFO] [stdout] 227 + return Err(RespErr::CvRetryLater); [INFO] [stdout] 228 + } else if similar.status == "queued" { [INFO] [stdout] 229 + if &similar.contract_id == &address { [INFO] [stdout] 230 + return Err(RespErr::BadRequest { msg: String::from("Contract is already queued for verification.") }); [INFO] [stdout] 231 + } else { [INFO] [stdout] 232 + return Err(RespErr::BadRequest { msg: String::from("A similar contract is already queued for verification.") }); [INFO] [stdout] 233 + } [INFO] [stdout] 234 + } [INFO] [stdout] 235 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | if &similar.contract_id == &address { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 222 - if &similar.contract_id == &address { [INFO] [stdout] 222 + if similar.contract_id == address { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/endpoints/cv_api.rs:230:12 [INFO] [stdout] | [INFO] [stdout] 230 | if &similar.contract_id == &address { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 230 - if &similar.contract_id == &address { [INFO] [stdout] 230 + if similar.contract_id == address { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/endpoints/cv_api.rs:249:60 [INFO] [stdout] | [INFO] [stdout] 249 | let repo_branch = req_data.repo_branch.clone().unwrap_or(format!("")); [INFO] [stdout] | ^^^^^^^^^^^ help: consider using `String::new()`: `String::new()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/endpoints/cv_api.rs:263:7 [INFO] [stdout] | [INFO] [stdout] 263 | / if &tool != "wabt" && &tool != "wasm-tools" { [INFO] [stdout] 264 | | return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] 265 | | } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 262 ~ Some(tool) [INFO] [stdout] 263 ~ if &tool != "wabt" && &tool != "wasm-tools" => { [INFO] [stdout] 264 | return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] 265 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/endpoints/cv_api.rs:261:3 [INFO] [stdout] | [INFO] [stdout] 261 | / match req_data.strip_tool.clone() { [INFO] [stdout] 262 | | Some(tool) => { [INFO] [stdout] 263 | | if &tool != "wabt" && &tool != "wasm-tools" { [INFO] [stdout] 264 | | return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] ... | [INFO] [stdout] 267 | | None => (), [INFO] [stdout] 268 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 261 ~ if let Some(tool) = req_data.strip_tool.clone() { [INFO] [stdout] 262 + if &tool != "wabt" && &tool != "wasm-tools" { [INFO] [stdout] 263 + return Err(RespErr::CvInvalidWasmStripTool); [INFO] [stdout] 264 + } [INFO] [stdout] 265 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/endpoints/cv_api.rs:323:3 [INFO] [stdout] | [INFO] [stdout] 323 | / match [INFO] [stdout] 324 | | ctx.db.cv_contracts [INFO] [stdout] 325 | | .find_one(doc! { "_id": &deployed_contract.code }).await [INFO] [stdout] 326 | | .map_err(|e| RespErr::DbErr { msg: e.to_string() })? [INFO] [stdout] ... | [INFO] [stdout] 351 | | None => (), [INFO] [stdout] 352 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 323 ~ if let Some(similar) = ctx.db.cv_contracts [INFO] [stdout] 324 + .find_one(doc! { "_id": &deployed_contract.code }).await [INFO] [stdout] 325 + .map_err(|e| RespErr::DbErr { msg: e.to_string() })? { [INFO] [stdout] 326 + return Ok( [INFO] [stdout] 327 + HttpResponse::Ok().json(CVContractResult { [INFO] [stdout] 328 + address: addr, [INFO] [stdout] 329 + code: similar.code, [INFO] [stdout] 330 + similar_match: Some(similar.contract_id), [INFO] [stdout] 331 + verifier: similar.verifier, [INFO] [stdout] 332 + request_ts: similar.request_ts.to_chrono().format(TIMESTAMP_FORMAT).to_string(), [INFO] [stdout] 333 + verified_ts: similar.verified_ts.map(|t| t.to_chrono().format(TIMESTAMP_FORMAT).to_string()), [INFO] [stdout] 334 + status: similar.status.clone(), [INFO] [stdout] 335 + repo_name: similar.repo_name, [INFO] [stdout] 336 + repo_branch: similar.repo_branch, [INFO] [stdout] 337 + git_commit: similar.git_commit, [INFO] [stdout] 338 + tinygo_version: similar.tinygo_version, [INFO] [stdout] 339 + go_version: similar.go_version, [INFO] [stdout] 340 + llvm_version: similar.llvm_version, [INFO] [stdout] 341 + strip_tool: similar.strip_tool, [INFO] [stdout] 342 + exports: similar.exports, [INFO] [stdout] 343 + license: similar.license, [INFO] [stdout] 344 + lang: similar.lang.clone(), [INFO] [stdout] 345 + }) [INFO] [stdout] 346 + ); [INFO] [stdout] 347 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chatbot/discord.rs:336:5 [INFO] [stdout] | [INFO] [stdout] 336 | return DiscordBot { conf: conf.clone(), consts: consts.clone(), db: db.clone(), http_client: http_client.clone() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 336 - return DiscordBot { conf: conf.clone(), consts: consts.clone(), db: db.clone(), http_client: http_client.clone() }; [INFO] [stdout] 336 + DiscordBot { conf: conf.clone(), consts: consts.clone(), db: db.clone(), http_client: http_client.clone() } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/endpoints/cv_api.rs:367:3 [INFO] [stdout] | [INFO] [stdout] 367 | return Ok(HttpResponse::Ok().json(result)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 367 - return Ok(HttpResponse::Ok().json(result)); [INFO] [stdout] 367 + Ok(HttpResponse::Ok().json(result)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/blocks.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / return BlockIndexer { [INFO] [stdout] 21 | | http_client: http_client.clone(), [INFO] [stdout] 22 | | db: db.clone(), [INFO] [stdout] 23 | | is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 24 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 ~ BlockIndexer { [INFO] [stdout] 21 + http_client: http_client.clone(), [INFO] [stdout] 22 + db: db.clone(), [INFO] [stdout] 23 + is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 24 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/db.rs:40:3 [INFO] [stdout] | [INFO] [stdout] 40 | / return Ok(Props { [INFO] [stdout] 41 | | last_processed_block: last_l1_block, [INFO] [stdout] 42 | | l2_block_height: block_count, [INFO] [stdout] 43 | | witnesses: witness_count, [INFO] [stdout] ... | [INFO] [stdout] 46 | | transactions: tx_count, [INFO] [stdout] 47 | | }); [INFO] [stdout] | |____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 ~ Ok(Props { [INFO] [stdout] 41 + last_processed_block: last_l1_block, [INFO] [stdout] 42 + l2_block_height: block_count, [INFO] [stdout] 43 + witnesses: witness_count, [INFO] [stdout] 44 + epoch: epoch.saturating_sub(1), [INFO] [stdout] 45 + contracts, [INFO] [stdout] 46 + transactions: tx_count, [INFO] [stdout] 47 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `sync_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:43:22 [INFO] [stdout] | [INFO] [stdout] 42 | if sync_state.is_err() { [INFO] [stdout] | ---------------------- help: try: `if let Err() = sync_state` [INFO] [stdout] 43 | error!("{}", sync_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `next_blocks` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:60:24 [INFO] [stdout] | [INFO] [stdout] 59 | if next_blocks.is_err() { [INFO] [stdout] | ----------------------- help: try: `if let Err() = next_blocks` [INFO] [stdout] 60 | error!("{}", next_blocks.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `b` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:68:62 [INFO] [stdout] | [INFO] [stdout] 67 | if b.is_err() { [INFO] [stdout] | ------------- help: try: `if let Err() = b` [INFO] [stdout] 68 | error!("Failed to deserialize block header: {}", b.unwrap_err().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `tx` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:77:26 [INFO] [stdout] | [INFO] [stdout] 76 | if tx.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = tx` [INFO] [stdout] 77 | error!("{}", tx.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `epoch` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:113:58 [INFO] [stdout] | [INFO] [stdout] 112 | if epoch.is_err() { [INFO] [stdout] | ----------------- help: try: `if let Err() = epoch` [INFO] [stdout] 113 | error!("Failed to qeury epoch in block: {}", epoch.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `bv` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:120:47 [INFO] [stdout] | [INFO] [stdout] 119 | if bv.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = bv` [INFO] [stdout] 120 | error!("Failed to decode bv: {}", bv.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `up` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:144:43 [INFO] [stdout] | [INFO] [stdout] 143 | if up.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = up` [INFO] [stdout] 144 | error!("Failed to update {}", up.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `up` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:153:43 [INFO] [stdout] | [INFO] [stdout] 152 | if up.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = up` [INFO] [stdout] 153 | error!("Failed to update {}", up.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `upd_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/blocks.rs:179:47 [INFO] [stdout] | [INFO] [stdout] 178 | if upd_state.is_err() { [INFO] [stdout] | --------------------- help: try: `if let Err() = upd_state` [INFO] [stdout] 179 | error!("Failed to update state {}", upd_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/helpers/db.rs:171:85 [INFO] [stdout] | [INFO] [stdout] 171 | .get(format!("{}/hafah-api/global-state?block-num={}", rpc, last_processed_block.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/indexer/blocks.rs:157:11 [INFO] [stdout] | [INFO] [stdout] 157 | / match witness_stats.find_one(doc! { "_id": &block.proposer }).await { [INFO] [stdout] 158 | | Ok(last_stat) => { [INFO] [stdout] 159 | | if last_stat.is_none() || (last_stat.unwrap().last_block.unwrap_or(0) as u32) < next_nums.1 { [INFO] [stdout] 160 | | let _ = witness_stats [INFO] [stdout] ... | [INFO] [stdout] 171 | | Err(_) => (), [INFO] [stdout] 172 | | } [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 157 ~ if let Ok(last_stat) = witness_stats.find_one(doc! { "_id": &block.proposer }).await { [INFO] [stdout] 158 + if last_stat.is_none() || (last_stat.unwrap().last_block.unwrap_or(0) as u32) < next_nums.1 { [INFO] [stdout] 159 + let _ = witness_stats [INFO] [stdout] 160 + .update_one( [INFO] [stdout] 161 + doc! { "_id": &block.proposer }, [INFO] [stdout] 162 + doc! { [INFO] [stdout] 163 + "$set": doc! {"last_block": next_nums.1 as i32}, [INFO] [stdout] 164 + "$inc": doc! {"block_count": 1} [INFO] [stdout] 165 + } [INFO] [stdout] 166 + ) [INFO] [stdout] 167 + .upsert(true).await; [INFO] [stdout] 168 + } [INFO] [stdout] 169 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/epoch.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | return ElectionIndexer { http_client: http_client.clone(), db: db.clone(), is_running: Arc::new(RwLock::new(false)) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 - return ElectionIndexer { http_client: http_client.clone(), db: db.clone(), is_running: Arc::new(RwLock::new(false)) }; [INFO] [stdout] 20 + ElectionIndexer { http_client: http_client.clone(), db: db.clone(), is_running: Arc::new(RwLock::new(false)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `sync_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:38:22 [INFO] [stdout] | [INFO] [stdout] 37 | if sync_state.is_err() { [INFO] [stdout] | ---------------------- help: try: `if let Err() = sync_state` [INFO] [stdout] 38 | error!("{}", sync_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `next_epochs` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:55:24 [INFO] [stdout] | [INFO] [stdout] 54 | if next_epochs.is_err() { [INFO] [stdout] | ----------------------- help: try: `if let Err() = next_epochs` [INFO] [stdout] 55 | error!("{}", next_epochs.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `ep` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:63:58 [INFO] [stdout] | [INFO] [stdout] 62 | if ep.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = ep` [INFO] [stdout] 63 | error!("Failed to deserialize election: {}", ep.unwrap_err().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `tx` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:72:26 [INFO] [stdout] | [INFO] [stdout] 71 | if tx.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = tx` [INFO] [stdout] 72 | error!("{}", tx.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `up` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:132:43 [INFO] [stdout] | [INFO] [stdout] 131 | if up.is_err() { [INFO] [stdout] | -------------- help: try: `if let Err() = up` [INFO] [stdout] 132 | error!("Failed to update {}", up.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `upd_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/epoch.rs:155:47 [INFO] [stdout] | [INFO] [stdout] 154 | if upd_state.is_err() { [INFO] [stdout] | --------------------- help: try: `if let Err() = upd_state` [INFO] [stdout] 155 | error!("Failed to update state {}", upd_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> src/indexer/epoch.rs:120:31 [INFO] [stdout] | [INFO] [stdout] 120 | doc! { "epoch": epoch.epoch as i64 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `epoch.epoch` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/indexer/epoch.rs:136:11 [INFO] [stdout] | [INFO] [stdout] 136 | / match witness_stats.find_one(doc! { "_id": &epoch.proposer }).await { [INFO] [stdout] 137 | | Ok(last_stat) => { [INFO] [stdout] 138 | | if last_stat.is_none() || (last_stat.unwrap().last_epoch.unwrap_or(-1) as i64) < epoch.epoch { [INFO] [stdout] 139 | | let _ = witness_stats [INFO] [stdout] ... | [INFO] [stdout] 150 | | Err(_) => (), [INFO] [stdout] 151 | | } [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 136 ~ if let Ok(last_stat) = witness_stats.find_one(doc! { "_id": &epoch.proposer }).await { [INFO] [stdout] 137 + if last_stat.is_none() || (last_stat.unwrap().last_epoch.unwrap_or(-1) as i64) < epoch.epoch { [INFO] [stdout] 138 + let _ = witness_stats [INFO] [stdout] 139 + .update_one( [INFO] [stdout] 140 + doc! { "_id": &epoch.proposer }, [INFO] [stdout] 141 + doc! { [INFO] [stdout] 142 + "$set": doc! {"last_epoch": epoch.epoch as i32}, [INFO] [stdout] 143 + "$inc": doc! {"election_count": 1} [INFO] [stdout] 144 + } [INFO] [stdout] 145 + ) [INFO] [stdout] 146 + .upsert(true).await; [INFO] [stdout] 147 + } [INFO] [stdout] 148 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/indexer/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | pub mod indexer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/indexer.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / return Indexer { [INFO] [stdout] 17 | | block_idxer: BlockIndexer::init(http_client, db), [INFO] [stdout] 18 | | election_idxer: ElectionIndexer::init(http_client, db), [INFO] [stdout] 19 | | bridge_stats_idxer: BridgeStatsIndexer::init(db), [INFO] [stdout] 20 | | network_stats_idxer: NetworkStatsIndexer::init(http_client, db), [INFO] [stdout] 21 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 16 ~ Indexer { [INFO] [stdout] 17 + block_idxer: BlockIndexer::init(http_client, db), [INFO] [stdout] 18 + election_idxer: ElectionIndexer::init(http_client, db), [INFO] [stdout] 19 + bridge_stats_idxer: BridgeStatsIndexer::init(db), [INFO] [stdout] 20 + network_stats_idxer: NetworkStatsIndexer::init(http_client, db), [INFO] [stdout] 21 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/bridge.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | return BridgeStatsIndexer { db: db.clone() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 - return BridgeStatsIndexer { db: db.clone() }; [INFO] [stdout] 14 + BridgeStatsIndexer { db: db.clone() } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `deposits` after checking its variant with `is_ok` [INFO] [stdout] --> src/indexer/bridge.rs:31:49 [INFO] [stdout] | [INFO] [stdout] 27 | if deposits.is_ok() && withdrawals.is_ok() { [INFO] [stdout] | ---------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 31 | doc! { "$set": doc! { "deposits": deposits.unwrap() as i64, "withdrawals": withdrawals.unwrap() as i64 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `withdrawals` after checking its variant with `is_ok` [INFO] [stdout] --> src/indexer/bridge.rs:31:90 [INFO] [stdout] | [INFO] [stdout] 27 | if deposits.is_ok() && withdrawals.is_ok() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 31 | doc! { "$set": doc! { "deposits": deposits.unwrap() as i64, "withdrawals": withdrawals.unwrap() as i64 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/indexer/stats.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / return NetworkStatsIndexer { [INFO] [stdout] 27 | | http_client: http_client.clone(), [INFO] [stdout] 28 | | db: db.clone(), [INFO] [stdout] 29 | | is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 30 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 ~ NetworkStatsIndexer { [INFO] [stdout] 27 + http_client: http_client.clone(), [INFO] [stdout] 28 + db: db.clone(), [INFO] [stdout] 29 + is_running: Arc::new(RwLock::new(false)), [INFO] [stdout] 30 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `sync_state` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/stats.rs:52:22 [INFO] [stdout] | [INFO] [stdout] 51 | if sync_state.is_err() { [INFO] [stdout] | ---------------------- help: try: `if let Err() = sync_state` [INFO] [stdout] 52 | error!("{}", sync_state.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `stat_day` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/stats.rs:179:72 [INFO] [stdout] | [INFO] [stdout] 178 | if stat_day.is_err() { [INFO] [stdout] | -------------------- help: try: `if let Err() = stat_day` [INFO] [stdout] 179 | error!("Failed to insert stats for date {}: {}", date_str, stat_day.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `idx_state_upd` after checking its variant with `is_err` [INFO] [stdout] --> src/indexer/stats.rs:188:80 [INFO] [stdout] | [INFO] [stdout] 187 | if idx_state_upd.is_err() { [INFO] [stdout] | ------------------------- help: try: `if let Err() = idx_state_upd` [INFO] [stdout] 188 | error!("Failed to update indexer state for date {}: {}", date_str, idx_state_upd.unwrap_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `DateTime` which implements the `Copy` trait [INFO] [stdout] --> src/indexer/stats.rs:192:23 [INFO] [stdout] | [INFO] [stdout] 192 | last_date = date.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `date` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/compiler.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | / for entry in dir { [INFO] [stdout] 35 | | if let Ok(entry) = entry { [INFO] [stdout] 36 | | let path = entry.path(); [INFO] [stdout] 37 | | if path.is_dir() { [INFO] [stdout] ... | [INFO] [stdout] 43 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/compiler.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | / if let Ok(entry) = entry { [INFO] [stdout] 36 | | let path = entry.path(); [INFO] [stdout] 37 | | if path.is_dir() { [INFO] [stdout] 38 | | fs::remove_dir_all(path).expect("Failed to remove a dir"); [INFO] [stdout] ... | [INFO] [stdout] 42 | | } [INFO] [stdout] | |_______^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 34 ~ for entry in dir.flatten() { [INFO] [stdout] 35 + let path = entry.path(); [INFO] [stdout] 36 + if path.is_dir() { [INFO] [stdout] 37 + fs::remove_dir_all(path).expect("Failed to remove a dir"); [INFO] [stdout] 38 + } else { [INFO] [stdout] 39 + fs::remove_file(path).expect("Failed to remove a file"); [INFO] [stdout] 40 + } [INFO] [stdout] 41 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/compiler.rs:53:16 [INFO] [stdout] | [INFO] [stdout] 53 | fn chown(path: &String, uid: usize, gid: usize) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 53 ~ fn chown(path: &str, uid: usize, gid: usize) { [INFO] [stdout] 54 ~ let _ = Command::new("chown").arg("-R").arg(format!("{}:{}", uid, gid)).arg(path.to_owned()).status(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | / return Compiler { [INFO] [stdout] 82 | | db: db.clone(), [INFO] [stdout] 83 | | running: Arc::new(Mutex::new(false)), [INFO] [stdout] 84 | | docker: docker, [INFO] [stdout] ... | [INFO] [stdout] 87 | | go_options: go_options.clone(), [INFO] [stdout] 88 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 81 ~ Compiler { [INFO] [stdout] 82 + db: db.clone(), [INFO] [stdout] 83 + running: Arc::new(Mutex::new(false)), [INFO] [stdout] 84 + docker: docker, [INFO] [stdout] 85 + http_client: http_client.clone(), [INFO] [stdout] 86 + options: options.clone(), [INFO] [stdout] 87 + go_options: go_options.clone(), [INFO] [stdout] 88 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `start_container` after checking its variant with `is_err` [INFO] [stdout] --> src/compiler.rs:282:52 [INFO] [stdout] | [INFO] [stdout] 280 | if start_container.is_err() { [INFO] [stdout] | --------------------------- help: try: `if let Err() = start_container` [INFO] [stdout] 281 | let _ = update_status(&db, &next_contract.code, CVStatus::Failed).await; [INFO] [stdout] 282 | debug!("Failed to start compiler: {}", start_container.unwrap_err().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/compiler.rs:175:14 [INFO] [stdout] | [INFO] [stdout] 175 | if branch_name.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `branch_name.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` on a future [INFO] [stdout] --> src/compiler.rs:237:13 [INFO] [stdout] | [INFO] [stdout] 237 | let _ = update_status(&db, &next_contract.code, CVStatus::Failed); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider awaiting the future or dropping explicitly with `std::mem::drop` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_future [INFO] [stdout] = note: `#[warn(clippy::let_underscore_future)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/compiler.rs:330:31 [INFO] [stdout] | [INFO] [stdout] 330 | let cid_match = &output_cid == &next_contract.code; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 330 - let cid_match = &output_cid == &next_contract.code; [INFO] [stdout] 330 + let cid_match = output_cid == next_contract.code; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/compiler.rs:333:22 [INFO] [stdout] | [INFO] [stdout] 333 | .map(|e| Some(e)) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/chatbot/discord.rs:33:3 [INFO] [stdout] | [INFO] [stdout] 33 | / format!("{}", match net_name.as_str() { [INFO] [stdout] 34 | | "mainnet" => "b", [INFO] [stdout] 35 | | "testnet" => "block", [INFO] [stdout] 36 | | _ => "", [INFO] [stdout] 37 | | }) [INFO] [stdout] | |____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 33 ~ (match net_name.as_str() { [INFO] [stdout] 34 + "mainnet" => "b", [INFO] [stdout] 35 + "testnet" => "block", [INFO] [stdout] 36 + _ => "", [INFO] [stdout] 37 + }).to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/chatbot/discord.rs:129:44 [INFO] [stdout] | [INFO] [stdout] 129 | members.push(ElectionMember { account: format!("..."), key: format!("") }); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"...".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/chatbot/discord.rs:129:65 [INFO] [stdout] | [INFO] [stdout] 129 | members.push(ElectionMember { account: format!("..."), key: format!("") }); [INFO] [stdout] | ^^^^^^^^^^^ help: consider using `String::new()`: `String::new()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/chatbot/discord.rs:336:5 [INFO] [stdout] | [INFO] [stdout] 336 | return DiscordBot { conf: conf.clone(), consts: consts.clone(), db: db.clone(), http_client: http_client.clone() }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 336 - return DiscordBot { conf: conf.clone(), consts: consts.clone(), db: db.clone(), http_client: http_client.clone() }; [INFO] [stdout] 336 + DiscordBot { conf: conf.clone(), consts: consts.clone(), db: db.clone(), http_client: http_client.clone() } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/db.rs:40:3 [INFO] [stdout] | [INFO] [stdout] 40 | / return Ok(Props { [INFO] [stdout] 41 | | last_processed_block: last_l1_block, [INFO] [stdout] 42 | | l2_block_height: block_count, [INFO] [stdout] 43 | | witnesses: witness_count, [INFO] [stdout] ... | [INFO] [stdout] 46 | | transactions: tx_count, [INFO] [stdout] 47 | | }); [INFO] [stdout] | |____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 ~ Ok(Props { [INFO] [stdout] 41 + last_processed_block: last_l1_block, [INFO] [stdout] 42 + l2_block_height: block_count, [INFO] [stdout] 43 + witnesses: witness_count, [INFO] [stdout] 44 + epoch: epoch.saturating_sub(1), [INFO] [stdout] 45 + contracts, [INFO] [stdout] 46 + transactions: tx_count, [INFO] [stdout] 47 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/helpers/db.rs:171:85 [INFO] [stdout] | [INFO] [stdout] 171 | .get(format!("{}/hafah-api/global-state?block-num={}", rpc, last_processed_block.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/helpers/datetime.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | assert_eq!(parsed.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 21 - assert_eq!(parsed.is_ok(), true); [INFO] [stdout] 21 + assert!(parsed.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 51s [INFO] running `Command { std: "docker" "inspect" "1df585058a1a2dabc3fa908f481c9499555e3d26536cd9cedb7669fea8f29ee0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1df585058a1a2dabc3fa908f481c9499555e3d26536cd9cedb7669fea8f29ee0", kill_on_drop: false }` [INFO] [stdout] 1df585058a1a2dabc3fa908f481c9499555e3d26536cd9cedb7669fea8f29ee0